NEURON
ocbrowsr.cpp
Go to the documentation of this file.
1 #include <../../nrnconf.h>
2 #if HAVE_IV // to end of file
3 
4 #include <InterViews/layout.h>
5 #include <InterViews/target.h>
6 #include <InterViews/adjust.h>
7 #include <IV-look/choice.h>
8 #include <IV-look/kit.h>
9 #include <OS/string.h>
10 #include "ocbrowsr.h"
11 #include <stdio.h>
12 #include "apwindow.h"
13 
14 //--------------------------------------------------------------------
15 /*static*/ class OcBrowserAccept : public Action {
16 public:
17  OcBrowserAccept(OcBrowser*);
18  virtual ~OcBrowserAccept();
19  virtual void execute();
20 private:
21  OcBrowser* sb_;
22 };
23 OcBrowserAccept::OcBrowserAccept(OcBrowser* sb){sb_ = sb;}
24 OcBrowserAccept::~OcBrowserAccept(){}
25 void OcBrowserAccept::execute(){sb_->accept();}
26 
27 //---------------------------------------------------------
28 OcBrowser::OcBrowser(Action* accept, Action* cancel)
29  : FileBrowser(WidgetKit::instance(), accept, cancel)
30 {}
31 
33  : FileBrowser(WidgetKit::instance(), new OcBrowserAccept(this) ,NULL)
34 {}
35 
37 
39  LayoutKit& lk = *LayoutKit::instance();
40  WidgetKit& wk = *WidgetKit::instance();
41 
42  return lk.hbox(
43  lk.vcenter(
44 // wk.inset_frame(
45  lk.margin(
46  lk.natural_span(this, 100, 100),
47  5
48 // )
49  ),
50  1.0
51  ),
52  lk.hspace(4),
53  wk.vscroll_bar(this->adjustable())
54  );
55 }
56 void OcBrowser::accept(){};
57 
58 void OcBrowser::append_item(const char* cname) {
59  WidgetKit& kit = *WidgetKit::instance();
60  LayoutKit& layout = *LayoutKit::instance();
61  Glyph* name = kit.label(cname);
62  Glyph* label = new Target(
63  layout.h_margin(name, 3.0, 0.0, 0.0, 15.0, fil, 0.0),
64  TargetPrimitiveHit
65  );
66  TelltaleState* t = new TelltaleState(TelltaleState::is_enabled);
67  append_selectable(t);
68  append(new ChoiceItem(t, label, kit.bright_inset_frame(label)));
69 }
70 
71 void OcBrowser::change_item(GlyphIndex i, const char* cname) {
72  WidgetKit& kit = *WidgetKit::instance();
73  LayoutKit& layout = *LayoutKit::instance();
74  Glyph* name = kit.label(cname);
75  Glyph* label = new Target(
76  layout.h_margin(name, 3.0, 0.0, 0.0, 15.0, fil, 0.0),
77  TargetPrimitiveHit
78  );
79  TelltaleState* t = new TelltaleState(TelltaleState::is_enabled);
80  replace_selectable(i, t);
81  replace(i, new ChoiceItem(t, label, kit.bright_inset_frame(label)));
82  refresh();
83 }
84 
86  FileBrowser::select(i);
87 #if 0
88  if (i >= 0) {
89  GlyphIndex j = (i > 3) ? i+3 : i;
90  Adjustable* a = adjustable();
91  a->scroll_to(Dimension_Y, Coord(count() - j));
92  }
93 #endif
94 }
95 
96 #endif
#define Target
Definition: _defines.h:292
void execute(Inst *p)
Definition: code.cpp:2651
#define WidgetKit
Definition: _defines.h:331
#define Glyph
Definition: _defines.h:132
#define Coord
Definition: _defines.h:19
virtual void select_and_adjust(GlyphIndex)
virtual void change_item(GlyphIndex, const char *)
void append(Item *ql, Item *q)
Definition: list.cpp:348
#define FileBrowser
Definition: _defines.h:114
virtual ~OcBrowser()
#define LayoutKit
Definition: _defines.h:161
#define GlyphIndex
Definition: _defines.h:23
virtual void accept()
size_t j
char * name
Definition: init.cpp:16
#define fil
Definition: coord.h:42
virtual void append_item(const char *)
#define i
Definition: md1redef.h:12
#define Adjustable
Definition: _defines.h:29
#define Action
Definition: _defines.h:27
virtual Glyph * standard_glyph()
#define ChoiceItem
Definition: _defines.h:72
#define TelltaleState
Definition: _defines.h:296
double t
Definition: init.cpp:123
return NULL
Definition: cabcode.cpp:461