remove OSF1 support
[oweals/cde.git] / cde / programs / dtinfo / dtinfo / wwl / include / WWL / WXmMenu.h
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
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)
10  * any later version.
11  *
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
16  * details.
17  *
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
22  */
23 /* $XConsortium: WXmMenu.h /main/3 1996/06/11 17:01:03 cde-hal $ */
24 #ifndef WXmMenu_h
25 #define WXmMenu_h
26
27 #include "WXmRowColumn.h"
28 #include "WXmCascadeButton.h"
29 #include "WXmCascadeButtonGadget.h"
30 #include "WXmPushButtonGadget.h"
31 #include "WXmLabelGadget.h"
32
33 class WXmPopupMenu : public WXmRowColumn {
34
35 public :
36
37    WXmPopupMenu()
38      { }
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 */,
43                  WArgList args);
44    ~WXmPopupMenu () {}
45
46    WXmPushButtonGadget
47       AddPushButton (char* name, XtCallbackProc proc = (XtCallbackProc)NULL,
48                      caddr_t closure = NULL, ArgList args = NULL,
49                      Cardinal card = 0);
50
51    WXmPushButtonGadget
52       AddPushButton (char* name, WWL*, WWL_FUN, ArgList args = NULL,
53                      Cardinal card = 0);
54
55    inline void  MenuPosition(XButtonPressedEvent *event) {
56       XmMenuPosition(widget, event);
57    }
58    inline void Popup (XButtonPressedEvent *event)
59      { MenuPosition (event); Manage(); }
60    inline void Popup()
61      { Manage(); }
62    inline void Popdown()
63      { Unmanage(); }
64 };
65
66 class WXmPulldownMenu : public WXmRowColumn {
67
68 public :
69
70    WXmPulldownMenu (WComposite& father, char* name, ArgList args = NULL,
71                     Cardinal card = 0)
72    : WXmRowColumn (XmCreatePulldownMenu(Widget(father), name, args, card)) {}
73
74    WXmPulldownMenu (WComposite& father, char* name, WArgList args)
75    : WXmRowColumn (XmCreatePulldownMenu (Widget(father), name, args.Args(),
76                                          args.NumArgs())) {}
77
78    WXmPulldownMenu (WComposite& father, char* name, int /* automanage */,
79                     WArgList args)
80    : WXmRowColumn (XmCreatePulldownMenu (Widget(father), name, args.Args(),
81                                          args.NumArgs()))
82      { Manage(); }
83
84    WXmPushButtonGadget
85       AddPushButton (char* name, XtCallbackProc proc = (XtCallbackProc)NULL,
86                      caddr_t closure = NULL, ArgList args = NULL,
87                      Cardinal card = 0);
88
89    WXmPushButtonGadget
90       AddPushButton (char* name, WWL*, WWL_FUN, ArgList args = NULL,
91                      Cardinal card = 0);
92 };
93
94 class WXmOptionMenu : public WXmRowColumn {
95
96 public :
97    WXmOptionMenu()
98      { }
99
100    WXmOptionMenu (WComposite& father, char* name);
101
102    WXmOptionMenu (WComposite& father, char* name, ArgList args,
103                   Cardinal card)
104    : WXmRowColumn (XmCreateOptionMenu(Widget(father), name, args, card)){}
105
106    WXmOptionMenu (WComposite& father, char* name, int /* automanage */,
107                   ArgList args = NULL, Cardinal card = 0)
108    : WXmRowColumn (XmCreateOptionMenu(Widget(father), name, args, card))
109      { Manage(); }
110
111    WXmOptionMenu (WComposite& father, char* name, int /* automanage */,
112                   WArgList args)
113    : WXmRowColumn (XmCreateOptionMenu (Widget(father), name, args.Args(),
114                                        args.NumArgs()))
115      { Manage(); }
116
117    WXmPushButtonGadget
118       AddPushButton (char* name, XtCallbackProc proc = (XtCallbackProc)NULL,
119                      caddr_t closure = NULL, ArgList args = NULL,
120                      Cardinal card = 0);
121
122    WXmPushButtonGadget
123       AddPushButton (char* name, WWL*, WWL_FUN, ArgList args = NULL,
124                      Cardinal card = 0);
125
126    WXmCascadeButtonGadget
127       OptionButtonGadget (void);
128
129    WXmLabelGadget
130       OptionLabelGadget (void);
131
132 };
133
134 class WXmMenuBar : public WXmRowColumn {
135
136 public :
137
138    WXmMenuBar (WComposite& father, char* name = NULL, ArgList args = NULL,
139                Cardinal card = 0)
140    : WXmRowColumn (XmCreateMenuBar (Widget(father), name, args, card)) {}
141
142    WXmMenuBar (WComposite& father, char* name, int /* automanage */,
143                ArgList args = NULL, Cardinal card = 0)
144    : WXmRowColumn (XmCreateMenuBar (Widget(father), name, args, card))
145      { Manage(); }
146
147    WXmMenuBar (WComposite& father, char* name, int /* automanage */,
148                WArgList args)
149    : WXmRowColumn (XmCreateMenuBar (Widget(father), name, args.Args(),
150                                     args.NumArgs()))
151      { Manage(); }
152
153    WXmCascadeButton
154       AddCascadeButton (char* name, char mnemonic=0);
155
156    inline WXmCascadeButton
157       AddCascadeMenu (char* name, char mnemonic, WXmPulldownMenu& menu) {
158          WXmCascadeButton cb(AddCascadeButton(name, mnemonic));
159          cb.SubMenuId(menu);
160          return cb;
161    }
162
163    inline WXmCascadeButton
164       AddCascadeMenu (char* name, WXmPulldownMenu& menu) {
165          WXmCascadeButton cb(AddCascadeButton(name));
166          cb.SubMenuId(menu);
167          return cb;
168    }
169 };
170
171 #endif