Purge GTK forward declarations
authorTimePath <andrew.hardaker1995@gmail.com>
Sat, 22 Jul 2017 02:37:10 +0000 (12:37 +1000)
committerTimePath <andrew.hardaker1995@gmail.com>
Mon, 31 Jul 2017 12:35:47 +0000 (22:35 +1000)
24 files changed:
contrib/bobtoolz/dialogs/dialogs-gtk.h
contrib/brushexport/callbacks.h
include/igtkgl.h
include/qerplugin.h
libs/gtkutil/accelerator.cpp
libs/gtkutil/accelerator.h
libs/gtkutil/glwidget.cpp
libs/gtkutil/glwidget.h
libs/uilib/uilib.cpp
libs/uilib/uilib.h
radiant/build.cpp
radiant/camwindow.h
radiant/dialog.h
radiant/entitylist.cpp
radiant/feedback.h
radiant/gtkmisc.cpp
radiant/gtkmisc.h
radiant/mainframe.cpp
radiant/mainframe.h
radiant/patchdialog.cpp
radiant/pluginmenu.cpp
radiant/pluginmenu.h
radiant/texwindow.cpp
radiant/xywindow.h

index 75db2d1..fe37430 100644 (file)
@@ -91,8 +91,6 @@ struct MakeChainRS {
        int linkNum;
 };
 
-typedef struct _GtkWidget GtkWidget;
-
 struct TwinWidget {
        GtkWidget* one;
        GtkComboBox* two;
index eea5aa8..eece65a 100644 (file)
@@ -1,5 +1,3 @@
-typedef struct _GtkWidget GtkWidget;
-typedef struct _GtkButton GtkButton;
 
 namespace callbacks {
 
index e6e8525..a78a057 100644 (file)
@@ -22,9 +22,9 @@
 #if !defined( INCLUDED_IGTKGL_H )
 #define INCLUDED_IGTKGL_H
 
+#include <uilib/uilib.h>
 #include "generic/constant.h"
 
-typedef struct _GtkWidget GtkWidget;
 typedef int gint;
 typedef gint gboolean;
 
@@ -33,11 +33,11 @@ struct _QERGtkGLTable
        INTEGER_CONSTANT( Version, 1 );
        STRING_CONSTANT( Name, "gtkgl" );
 
-       GtkWidget* ( *glwidget_new )(gboolean zbufffer);
-       void ( *glwidget_swap_buffers )( GtkWidget* widget );
-       gboolean ( *glwidget_make_current )( GtkWidget* widget );
-       void ( *glwidget_destroy_context )( GtkWidget* widget );
-       void ( *glwidget_create_context )( GtkWidget* widget );
+       ui::Widget ( *glwidget_new )(gboolean zbufffer);
+       void ( *glwidget_swap_buffers )( ui::Widget widget );
+       gboolean ( *glwidget_make_current )( ui::Widget widget );
+       void ( *glwidget_destroy_context )( ui::Widget widget );
+       void ( *glwidget_create_context )( ui::Widget widget );
 };
 
 #endif
index 4adefa3..8e56da9 100644 (file)
@@ -85,7 +85,6 @@ typedef bool ( *PFN_QERAPP_COLORDIALOG )( ui::Widget parent, Vector3& color,
 
 // load a .bmp file and create a GtkImage widget from it
 // NOTE: 'filename' is relative to <radiant_path>/plugins/bitmaps/
-typedef struct _GtkImage GtkImage;
 typedef ui::Image ( *PFN_QERAPP_NEWIMAGE )( const char* filename );
 
 // ========================================
index 09cc7aa..59ec317 100644 (file)
@@ -303,7 +303,7 @@ gboolean PressedButtons_focus_out( GtkWidget* widget, GdkEventFocus* event, Pres
        return FALSE;
 }
 
-void PressedButtons_connect( PressedButtons& pressedButtons, GtkWidget* widget ){
+void PressedButtons_connect( PressedButtons& pressedButtons, ui::Widget widget ){
        g_signal_connect( G_OBJECT( widget ), "button_press_event", G_CALLBACK( PressedButtons_button_press ), &pressedButtons );
        g_signal_connect( G_OBJECT( widget ), "button_release_event", G_CALLBACK( PressedButtons_button_release ), &pressedButtons );
        g_signal_connect( G_OBJECT( widget ), "focus_out_event", G_CALLBACK( PressedButtons_focus_out ), &pressedButtons );
index 0a47ba4..821830f 100644 (file)
@@ -85,7 +85,6 @@ void keydown_accelerators_remove( Accelerator accelerator );
 void keyup_accelerators_add( Accelerator accelerator, const Callback& callback );
 void keyup_accelerators_remove( Accelerator accelerator );
 
-typedef struct _GtkWidget GtkWidget;
 void global_accel_connect_window( ui::Window window );
 void global_accel_disconnect_window( ui::Window window );
 
@@ -130,8 +129,7 @@ KeyEvent( const Accelerator& accelerator, const Callback& keyDown, const Callbac
 
 
 struct PressedButtons;
-typedef struct _GtkWidget GtkWidget;
-void PressedButtons_connect( PressedButtons& pressedButtons, GtkWidget* widget );
+void PressedButtons_connect( PressedButtons& pressedButtons, ui::Widget widget );
 
 extern PressedButtons g_pressedButtons;
 
index 3f9b9a0..8661e4e 100644 (file)
@@ -181,10 +181,10 @@ unsigned int g_context_count = 0;
 
 namespace
 {
-GtkWidget* g_shared = 0;
+       ui::Widget g_shared;
 }
 
-gint glwidget_context_created( GtkWidget* widget, gpointer data ){
+gint glwidget_context_created( ui::Widget widget, gpointer data ){
        if ( ++g_context_count == 1 ) {
                g_shared = widget;
                g_object_ref( g_shared );
@@ -197,27 +197,27 @@ gint glwidget_context_created( GtkWidget* widget, gpointer data ){
        return FALSE;
 }
 
-gint glwidget_context_destroyed( GtkWidget* widget, gpointer data ){
+gint glwidget_context_destroyed( ui::Widget widget, gpointer data ){
        if ( --g_context_count == 0 ) {
                GlobalOpenGL().contextValid = false;
 
                GLWidget_sharedContextDestroyed();
 
                g_object_unref( g_shared );
-               g_shared = 0;
+               g_shared = ui::Widget(nullptr);
        }
        return FALSE;
 }
 
-gboolean glwidget_enable_gl( GtkWidget* widget, GtkWidget* widget2, gpointer data ){
-       if ( widget2 == 0 && !gtk_widget_is_gl_capable( widget ) ) {
+gboolean glwidget_enable_gl( ui::Widget widget, ui::Widget widget2, gpointer data ){
+       if ( !widget2 && !gtk_widget_is_gl_capable( widget ) ) {
                GdkGLConfig* glconfig = ( g_object_get_data( G_OBJECT( widget ), "zbuffer" ) ) ? glconfig_new_with_depth() : glconfig_new();
                ASSERT_MESSAGE( glconfig != 0, "failed to create OpenGL config" );
 
-               gtk_widget_set_gl_capability( widget, glconfig, g_shared != 0 ? gtk_widget_get_gl_context( g_shared ) : 0,  TRUE, GDK_GL_RGBA_TYPE );
+               gtk_widget_set_gl_capability( widget, glconfig, g_shared ? gtk_widget_get_gl_context( g_shared ) : 0,  TRUE, GDK_GL_RGBA_TYPE );
 
                gtk_widget_realize( widget );
-               if ( g_shared == 0 ) {
+               if ( !g_shared ) {
                        g_shared = widget;
                }
 
@@ -226,8 +226,8 @@ gboolean glwidget_enable_gl( GtkWidget* widget, GtkWidget* widget2, gpointer dat
        return FALSE;
 }
 
-GtkWidget* glwidget_new( gboolean zbuffer ){
-       GtkWidget* widget = gtk_drawing_area_new();
+ui::Widget glwidget_new( gboolean zbuffer ){
+       auto widget = ui::Widget(gtk_drawing_area_new());
 
        g_object_set_data( G_OBJECT( widget ), "zbuffer", gint_to_pointer( zbuffer ) );
 
@@ -239,18 +239,18 @@ GtkWidget* glwidget_new( gboolean zbuffer ){
        return widget;
 }
 
-void glwidget_destroy_context( GtkWidget *widget ){
+void glwidget_destroy_context( ui::Widget widget ){
 }
 
-void glwidget_create_context( GtkWidget *widget ){
+void glwidget_create_context( ui::Widget widget ){
 }
 
-void glwidget_swap_buffers( GtkWidget *widget ){
+void glwidget_swap_buffers( ui::Widget widget ){
        GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable( widget );
        gdk_gl_drawable_swap_buffers( gldrawable );
 }
 
-gboolean glwidget_make_current( GtkWidget *widget ){
+gboolean glwidget_make_current( ui::Widget widget ){
        GdkGLContext *glcontext = gtk_widget_get_gl_context( widget );
        GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable( widget );
        return gdk_gl_drawable_gl_begin( gldrawable, glcontext );
index 43e26dc..3da07c3 100644 (file)
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include <uilib/uilib.h>
+
 #if !defined( INCLUDED_GTKUTIL_GLWIDGET_H )
 #define INCLUDED_GTKUTIL_GLWIDGET_H
 
-typedef struct _GtkWidget GtkWidget;
 typedef int gint;
 typedef gint gboolean;
 
-GtkWidget* glwidget_new( gboolean zbuffer );
-void glwidget_swap_buffers( GtkWidget* widget );
-gboolean glwidget_make_current( GtkWidget* widget );
-void glwidget_destroy_context( GtkWidget* widget );
-void glwidget_create_context( GtkWidget* widget );
+ui::Widget glwidget_new( gboolean zbuffer );
+void glwidget_swap_buffers( ui::Widget widget );
+gboolean glwidget_make_current( ui::Widget widget );
+void glwidget_destroy_context( ui::Widget widget );
+void glwidget_create_context( ui::Widget widget );
 
 extern void ( *GLWidget_sharedContextCreated )();
 extern void ( *GLWidget_sharedContextDestroyed )();
index 1e37a1e..e91f03f 100644 (file)
@@ -22,6 +22,13 @@ namespace ui {
         gtk_main();
     }
 
+    void process()
+    {
+        while (gtk_events_pending()) {
+            gtk_main_iteration();
+        }
+    }
+
     Widget root{nullptr};
 
 #define IMPL(T, F) template<> _IMPL(T, F)
index 2b18ffb..f5b6e18 100644 (file)
@@ -69,6 +69,8 @@ namespace ui {
 
     void main();
 
+    void process();
+
     extern class Widget root;
 
     enum class alert_type {
index 8fd8991..24dc28e 100644 (file)
@@ -973,8 +973,6 @@ void DoBuildMenu(){
 #include "preferences.h"
 #include "qe3.h"
 
-typedef struct _GtkMenuItem GtkMenuItem;
-
 class BuildMenuItem
 {
 const char* m_name;
index 7f80297..312cf66 100644 (file)
@@ -40,7 +40,6 @@ void CamWnd_setParent( CamWnd& camwnd, ui::Window parent );
 void GlobalCamera_setCamWnd( CamWnd& camwnd );
 
 void fill_view_camera_menu( ui::Menu menu );
-typedef struct _GtkToolbar GtkToolbar;
 void CamWnd_constructToolbar( ui::Toolbar toolbar );
 void CamWnd_registerShortcuts();
 
index 85b2d8a..d202f83 100644 (file)
@@ -93,12 +93,6 @@ struct DLG_DATA
        virtual void exportData() const = 0;
 };
 
-typedef struct _GtkToggleButton GtkToggleButton;
-typedef struct _GtkRadioButton GtkRadioButton;
-typedef struct _GtkSpinButton GtkSpinButton;
-typedef struct _GtkComboBox GtkComboBox;
-typedef struct _GtkEntry GtkEntry;
-typedef struct _GtkAdjustment GtkAdjustment;
 
 template<typename FirstArgument>
 class CallbackDialogData;
index 0e97b60..efdc9ca 100644 (file)
@@ -42,7 +42,6 @@
 void RedrawEntityList();
 typedef FreeCaller<RedrawEntityList> RedrawEntityListCaller;
 
-typedef struct _GtkTreeView GtkTreeView;
 
 class EntityList
 {
index 567f00a..42fdbbb 100644 (file)
@@ -143,7 +143,6 @@ void DecRef() {
 void Draw2D( VIEWTYPE vt );
 };
 
-typedef struct _GtkListStore GtkListStore;
 
 class CDbgDlg : public Dialog
 {
index 39b2424..2c4175c 100644 (file)
@@ -71,14 +71,14 @@ void toggle_remove_accelerator( const char* name ){
        global_accel_group_disconnect( toggle.m_command.m_accelerator, toggle.m_command.m_callback );
 }
 
-GtkCheckMenuItem* create_check_menu_item_with_mnemonic( ui::Menu menu, const char* mnemonic, const char* commandName ){
+ui::CheckMenuItem create_check_menu_item_with_mnemonic( ui::Menu menu, const char* mnemonic, const char* commandName ){
        GlobalShortcuts_register( commandName, 2 );
        const Toggle& toggle = GlobalToggles_find( commandName );
        global_accel_group_connect( toggle.m_command.m_accelerator, toggle.m_command.m_callback );
        return create_check_menu_item_with_mnemonic( menu, mnemonic, toggle );
 }
 
-GtkMenuItem* create_menu_item_with_mnemonic( ui::Menu menu, const char *mnemonic, const char* commandName ){
+ui::MenuItem create_menu_item_with_mnemonic( ui::Menu menu, const char *mnemonic, const char* commandName ){
        GlobalShortcuts_register( commandName, 1 );
        const Command& command = GlobalCommands_find( commandName );
        global_accel_group_connect( command.m_accelerator, command.m_callback );
@@ -126,7 +126,7 @@ bool color_dialog( ui::Widget parent, Vector3& color, const char* title ){
        return ok;
 }
 
-void button_clicked_entry_browse_file( ui::Widget widget, GtkEntry* entry ){
+void button_clicked_entry_browse_file( ui::Widget widget, ui::Entry entry ){
        const char *filename = ui::Widget(gtk_widget_get_toplevel( widget )).file_dialog( TRUE, "Choose File", gtk_entry_get_text( entry ) );
 
        if ( filename != 0 ) {
@@ -134,7 +134,7 @@ void button_clicked_entry_browse_file( ui::Widget widget, GtkEntry* entry ){
        }
 }
 
-void button_clicked_entry_browse_directory( ui::Widget widget, GtkEntry* entry ){
+void button_clicked_entry_browse_directory( ui::Widget widget, ui::Entry entry ){
        const char* text = gtk_entry_get_text( entry );
        char *dir = dir_dialog( ui::Widget(gtk_widget_get_toplevel( widget )), "Choose Directory", path_is_absolute( text ) ? text : "" );
 
index 1de1aa4..ed6114c 100644 (file)
 #if !defined( INCLUDED_GTKMISC_H )
 #define INCLUDED_GTKMISC_H
 
-#include <gtk/gtk.h>
 #include <uilib/uilib.h>
 
-inline void process_gui(){
-       while ( gtk_events_pending() )
-       {
-               gtk_main_iteration();
-       }
-}
-
 void command_connect_accelerator( const char* commandName );
 void command_disconnect_accelerator( const char* commandName );
 void toggle_add_accelerator( const char* commandName );
 void toggle_remove_accelerator( const char* name );
 
-typedef struct _GtkMenu GtkMenu;
-typedef struct _GtkMenuItem GtkMenuItem;
-typedef struct _GtkCheckMenuItem GtkCheckMenuItem;
-
 // this also sets up the shortcut using command_connect_accelerator
-GtkMenuItem* create_menu_item_with_mnemonic( ui::Menu menu, const char *mnemonic, const char* commandName );
+ui::MenuItem create_menu_item_with_mnemonic( ui::Menu menu, const char *mnemonic, const char* commandName );
 // this also sets up the shortcut using command_connect_accelerator
-GtkCheckMenuItem* create_check_menu_item_with_mnemonic( ui::Menu menu, const char* mnemonic, const char* commandName );
+ui::CheckMenuItem create_check_menu_item_with_mnemonic( ui::Menu menu, const char* mnemonic, const char* commandName );
 
-typedef struct _GtkButton GtkButton;
-typedef struct _GtkToggleButton GtkToggleButton;
-typedef struct _GtkToolbar GtkToolbar;
 
 // this DOES NOT set up the shortcut using command_connect_accelerator
 ui::ToolButton toolbar_append_button( ui::Toolbar toolbar, const char* description, const char* icon, const char* commandName );
@@ -69,8 +54,7 @@ template<typename Element> class BasicVector3;
 typedef BasicVector3<float> Vector3;
 bool color_dialog( ui::Widget parent, Vector3& color, const char* title = "Choose Color" );
 
-typedef struct _GtkEntry GtkEntry;
-void button_clicked_entry_browse_file( ui::Widget widget, GtkEntry* entry );
-void button_clicked_entry_browse_directory( ui::Widget widget, GtkEntry* entry );
+void button_clicked_entry_browse_file( ui::Widget widget, ui::Entry entry );
+void button_clicked_entry_browse_directory( ui::Widget widget, ui::Entry entry );
 
 #endif
index e9378d4..adf4797 100644 (file)
@@ -1683,7 +1683,7 @@ bool ScreenUpdates_Enabled(){
 
 void ScreenUpdates_process(){
        if ( redrawRequired() && gtk_widget_get_visible( g_wait.m_window ) ) {
-               process_gui();
+               ui::process();
        }
 }
 
@@ -1692,7 +1692,7 @@ void ScreenUpdates_Disable( const char* message, const char* title ){
        if ( g_wait_stack.empty() ) {
                EverySecondTimer_disable();
 
-               process_gui();
+               ui::process();
 
                bool isActiveApp = MainFrame_isActiveApp();
 
@@ -2691,7 +2691,7 @@ static ui::Window splash_screen;
 void show_splash(){
        splash_screen = create_splash();
 
-       process_gui();
+       ui::process();
 }
 
 void hide_splash(){
index e370b01..27d09c0 100644 (file)
@@ -37,7 +37,6 @@ class XYWnd;
 class CamWnd;
 class ZWnd;
 
-typedef struct _GtkWidget GtkWidget;
 
 const int c_command_status = 0;
 const int c_position_status = 1;
index 2c12c5b..b378549 100644 (file)
@@ -151,7 +151,6 @@ void Scene_PatchSetFixedSubdivisions( const PatchFixedSubdivisions& subdivisions
        Scene_forEachVisibleSelectedPatch( PatchSetFixedSubdivisions( subdivisions ) );
 }
 
-typedef struct _GtkCheckButton GtkCheckButton;
 
 class Subdivisions
 {
index d3c1519..b9dd5dc 100644 (file)
@@ -152,9 +152,9 @@ void PluginsMenu_clear(){
        }
 }
 
-GtkMenuItem* create_plugins_menu(){
+ui::MenuItem create_plugins_menu(){
        // Plugins menu
-       GtkMenuItem* plugins_menu_item = new_sub_menu_item_with_mnemonic( "_Plugins" );
+       auto plugins_menu_item = new_sub_menu_item_with_mnemonic( "_Plugins" );
        auto menu = ui::Menu(GTK_MENU( gtk_menu_item_get_submenu( plugins_menu_item ) ));
        if ( g_Layout_enableDetachableMenus.m_value ) {
                menu_tearoff( menu );
index 254db77..b1685a6 100644 (file)
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include <uilib/uilib.h>
+
 #if !defined( INCLUDED_PLUGINMENU_H )
 #define INCLUDED_PLUGINMENU_H
 
-typedef struct _GtkMenuItem GtkMenuItem;
-GtkMenuItem* create_plugins_menu();
+ui::MenuItem create_plugins_menu();
 
-typedef struct _GtkMenu GtkMenu;
-typedef struct _GtkMenuItem GtkMenuItem;
 void PluginsMenu_populate();
 void PluginsMenu_clear();
 
index d6b2b81..7a79eb0 100644 (file)
@@ -1366,7 +1366,7 @@ gboolean TextureBrowser_button_press( ui::Widget widget, GdkEventButton* event,
                                textureBrowser->m_heightChanged = true;
                                textureBrowser->m_tag_frame.show();
 
-                               process_gui();
+                ui::process();
 
                                TextureBrowser_Focus( *textureBrowser, textureBrowser->shader.c_str() );
                        }
index d95e1c3..3eefc11 100644 (file)
@@ -40,7 +40,6 @@ namespace scene
 {
 class Node;
 }
-typedef struct _GtkMenu GtkMenu;
 
 
 void FlipClip();