2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these libraries and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: WXmMenu.h /main/3 1996/06/11 17:01:03 cde-hal $ */
27 #include "WXmRowColumn.h"
28 #include "WXmCascadeButton.h"
29 #include "WXmCascadeButtonGadget.h"
30 #include "WXmPushButtonGadget.h"
31 #include "WXmLabelGadget.h"
33 class WXmPopupMenu : public WXmRowColumn {
39 WXmPopupMenu (WComposite& father, char* name = NULL,
40 ArgList args = NULL, Cardinal card = 0);
41 WXmPopupMenu (WComposite& father, char* name, WArgList args);
42 WXmPopupMenu (WComposite& father, char* name, int /* automanage */,
47 AddPushButton (char* name, XtCallbackProc proc = (XtCallbackProc)NULL,
48 caddr_t closure = NULL, ArgList args = NULL,
52 AddPushButton (char* name, WWL*, WWL_FUN, ArgList args = NULL,
55 inline void MenuPosition(XButtonPressedEvent *event) {
56 XmMenuPosition(widget, event);
58 inline void Popup (XButtonPressedEvent *event)
59 { MenuPosition (event); Manage(); }
66 class WXmPulldownMenu : public WXmRowColumn {
70 WXmPulldownMenu (WComposite& father, char* name, ArgList args = NULL,
72 : WXmRowColumn (XmCreatePulldownMenu(Widget(father), name, args, card)) {}
74 WXmPulldownMenu (WComposite& father, char* name, WArgList args)
75 : WXmRowColumn (XmCreatePulldownMenu (Widget(father), name, args.Args(),
78 WXmPulldownMenu (WComposite& father, char* name, int /* automanage */,
80 : WXmRowColumn (XmCreatePulldownMenu (Widget(father), name, args.Args(),
85 AddPushButton (char* name, XtCallbackProc proc = (XtCallbackProc)NULL,
86 caddr_t closure = NULL, ArgList args = NULL,
90 AddPushButton (char* name, WWL*, WWL_FUN, ArgList args = NULL,
94 class WXmOptionMenu : public WXmRowColumn {
100 WXmOptionMenu (WComposite& father, char* name);
102 WXmOptionMenu (WComposite& father, char* name, ArgList args,
104 : WXmRowColumn (XmCreateOptionMenu(Widget(father), name, args, card)){}
106 WXmOptionMenu (WComposite& father, char* name, int /* automanage */,
107 ArgList args = NULL, Cardinal card = 0)
108 : WXmRowColumn (XmCreateOptionMenu(Widget(father), name, args, card))
111 WXmOptionMenu (WComposite& father, char* name, int /* automanage */,
113 : WXmRowColumn (XmCreateOptionMenu (Widget(father), name, args.Args(),
118 AddPushButton (char* name, XtCallbackProc proc = (XtCallbackProc)NULL,
119 caddr_t closure = NULL, ArgList args = NULL,
123 AddPushButton (char* name, WWL*, WWL_FUN, ArgList args = NULL,
126 WXmCascadeButtonGadget
127 OptionButtonGadget (void);
130 OptionLabelGadget (void);
134 class WXmMenuBar : public WXmRowColumn {
138 WXmMenuBar (WComposite& father, char* name = NULL, ArgList args = NULL,
140 : WXmRowColumn (XmCreateMenuBar (Widget(father), name, args, card)) {}
142 WXmMenuBar (WComposite& father, char* name, int /* automanage */,
143 ArgList args = NULL, Cardinal card = 0)
144 : WXmRowColumn (XmCreateMenuBar (Widget(father), name, args, card))
147 WXmMenuBar (WComposite& father, char* name, int /* automanage */,
149 : WXmRowColumn (XmCreateMenuBar (Widget(father), name, args.Args(),
154 AddCascadeButton (char* name, char mnemonic=0);
156 inline WXmCascadeButton
157 AddCascadeMenu (char* name, char mnemonic, WXmPulldownMenu& menu) {
158 WXmCascadeButton cb(AddCascadeButton(name, mnemonic));
163 inline WXmCascadeButton
164 AddCascadeMenu (char* name, WXmPulldownMenu& menu) {
165 WXmCascadeButton cb(AddCascadeButton(name));