summaryrefslogtreecommitdiff
path: root/examples/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/menu.c')
-rw-r--r--examples/menu.c62
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);
+}