source: trunk/SRC/ToBeReviewed/HOPE/cw_selectinterval.pro @ 378

Last change on this file since 378 was 327, checked in by pinsard, 17 years ago

modification of headers : mainly blanks around = sign for keywords in declaration of function and pro

  • Property svn:keywords set to Id
File size: 4.5 KB
Line 
1; PRO testwid_event, event
2; ;
3;   compile_opt idl2, strictarrsubs
4; ;
5;    widget_control, event.id, get_uvalue=uval
6;    if n_elements(uval) EQ 0 then return
7;    case uval of
8;       'done':widget_control, event.top, /destroy
9;       'get':BEGIN
10;          id = widget_info(event.top,find_by_uname = 'discret')
11;          widget_control, id, get_value = value1
12;          help, value1
13;          print, 'value1', value1
14;          id = widget_info(event.top,find_by_uname = 'continus')
15;          widget_control, id, get_value = value2
16;          help, value2
17;          print, 'value2', value2
18;       END
19;       ELSE:
20;    endcase
21;    return
22; end
23; PRO testwid, _extra = ex
24; ;
25;   compile_opt idl2, strictarrsubs
26; ;
27;    base=widget_base(/COLUMN)
28;    nothing = widget_label(base, value = 'beginning of the test')
29; ;
30;    nothing = cw_selectinterval(base, 10+indgen(5), _extra = ex, uname = 'discret', uvalue = 'discret')
31;    print, nothing
32;    nothing = cw_selectinterval(base, indgen(20), _extra = ex, uname = 'continus', uvalue = 'continus')
33;    print, nothing
34; ;
35;    nothing = widget_button(base, value = 'get', uvalue = 'get')
36;    nothing = widget_button(base, value = 'done', uvalue = 'done')
37;    widget_control, base, /REALIZE
38;    xmanager,'testwid', base, /no_block
39;    return
40; end
41;
42;+
43;
44; @file_comments
45;
46; @categories
47; Compound widget
48;
49; @param ID
50;
51; @returns
52;
53; @restrictions
54;
55; @examples
56;
57; @history
58;
59; @version
60; $Id$
61;
62; @todo
63; seb
64;
65;-
66FUNCTION cw_selectinterval_get_value, id
67;
68  compile_opt idl2, strictarrsubs
69;
70   bgroupid=widget_info(id, find_by_uname = 'bgroup')
71; the widget is a set of button
72   if bgroupid ne 0 then begin
73      widget_control, bgroupid, get_value = selected
74      widget_control, bgroupid, get_uvalue = vecteur
75      vecteur = vecteur.vecteur
76   endif else begin
77; the widget is 2 sliders
78      Minid = Widget_Info(Id, Find_by_uname = 'min')
79      widget_control, minid, get_value = minval
80      minval = minval.value
81      maxid = widget_info(id, find_by_uname = 'max')
82      widget_control, maxid, get_value = maxval
83      maxval = maxval.value
84      widget_control, minid, get_uvalue = vecteur
85      vecteur = vecteur.vecteur
86      selected = where(vecteur ge minval and vecteur le maxval)
87   ENDELSE
88  if selected[0] eq -1 then return, -1 else return, vecteur[selected]
89END
90;
91;+
92; @file_comments
93;
94; @categories
95; Compound widget
96;
97; @param EVENT
98;
99; @returns
100;
101; @restrictions
102;
103; @examples
104;
105; @history
106;
107; @version
108; $Id$
109;
110;-
111FUNCTION cw_selectinterval_event, event
112;
113  compile_opt idl2, strictarrsubs
114;
115   widget_control, event.id, get_uvalue=uval
116   case uval.name of
117      'min':begin               ; change the value if the minimum for the slider called max
118         maxid=widget_info(event.handler, find_by_uname = 'max')
119         widget_control, maxid, set_value={SLIDER_MIN:event.value+1}
120      end
121      'max':begin               ; change the value if the maximum for the slider called min
122         minid=widget_info(event.handler, find_by_uname = 'min')
123         widget_control, minid, set_value={SLIDER_MAX:event.value-1}
124      end
125      'bgroup':
126   endcase
127   return, {ID:event.handler, TOP:event.top, HANDLER:0L}
128END
129;
130;+
131;
132; @file_comments
133;
134; @categories
135; Compound widget
136;
137; @param PARENT
138; The widget ID of the parent widget.
139;
140; @param VECTEUR {type=vector}
141; A vector whose the first element must be the smallest one and the last
142; must be the biggest one.
143;
144; @keyword _EXTRA
145; Used to pass keywords
146;
147; @returns
148;
149; @restrictions
150;
151; @examples
152;
153; @history
154;
155; @version
156; $Id$
157;
158;-
159FUNCTION cw_selectinterval, parent, vecteur, _EXTRA=ex
160;
161  compile_opt idl2, strictarrsubs
162;
163
164   base = widget_base(parent $
165                      , EVENT_FUNC = 'cw_selectinterval_event' $
166                      , FUNC_GET_VALUE='cw_selectinterval_get_value' $
167                      , PRO_SET_VALUE='cw_selectinterval_set_value' $
168                      , /ROW, _extra = ex)
169   if n_elements(vecteur) le 10 then begin
170      nothing = CW_BGROUP(base, strtrim(vecteur,1),/nonexclusive,/row, uvalue = {name:'bgroup', vecteur:vecteur}, uname='bgroup')
171      buttvalue=bytarr(n_elements(nothing))
172      buttvalue[0]=1
173      widget_control, nothing, set_value=buttvalue
174   endif else begin
175      min=min(floor(vecteur))
176      max=max(ceil(vecteur))
177      nothing=cw_slider_pm(base, value = min, min=min, max=max-1, uvalue = {name:'min', vecteur:vecteur}, uname='min')
178      nothing=cw_slider_pm(base, value = max, min=min+1, max=max, uvalue = {name:'max'}, uname='max')
179   endelse
180   return, base
181end
Note: See TracBrowser for help on using the repository browser.