source: trunk/LECTURE/whichread.pro @ 2

Last change on this file since 2 was 2, checked in by opalod, 22 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1;*********************************************************************
2PRO whichread_event, event
3;
4@common
5;
6   if tag_names(event, /structure_name) NE 'WIDGET_BUTTON' then return
7   widget_control, event.id,  get_uvalue = uvalue
8   widget_control, event.handler, get_uvalue = messenger
9   case uvalue of
10      'Cancel':*messenger = -1
11      'ok finish':BEGIN
12         widget_control, widget_info(event.handler, find_by_uname = 'funclec_name') $
13          , get_value = answer
14         funclec_name = strtrim(answer[0], 2)
15         widget_control, widget_info(event.handler, find_by_uname = 'xdta'), get_value = answer
16         jpiglo = long(answer[0])
17         jpidta = long(answer[1])
18         ixmindta = long(answer[2])
19         ixmaxdta = long(answer[3])
20         widget_control, widget_info(event.handler, find_by_uname = 'ydta'), get_value = answer
21         jpjglo = long(answer[0])
22         jpjdta = long(answer[1])
23         iymindta = long(answer[2])
24         iymaxdta = long(answer[3])
25         widget_control, widget_info(event.handler, find_by_uname = 'zdta'), get_value = answer
26         jpkglo = long(answer[0])
27         jpkdta = long(answer[1])
28         izmindta = long(answer[2])
29         izmaxdta = long(answer[3])
30;
31;
32         *messenger = {funclec_name:funclec_name $
33                       , jpidta:jpidta, jpjdta:jpjdta, jpkdta:jpkdta $
34                       , ixmindta:ixmindta, ixmaxdta:ixmaxdta $
35                       , iymindta:iymindta, iymaxdta:iymaxdta $
36                       , izmindta:izmindta, izmaxdta:izmaxdta $
37                      }
38      END
39   endcase
40   widget_control,event.handler,/destroy
41;
42   return
43end
44;*********************************************************************
45FUNCTION whichread, FUNCLEC_NAME = funclec_name, PARENT = parent, _EXTRA = ex
46;
47@common
48;
49; pour recuperer les reponses possees lors de l''utilisation de ce
50; widget on cree un pointeur que l''on place dans la uvalue. Comme ca
51; une fois que le widget est detruit dans la procedure ...event.pro,
52; la variable surlaquelle pointait le pointeur (contenue ds la uvalue
53; du widget) n''est pas detruite est on peut recuperer le resultat!
54;
55   messenger = ptr_new(/allocate_heap)
56;
57;
58   if keyword_set(parent) then BEGIN
59   base=widget_base(parent, /COLUMN, title = 'whichread', /align_center, uvalue = messenger, _EXTRA = ex)
60   ENDIF ELSE BEGIN
61      base=widget_base(/COLUMN, title = 'whichread', /align_center, uvalue = messenger, _EXTRA = ex)
62      nothing = widget_button(base, value = 'Cancel', uvalue = 'Cancel')
63   ENDELSE
64;
65   basea=widget_base(base, /row, /align_center)
66   nothing = widget_label(basea, value = 'Read Function name:')
67   if NOT keyword_set(funclec_name) then funclec_name = 'read_ncdf'
68   nothing = widget_text(basea, value = funclec_name, uname = 'funclec_name', xsize = 10, /EDITABLE)
69   nothing = cw_fourparameter(base, jpiglo, jpidta, ixmindta, ixmaxdta, 'x', 'dta', /EDITABLE, uname = 'xdta')
70   nothing = cw_fourparameter(base, jpjglo, jpjdta, iymindta, iymaxdta, 'y', 'dta', /EDITABLE, uname = 'ydta')
71   nothing = cw_fourparameter(base, jpkglo, jpkdta, izmindta, izmaxdta, 'z', 'dta', /EDITABLE, uname = 'zdta')
72   nothing = widget_button(base, value = 'Ok, Get the Read parameters!', uvalue = 'ok finish')
73;
74   widget_control,base,/realize
75   xmanager,'whichread', base,event_handler = 'whichread_event'
76   res = *messenger
77   ptr_free, messenger
78
79   return, res
80;   
81end
Note: See TracBrowser for help on using the repository browser.