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 librararies 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: MainWindow.h /main/3 1995/11/06 09:42:47 rswiston $ */
25 * (c) Copyright 1993, 1994 Hewlett-Packard Company *
26 * (c) Copyright 1993, 1994 International Business Machines Corp. *
27 * (c) Copyright 1993, 1994 Sun Microsystems, Inc. *
28 * (c) Copyright 1993, 1994 Novell, Inc. *
36 class PopupMenuContainer;
39 class MainWindow : public MotifUI {
41 friend void KeyboardPopupMenu(Widget, XEvent *, String *, Cardinal *);
42 friend void PopupMenu(Widget, XtPointer, XEvent *, Boolean *);
46 static XtActionsRec actions[];
47 static void KeyboardPopupMenu(Widget, XEvent *, String *, Cardinal *);
48 static void PopupMenu(Widget, XtPointer, XEvent *, Boolean *);
50 void PostMenu(MotifUI *, XEvent *);
51 PopupMenuContainer *popups;
57 // Derived classes must define Initialize
58 virtual void Initialize() = 0;
60 void CreateMainWindow(MotifUI *parent, char *name, char *widgetName,
61 char *icon, char *icon_name);
65 MainWindow(MotifUI *parent,
69 char *icon_name = NULL);
71 MainWindow(char *category,
76 char *icon_name = NULL);
77 virtual ~MainWindow();
79 void IconFile(char *icon);
80 void IconName(char *icon_name);
81 char *IconFile() { return icon; }
82 char *IconName() { return icon_name; }
84 Button *AddAction(char *name, char *category, ButtonCallback callback,
85 void *callback_data, char *mnemonic = NULL,
86 char *acceleratorText = NULL, char *accelerator = NULL);
87 void RegisterPopup(MotifUI *object);
88 void AddSep(char *category);
90 void SetWorkWindow(MotifUI *obj);
93 int PopupObjectUniqueID;
95 const UI_Class UIClass() { return MAIN_WINDOW; }
96 const char *const UIClassName() { return "MainWindow"; }
100 #endif /* MAINWINDOW_H */