1 /*
2 Copyright (C) 2001-2006, William Joseph.
3 All Rights Reserved.
4 
5 This file is part of GtkRadiant.
6 
7 GtkRadiant 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.
11 
12 GtkRadiant 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.
16 
17 You should have received a copy of the GNU General Public License
18 along with GtkRadiant; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20 */
21 
22 #if !defined(INCLUDED_GTKUTIL_MENU_H)
23 #define INCLUDED_GTKUTIL_MENU_H
24 
25 class Callback;
26 typedef int gint;
27 typedef gint gboolean;
28 typedef struct _GSList GSList;
29 typedef struct _GtkMenu GtkMenu;
30 typedef struct _GtkMenuBar GtkMenuBar;
31 typedef struct _GtkMenuItem GtkMenuItem;
32 typedef struct _GtkCheckMenuItem GtkCheckMenuItem;
33 typedef struct _GtkRadioMenuItem GtkRadioMenuItem;
34 typedef struct _GtkTearoffMenuItem GtkTearoffMenuItem;
35 
36 void menu_add_item(GtkMenu* menu, GtkMenuItem* item);
37 GtkMenuItem* menu_separator(GtkMenu* menu);
38 GtkTearoffMenuItem* menu_tearoff(GtkMenu* menu);
39 GtkMenuItem* new_sub_menu_item_with_mnemonic(const char* mnemonic);
40 GtkMenu* create_sub_menu_with_mnemonic(GtkMenuBar* bar, const char* mnemonic);
41 GtkMenu* create_sub_menu_with_mnemonic(GtkMenu* parent, const char* mnemonic);
42 GtkMenuItem* create_menu_item_with_mnemonic(GtkMenu* menu, const char* mnemonic, const Callback& callback);
43 GtkCheckMenuItem* create_check_menu_item_with_mnemonic(GtkMenu* menu, const char* mnemonic, const Callback& callback);
44 GtkRadioMenuItem* create_radio_menu_item_with_mnemonic(GtkMenu* menu, GSList** group, const char* mnemonic, const Callback& callback);
45 
46 class Command;
47 GtkMenuItem* create_menu_item_with_mnemonic(GtkMenu* menu, const char* mnemonic, const Command& command);
48 class Toggle;
49 GtkCheckMenuItem* create_check_menu_item_with_mnemonic(GtkMenu* menu, const char* mnemonic, const Toggle& toggle);
50 
51 
52 typedef struct _GtkCheckMenuItem GtkCheckMenuItem;
53 void check_menu_item_set_active_no_signal(GtkCheckMenuItem* item, gboolean active);
54 typedef struct _GtkRadioMenuItem GtkRadioMenuItem;
55 void radio_menu_item_set_active_no_signal(GtkRadioMenuItem* item, gboolean active);
56 
57 #endif
58