]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/entitylist.cpp
GTK: wrap GTK_WIDGET
[xonotic/netradiant.git] / radiant / entitylist.cpp
index 13be0988f32b4b2dccbf5b59d5bfbcf67f665bc3..602ea1e5416da12a0ca2e058272721f1bc472151 100644 (file)
@@ -24,6 +24,7 @@
 #include "iselection.h"
 
 #include <uilib/uilib.h>
+#include <gtk/gtk.h>
 
 #include "string/string.h"
 #include "scenelib.h"
@@ -42,7 +43,6 @@
 void RedrawEntityList();
 typedef FreeCaller<RedrawEntityList> RedrawEntityListCaller;
 
-typedef struct _GtkTreeView GtkTreeView;
 
 class EntityList
 {
@@ -71,8 +71,8 @@ EntityList() :
        m_selection_disabled( false ){
 }
 
-bool visible() const {
-       return gtk_widget_get_visible( m_window );
+bool visible() {
+       return m_window.visible();
 }
 };
 
@@ -115,22 +115,22 @@ void entitylist_treeviewcolumn_celldatafunc( GtkTreeViewColumn* column, GtkCellR
        if ( node != 0 ) {
                gtk_cell_renderer_set_fixed_size( renderer, -1, -1 );
                char* name = const_cast<char*>( node_get_name( *node ) );
-               g_object_set( G_OBJECT( renderer ), "text", name, "visible", TRUE, 0 );
+               g_object_set( G_OBJECT( renderer ), "text", name, "visible", TRUE, NULL );
 
                //globalOutputStream() << "rendering cell " << makeQuoted(name) << "\n";
-               GtkStyle* style = gtk_widget_get_style( GTK_WIDGET( getEntityList().m_tree_view ) );
+               GtkStyle* style = gtk_widget_get_style( ui::TreeView( getEntityList().m_tree_view ) );
                if ( instance->childSelected() ) {
-                       g_object_set( G_OBJECT( renderer ), "cell-background-gdk", &style->base[GTK_STATE_ACTIVE], 0 );
+                       g_object_set( G_OBJECT( renderer ), "cell-background-gdk", &style->base[GTK_STATE_ACTIVE], NULL );
                }
                else
                {
-                       g_object_set( G_OBJECT( renderer ), "cell-background-gdk", &style->base[GTK_STATE_NORMAL], 0 );
+                       g_object_set( G_OBJECT( renderer ), "cell-background-gdk", &style->base[GTK_STATE_NORMAL], NULL );
                }
        }
        else
        {
                gtk_cell_renderer_set_fixed_size( renderer, -1, 0 );
-               g_object_set( G_OBJECT( renderer ), "text", "", "visible", FALSE, 0 );
+               g_object_set( G_OBJECT( renderer ), "text", "", "visible", FALSE, NULL );
        }
 }
 
@@ -244,7 +244,7 @@ void entitylist_treeview_row_expanded( GtkTreeView* view, GtkTreeIter* iter, Gtk
 
 
 void EntityList_SetShown( bool shown ){
-       widget_set_visible( getEntityList().m_window, shown );
+       getEntityList().m_window.visible(shown);
 }
 
 void EntityList_toggleShown(){
@@ -282,7 +282,7 @@ void DetachEntityTreeModel(){
 void EntityList_constructWindow( ui::Window main_window ){
        ASSERT_TRUE( !getEntityList().m_window );
 
-       ui::Window window = ui::Window(create_persistent_floating_window( "Entity List", main_window ));
+       auto window = ui::Window(create_persistent_floating_window( "Entity List", main_window ));
 
        window.add_accel_group(global_accel);
 
@@ -292,14 +292,14 @@ void EntityList_constructWindow( ui::Window main_window ){
        getEntityList().m_window = window;
 
        {
-               GtkScrolledWindow* scr = create_scrolled_window( GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC );
-               gtk_container_add( GTK_CONTAINER( window ), GTK_WIDGET( scr ) );
+               auto scr = create_scrolled_window( ui::Policy::AUTOMATIC, ui::Policy::AUTOMATIC );
+               window.add(scr);
 
                {
-                       ui::Widget view = ui::TreeView();
+                       ui::Widget view = ui::TreeView(ui::New);
                        gtk_tree_view_set_headers_visible( GTK_TREE_VIEW( view ), FALSE );
 
-                       auto renderer = ui::CellRendererText();
+                       auto renderer = ui::CellRendererText(ui::New);
                        GtkTreeViewColumn* column = gtk_tree_view_column_new();
                        gtk_tree_view_column_pack_start( column, renderer, TRUE );
                        gtk_tree_view_column_set_cell_data_func( column, renderer, entitylist_treeviewcolumn_celldatafunc, 0, 0 );
@@ -307,13 +307,13 @@ void EntityList_constructWindow( ui::Window main_window ){
                        GtkTreeSelection* select = gtk_tree_view_get_selection( GTK_TREE_VIEW( view ) );
                        gtk_tree_selection_set_mode( select, GTK_SELECTION_MULTIPLE );
 
-                       g_signal_connect( G_OBJECT( view ), "row_expanded", G_CALLBACK( entitylist_treeview_row_expanded ), 0 );
-                       g_signal_connect( G_OBJECT( view ), "row_collapsed", G_CALLBACK( entitylist_treeview_rowcollapsed ), 0 );
+                       view.connect( "row_expanded", G_CALLBACK( entitylist_treeview_row_expanded ), 0 );
+                       view.connect( "row_collapsed", G_CALLBACK( entitylist_treeview_rowcollapsed ), 0 );
 
                        gtk_tree_view_append_column( GTK_TREE_VIEW( view ), column );
 
-                       gtk_widget_show( view );
-                       gtk_container_add( GTK_CONTAINER( scr ), view );
+                       view.show();
+                       scr.add(view);
                        getEntityList().m_tree_view = GTK_TREE_VIEW( view );
                }
        }