NEURON
bndedval.cpp
Go to the documentation of this file.
1 #include <../../nrnconf.h>
2 #if HAVE_IV // to end of file
3 
4 #include "bndedval.h"
5 #include <stdio.h>
6 
8  scroll_incr_ = 0.0;
9  page_incr_ = 0.0;
10 }
11 
13  lower_ = lower;
14  span_ = upper - lower;
15  scroll_incr_ = span_ * 0.04;
16  page_incr_ = span_ * 0.4;
17  curvalue_ = (lower + upper) * 0.5;
18 }
19 
21 
23  lower_ = c;
24 }
26  span_ = c - lower_;
27 }
28 
30  curvalue_ = value;
31  constrain(Dimension_X, curvalue_);
32  notify(Dimension_X);
33  notify(Dimension_Y);
34 }
35 
37  scroll_incr_ = c;
38 }
40  page_incr_ = c;
41 }
42 
43 #define access_function(name, value) \
44  Coord BoundedValue::name(DimensionName) const { \
45  return value; \
46  }
47 
48 access_function(lower, lower_) access_function(upper, lower_ + span_) access_function(length, span_)
49  access_function(cur_lower, curvalue_) access_function(cur_upper, curvalue_)
50  access_function(cur_length, 0)
51 
52  void BoundedValue::scroll_to(DimensionName d, Coord position) {
53  Coord p = position;
54  constrain(d, p);
55  if (p != curvalue_) {
56  curvalue_ = p;
57  notify(Dimension_X);
58  notify(Dimension_Y);
59  }
60 }
61 
62 #define scroll_function(name, expr) \
63  void BoundedValue::name(DimensionName d) { \
64  scroll_to(d, curvalue_ + expr); \
65  }
66 
67 scroll_function(scroll_forward, +scroll_incr_) scroll_function(scroll_backward, -scroll_incr_)
68  scroll_function(page_forward, +page_incr_) scroll_function(page_backward, -page_incr_)
69 
70 #endif
#define Coord
Definition: _defines.h:17
Coord scroll_incr_
Definition: bndedval.h:36
Coord curvalue_
Definition: bndedval.h:33
virtual void upper_bound(Coord)
virtual void scroll_incr(Coord)
virtual Coord lower(DimensionName) const
virtual void lower_bound(Coord)
Coord lower_
Definition: bndedval.h:34
virtual Coord upper(DimensionName) const
virtual void page_incr(Coord)
virtual void current_value(Coord)
Coord page_incr_
Definition: bndedval.h:37
virtual ~BoundedValue()
Coord span_
Definition: bndedval.h:35
@ Dimension_Y
Definition: geometry.h:39
@ Dimension_X
Definition: geometry.h:39
unsigned int DimensionName
Definition: geometry.h:36
static int c
Definition: hoc.cpp:169
size_t p
static uint32_t value
Definition: scoprand.cpp:25