]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/xywindow.cpp
Merge branch 'TimePath/gtk++' into 'master'
[xonotic/netradiant.git] / radiant / xywindow.cpp
index a689e275abe14848889017c65d20a1ec09e9c54e..eb275baf0cabf37c778ed35c9f7978de9b8a6a9b 100644 (file)
@@ -27,6 +27,8 @@
 
 #include "xywindow.h"
 
+#include <gtk/gtk.h>
+
 #include "debugging/debugging.h"
 
 #include "ientity.h"
@@ -39,7 +41,6 @@
 #include "image.h"
 #include "gtkutil/messagebox.h"
 
-#include <gtk/gtk.h>
 #include <uilib/uilib.h>
 #include <gdk/gdkkeysyms.h>
 
@@ -537,7 +538,7 @@ VIEWTYPE GlobalXYWnd_getCurrentViewType(){
 
 bool g_bCrossHairs = false;
 
-ui::Menu XYWnd::m_mnuDrop{nullptr};
+ui::Menu XYWnd::m_mnuDrop(ui::null);
 
 // this is disabled, and broken
 // http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=394
@@ -788,7 +789,7 @@ void XYWnd_CameraMoved( XYWnd& xywnd ){
 
 XYWnd::XYWnd() :
        m_gl_widget( glwidget_new( FALSE ) ),
-       m_deferredDraw( WidgetQueueDrawCaller( *m_gl_widget ) ),
+       m_deferredDraw( WidgetQueueDrawCaller( m_gl_widget ) ),
        m_deferred_motion( xywnd_motion, this ),
        m_parent( 0 ),
        m_window_observer( NewWindowObserver() ),
@@ -819,7 +820,7 @@ XYWnd::XYWnd() :
 
        m_entityCreate = false;
 
-       m_mnuDrop = ui::Menu{nullptr};
+       m_mnuDrop = ui::Menu(ui::null);
 
        GlobalWindowObservers_add( m_window_observer );
        GlobalWindowObservers_connectWidget( m_gl_widget );
@@ -827,20 +828,20 @@ XYWnd::XYWnd() :
        m_window_observer->setRectangleDrawCallback( ReferenceCaller1<XYWnd, rect_t, xy_update_xor_rectangle>( *this ) );
        m_window_observer->setView( m_view );
 
-       g_object_ref( m_gl_widget );
+       g_object_ref( m_gl_widget._handle );
 
        gtk_widget_set_events( m_gl_widget, GDK_DESTROY | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_SCROLL_MASK );
        gtk_widget_set_can_focus( m_gl_widget, true );
 
-       m_sizeHandler = g_signal_connect( G_OBJECT( m_gl_widget ), "size_allocate", G_CALLBACK( xywnd_size_allocate ), this );
-       m_exposeHandler = g_signal_connect( G_OBJECT( m_gl_widget ), "expose_event", G_CALLBACK( xywnd_expose ), this );
+       m_sizeHandler = m_gl_widget.connect( "size_allocate", G_CALLBACK( xywnd_size_allocate ), this );
+       m_exposeHandler = m_gl_widget.on_render( G_CALLBACK( xywnd_expose ), this );
 
-       g_signal_connect( G_OBJECT( m_gl_widget ), "button_press_event", G_CALLBACK( xywnd_button_press ), this );
-       g_signal_connect( G_OBJECT( m_gl_widget ), "button_release_event", G_CALLBACK( xywnd_button_release ), this );
-       g_signal_connect( G_OBJECT( m_gl_widget ), "focus_in_event", G_CALLBACK( xywnd_focus_in ), this );
-       g_signal_connect( G_OBJECT( m_gl_widget ), "motion_notify_event", G_CALLBACK( DeferredMotion::gtk_motion ), &m_deferred_motion );
+       m_gl_widget.connect( "button_press_event", G_CALLBACK( xywnd_button_press ), this );
+       m_gl_widget.connect( "button_release_event", G_CALLBACK( xywnd_button_release ), this );
+       m_gl_widget.connect( "focus_in_event", G_CALLBACK( xywnd_focus_in ), this );
+       m_gl_widget.connect( "motion_notify_event", G_CALLBACK( DeferredMotion::gtk_motion ), &m_deferred_motion );
 
-       g_signal_connect( G_OBJECT( m_gl_widget ), "scroll_event", G_CALLBACK( xywnd_wheel_scroll ), this );
+       m_gl_widget.connect( "scroll_event", G_CALLBACK( xywnd_wheel_scroll ), this );
 
        Map_addValidCallback( g_map, DeferredDrawOnMapValidChangedCaller( m_deferredDraw ) );
 
@@ -860,13 +861,13 @@ XYWnd::~XYWnd(){
 
        if ( m_mnuDrop ) {
                gtk_widget_destroy( GTK_WIDGET( m_mnuDrop ) );
-               m_mnuDrop = ui::Menu{nullptr};
+               m_mnuDrop = ui::Menu(ui::null);
        }
 
        g_signal_handler_disconnect( G_OBJECT( m_gl_widget ), m_sizeHandler );
        g_signal_handler_disconnect( G_OBJECT( m_gl_widget ), m_exposeHandler );
 
-       g_object_unref( m_gl_widget );
+       m_gl_widget.unref();
 
        m_window_observer->release();
 }
@@ -1077,7 +1078,7 @@ void entitycreate_activated( ui::Widget item ){
 
 void EntityClassMenu_addItem( ui::Menu menu, const char* name ){
        auto item = ui::MenuItem( name );
-       g_signal_connect( G_OBJECT( item ), "activate", G_CALLBACK( entitycreate_activated ), item );
+       item.connect( "activate", G_CALLBACK( entitycreate_activated ), item );
        item.show();
        menu_add_item( menu, item );
 }
@@ -1108,7 +1109,7 @@ void visit( EntityClass* e ){
 void pushMenu( const CopiedString& name ){
        auto item = ui::MenuItem( name.c_str() );
        item.show();
-       container_add_widget( GTK_CONTAINER( m_stack.back().first ), GTK_WIDGET( item ) );
+       m_stack.back().first.add(item);
 
        auto submenu = ui::Menu();
        gtk_menu_item_set_submenu( item, GTK_WIDGET( submenu ) );
@@ -1184,7 +1185,7 @@ void XYWnd::Move_Begin(){
        }
        m_move_started = true;
        g_xywnd_freezePointer.freeze_pointer( m_parent  ? m_parent : MainFrame_getWindow(), XYWnd_moveDelta, this );
-       m_move_focusOut = g_signal_connect( G_OBJECT( m_gl_widget ), "focus_out_event", G_CALLBACK( XYWnd_Move_focusOut ), this );
+       m_move_focusOut = m_gl_widget.connect( "focus_out_event", G_CALLBACK( XYWnd_Move_focusOut ), this );
 }
 
 void XYWnd::Move_End(){
@@ -1230,7 +1231,7 @@ void XYWnd::Zoom_Begin(){
        m_zoom_started = true;
        g_dragZoom = 0;
        g_xywnd_freezePointer.freeze_pointer( m_parent ? m_parent : MainFrame_getWindow(), XYWnd_zoomDelta, this );
-       m_zoom_focusOut = g_signal_connect( G_OBJECT( m_gl_widget ), "focus_out_event", G_CALLBACK( XYWnd_Zoom_focusOut ), this );
+       m_zoom_focusOut = m_gl_widget.connect( "focus_out_event", G_CALLBACK( XYWnd_Zoom_focusOut ), this );
 }
 
 void XYWnd::Zoom_End(){
@@ -2569,7 +2570,7 @@ void unrealise(){
        if ( ++m_unrealised == 1 ) {
                if ( XYWnd::m_mnuDrop ) {
                        gtk_widget_destroy( GTK_WIDGET( XYWnd::m_mnuDrop ) );
-                       XYWnd::m_mnuDrop = ui::Menu(nullptr);
+                       XYWnd::m_mnuDrop = ui::Menu(ui::null);
                }
        }
 }