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

Home » Public Forums » archive » Re: /MODAL makes widgets disappear
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: /MODAL makes widgets disappear [message #20010] Fri, 12 May 2000 00:00
davidf is currently offline  davidf
Messages: 2866
Registered: September 1996
Senior Member
D. Mattes (dmattes@u.washington.edu) writes:

> here is the code that builds the widget hierarchy, and the widget event
> handler. it's not that much code, so i included all of it. maybe it has
> something to do with the implicit x-sizing of the cw_field. but why would
> that depend only on whether it was spawned as a modal widget???

My, God! This looks like code the IDL GUI-Builder would spit out. :-(

Yes, I suspect all that specific sizing that is going on to get
things looking right on the PC is not working correctly on
a UNIX machine. I don't know what the MODAL keyword
has to do with it, but I'm not surprised about having problems.
The GUI-Builder is inherently ill-suited to producing platform-
independent code, IMHO.

My suggestion is to take 15 minutes and code this up
with column and row bases (and get rid of the Common
blocks while you are at it) and you will be fine.

Cheers,

David

--
David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
Re: /MODAL makes widgets disappear [message #20011 is a reply to message #20010] Fri, 12 May 2000 00:00 Go to previous message
D. Mattes is currently offline  D. Mattes
Messages: 14
Registered: May 1999
Junior Member
to david fanning and anyone else interested....

here is the code that builds the widget hierarchy, and the widget event
handler. it's not that much code, so i included all of it. maybe it has
something to do with the implicit x-sizing of the cw_field. but why would
that depend only on whether it was spawned as a modal widget???

thanks for enjoying red herring!

david m.

----------------------begin code ----------------------------

pro sp_define_common
common sp_widget_vars,spMinSettings,done,cancel
end

pro sp_BASE_1_event, Event

common sp_widget_vars

wWidget = Event.top

case Event.id of

Widget_Info(wWidget, FIND_BY_UNAME='WID_BUTTON_1'): begin
done=1
WIDGET_CONTROL,$
Widget_Info(wWidget, FIND_BY_UNAME='WID_NXI'),$
GET_VALUE=temp
spMinSettings.nxi=temp
WIDGET_CONTROL,$
Widget_Info(wWidget, FIND_BY_UNAME='WID_NYI'),$
GET_VALUE=temp
spMinSettings.nyi=temp
WIDGET_CONTROL,$
Widget_Info(wWidget, FIND_BY_UNAME='WID_NZI'),$
GET_VALUE=temp
spMinSettings.nzi=temp
WIDGET_CONTROL,$
Widget_Info(wWidget, FIND_BY_UNAME='WID_CX_MIN'),$
GET_VALUE=temp
spMinSettings.ci[0,0]=temp
WIDGET_CONTROL,$
Widget_Info(wWidget, FIND_BY_UNAME='WID_CX_MAX'),$
GET_VALUE=temp
spMinSettings.ci[1,0]=temp
WIDGET_CONTROL,$
Widget_Info(wWidget, FIND_BY_UNAME='WID_CY_MIN'),$
GET_VALUE=temp
spMinSettings.ci[0,1]=temp
WIDGET_CONTROL,$
Widget_Info(wWidget, FIND_BY_UNAME='WID_CY_MAX'),$
GET_VALUE=temp
spMinSettings.ci[1,1]=temp
WIDGET_CONTROL,$
Widget_Info(wWidget, FIND_BY_UNAME='WID_CZ_MIN'),$
GET_VALUE=temp
spMinSettings.ci[0,2]=temp
WIDGET_CONTROL,$
Widget_Info(wWidget, FIND_BY_UNAME='WID_CZ_MAX'),$
GET_VALUE=temp
spMinSettings.ci[1,2]=temp

WIDGET_CONTROL, event.top, /DESTROY
end
Widget_Info(wWidget, FIND_BY_UNAME='WID_BUTTON_0'): begin
cancel=1
WIDGET_CONTROL, event.top, /DESTROY
end
else:
endcase

end

pro sp_BASE_1, spMinSettingsExt, doneExt, cancelExt, GROUP_LEADER=wGroup,
_EXTRA=_VWBExtra_

common sp_widget_vars

done=0
cancel=0

if n_elements(wGroup) GT 0l then $
sp_BASE_1 = Widget_Base( GROUP_LEADER=wGroup, $
UNAME='sp_BASE_1'$
,XOFFSET=5 ,YOFFSET=5 ,SCR_XSIZE=318 $
,SCR_YSIZE=409 $
,TITLE='Deformation Minimization Parameters' $
,SPACE=3,XPAD=3 $
,YPAD=3,/MODAL) $
else $
sp_BASE_1 = Widget_Base( GROUP_LEADER=wGroup, $
UNAME='sp_BASE_1'$
,XOFFSET=5 ,YOFFSET=5 ,SCR_XSIZE=318 ,SCR_YSIZE=409 $
,TITLE='Deformation Minimization Parameters' $
,SPACE=3,XPAD=3 $
,YPAD=3)


WID_LABEL_0 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_0' $
,XOFFSET=49 ,YOFFSET=29 ,SCR_XSIZE=221 ,SCR_YSIZE=18 $
,/ALIGN_LEFT ,VALUE='Enter the deformation minimization'+ $
' constraints')


WID_LABEL_1 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_1' $
,XOFFSET=83 ,YOFFSET=70 ,SCR_XSIZE=170 ,SCR_YSIZE=19 $
,/ALIGN_LEFT ,VALUE='Number of deformation parameters')

WID_LABEL_4 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_4' $
,XOFFSET=13 ,YOFFSET=100 ,SCR_XSIZE=44 ,SCR_YSIZE=19 $
,/ALIGN_RIGHT ,VALUE='nxi')


WID_LABEL_5 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_5' $
,XOFFSET=13 ,YOFFSET=130 ,SCR_XSIZE=44 ,SCR_YSIZE=19 $
,/ALIGN_RIGHT ,VALUE='nyi')


WID_LABEL_6 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_6' $
,XOFFSET=13 ,YOFFSET=160 ,SCR_XSIZE=44 ,SCR_YSIZE=19 $
,/ALIGN_RIGHT ,VALUE='nzi')


WID_LABEL_7 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_7' $
,XOFFSET=13 ,YOFFSET=293 ,SCR_XSIZE=44 ,SCR_YSIZE=19 $
,/ALIGN_RIGHT ,VALUE='cz')


WID_LABEL_8 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_8' $
,XOFFSET=13 ,YOFFSET=263 ,SCR_XSIZE=44 ,SCR_YSIZE=19 $
,/ALIGN_RIGHT ,VALUE='cy')


WID_LABEL_9 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_9' $
,XOFFSET=13 ,YOFFSET=233 ,SCR_XSIZE=44 ,SCR_YSIZE=19 $
,/ALIGN_RIGHT ,VALUE='cx')


WID_LABEL_10 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_10' $
,XOFFSET=195 ,YOFFSET=208 ,SCR_XSIZE=30 ,SCR_YSIZE=18 $
,/ALIGN_LEFT ,VALUE='Max')


WID_LABEL_11 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_11' $
,XOFFSET=98 ,YOFFSET=208 ,SCR_XSIZE=30 ,SCR_YSIZE=18 $
,/ALIGN_LEFT ,VALUE='Min')


WID_LABEL_12 = Widget_Label(sp_BASE_1, UNAME='WID_LABEL_12' $
,XOFFSET=100 ,YOFFSET=190 ,SCR_XSIZE=151 ,SCR_YSIZE=19 $
,/ALIGN_LEFT ,VALUE='Deformation Constraints')


WID_BUTTON_0 = Widget_Button(sp_BASE_1, UNAME='WID_BUTTON_0' $
,XOFFSET=65 ,YOFFSET=330 ,SCR_XSIZE=90 ,SCR_YSIZE=25 $
,/ALIGN_CENTER ,VALUE='Cancel')


WID_BUTTON_1 = Widget_Button(sp_BASE_1, UNAME='WID_BUTTON_1' $
,XOFFSET=170 ,YOFFSET=330 ,SCR_XSIZE=90 ,SCR_YSIZE=25 $
,/ALIGN_CENTER ,VALUE='Done')


WID_BASE_NXI = Widget_Base(sp_BASE_1, $
UNAME='WID_BASE_NXI' ,XOFFSET=78 ,YOFFSET=96 $
,SCR_XSIZE=170 ,SCR_YSIZE=25 $
,TITLE='IDL' ,SPACE=3 ,XPAD=3 ,YPAD=3)

WID_NXI=CW_FIELD(WID_BASE_NXI,$
UNAME='WID_NXI',$
/LONG,$
TITLE=' ',$
/RETURN_EVENTS,$
XSIZE=8,$
VALUE=spMinSettingsExt.nxi)


WID_BASE_NYI = Widget_Base(sp_BASE_1, $
UNAME='WID_BASE_NYI' ,XOFFSET=78 ,YOFFSET=126 $
,SCR_XSIZE=170 ,SCR_YSIZE=25 $
,TITLE='IDL' ,SPACE=3 ,XPAD=3 ,YPAD=3)

WID_NYI=CW_FIELD(WID_BASE_NYI,$
UNAME='WID_NYI',$
/LONG,$
TITLE=' ',$
/RETURN_EVENTS,$
XSIZE=8,$
VALUE=spMinSettingsExt.nyi)


WID_BASE_NZI = Widget_Base(sp_BASE_1, UNAME='WID_BASE_NZI' $
,XOFFSET=78 ,YOFFSET=156 ,SCR_XSIZE=170 ,SCR_YSIZE=25 $
,TITLE='IDL' ,SPACE=3 ,XPAD=3 $
,YPAD=3)

WID_NZI=CW_FIELD(WID_BASE_NZI,$
UNAME='WID_NZI',$
/LONG,$
TITLE=' ',$
/RETURN_EVENTS,$
XSIZE=8,$
VALUE=spMinSettingsExt.nzi)


WID_BASE_CX_MIN = Widget_Base(sp_BASE_1, UNAME='WID_BASE_CX_MIN' $
,XOFFSET=78 ,YOFFSET=230 ,SCR_XSIZE=90 ,SCR_YSIZE=25 $
,TITLE='IDL' ,SPACE=3 ,XPAD=3 ,YPAD=3)

WID_CX_MIN=CW_FIELD(WID_BASE_CX_MIN,$
UNAME='WID_CX_MIN',$
/FLOATING,$
TITLE=' ',$
/RETURN_EVENTS,$
XSIZE=8,$
VALUE=spMinSettingsExt.ci[0,0])


WID_BASE_CX_MAX = Widget_Base(sp_BASE_1, UNAME='WID_BASE_CX_MAX' $
,XOFFSET=178 ,YOFFSET=230 ,SCR_XSIZE=170 ,SCR_YSIZE=25 $
,EVENT_FUNC='set_CX_max' ,TITLE='IDL' ,SPACE=3 ,XPAD=3 ,YPAD=3)

WID_CX_MAX=CW_FIELD(WID_BASE_CX_MAX,$
UNAME='WID_CX_MAX',$
/FLOATING,$
TITLE=' ',$
/RETURN_EVENTS,$
XSIZE=8,$
VALUE=spMinSettingsExt.ci[1,0])


WID_BASE_CY_MIN = Widget_Base(sp_BASE_1, UNAME='WID_BASE_CY_MIN' $
,XOFFSET=78 ,YOFFSET=260 ,SCR_XSIZE=90 ,SCR_YSIZE=25 $
,TITLE='IDL' ,SPACE=3 ,XPAD=3 ,YPAD=3)

WID_CY_MIN=CW_FIELD(WID_BASE_CY_MIN,$
UNAME='WID_CY_MIN',$
/FLOATING,$
TITLE=' ',$
/RETURN_EVENTS,$
XSIZE=8,$
VALUE=spMinSettingsExt.ci[0,1])


WID_BASE_CY_MAX = Widget_Base(sp_BASE_1, UNAME='WID_BASE_CY_MAX' $
,XOFFSET=178 ,YOFFSET=260 ,SCR_XSIZE=170 ,SCR_YSIZE=25 $
,TITLE='IDL' ,SPACE=3 ,XPAD=3 ,YPAD=3)

WID_CY_MAX=CW_FIELD(WID_BASE_CY_MAX,$
UNAME='WID_CY_MAX',$
/FLOATING,$
TITLE=' ',$
/RETURN_EVENTS,$
XSIZE=8,$
VALUE=spMinSettingsExt.ci[1,1])


WID_BASE_CZ_MIN = Widget_Base(sp_BASE_1, UNAME='WID_BASE_CZ_MIN' $
,XOFFSET=78 ,YOFFSET=290 ,SCR_XSIZE=90 ,SCR_YSIZE=25 $
,TITLE='IDL' ,SPACE=3 ,XPAD=3 ,YPAD=3)

WID_CZ_MIN=CW_FIELD(WID_BASE_CZ_MIN,$
UNAME='WID_CZ_MIN',$
/FLOATING,$
TITLE=' ',$
/RETURN_EVENTS,$
XSIZE=8,$
VALUE=spMinSettingsExt.ci[0,2])


WID_BASE_CZ_MAX = Widget_Base(sp_BASE_1, UNAME='WID_BASE_CZ_MAX' $
,XOFFSET=178 ,YOFFSET=290 ,SCR_XSIZE=170 ,SCR_YSIZE=25 $
,TITLE='IDL' ,SPACE=3 ,XPAD=3 ,YPAD=3)

WID_CZ_MAX=CW_FIELD(WID_BASE_CZ_MAX,$
UNAME='WID_CZ_MAX',$
/FLOATING,$
TITLE=' ',$
/RETURN_EVENTS,$
XSIZE=8,$
VALUE=spMinSettingsExt.ci[1,2])

Widget_Control, /REALIZE, sp_BASE_1

spMinSettings=spMinSettingsExt
cancel=0
done=0

; Manage the widget tree until dismissed
XManager, 'sp_BASE_1', sp_BASE_1


doneExt=done
cancelExt=cancel

if done EQ 1 then begin
spMinSettingsExt.nxi=spMinSettings.nxi
spMinSettingsExt.nyi=spMinSettings.nyi
spMinSettingsExt.nzi=spMinSettings.nzi
spMinSettingsExt.ci=spMinSettings.ci
endif

end
;
; Empty stub procedure used for autoloading.
;
pro sp_settings, spMinSettings, done, cancel, GROUP_LEADER=wGroup,
_EXTRA=_VWBExtra_
sp_BASE_1, spMinSettings, done, cancel, GROUP_LEADER=wGroup,
_EXTRA=_VWBExtra_
end

-----------------------end code---------------------------

On Thu, 11 May 2000, David Fanning wrote:

> D. Mattes (dmattes@u.washington.edu) writes:
>
>> IDL gurus! i have a strange one for you, and i hope you can help. i
>> created a widget that can runs as a modal widget if a group is
>> specified. this widget has some CW_FIELD widgets contained in it, no big
>> deal, right? well, i get some strange behaviors...
>>
>> on WINDOWS platform:
>> no strange effects, nice.
>>
>> on UNIX platform:
>> if the widget is managed in modal mode (by setting the /MODAL keyword for
>> the top level base), none of the CW_FIELD widgets appear!!! yet, if the
>> widget is not run as a modal widget, the CW_FIELD widgets *ARE* there!
>>
>> any insights into this problem? specifically, a way around it would be to
>> not use the /MODAL keyword for the top level base, but i need the modal
>> effect. is there another way to achieve this, say with xmanager?
>
> Henk, pay attention. *This* is what is known as a
> "red herring". :-)
>
> Cheers,
>
> David
>
> P.S. Just to amuse me, could you try substituting my
> COYOTE_FIELD compound widget for your CW_FIELD compound
> widget. It should be a drop-in replacement, pretty much.
> But we are *really* going to have to see some code, because
> my modal widgets are filled with CW_FIELDs (or their
> equivalents) and I've never heard of this. :-)
>
> http://www.dfanning.com/programs/coyote_field.pro
>
> --
> David Fanning, Ph.D.
> Fanning Software Consulting
> Phone: 970-221-0438 E-Mail: davidf@dfanning.com
> Coyote's Guide to IDL Programming: http://www.dfanning.com/
> Toll-Free IDL Book Orders: 1-888-461-0155
>
Re: /MODAL makes widgets disappear [message #20031 is a reply to message #20010] Thu, 11 May 2000 00:00 Go to previous message
davidf is currently offline  davidf
Messages: 2866
Registered: September 1996
Senior Member
D. Mattes (dmattes@u.washington.edu) writes:

> IDL gurus! i have a strange one for you, and i hope you can help. i
> created a widget that can runs as a modal widget if a group is
> specified. this widget has some CW_FIELD widgets contained in it, no big
> deal, right? well, i get some strange behaviors...
>
> on WINDOWS platform:
> no strange effects, nice.
>
> on UNIX platform:
> if the widget is managed in modal mode (by setting the /MODAL keyword for
> the top level base), none of the CW_FIELD widgets appear!!! yet, if the
> widget is not run as a modal widget, the CW_FIELD widgets *ARE* there!
>
> any insights into this problem? specifically, a way around it would be to
> not use the /MODAL keyword for the top level base, but i need the modal
> effect. is there another way to achieve this, say with xmanager?

Henk, pay attention. *This* is what is known as a
"red herring". :-)

Cheers,

David

P.S. Just to amuse me, could you try substituting my
COYOTE_FIELD compound widget for your CW_FIELD compound
widget. It should be a drop-in replacement, pretty much.
But we are *really* going to have to see some code, because
my modal widgets are filled with CW_FIELDs (or their
equivalents) and I've never heard of this. :-)

http://www.dfanning.com/programs/coyote_field.pro

--
David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: help on IDL
Next Topic: Max memory on IRIX?

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

Current Time: Wed Oct 08 13:41:57 PDT 2025

Total time taken to generate the page: 0.00602 seconds