X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fentityinspector.cpp;h=d31b86c38310946b905467fbd4263490f008e3ca;hb=295c5731f9386a352862bc0bbec8b25ec3670824;hp=550353d1663bdb3597d4ea8e2aff466a13263998;hpb=940ca0c11718a95d34c9614e8533f066896c890f;p=xonotic%2Fnetradiant.git diff --git a/radiant/entityinspector.cpp b/radiant/entityinspector.cpp index 550353d1..d31b86c3 100644 --- a/radiant/entityinspector.cpp +++ b/radiant/entityinspector.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include "os/path.h" @@ -79,7 +80,7 @@ #include "groupdialog.h" GtkEntry* numeric_entry_new(){ - GtkEntry* entry = GTK_ENTRY( gtk_entry_new() ); + GtkEntry* entry = ui::Entry(); gtk_widget_show( GTK_WIDGET( entry ) ); gtk_widget_set_size_request( GTK_WIDGET( entry ), 64, -1 ); return entry; @@ -119,7 +120,7 @@ class EntityAttribute { public: virtual ~EntityAttribute(){} -virtual GtkWidget* getWidget() const = 0; +virtual ui::Widget getWidget() const = 0; virtual void update() = 0; virtual void release() = 0; }; @@ -129,7 +130,7 @@ class BooleanAttribute : public EntityAttribute std::string m_key; GtkCheckButton* m_check; -static gboolean toggled( GtkWidget *widget, BooleanAttribute* self ){ +static gboolean toggled( ui::Widget widget, BooleanAttribute* self ){ self->apply(); return FALSE; } @@ -147,8 +148,8 @@ BooleanAttribute( const char* key ) : update(); } -GtkWidget* getWidget() const { - return GTK_WIDGET( m_check ); +ui::Widget getWidget() const { + return ui::Widget(GTK_WIDGET( m_check )); } void release(){ delete this; @@ -182,15 +183,15 @@ StringAttribute( const char* key ) : m_key( key ), m_entry( 0 ), m_nonModal( ApplyCaller( *this ), UpdateCaller( *this ) ){ - GtkEntry* entry = GTK_ENTRY( gtk_entry_new() ); + GtkEntry* entry = ui::Entry(); gtk_widget_show( GTK_WIDGET( entry ) ); gtk_widget_set_size_request( GTK_WIDGET( entry ), 50, -1 ); m_entry = entry; m_nonModal.connect( m_entry ); } -GtkWidget* getWidget() const { - return GTK_WIDGET( m_entry ); +ui::Widget getWidget() const { + return ui::Widget(GTK_WIDGET( m_entry )); } GtkEntry* getEntry() const { return m_entry; @@ -238,8 +239,8 @@ ModelAttribute( const char* key ) : void release(){ delete this; } -GtkWidget* getWidget() const { - return GTK_WIDGET( m_entry.m_entry.m_frame ); +ui::Widget getWidget() const { + return ui::Widget(GTK_WIDGET( m_entry.m_entry.m_frame )); } void apply(){ StringOutputStream value( 64 ); @@ -254,7 +255,7 @@ void update(){ } typedef MemberCaller UpdateCaller; void browse( const BrowsedPathEntry::SetPathCallback& setPath ){ - const char *filename = misc_model_dialog( gtk_widget_get_toplevel( GTK_WIDGET( m_entry.m_entry.m_frame ) ) ); + const char *filename = misc_model_dialog( ui::Widget(gtk_widget_get_toplevel( GTK_WIDGET( m_entry.m_entry.m_frame ) ) )); if ( filename != 0 ) { setPath( filename ); @@ -264,7 +265,7 @@ void browse( const BrowsedPathEntry::SetPathCallback& setPath ){ typedef MemberCaller1 BrowseCaller; }; -const char* browse_sound( GtkWidget* parent ){ +const char* browse_sound( ui::Widget parent ){ StringOutputStream buffer( 1024 ); buffer << g_qeglobals.m_userGamePath.c_str() << "sound/"; @@ -275,7 +276,7 @@ const char* browse_sound( GtkWidget* parent ){ buffer << g_qeglobals.m_userGamePath.c_str() << "/"; } - const char* filename = file_dialog( parent, TRUE, "Open Wav File", buffer.c_str(), "sound" ); + const char* filename = parent.file_dialog(TRUE, "Open Wav File", buffer.c_str(), "sound" ); if ( filename != 0 ) { const char* relative = path_make_relative( filename, GlobalFileSystem().findRoot( filename ) ); if ( relative == filename ) { @@ -301,8 +302,8 @@ SoundAttribute( const char* key ) : void release(){ delete this; } -GtkWidget* getWidget() const { - return GTK_WIDGET( m_entry.m_entry.m_frame ); +ui::Widget getWidget() const { + return ui::Widget(GTK_WIDGET( m_entry.m_entry.m_frame )); } void apply(){ StringOutputStream value( 64 ); @@ -317,7 +318,7 @@ void update(){ } typedef MemberCaller UpdateCaller; void browse( const BrowsedPathEntry::SetPathCallback& setPath ){ - const char *filename = browse_sound( gtk_widget_get_toplevel( GTK_WIDGET( m_entry.m_entry.m_frame ) ) ); + const char *filename = browse_sound( ui::Widget(gtk_widget_get_toplevel( GTK_WIDGET( m_entry.m_entry.m_frame ) )) ); if ( filename != 0 ) { setPath( filename ); @@ -348,8 +349,8 @@ AngleAttribute( const char* key ) : void release(){ delete this; } -GtkWidget* getWidget() const { - return GTK_WIDGET( m_entry ); +ui::Widget getWidget() const { + return ui::Widget(GTK_WIDGET( m_entry )); } void apply(){ StringOutputStream angle( 32 ); @@ -400,7 +401,7 @@ DirectionAttribute( const char* key ) : m_nonModalRadio.connect( m_radio.m_radio ); - m_hbox = GTK_HBOX( gtk_hbox_new( FALSE, 4 ) ); + m_hbox = ui::HBox( FALSE, 4 ); gtk_widget_show( GTK_WIDGET( m_hbox ) ); gtk_box_pack_start( GTK_BOX( m_hbox ), GTK_WIDGET( m_radio.m_hbox ), TRUE, TRUE, 0 ); @@ -409,8 +410,8 @@ DirectionAttribute( const char* key ) : void release(){ delete this; } -GtkWidget* getWidget() const { - return GTK_WIDGET( m_hbox ); +ui::Widget getWidget() const { + return ui::Widget(GTK_WIDGET( m_hbox )); } void apply(){ StringOutputStream angle( 32 ); @@ -482,12 +483,14 @@ class AnglesAttribute : public EntityAttribute std::string m_key; AnglesEntry m_angles; NonModalEntry m_nonModal; -GtkBox* m_hbox; +ui::HBox m_hbox; public: AnglesAttribute( const char* key ) : m_key( key ), - m_nonModal( ApplyCaller( *this ), UpdateCaller( *this ) ){ - m_hbox = GTK_BOX( gtk_hbox_new( TRUE, 4 ) ); + m_nonModal( ApplyCaller( *this ), + UpdateCaller( *this ) ), + m_hbox(ui::HBox( TRUE, 4 )) +{ gtk_widget_show( GTK_WIDGET( m_hbox ) ); { GtkEntry* entry = numeric_entry_new(); @@ -511,8 +514,8 @@ AnglesAttribute( const char* key ) : void release(){ delete this; } -GtkWidget* getWidget() const { - return GTK_WIDGET( m_hbox ); +ui::Widget getWidget() const { + return ui::Widget(GTK_WIDGET( m_hbox )); } void apply(){ StringOutputStream angles( 64 ); @@ -574,7 +577,7 @@ public: Vector3Attribute( const char* key ) : m_key( key ), m_nonModal( ApplyCaller( *this ), UpdateCaller( *this ) ){ - m_hbox = GTK_BOX( gtk_hbox_new( TRUE, 4 ) ); + m_hbox = ui::HBox( TRUE, 4 ); gtk_widget_show( GTK_WIDGET( m_hbox ) ); { GtkEntry* entry = numeric_entry_new(); @@ -598,8 +601,8 @@ Vector3Attribute( const char* key ) : void release(){ delete this; } -GtkWidget* getWidget() const { - return GTK_WIDGET( m_hbox ); +ui::Widget getWidget() const { + return ui::Widget(GTK_WIDGET( m_hbox )); } void apply(){ StringOutputStream vector3( 64 ); @@ -691,8 +694,8 @@ ListAttribute( const char* key, const ListAttributeType& type ) : void release(){ delete this; } -GtkWidget* getWidget() const { - return GTK_WIDGET( m_combo ); +ui::Widget getWidget() const { + return ui::Widget(GTK_WIDGET( m_combo )); } void apply(){ Scene_EntitySetKeyValue_Selected_Undoable( m_key.c_str(), m_type[gtk_combo_box_get_active( m_combo )].second.c_str() ); @@ -716,8 +719,8 @@ typedef MemberCaller UpdateCaller; namespace { -GtkWidget* g_entity_split1 = 0; -GtkWidget* g_entity_split2 = 0; +ui::Widget g_entity_split1; +ui::Widget g_entity_split2; int g_entitysplit1_position; int g_entitysplit2_position; @@ -874,7 +877,7 @@ void SurfaceFlags_setEntityClass( EntityClass* eclass ){ { for ( int i = 0; i < g_spawnflag_count; ++i ) { - GtkWidget* widget = GTK_WIDGET( g_entitySpawnflagsCheck[i] ); + ui::Widget widget = ui::Widget(GTK_WIDGET( g_entitySpawnflagsCheck[i] )); gtk_label_set_text( GTK_LABEL( GTK_BIN( widget )->child ), " " ); gtk_widget_hide( widget ); gtk_widget_ref( widget ); @@ -887,7 +890,7 @@ void SurfaceFlags_setEntityClass( EntityClass* eclass ){ { for ( int i = 0; i < g_spawnflag_count; ++i ) { - GtkWidget* widget = GTK_WIDGET( g_entitySpawnflagsCheck[i] ); + ui::Widget widget = ui::Widget(GTK_WIDGET( g_entitySpawnflagsCheck[i] )); gtk_widget_show( widget ); StringOutputStream str( 16 ); @@ -1107,7 +1110,7 @@ void EntityClassList_createEntity(){ GtkTreeModel* model; GtkTreeIter iter; if ( gtk_tree_selection_get_selected( gtk_tree_view_get_selection( view ), &model, &iter ) == FALSE ) { - gtk_MessageBox( gtk_widget_get_toplevel( GTK_WIDGET( g_entityClassList ) ), "You must have a selected class to create an entity", "info" ); + ui::Widget(gtk_widget_get_toplevel( GTK_WIDGET( g_entityClassList ) )).alert( "You must have a selected class to create an entity", "info" ); return; } @@ -1135,14 +1138,14 @@ void EntityInspector_applyKeyValue(){ // TTimo: if you change the classname to worldspawn you won't merge back in the structural brushes but create a parasite entity if ( !strcmp( key.c_str(), "classname" ) && !strcmp( value.c_str(), "worldspawn" ) ) { - gtk_MessageBox( gtk_widget_get_toplevel( GTK_WIDGET( g_entityKeyEntry ) ), "Cannot change \"classname\" key back to worldspawn.", 0, eMB_OK ); + ui::Widget(gtk_widget_get_toplevel( GTK_WIDGET( g_entityKeyEntry )) ).alert( "Cannot change \"classname\" key back to worldspawn.", 0, ui::alert_type::OK ); return; } // RR2DO2: we don't want spaces in entity keys if ( strstr( key.c_str(), " " ) ) { - gtk_MessageBox( gtk_widget_get_toplevel( GTK_WIDGET( g_entityKeyEntry ) ), "No spaces are allowed in entity keys.", 0, eMB_OK ); + ui::Widget(gtk_widget_get_toplevel( GTK_WIDGET( g_entityKeyEntry )) ).alert( "No spaces are allowed in entity keys.", 0, ui::alert_type::OK ); return; } @@ -1198,7 +1201,7 @@ static void EntityClassList_selection_changed( GtkTreeSelection* selection, gpoi } } -static gint EntityClassList_button_press( GtkWidget *widget, GdkEventButton *event, gpointer data ){ +static gint EntityClassList_button_press( ui::Widget widget, GdkEventButton *event, gpointer data ){ if ( event->type == GDK_2BUTTON_PRESS ) { EntityClassList_createEntity(); return TRUE; @@ -1206,7 +1209,7 @@ static gint EntityClassList_button_press( GtkWidget *widget, GdkEventButton *eve return FALSE; } -static gint EntityClassList_keypress( GtkWidget* widget, GdkEventKey* event, gpointer data ){ +static gint EntityClassList_keypress( ui::Widget widget, GdkEventKey* event, gpointer data ){ unsigned int code = gdk_keyval_to_upper( event->keyval ); if ( event->keyval == GDK_Return ) { @@ -1270,7 +1273,7 @@ static void EntityProperties_selection_changed( GtkTreeSelection* selection, gpo g_free( val ); } -static void SpawnflagCheck_toggled( GtkWidget *widget, gpointer data ){ +static void SpawnflagCheck_toggled( ui::Widget widget, gpointer data ){ EntityInspector_applySpawnflags(); } @@ -1294,7 +1297,7 @@ static gint EntityEntry_keypress( GtkEntry* widget, GdkEventKey* event, gpointer return FALSE; } -void EntityInspector_destroyWindow( GtkWidget* widget, gpointer data ){ +void EntityInspector_destroyWindow( ui::Widget widget, gpointer data ){ g_entitysplit1_position = gtk_paned_get_position( GTK_PANED( g_entity_split1 ) ); g_entitysplit2_position = gtk_paned_get_position( GTK_PANED( g_entity_split2 ) ); @@ -1302,22 +1305,22 @@ void EntityInspector_destroyWindow( GtkWidget* widget, gpointer data ){ GlobalEntityAttributes_clear(); } -GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ - GtkWidget* vbox = gtk_vbox_new( FALSE, 2 ); +ui::Widget EntityInspector_constructWindow( ui::Window toplevel ){ + ui::Widget vbox = ui::VBox( FALSE, 2 ); gtk_widget_show( vbox ); gtk_container_set_border_width( GTK_CONTAINER( vbox ), 2 ); g_signal_connect( G_OBJECT( vbox ), "destroy", G_CALLBACK( EntityInspector_destroyWindow ), 0 ); { - GtkWidget* split1 = gtk_vpaned_new(); + ui::Widget split1 = ui::Widget(gtk_vpaned_new()); gtk_box_pack_start( GTK_BOX( vbox ), split1, TRUE, TRUE, 0 ); gtk_widget_show( split1 ); g_entity_split1 = split1; { - GtkWidget* split2 = gtk_vpaned_new(); + ui::Widget split2 = ui::Widget(gtk_vpaned_new()); gtk_paned_add1( GTK_PANED( split1 ), split2 ); gtk_widget_show( split2 ); @@ -1325,7 +1328,7 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ { // class list - GtkWidget* scr = gtk_scrolled_window_new( 0, 0 ); + ui::Widget scr = ui::ScrolledWindow(); gtk_widget_show( scr ); gtk_paned_add1( GTK_PANED( split2 ), scr ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS ); @@ -1341,7 +1344,7 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ g_signal_connect( G_OBJECT( view ), "key_press_event", G_CALLBACK( EntityClassList_keypress ), 0 ); { - GtkCellRenderer* renderer = gtk_cell_renderer_text_new(); + GtkCellRenderer* renderer = ui::CellRendererText(); GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes( "Key", renderer, "text", 0, 0 ); gtk_tree_view_append_column( view, column ); } @@ -1362,7 +1365,7 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ } { - GtkWidget* scr = gtk_scrolled_window_new( 0, 0 ); + ui::Widget scr = ui::ScrolledWindow(); gtk_widget_show( scr ); gtk_paned_add2( GTK_PANED( split2 ), scr ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS ); @@ -1381,18 +1384,18 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ } { - GtkWidget* split2 = gtk_vpaned_new(); + ui::Widget split2 = ui::Widget(gtk_vpaned_new()); gtk_paned_add2( GTK_PANED( split1 ), split2 ); gtk_widget_show( split2 ); { - GtkWidget* vbox2 = gtk_vbox_new( FALSE, 2 ); + ui::Widget vbox2 = ui::VBox( FALSE, 2 ); gtk_widget_show( vbox2 ); gtk_paned_pack1( GTK_PANED( split2 ), vbox2, FALSE, FALSE ); { // Spawnflags (4 colums wide max, or window gets too wide.) - GtkTable* table = GTK_TABLE( gtk_table_new( 4, 4, FALSE ) ); + GtkTable* table = ui::Table( 4, 4, FALSE ); gtk_box_pack_start( GTK_BOX( vbox2 ), GTK_WIDGET( table ), FALSE, TRUE, 0 ); gtk_widget_show( GTK_WIDGET( table ) ); @@ -1400,7 +1403,7 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ for ( int i = 0; i < MAX_FLAGS; i++ ) { - GtkCheckButton* check = GTK_CHECK_BUTTON( gtk_check_button_new_with_label( "" ) ); + GtkCheckButton* check = ui::CheckButton( "" ); gtk_widget_ref( GTK_WIDGET( check ) ); g_object_set_data( G_OBJECT( check ), "handler", gint_to_pointer( g_signal_connect( G_OBJECT( check ), "toggled", G_CALLBACK( SpawnflagCheck_toggled ), 0 ) ) ); g_entitySpawnflagsCheck[i] = check; @@ -1409,7 +1412,7 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ { // key/value list - GtkWidget* scr = gtk_scrolled_window_new( 0, 0 ); + ui::Widget scr = ui::ScrolledWindow(); gtk_widget_show( scr ); gtk_box_pack_start( GTK_BOX( vbox2 ), scr, TRUE, TRUE, 0 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); @@ -1418,18 +1421,18 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ { GtkListStore* store = gtk_list_store_new( 2, G_TYPE_STRING, G_TYPE_STRING ); - GtkWidget* view = gtk_tree_view_new_with_model( GTK_TREE_MODEL( store ) ); + ui::Widget view = ui::TreeView(ui::TreeModel( GTK_TREE_MODEL( store ) )); gtk_tree_view_set_enable_search( GTK_TREE_VIEW( view ), FALSE ); gtk_tree_view_set_headers_visible( GTK_TREE_VIEW( view ), FALSE ); { - GtkCellRenderer* renderer = gtk_cell_renderer_text_new(); + GtkCellRenderer* renderer = ui::CellRendererText(); GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes( "", renderer, "text", 0, 0 ); gtk_tree_view_append_column( GTK_TREE_VIEW( view ), column ); } { - GtkCellRenderer* renderer = gtk_cell_renderer_text_new(); + GtkCellRenderer* renderer = ui::CellRendererText(); GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes( "", renderer, "text", 1, 0 ); gtk_tree_view_append_column( GTK_TREE_VIEW( view ), column ); } @@ -1451,14 +1454,14 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ { // key/value entry - GtkTable* table = GTK_TABLE( gtk_table_new( 2, 2, FALSE ) ); + GtkTable* table = ui::Table( 2, 2, FALSE ); gtk_widget_show( GTK_WIDGET( table ) ); gtk_box_pack_start( GTK_BOX( vbox2 ), GTK_WIDGET( table ), FALSE, TRUE, 0 ); gtk_table_set_row_spacings( table, 3 ); gtk_table_set_col_spacings( table, 5 ); { - GtkEntry* entry = GTK_ENTRY( gtk_entry_new() ); + GtkEntry* entry = ui::Entry(); gtk_widget_show( GTK_WIDGET( entry ) ); gtk_table_attach( table, GTK_WIDGET( entry ), 1, 2, 0, 1, (GtkAttachOptions)( GTK_EXPAND | GTK_FILL ), @@ -1469,7 +1472,7 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ } { - GtkEntry* entry = GTK_ENTRY( gtk_entry_new() ); + GtkEntry* entry = ui::Entry(); gtk_widget_show( GTK_WIDGET( entry ) ); gtk_table_attach( table, GTK_WIDGET( entry ), 1, 2, 1, 2, (GtkAttachOptions)( GTK_EXPAND | GTK_FILL ), @@ -1480,7 +1483,7 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ } { - GtkLabel* label = GTK_LABEL( gtk_label_new( "Value" ) ); + GtkLabel* label = GTK_LABEL( ui::Label( "Value" ) ); gtk_widget_show( GTK_WIDGET( label ) ); gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 1, 2, (GtkAttachOptions)( GTK_FILL ), @@ -1489,7 +1492,7 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ } { - GtkLabel* label = GTK_LABEL( gtk_label_new( "Key" ) ); + GtkLabel* label = GTK_LABEL( ui::Label( "Key" ) ); gtk_widget_show( GTK_WIDGET( label ) ); gtk_table_attach( table, GTK_WIDGET( label ), 0, 1, 0, 1, (GtkAttachOptions)( GTK_FILL ), @@ -1499,18 +1502,18 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ } { - GtkBox* hbox = GTK_BOX( gtk_hbox_new( TRUE, 4 ) ); + GtkBox* hbox = ui::HBox( TRUE, 4 ); gtk_widget_show( GTK_WIDGET( hbox ) ); gtk_box_pack_start( GTK_BOX( vbox2 ), GTK_WIDGET( hbox ), FALSE, TRUE, 0 ); { - GtkButton* button = GTK_BUTTON( gtk_button_new_with_label( "Clear All" ) ); + GtkButton* button = ui::Button( "Clear All" ); gtk_widget_show( GTK_WIDGET( button ) ); g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( EntityInspector_clearAllKeyValues ), 0 ); gtk_box_pack_start( hbox, GTK_WIDGET( button ), TRUE, TRUE, 0 ); } { - GtkButton* button = GTK_BUTTON( gtk_button_new_with_label( "Delete Key" ) ); + GtkButton* button = ui::Button( "Delete Key" ); gtk_widget_show( GTK_WIDGET( button ) ); g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( EntityInspector_clearKeyValue ), 0 ); gtk_box_pack_start( hbox, GTK_WIDGET( button ), TRUE, TRUE, 0 ); @@ -1519,15 +1522,15 @@ GtkWidget* EntityInspector_constructWindow( GtkWindow* toplevel ){ } { - GtkWidget* scr = gtk_scrolled_window_new( 0, 0 ); + ui::Widget scr = ui::ScrolledWindow(); gtk_widget_show( scr ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scr ), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC ); - GtkWidget* viewport = gtk_viewport_new( 0, 0 ); + ui::Widget viewport = ui::Widget(gtk_viewport_new( 0, 0 )); gtk_widget_show( viewport ); gtk_viewport_set_shadow_type( GTK_VIEWPORT( viewport ), GTK_SHADOW_NONE ); - g_attributeBox = GTK_VBOX( gtk_vbox_new( FALSE, 2 ) ); + g_attributeBox = ui::VBox( FALSE, 2 ); gtk_widget_show( GTK_WIDGET( g_attributeBox ) ); gtk_container_add( GTK_CONTAINER( viewport ), GTK_WIDGET( g_attributeBox ) );