ashley@cheops.eecs.unsw.oz (Ashley M. Aitken) (03/01/90)
Howdy, Simple problem (which I am finding frustratingly difficult) with Dialog. I have an icon in a popup (which pops up over a GMR display area). I want the icon to cause a change_view routine (associated with the change_view_task) to be called, BUT only after the popup has popped down. At present the task is associated with the icon and, no matter how I try, I cannot make the routine be called after the popdown. I have tryed various combinations of popdown, selecting this and that, and even a dummy icon which gets selected after the popdown event and would have the task associated with it (but it appears not to be active). The reason I need to do this is because (I am too lazy and) the GMR display area gets changed and saved before the popup pops down, taking with it the image of the popdown. I should probably do my saving and drawing more aptly ut it seems a simple way out to pop the popup down first. Similar things happen with menus which change the view too. Any hints would be most gratefully received on e-mail to the address given below. Thanks In Advance, Ashley Aitken. P.S. What do people think of Dialog? I find it quite powerful, but would give anything for an interactive construction tool for the interface design ie click here for an icon. P.S. How hard is it to change from Dialog to NewDlg (the X Object Oriented Dialog)? Here is some relevant (to my problem) dialog code! (* ** Change View Tasks *) change_view_t := NULL: COMP => <CALL change_view>; END change_scale_t := REAL: VALUE = 50.0; END change_xoff_t := INT: VALUE = 0; END change_yoff_t := INT: VALUE = 0; END (* ** CHANGE VIEW INTERFACE *) change_view_i := ICON_A: STRING = "VIEW"; SELECT => < change_view_popup_i SHOW>; END (* change_view_op_i:= ICON: STRING = "NOT DISPLAYED"; TASK = change_view_t; END *) change_ok_i := ICON_A: STRING = "OK"; SELECT => <change_view_popup_i POPDOWN;>; TASK = change_view_t; [M1] => <>; [M1U] => <* SELECT>; END change_cancel_i := ICON_A: STRING = "CANCEL"; SELECT => <change_view_popup_i POPDOWN>; END change_xoff_i := INT_FIELD_A: TASK = change_xoff_t; PROMPT = "X : "; END change_yoff_i := INT_FIELD_A: TASK = change_yoff_t; PROMPT = "Y : "; END change_scale_i := REAL_FIELD_A: TASK = change_scale_t; PROMPT = "Scale : "; END change_decision_s := ROW_A: CONTENTS = ( change_cancel_i change_ok_i ); DIVISION_WIDTH = 5; BORDER_WIDTH = 5; END change_view_s := COLUMN_A: CONTENTS = ( change_xoff_i change_yoff_i change_scale_i change_decision_s ); COLOR_SET = off; SHAPE = rounded; OUTLINE = ON; DIVISION_WIDTH = 5; BORDER_WIDTH = 5; END change_view_popup_i := POPUP_A: CONTENTS = change_view_s; LEAVE => <change_view_popup_i POPDOWN>; END E-MAIL ashley@cheops.eecs.unsw.oz ACSnet ashley%cheops.eecs.unsw.oz@uunet.uu.net ARPAnet ashley@cheops.eecs.unsw.oz.au ARPAnet {uunet,ukc,ubc-vision,mcvax}!munnari!cheops.eecs.unsw.oz!ashley UUCP ashley%cheops.eecs.unsw.oz@australia CSnet ashley%cheops.eecs.unsw.oz@uk.ac.ukc JAnet POSTAL Academic Address: Residential Address: Computer Science Department, EECS, c/o Basser College, University of New South Wales, The Kensington Colleges, Box 1,PO KENSINGTON,N.S.W.,2033, Box 24,PO KENSINGTON,3033. AUSTRALIA. AUSTRALIA. Ph. (02) 697-4055 Fx. (02) 662-2087 Ph. Aust (02) 663-8117