--- rpl/modules/motif/example.rpl 2017/07/04 12:32:03 1.1 +++ rpl/modules/motif/example.rpl 2017/08/22 11:37:31 1.10 @@ -0,0 +1,146 @@ +#!/home/bertrand/cvs/build/src/rpl -spdc + +MOTIF +<< + "motif.rplso" use + -> MOTIF + << + APPLICATION + + // POPUP is a motif$widget that has to be purged before + // library is unloaded. + 'POPUP' purge + MOTIF remove + >> +>> + + +APPLICATION +<< + "none" implicit + + "Test application" XtAppInitialize + -> XT_APP TOPLEVEL_WIDGET + << + 0 0 0 0 0 0 0 + -> MAIN_WIDGET FRAME_1 FORM_1 LABEL_1 SEP_1 BOUTON_1 BOUTON_2 + << + + "toplevel" "xmFormWidgetClass" TOPLEVEL_WIDGET + { { "XmNresizeWidth" XmTrue } + { "XmNresizeHeight" XmTrue } } + XtCreateManagedWidget 'MAIN_WIDGET' sto + + "frame_1" "xmFrameWidgetClass" MAIN_WIDGET + { { "XmNtopAttachment" XmATTACH_FORM } + { "XmNbottomAttachment" XmATTACH_FORM } + { "XmNleftAttachment" XmATTACH_FORM } + { "XmNrightAttachment" XmATTACH_FORM } + { "XmNtopOffset" 5 } + { "XmNleftOffset" 5 } + { "XmNrightOffset" 5 } + { "XmNbottomOffset" 5 } + { "XmNmarginWidth" 5 } + { "XmNmarginHeight" 5 } } + XtCreateManagedWidget 'FRAME_1' sto + + "form_1" "xmFormWidgetClass" FRAME_1 + { } XtCreateManagedWidget 'FORM_1' sto + + "label_1" "xmLabelWidgetClass" FORM_1 + { { "XmNlabelString" "Hello, world !" } + { "XmNlabelType" XmSTRING } } + XtCreateManagedWidget 'LABEL_1' sto + + "separateur_1" "xmSeparatorWidgetClass" FORM_1 + { { "XmNorientation" XmHORIZONTAL } + { "XmNtopAttachment" XmATTACH_WIDGET } + { "XmNtopWidget" LABEL_1 } + { "XmNleftAttachment" XmATTACH_FORM } + { "XmNrightAttachment" XmATTACH_FORM } + { "XmNtopOffset" 2 } } + XtCreateManagedWidget 'SEP_1' sto + + "bouton_1" "xmPushButtonWidgetClass" FORM_1 + { { "XmNtopWidget" SEP_1 } + { "XmNtopAttachment" XmATTACH_WIDGET } + { "XmNtopOffset" 2 } + { "XmNlabelString" "Quitter" } + { "XmNlabelType" XmSTRING } } + XtCreateManagedWidget 'BOUTON_1' sto + + "bouton_2" "xmPushButtonWidgetClass" FORM_1 + { { "XmNleftWidget" BOUTON_1 } + { "XmNtopWidget" SEP_1 } + { "XmNleftAttachment" XmATTACH_WIDGET } + { "XmNtopAttachment" XmATTACH_WIDGET } + { "XmNtopOffset" 2 } + { "XmNlabelString" " Popup " } + { "XmNlabelType" XmSTRING } } + XtCreateManagedWidget 'BOUTON_2' sto + + BOUTON_1 "XmNactivateCallback" + << motif$XtAppExitMainLoop >> + XtAddCallback drop + + BOUTON_2 "XmNactivateCallback" 'F_POPUP' + XtAddCallback drop + + "Popup" "applicationShellWidgetClass" TOPLEVEL_WIDGET + XtCreatePopupShell dup 'POPUP' save + + "popup_Form_1" "xmFormWidgetClass" rot + { { "XmNresizeWidth" XmTrue } + { "XmNresizeHeight" XmTrue } } + XtCreateManagedWidget + + "popup_Frame_1" "xmFrameWidgetClass" rot + { { "XmNtopAttachment" XmATTACH_FORM } + { "XmNbottomAttachment" XmATTACH_FORM } + { "XmNleftAttachment" XmATTACH_FORM } + { "XmNrightAttachment" XmATTACH_FORM } + { "XmNtopOffset" 5 } + { "XmNleftOffset" 5 } + { "XmNrightOffset" 5 } + { "XmNbottomOffset" 5 } + { "XmNmarginWidth" 5 } + { "XmNmarginHeight" 5 } } + XtCreateManagedWidget + + "popup_Form_2" "xmFormWidgetClass" rot + { } XtCreateManagedWidget + + "popup_bouton" "xmPushButtonWidgetClass" rot + { { "XmNlabelString" "Quitter" } + { "XmNtopAttachment" XmATTACH_FORM } + { "XmNbottomAttachment" XmATTACH_FORM } + { "XmNleftAttachment" XmATTACH_FORM } + { "XmNrightAttachment" XmATTACH_FORM } + { "XmNlabelType" XmSTRING } } + XtCreateManagedWidget + + "XmNactivateCallback" 'POPUP_QUIT' XtAddCallback drop + + TOPLEVEL_WIDGET XtRealizeWidget + TOPLEVEL_WIDGET "RPL/2" XStoreName + + "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 +>>