diff options
author | Walter Harms <wharms@bfs.de> | 2023-05-12 23:03:32 +0200 |
---|---|---|
committer | Walter Harms <wharms@bfs.de> | 2023-05-12 23:03:32 +0200 |
commit | 2f99a415913b6be4ed2955a3e30694c2216aafbd (patch) | |
tree | f7edfa31d631eaa30bd5258d40c1b3902c13239f /examples/menu.c | |
parent | 324358180ddeaae482c5f66bb5647a4918710296 (diff) | |
download | xorg-lib-libXaw-2f99a415913b6be4ed2955a3e30694c2216aafbd.tar.gz |
add examples
provide some examples to support the documentation
Diffstat (limited to 'examples/menu.c')
-rw-r--r-- | examples/menu.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/examples/menu.c b/examples/menu.c new file mode 100644 index 0000000..a9126bf --- /dev/null +++ b/examples/menu.c @@ -0,0 +1,62 @@ +#include <stdlib.h> +#include <stdio.h> +#include <X11/StringDefs.h> +#include <Xaw/Box.h> +#include <Xaw/Command.h> +#include <Xaw/SimpleMenu.h> +#include <Xaw/MenuButton.h> +#include <Xaw/Sme.h> +#include <Xaw/SmeLine.h> +#include <Xaw/SmeBSB.h> + +static void +quit_cb(Widget w, XtPointer client_data, XtPointer call_data) +{ + XtAppSetExitFlag(XtWidgetToApplicationContext(w)); +} + +void setupmenu(Widget top) +{ + Widget button, menu; + char buf[256]; + int i; + + button = XtVaCreateManagedWidget("menuButton", menuButtonWidgetClass, top, + NULL); + + menu = XtVaCreatePopupShell("menu", simpleMenuWidgetClass, + button, NULL); + + for (i = 1; i < 6; i++) { + sprintf(buf, "menuEntry%d", i ); + (void) XtVaCreateManagedWidget(buf, smeBSBObjectClass, menu, NULL); + if (i == 2) + (void) XtVaCreateManagedWidget("menuButton", smeLineObjectClass, + menu, NULL); + } + +} + +int main(int argc, char **argv) +{ + Widget toplevel,box,command; + XtAppContext app_con; + toplevel = XtAppInitialize(&app_con, "demo", NULL, 0, + &argc, argv, NULL, + NULL, 0); + + box = XtCreateManagedWidget("box", boxWidgetClass, toplevel, NULL, 0); + + command = XtVaCreateManagedWidget("cmd", + commandWidgetClass, box, + XtNlabel, "EXIT", + NULL); + + XtAddCallback(command, XtNcallback, quit_cb, NULL); + + setupmenu(box); + + XtRealizeWidget(toplevel); + XtAppMainLoop(app_con); + exit(0); +} |