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 
21  private:
22  OcBrowser* sb_;
23 };
24 OcBrowserAccept::OcBrowserAccept(OcBrowser* sb) {
25  sb_ = sb;
26 }
27 OcBrowserAccept::~OcBrowserAccept() {}
28 void OcBrowserAccept::execute() {
29  sb_->accept();
30 }
31 
32 //---------------------------------------------------------
33 OcBrowser::OcBrowser(Action* accept, Action* cancel)
34  : FileBrowser(WidgetKit::instance(), accept, cancel) {}
35 
37  : FileBrowser(WidgetKit::instance(), new OcBrowserAccept(this), NULL) {}
38 
40 
42  LayoutKit& lk = *LayoutKit::instance();
43  WidgetKit& wk = *WidgetKit::instance();
44 
45  return lk.hbox(lk.vcenter(
46  // wk.inset_frame(
47  lk.margin(lk.natural_span(this, 100, 100), 5
48  // )
49  ),
50  1.0),
51  lk.hspace(4),
52  wk.vscroll_bar(this->adjustable()));
53 }
54 void OcBrowser::accept(){};
55 
56 void OcBrowser::append_item(const char* cname) {
57  WidgetKit& kit = *WidgetKit::instance();
58  LayoutKit& layout = *LayoutKit::instance();
59  Glyph* name = kit.label(cname);
60  Glyph* label = new Target(layout.h_margin(name, 3.0, 0.0, 0.0, 15.0, fil, 0.0),
61  TargetPrimitiveHit);
62  TelltaleState* t = new TelltaleState(TelltaleState::is_enabled);
63  append_selectable(t);
64  append(new ChoiceItem(t, label, kit.bright_inset_frame(label)));
65 }
66 
67 void OcBrowser::change_item(GlyphIndex i, const char* cname) {
68  WidgetKit& kit = *WidgetKit::instance();
69  LayoutKit& layout = *LayoutKit::instance();
70  Glyph* name = kit.label(cname);
71  Glyph* label = new Target(layout.h_margin(name, 3.0, 0.0, 0.0, 15.0, fil, 0.0),
72  TargetPrimitiveHit);
73  TelltaleState* t = new TelltaleState(TelltaleState::is_enabled);
74  replace_selectable(i, t);
75  replace(i, new ChoiceItem(t, label, kit.bright_inset_frame(label)));
76  refresh();
77 }
78 
80  FileBrowser::select(i);
81 #if 0
82  if (i >= 0) {
83  GlyphIndex j = (i > 3) ? i+3 : i;
84  Adjustable* a = adjustable();
85  a->scroll_to(Dimension_Y, Coord(count() - j));
86  }
87 #endif
88 }
89 
90 #endif
#define TelltaleState
Definition: _defines.h:293
#define Target
Definition: _defines.h:289
#define FileBrowser
Definition: _defines.h:112
#define Coord
Definition: _defines.h:17
#define Adjustable
Definition: _defines.h:27
#define WidgetKit
Definition: _defines.h:328
#define GlyphIndex
Definition: _defines.h:21
#define ChoiceItem
Definition: _defines.h:70
#define LayoutKit
Definition: _defines.h:159
#define Action
Definition: _defines.h:25
#define Glyph
Definition: _defines.h:130
virtual void accept()
virtual Glyph * standard_glyph()
virtual ~OcBrowser()
virtual void change_item(GlyphIndex, const char *)
virtual void append_item(const char *)
virtual void select_and_adjust(GlyphIndex)
#define fil
Definition: coord.h:41
#define i
Definition: md1redef.h:19
@ Dimension_Y
Definition: geometry.h:39
const char * name
Definition: init.cpp:16
void append(Item *ql, Item *q)
Definition: list.cpp:289
size_t j
#define NULL
Definition: spdefs.h:105