--- rpl/modules/motif/example.rpl 2017/07/10 14:47:59 1.3 +++ rpl/modules/motif/example.rpl 2019/11/14 18:54:47 1.13 @@ -1,4 +1,4 @@ -#!/home/bertrand/cvs/build/src/rpl -spdc +#!/usr/local/bin/rpl -spdc MOTIF << @@ -6,10 +6,12 @@ MOTIF -> MOTIF << APPLICATION + + // POPUP is a motif$widget that has to be purged before + // library is unloaded. + 'POPUP' purge MOTIF remove >> - - clmf >> @@ -17,7 +19,7 @@ APPLICATION << "none" implicit - "Test application" XtAppInitialize + "RPL/2" XtAppInitialize -> XT_APP TOPLEVEL_WIDGET << 0 0 0 0 0 0 0 @@ -27,7 +29,7 @@ APPLICATION "toplevel" "xmFormWidgetClass" TOPLEVEL_WIDGET { { "XmNresizeWidth" XmTrue } { "XmNresizeHeight" XmTrue } } - XtCreateWidget 'MAIN_WIDGET' sto + XtCreateManagedWidget 'MAIN_WIDGET' sto "frame_1" "xmFrameWidgetClass" MAIN_WIDGET { { "XmNtopAttachment" XmATTACH_FORM } @@ -40,15 +42,15 @@ APPLICATION { "XmNbottomOffset" 5 } { "XmNmarginWidth" 5 } { "XmNmarginHeight" 5 } } - XtCreateWidget 'FRAME_1' sto + XtCreateManagedWidget 'FRAME_1' sto "form_1" "xmFormWidgetClass" FRAME_1 - { } XtCreateWidget 'FORM_1' sto + { } XtCreateManagedWidget 'FORM_1' sto "label_1" "xmLabelWidgetClass" FORM_1 { { "XmNlabelString" "Hello, world !" } { "XmNlabelType" XmSTRING } } - XtCreateWidget 'LABEL_1' sto + XtCreateManagedWidget 'LABEL_1' sto "separateur_1" "xmSeparatorWidgetClass" FORM_1 { { "XmNorientation" XmHORIZONTAL } @@ -57,7 +59,7 @@ APPLICATION { "XmNleftAttachment" XmATTACH_FORM } { "XmNrightAttachment" XmATTACH_FORM } { "XmNtopOffset" 2 } } - XtCreateWidget 'SEP_1' sto + XtCreateManagedWidget 'SEP_1' sto "bouton_1" "xmPushButtonWidgetClass" FORM_1 { { "XmNtopWidget" SEP_1 } @@ -65,7 +67,7 @@ APPLICATION { "XmNtopOffset" 2 } { "XmNlabelString" "Quitter" } { "XmNlabelType" XmSTRING } } - XtCreateWidget 'BOUTON_1' sto + XtCreateManagedWidget 'BOUTON_1' sto "bouton_2" "xmPushButtonWidgetClass" FORM_1 { { "XmNleftWidget" BOUTON_1 } @@ -75,23 +77,22 @@ APPLICATION { "XmNtopOffset" 2 } { "XmNlabelString" " Popup " } { "XmNlabelType" XmSTRING } } - XtCreateWidget 'BOUTON_2' sto + XtCreateManagedWidget 'BOUTON_2' sto - /* - BOUTON_1 "XmNactivateCallback" << motif$XtAppExitMainLoop >> - XtAddCallback + BOUTON_1 "XmNactivateCallback" + << motif$XtAppExitMainLoop >> + XtAddCallback drop BOUTON_2 "XmNactivateCallback" 'F_POPUP' - XtAddCallback - */ + XtAddCallback drop - "popup" "applicationShellWidgetClass" TOPLEVEL_WIDGET + "Popup" "applicationShellWidgetClass" TOPLEVEL_WIDGET XtCreatePopupShell dup 'POPUP' save "popup_Form_1" "xmFormWidgetClass" rot { { "XmNresizeWidth" XmTrue } { "XmNresizeHeight" XmTrue } } - XtCreateWidget + XtCreateManagedWidget "popup_Frame_1" "xmFrameWidgetClass" rot { { "XmNtopAttachment" XmATTACH_FORM } @@ -104,10 +105,10 @@ APPLICATION { "XmNbottomOffset" 5 } { "XmNmarginWidth" 5 } { "XmNmarginHeight" 5 } } - XtCreateWidget + XtCreateManagedWidget "popup_Form_2" "xmFormWidgetClass" rot - { } XtCreateWidget + { } XtCreateManagedWidget "popup_bouton" "xmPushButtonWidgetClass" rot { { "XmNlabelString" "Quitter" } @@ -116,17 +117,31 @@ APPLICATION { "XmNleftAttachment" XmATTACH_FORM } { "XmNrightAttachment" XmATTACH_FORM } { "XmNlabelType" XmSTRING } } - XtCreateWidget + XtCreateManagedWidget - /* - "XmNactivateCallback" 'POPUP_QUIT' motif$XtAddCallback - */ + "XmNactivateCallback" 'POPUP_QUIT' XtAddCallback drop TOPLEVEL_WIDGET XtRealizeWidget + TOPLEVEL_WIDGET "rplIcon.xpm" XmSetIcon +// TOPLEVEL_WIDGET "RPL/2" XStoreName - "Boucle Xm" disp - + "Début de la boucle Xt" disp XT_APP XtAppMainLoop + "Fin de la Boucle Xt" disp >> >> >> + +F_POPUP +<< + "XtPopup callback" disp + POPUP XtGrabExclusive XtPopup + "XtPopup callback returns" disp +>> + +POPUP_QUIT +<< + "XtPopdown callback" disp + POPUP XtPopdown + "XtPopdown callback returns" disp +>>