/**************************************************************** Uebungen zur Vorlesung "Graphische Datenverarbeitung" Sommersemester 1996 Programm: popup.c Autor: Christian Boehm ****************************************************************/ # include # include Widget popupShell, loginWidget, pwdWidget ; void halloCB (Widget dum1, XtPointer dum2, XtPointer dum3) { static int count = 0 ; printf ("%3d. Hallo\n", ++count) ; XtPopup (popupShell, XtGrabNone) ; } void okCB (Widget dum1, XtPointer dum2, XtPointer dum3) { printf ("Popup - Ende\n") ; printf ("Login: %s\n", XmTextGetString (loginWidget) ) ; printf ("Passwd: %s\n", XmTextGetString (pwdWidget) ) ; XtPopdown (popupShell) ; } void exitCB (Widget dum1, XtPointer dum2, XtPointer dum3) { exit (0) ; } void InitWidgetBaum (Widget applShell) { Widget box, box2, exitBt, halloBt, popup_box, okBt ; box = XtCreateManagedWidget ("box", xmRowColumnWidgetClass, applShell, (Arg*)NULL, 0); XtCreateManagedWidget ("titel", xmLabelWidgetClass, box, (Arg*)NULL, 0); box2 = XtCreateManagedWidget ("box2", xmRowColumnWidgetClass, box, (Arg*)NULL, 0) ; halloBt = XtCreateManagedWidget ("hallo", xmPushButtonWidgetClass, box2, (Arg*)NULL, 0); exitBt = XtCreateManagedWidget ("exit", xmPushButtonWidgetClass, box2, (Arg*)NULL, 0); XtAddCallback (halloBt, XmNactivateCallback, halloCB, (XtPointer)NULL); XtAddCallback (exitBt, XmNactivateCallback, exitCB, (XtPointer)NULL); popupShell = XtCreatePopupShell ("popupShell", transientShellWidgetClass, applShell, (Arg*)NULL, 0); popup_box = XtCreateManagedWidget ("popup_box", xmRowColumnWidgetClass, popupShell, (Arg*)NULL, 0); XtCreateManagedWidget ("Kennung", xmLabelWidgetClass, popup_box, (Arg*)NULL, 0); loginWidget = XtCreateManagedWidget ("kennungfld", xmTextFieldWidgetClass, popup_box, (Arg*)NULL, 0); XtCreateManagedWidget ("Passwort", xmLabelWidgetClass, popup_box, (Arg*)NULL, 0); pwdWidget = XtCreateManagedWidget ("passwortfield", xmTextFieldWidgetClass, popup_box, (Arg*)NULL, 0); okBt = XtCreateManagedWidget ("OK", xmPushButtonWidgetClass, popup_box, (Arg*)NULL, 0); XtAddCallback (okBt, XmNactivateCallback, okCB, (XtPointer)NULL); } static char * fallbackRessourcen [] = { "*titel.labelString: Titelzeile", "*hallo.labelString: Hallo !", "*box2.orientation: horizontal", NULL } ; main (int argc, char ** argv) { XtAppContext kontext; /* Applikations-Umgebung */ Widget applShell; /* Applikations-Shell */ applShell = XtAppInitialize (&kontext, "Hallo", (XrmOptionDescRec*)NULL, 0, &argc, argv, fallbackRessourcen, (Arg*)NULL, 0); InitWidgetBaum (applShell); XtRealizeWidget (applShell); XtRealizeWidget (popupShell) ; XtAppMainLoop (kontext); }