2 This file is part of GtkRadiant.
4 GtkRadiant is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 GtkRadiant is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with GtkRadiant; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 #include "ufoai_gtk.h"
20 #include "ufoai_filters.h"
23 #include "iscenegraph.h"
26 #include <uilib/uilib.h>
29 * @brief If you return FALSE in the "delete_event" signal handler,
30 * GTK will emit the "destroy" signal. Returning TRUE means
31 * you don't want the window to be destroyed.
32 * This is useful for popping up 'are you sure you want to quit?'
35 static gboolean delete_event(ui::Widget widget, GdkEvent *event, gpointer data)
41 * @brief destroy widget if destroy signal is passed to widget
43 static void destroy(ui::Widget widget, gpointer data)
49 * @brief function for close button to destroy the toplevel widget
51 static void close_window(ui::Widget widget, gpointer data)
53 widget.window().destroy();
56 /* =============================== */
58 const int NUM_TOOLBARBUTTONS = 12;
63 std::size_t ToolbarButtonCount(void)
65 return NUM_TOOLBARBUTTONS;
69 * @brief Used if the ufo plugin should not be visible (at least the toolbar stuff)
71 std::size_t ToolbarNoButtons(void)
79 class CUFOAIToolbarButton : public IToolbarButton {
81 virtual const char *getImage() const
85 return "ufoai_level1.png";
87 return "ufoai_level2.png";
89 return "ufoai_level3.png";
91 return "ufoai_level4.png";
93 return "ufoai_level5.png";
95 return "ufoai_level6.png";
97 return "ufoai_level7.png";
99 return "ufoai_level8.png";
101 return "ufoai_stepon.png";
103 return "ufoai_actorclip.png";
105 return "ufoai_weaponclip.png";
107 return "ufoai_nodraw.png";
112 virtual EType getType() const
115 /* case 3: return eButton;*/
117 return eToggleButton;
119 return eToggleButton;
121 return eToggleButton;
123 return eToggleButton;
129 virtual const char *getText() const
160 virtual const char *getTooltip() const
164 return "Show only level 1";
166 return "Show only level 2";
168 return "Show only level 3";
170 return "Show only level 4";
172 return "Show only level 5";
174 return "Show only level 6";
176 return "Show only level 7";
178 return "Show only level 8";
180 return "Hide stepon brushes";
182 return "Hide actorclip brushes";
184 return "Hide weaponclip brushes";
186 return "Hide nodraw brushes";
191 virtual void activate() const
195 filter_level(CONTENTS_LEVEL1);
198 filter_level(CONTENTS_LEVEL2);
201 filter_level(CONTENTS_LEVEL3);
204 filter_level(CONTENTS_LEVEL4);
207 filter_level(CONTENTS_LEVEL5);
210 filter_level(CONTENTS_LEVEL6);
213 filter_level(CONTENTS_LEVEL7);
216 filter_level(CONTENTS_LEVEL8);
240 CUFOAIToolbarButton g_ufoaiToolbarButtons[NUM_TOOLBARBUTTONS];
245 const IToolbarButton *GetToolbarButton(std::size_t index)
247 g_ufoaiToolbarButtons[index].mIndex = index;
248 return &g_ufoaiToolbarButtons[index];
254 const IToolbarButton *GetToolbarNoButton(std::size_t index)