source: trunk/SRC/ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.pro @ 262

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

corrections of some headers and parameters and keywords case. change of pro2href to replace proidl

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 7.6 KB
Line 
1;+
2;
3; @file_comments
4;
5; @categories
6; Compound widget
7;
8; @param ID
9;
10; @param VALUE
11; It is the default tick mark value (a floating-point number).
12;
13; @returns
14;
15; @uses
16;
17; @restrictions
18;
19; @examples
20;
21; @history
22;
23; @version
24; $Id$
25;-
26;
27PRO cw_specifie_set_value, id, value
28;
29  compile_opt idl2, strictarrsubs
30;
31@cm_general
32   if size(value, /type) NE 8 then return
33   widget_control, widget_info(id,find_by_uname='min'), set_value = strtrim(value.min, 2)
34   widget_control, widget_info(id,find_by_uname='max'), set_value = strtrim(value.max, 2)
35   widget_control, widget_info(id,find_by_uname='int'), set_value = strtrim(value.inter, 2)
36   widget_control, widget_info(id,find_by_uname='palnum'), set_value = strtrim(value.lct, 2)
37   autres = extractstru(value, ['min', 'max', 'inter', 'lct', 'nothing', 'xindex', 'yindex'])
38   if size(autres, /type) EQ 8 then BEGIN
39      autresid = widget_info(id,find_by_uname='autres')
40      widget_control, widget_info(id, find_by_uname = 'autres'), get_value = autresautres
41      autresautres = autresautres[0]
42      if strtrim(autresautres, 2) NE '' then begin
43        autresautres = createfunc('get_extra(' + autresautres + ')' $
44                                  , filename = myuniquetmpdir +'for_createfunc.pro')
45        autres = mixstru(autres, autresautres)
46      endif
47      autres = strkeywd(autres)
48      widget_control, widget_info(id,find_by_uname='autres'), set_value = autres
49   endif
50   return
51end
52;
53;+
54;
55; @file_comments
56;
57; @categories
58; Compound widget
59;
60; @param ID
61;
62; @returns
63;
64; @uses
65;
66; @restrictions
67;
68; @examples
69;
70; @history
71;
72; @version
73; $Id$
74;
75;-
76;
77FUNCTION cw_specifie_get_value, id
78;
79  compile_opt idl2, strictarrsubs
80;
81@cm_general
82   widget_control, widget_info(id,find_by_uname='min'), get_value = min
83   min = float(min[0])
84   widget_control, widget_info(id,find_by_uname='max'), get_value = max
85   max = float(max[0])
86   widget_control, widget_info(id,find_by_uname='int'), get_value = int
87   int = float(int[0])
88   widget_control, widget_info(id,find_by_uname='palnum'), get_value = palnum
89   palnum = long(palnum[0])
90   widget_control, widget_info(id,find_by_uname='autres'), get_value = autres
91   autres = autres[0]
92;
93   exextra = {min:min, max:max, inter:int, lct:palnum}
94   if strtrim(autres, 2) NE '' then $
95      exextra = createfunc('get_extra('+autres+', _extra = exextra)' $
96                           , kwdlist = 'exextra = exextra', exextra = exextra $
97                           , filename = myuniquetmpdir +'for_createfunc.pro')
98;
99   return, exextra
100end
101;
102;+
103;
104; @file_comments
105;
106; @categories
107; Compound widget
108;
109; @param EVENT
110;
111; @returns
112;
113; @uses
114;
115; @restrictions
116;
117; @examples
118;
119; @history
120;
121; @version
122; $Id$
123;
124;-
125;
126FUNCTION cw_specifie_event, event
127;
128  compile_opt idl2, strictarrsubs
129;
130;------------------------------------------------------------
131; on recupere les ID des differents widgets
132;------------------------------------------------------------
133;------------------------------------------------------------
134  widget_control, event.id, get_uvalue = uval
135  widget_control, event.top, get_uvalue = top_uvalue
136  smallin = extractatt(top_uvalue, 'smallin')
137  numdessinin = smallin[2]-1
138  smallout = extractatt(top_uvalue, 'smallout')
139  numdessinout = smallout[2]-1
140;------------------------------------------------------------
141  case uval of
142    'default':BEGIN
143;---------------
144; We find the name of the variable:
145      vlstid = widget_info(event.top, find_by_uname = 'varlist')
146      fieldname = widget_info(vlstid, /combobox_gettext)
147;---------------
148      exextra = definedefaultextra(fieldname)
149      widget_control, widget_info(event.handler, find_by_uname = 'min'), set_value = strtrim(exextra.min, 1)
150      widget_control, widget_info(event.handler, find_by_uname = 'max'), set_value = strtrim(exextra.max, 1)
151      widget_control, widget_info(event.handler, find_by_uname = 'int'), set_value = strtrim(exextra.inter, 1)
152      widget_control, widget_info(event.handler, find_by_uname = 'palnum'), set_value = strtrim(exextra.lct, 1)
153      widget_control, widget_info(event.handler, find_by_uname = 'autres'), set_value = ''
154    END
155    'palcol':BEGIN
156      ind = fix(strmid(event.value, 0, strpos(event.value, '-')))
157      widget_control, widget_info(event.handler, find_by_uname = 'palnum'), set_value = strtrim(ind, 1)
158    END
159    ELSE:
160  endcase
161  return, {ID:event.handler, TOP:event.top, HANDLER:0L, OK:uval EQ 'ok'}
162end
163;
164;+
165;
166; @file_comments
167;
168; @categories
169; Compound widget
170;
171; @param PARENT {in}{required}
172; The widget ID of the parent widget.
173;
174; @keyword COLUMN
175; Buttons will be arranged in the number of columns
176; specified by this keyword.
177;
178; @keyword ROW
179; Buttons will be arranged in the number of rows
180; specified by this keyword.
181;
182; @keyword UVALUE
183; The user value to be associated with the widget.
184;
185; @keyword UNAME
186; The user name to be associated with the widget.
187;
188; @keyword FRAME
189;
190; @keyword FORXXX
191;
192; @keyword _EXTRA
193; Used to pass keywords
194;
195; @returns
196;
197; @uses
198;
199; @restrictions
200;
201; @examples
202;
203; @history
204;
205; @version
206; $Id$
207;
208; @todo
209; seb: documenter
210;
211;-
212;
213FUNCTION cw_specifie, parent, ROW = row, COLUMN = column, UVALUE = uvalue, UNAME = uname, FRAME = frame, FORXXX = forxxx, _EXTRA = ex
214;
215  compile_opt idl2, strictarrsubs
216;
217; checking exclusive keywords
218   column = keyword_set(column)*(1-keyword_set(row))
219   row = keyword_set(row)*(1-keyword_set(column)) +(keyword_set(row) EQ column)
220;------------------------------------------------
221   if NOT keyword_set(uvalue) then uvalue = ''
222   if NOT keyword_set(uname) then uname = ''
223   base = widget_base(parent, space = 0, /frame $
224                      , EVENT_FUNC = 'cw_specifie_event' $
225                      , FUNC_GET_VALUE='cw_specifie_get_value' $
226                      , PRO_SET_VALUE='cw_specifie_set_value' $
227                      , UVALUE = uvalue, UNAME = uname, _extra = ex)
228; base1
229   base1 = widget_base(base)
230   rien = widget_label(base1, value = 'Min', xoffset =  85, yoffset = 15)
231   rien = widget_label(base1, value = 'Max', xoffset = 145, yoffset = 15)
232   rien = widget_label(base1, value = 'Int', xoffset = 210, yoffset = 15)
233;
234   lct, get_name = nomcouleur
235   nbrligne = 30
236   nbrlist = n_elements(nomcouleur)/nbrligne
237   nomcouleur = strtrim(sindgen(n_elements(nomcouleur)), 1)+'- '+nomcouleur
238   nomcouleur = '0\'+nomcouleur
239   nomcouleur = ['1\Color', nomcouleur]
240   if nbrlist GT 1 then for i = 1,nbrlist do $
241    nomcouleur = [nomcouleur[0:nbrligne*i-1+i], '1\ ', nomcouleur[nbrligne*i+i:n_elements(nomcouleur)-1]]
242   rien = cw_pdmenu(base1, nomcouleur, /RETURN_NAME , uvalue = 'palcol', uname = 'palcol', xoffset = 250, yoffset = 0)
243; base2
244   base2 = widget_base(base, column = 4+keyword_set(forxxx), yoffset = 30)
245   if keyword_set(forxxx) then rien = widget_button(base2,value='Default', uvalue = 'default', /frame, tooltip = 'see '+(find('definedefaultextra'))[0])
246   rien = widget_text(base2, value = '', /editable, xsize = 7, uname = 'min', uvalue = 'min')
247   rien = widget_text(base2, value = '', /editable, xsize = 7, uname = 'max', uvalue = 'max')
248   rien = widget_text(base2, value = '', /editable, xsize = 7, uname = 'int', uvalue = 'int')
249   if keyword_set(forxxx) then colvalue = '' ELSE colvalue = '39'
250   rien = widget_text(base2, value = colvalue, /editable, xsize = 2, uname = 'palnum', uvalue = 'palnum')
251
252
253
254; widget text containing other keywords pass into top_uvalue.exextra
255; Does it remain some? If yes, we have to put them as string
256
257   rien = widget_text(base, value = '  ', /editable, uname = 'autres', uvalue = 'autres', xsize = 54, ysize = 3, yoffset = 65, /wrap, /no_newline)
258
259    if keyword_set(forxxx) then cw_specifie_set_value, base, definedefaultextra('rien_du_tout')
260
261;------------------------------------------------
262   return, base
263end
264
Note: See TracBrowser for help on using the repository browser.