comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: widget confusion
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: widget confusion [message #68857 is a reply to message #68856] Mon, 23 November 2009 07:50 Go to previous message
jeanh is currently offline  jeanh
Messages: 79
Registered: November 2009
Member
chris wrote:
> Hi there,
> i want to create a program which allows to change parameters by manual
> input, by opening saved parameters and by restoring defaults within a
> widget. After finishing those kinds of inputs the program shall be
> closed by the O.K-Button. Unfortunately, the inputs are ignored. Who
> can help me a little bit with the event handling.
>
> THANKS in advance and regards
>
> CR
>

Hi,

there are a few things here... first, ptr is a pointer, so you do not
need to save it each time you do something... especially when the very
next action is to destroy the widget.

Now, I don't see you reading your value. You need to save "field1" in
your pointer, then access the corresponding value with
widget_control,event.top, get_uValue=ptr ;(begining of the event handler)
widget_control,(*ptr).fieldID, get_value=aot_def_value

Jean

> The following program code may better explain what I mean:
>
> usage: ptr=menu(ptr=ptr) &print, 'Widget result', (*ptr).(0)
>
> pro menu_controls_event,event,ptr
> widget_control, event.top, get_uvalue=ptr
> widget_control, event.id,get_uvalue=action
> case action of
> 'open' : begin
> restore, dialog_pickfile()
> (*ptr)[1].bp = 0b
> print,'imported values:',(*ptr).(0)
> widget_control, event.top, set_uvalue=ptr
> widget_control,event.top,/destroy
> end
> 'saveas' : begin
> save,ptr,filename=dialog_pickfile()
> (*ptr)[1].bp = 0b
> widget_control, event.top, set_uvalue=ptr
> widget_control,event.top,/destroy
> end
> 'ok' : begin
> (*ptr)[1].bp = 1b
> widget_control, event.top, set_uvalue=ptr
> widget_control,event.top,/destroy
> end
> 'cancel' : begin
> (*ptr)[1].bp = 1b
> widget_control, event.top, set_uvalue=ptr
> widget_control,event.top,/destroy
> end
> 'exit' : begin
> (*ptr)[1].bp = 1b
> widget_control, event.top, set_uvalue=ptr
> widget_control,event.top,/destroy
> end
> 'aot_def' : begin
> (*ptr)[1].bp = 0b
> (*ptr)[1].aot_def = float(event.(where(strupcase(tag_names
> (event)) eq 'VALUE')))
> widget_control, event.top, set_uvalue=ptr
> end
> 'def' : begin
> (*ptr)[1].bp= 0b
> (*ptr)[1] =(*ptr)[0]
> widget_control, event.top, set_uvalue=ptr
> widget_control,event.top,/destroy
> end
> endcase
> end
>
> function menu_controls,ptr
> tlb = widget_base(title='test',row=3,mbar=men)
> menubase= widget_button(men,value='File')
> menu1 = widget_button(menubase,value='Open',uvalue='open')
> menu2 = widget_button(menubase,value='Save as',uvalue='saveas')
> menu3 = widget_button(menubase,value='Defaults',uvalue='def')
> menu4 = widget_button(menubase,value='Exit',uvalue='exit')
> field1 = cw_field (tlb,value=(*ptr)[1].aot_def,title='AOT (Optical
> Thickness)',uvalue='aot_def');,/all_events,/column)
> field2 = widget_button (tlb,value='Ok',uvalue='ok', /align_center)
> field3 = widget_button (tlb,value='Cancel',uvalue='cancel',/
> align_center)
> widget_control,tlb,/realize
> widget_control,tlb,set_uvalue=ptr
> xmanager,'menu_controls',tlb
> return,ptr
> end
>
> function menu,ptr=ptr
> if ~keyword_set(ptr) or ~n_elements(ptr) then begin
> ptr = {aot_def : 0.1234,bp:0b }
> ptr = ptr_new(replicate(ptr,2),/no_copy)
> endif
> ptr = menu_controls(ptr)
> print, 'Final:',(*ptr).(0)
> if (*ptr)[1].bp eq 0b then ptr=menu(ptr=ptr)
> return, ptr
> end
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Scope_Varfetch "IDL workbench" train wreck
Next Topic: Re: Philips MRI to DICOM converter

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 17:43:25 PDT 2025

Total time taken to generate the page: 0.55933 seconds