1
//------------------------------------------------------------------------------
3
// This file is part of Toolkit for Conceptual Modeling (TCM).
4
// (c) copyright 1997, Vrije Universiteit Amsterdam.
5
// Author: Frank Dehne (frank@cs.vu.nl).
7
// TCM is free software; you can redistribute it and/or modify
8
// it under the terms of the GNU General Public License as published by
9
// the Free Software Foundation; either version 2 of the License, or
10
// (at your option) any later version.
12
// TCM is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
// GNU General Public License for more details.
17
// You should have received a copy of the GNU General Public License
18
// along with TCM; if not, write to the Free Software
19
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
21
//-----------------------------------------------------------------------------
28
/// Class for menu manipulation.
29
class Menu: public MWidget {
30
/*@Doc: {\large {\bf scope:} GUI} */
33
enum MenuType {PULLDOWN, POPUP, OPTION};
36
Menu(Widget parent, MenuType menuType, const char *name,
37
char mnemonic, MenuItem *items);
40
const char *GetClassName() { return "Menu";}
43
Widget GetNthMenuItem(int n);
45
Widget GetMenuItem(const char *label);
48
static Widget GetChild(Widget menu, MenuType type, const char *label);
50
static Widget GetNthChild(Widget menu, MenuType type, int n);
52
static void SetChildToggleState(
53
Widget menu, MenuType type, const char *label,
54
bool state, bool notify=False);
56
static void SetNthChildToggleState(
57
Widget menu, MenuType type, int n,
58
bool state, bool notify=False);
60
static void SetChildSensitive(
61
Widget menu, MenuType type, const char *label, bool state);
63
static void SetNthChildSensitive(
64
Widget menu, MenuType type, int n, bool state);
69
Widget BuildMenu(Widget parent, MenuType type, const char *label,
70
char mnem, MenuItem *items);