]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/texwindow.cpp
-DGTK_DISABLE_DEPRECATED
[xonotic/netradiant.git] / radiant / texwindow.cpp
index 65587fd49ce415c8e73b0f580c1e58c2db1f4837..686de494eda9db4ce7b7210da10186bb7b7701fb 100644 (file)
 #include <vector>
 
 #include <gtk/gtk.h>
-#include <gtk/gtkrange.h>
-#include <gtk/gtkframe.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtkvbox.h>
-#include <gtk/gtkvscrollbar.h>
 #include <uilib/uilib.h>
 
 #include "signal/signal.h"
@@ -171,7 +166,7 @@ void value_changed( gdouble value ){
        }
 }
 static void adjustment_value_changed( GtkAdjustment *adjustment, DeferredAdjustment* self ){
-       self->value_changed( adjustment->value );
+       self->value_changed( gtk_adjustment_get_value(adjustment) );
 }
 };
 
@@ -1362,7 +1357,7 @@ void TextureBrowser_scrollChanged( void* data, gdouble value ){
 }
 
 static void TextureBrowser_verticalScroll( GtkAdjustment *adjustment, TextureBrowser* textureBrowser ){
-       textureBrowser->m_scrollAdjustment.value_changed( adjustment->value );
+       textureBrowser->m_scrollAdjustment.value_changed( gtk_adjustment_get_value(adjustment) );
 }
 
 void TextureBrowser_updateScroll( TextureBrowser& textureBrowser ){
@@ -1373,12 +1368,12 @@ void TextureBrowser_updateScroll( TextureBrowser& textureBrowser ){
 
                GtkAdjustment *vadjustment = gtk_range_get_adjustment( GTK_RANGE( textureBrowser.m_texture_scroll ) );
 
-               vadjustment->value = -TextureBrowser_getOriginY( textureBrowser );
-               vadjustment->page_size = textureBrowser.height;
-               vadjustment->page_increment = textureBrowser.height / 2;
-               vadjustment->step_increment = 20;
-               vadjustment->lower = 0;
-               vadjustment->upper = totalHeight;
+               gtk_adjustment_set_value(vadjustment, -TextureBrowser_getOriginY( textureBrowser ));
+               gtk_adjustment_set_page_size(vadjustment, textureBrowser.height);
+               gtk_adjustment_set_page_increment(vadjustment, textureBrowser.height / 2);
+               gtk_adjustment_set_step_increment(vadjustment, 20);
+               gtk_adjustment_set_lower(vadjustment, 0);
+               gtk_adjustment_set_upper(vadjustment, totalHeight);
 
                g_signal_emit_by_name( G_OBJECT( vadjustment ), "changed" );
        }
@@ -1529,14 +1524,13 @@ void TreeView_onRowActivated( GtkTreeView* treeview, GtkTreePath* path, GtkTreeV
 }
 
 void TextureBrowser_createTreeViewTree(){
-       GtkCellRenderer* renderer;
-       g_TextureBrowser.m_treeViewTree = ui::Widget(GTK_WIDGET( gtk_tree_view_new() ));
+       g_TextureBrowser.m_treeViewTree = ui::TreeView();
        gtk_tree_view_set_enable_search( GTK_TREE_VIEW( g_TextureBrowser.m_treeViewTree ), FALSE );
 
        gtk_tree_view_set_headers_visible( GTK_TREE_VIEW( g_TextureBrowser.m_treeViewTree ), FALSE );
        g_signal_connect( g_TextureBrowser.m_treeViewTree, "row-activated", (GCallback) TreeView_onRowActivated, NULL );
 
-       renderer = gtk_cell_renderer_text_new();
+       auto renderer = ui::CellRendererText();
        gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW( g_TextureBrowser.m_treeViewTree ), -1, "", renderer, "text", 0, NULL );
 
        TextureBrowser_constructTreeStore();
@@ -1547,17 +1541,17 @@ void TextureBrowser_renameTag();
 void TextureBrowser_deleteTag();
 
 void TextureBrowser_createContextMenu( ui::Widget treeview, GdkEventButton *event ){
-       ui::Widget menu = ui::Widget(gtk_menu_new());
+       ui::Widget menu = ui::Menu();
 
-       ui::Widget menuitem = ui::Widget(gtk_menu_item_new_with_label( "Add tag" ));
+       ui::Widget menuitem = ui::MenuItem( "Add tag" );
        g_signal_connect( menuitem, "activate", (GCallback)TextureBrowser_addTag, treeview );
        gtk_menu_shell_append( GTK_MENU_SHELL( menu ), menuitem );
 
-       menuitem = ui::Widget(gtk_menu_item_new_with_label( "Rename tag" ));
+       menuitem = ui::MenuItem( "Rename tag" );
        g_signal_connect( menuitem, "activate", (GCallback)TextureBrowser_renameTag, treeview );
        gtk_menu_shell_append( GTK_MENU_SHELL( menu ), menuitem );
 
-       menuitem = ui::Widget(gtk_menu_item_new_with_label( "Delete tag" ));
+       menuitem = ui::MenuItem( "Delete tag" );
        g_signal_connect( menuitem, "activate", (GCallback)TextureBrowser_deleteTag, treeview );
        gtk_menu_shell_append( GTK_MENU_SHELL( menu ), menuitem );
 
@@ -1586,15 +1580,14 @@ gboolean TreeViewTags_onButtonPressed( ui::Widget treeview, GdkEventButton *even
 }
 
 void TextureBrowser_createTreeViewTags(){
-       GtkCellRenderer* renderer;
-       g_TextureBrowser.m_treeViewTags = ui::Widget(GTK_WIDGET( gtk_tree_view_new() ));
+       g_TextureBrowser.m_treeViewTags = ui::TreeView();
        gtk_tree_view_set_enable_search( GTK_TREE_VIEW( g_TextureBrowser.m_treeViewTags ), FALSE );
 
        g_signal_connect( GTK_TREE_VIEW( g_TextureBrowser.m_treeViewTags ), "button-press-event", (GCallback)TreeViewTags_onButtonPressed, NULL );
 
        gtk_tree_view_set_headers_visible( GTK_TREE_VIEW( g_TextureBrowser.m_treeViewTags ), FALSE );
 
-       renderer = gtk_cell_renderer_text_new();
+       auto renderer = ui::CellRendererText();
        gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW( g_TextureBrowser.m_treeViewTags ), -1, "", renderer, "text", 0, NULL );
 
        TextureBrowser_constructTreeStoreTags();
@@ -1861,7 +1854,7 @@ void TextureBrowser_toggleSearchButton(){
                gtk_widget_show_all( g_TextureBrowser.m_search_button );
        }
        else {
-               gtk_widget_hide_all( g_TextureBrowser.m_search_button );
+               gtk_widget_hide( g_TextureBrowser.m_search_button );
        }
 }
 
@@ -1879,12 +1872,10 @@ void TextureBrowser_constructTagNotebook(){
 }
 
 void TextureBrowser_constructSearchButton(){
-       GtkTooltips* tooltips = gtk_tooltips_new();
-
        ui::Widget image = ui::Widget(gtk_image_new_from_stock( GTK_STOCK_FIND, GTK_ICON_SIZE_SMALL_TOOLBAR ));
-       g_TextureBrowser.m_search_button = ui::Widget(gtk_button_new());
+       g_TextureBrowser.m_search_button = ui::Button();
        g_signal_connect( G_OBJECT( g_TextureBrowser.m_search_button ), "clicked", G_CALLBACK( TextureBrowser_searchTags ), NULL );
-       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ), g_TextureBrowser.m_search_button, "Search with selected tags", "Search with selected tags" );
+       gtk_widget_set_tooltip_text(g_TextureBrowser.m_search_button, "Search with selected tags");
        gtk_container_add( GTK_CONTAINER( g_TextureBrowser.m_search_button ), image );
 }
 
@@ -1949,7 +1940,7 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
 
        g_TextureBrowser.m_parent = toplevel;
 
-       ui::Widget table = ui::Widget(gtk_table_new( 3, 3, FALSE ));
+       ui::Widget table = ui::Table( 3, 3, FALSE );
        ui::Widget frame_table;
        ui::Widget vbox = ui::VBox( FALSE, 0 );
        gtk_table_attach( GTK_TABLE( table ), vbox, 0, 1, 1, 3, GTK_FILL, GTK_FILL, 0, 0 );
@@ -1959,21 +1950,21 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
 
        { // menu bar
                menu_bar = ui::Widget(gtk_menu_bar_new());
-               ui::Widget menu_view = ui::Widget(gtk_menu_new());
+               ui::Widget menu_view = ui::Menu();
                auto view_item = TextureBrowser_constructViewMenu( GTK_MENU( menu_view ) );
                gtk_menu_item_set_submenu( GTK_MENU_ITEM( view_item ), menu_view );
-               gtk_menu_bar_append( GTK_MENU_BAR( menu_bar ), view_item );
+               gtk_menu_shell_append( GTK_MENU_SHELL( menu_bar ), view_item );
 
-               ui::Widget menu_tools = ui::Widget(gtk_menu_new());
+               ui::Widget menu_tools = ui::Menu();
                auto tools_item = TextureBrowser_constructToolsMenu( GTK_MENU( menu_tools ) );
                gtk_menu_item_set_submenu( GTK_MENU_ITEM( tools_item ), menu_tools );
-               gtk_menu_bar_append( GTK_MENU_BAR( menu_bar ), tools_item );
+               gtk_menu_shell_append( GTK_MENU_SHELL( menu_bar ), tools_item );
 
                gtk_table_attach( GTK_TABLE( table ), menu_bar, 0, 3, 0, 1, GTK_FILL, GTK_SHRINK, 0, 0 );
                gtk_widget_show( menu_bar );
        }
        { // Texture TreeView
-               g_TextureBrowser.m_scr_win_tree = ui::Widget(gtk_scrolled_window_new( NULL, NULL ));
+               g_TextureBrowser.m_scr_win_tree = ui::ScrolledWindow();
                gtk_container_set_border_width( GTK_CONTAINER( g_TextureBrowser.m_scr_win_tree ), 0 );
 
                // vertical only scrolling for treeview
@@ -1987,7 +1978,7 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                gtk_widget_show( GTK_WIDGET( g_TextureBrowser.m_treeViewTree ) );
        }
        { // gl_widget scrollbar
-               ui::Widget w = ui::Widget(gtk_vscrollbar_new( GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,0,1,1,0 ) ) ));
+               ui::Widget w = ui::Widget(gtk_vscrollbar_new( ui::Adjustment( 0,0,0,1,1,0 ) ));
                gtk_table_attach( GTK_TABLE( table ), w, 2, 3, 1, 2, GTK_SHRINK, GTK_FILL, 0, 0 );
                gtk_widget_show( w );
                g_TextureBrowser.m_texture_scroll = w;
@@ -1999,10 +1990,10 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
        }
        { // gl_widget
                g_TextureBrowser.m_gl_widget = ui::Widget(glwidget_new( FALSE ));
-               gtk_widget_ref( g_TextureBrowser.m_gl_widget );
+               g_object_ref( g_TextureBrowser.m_gl_widget );
 
                gtk_widget_set_events( g_TextureBrowser.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_FLAGS( g_TextureBrowser.m_gl_widget, GTK_CAN_FOCUS );
+               gtk_widget_set_can_focus( g_TextureBrowser.m_gl_widget, true );
 
                gtk_table_attach_defaults( GTK_TABLE( table ), g_TextureBrowser.m_gl_widget, 1, 2, 1, 2 );
                gtk_widget_show( g_TextureBrowser.m_gl_widget );
@@ -2027,13 +2018,13 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                        TextureBrowser_buildTagList();
                }
                { // tag menu bar
-                       ui::Widget menu_tags = ui::Widget(gtk_menu_new());
+                       ui::Widget menu_tags = ui::Menu();
                        auto tags_item = TextureBrowser_constructTagsMenu( GTK_MENU( menu_tags ) );
                        gtk_menu_item_set_submenu( GTK_MENU_ITEM( tags_item ), menu_tags );
-                       gtk_menu_bar_append( GTK_MENU_BAR( menu_bar ), tags_item );
+                       gtk_menu_shell_append( GTK_MENU_SHELL( menu_bar ), tags_item );
                }
                { // Tag TreeView
-                       g_TextureBrowser.m_scr_win_tags = ui::Widget(gtk_scrolled_window_new( NULL, NULL ));
+                       g_TextureBrowser.m_scr_win_tags = ui::ScrolledWindow();
                        gtk_container_set_border_width( GTK_CONTAINER( g_TextureBrowser.m_scr_win_tags ), 0 );
 
                        // vertical only scrolling for treeview
@@ -2056,9 +2047,9 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                        gtk_box_pack_end( GTK_BOX( vbox ), g_TextureBrowser.m_search_button, FALSE, FALSE, 0 );
                }
                { // Tag frame
-                       frame_table = ui::Widget(gtk_table_new( 3, 3, FALSE ));
+                       frame_table = ui::Table( 3, 3, FALSE );
 
-                       g_TextureBrowser.m_tag_frame = ui::Widget(gtk_frame_new( "Tag assignment" ));
+                       g_TextureBrowser.m_tag_frame = ui::Frame( "Tag assignment" );
                        gtk_frame_set_label_align( GTK_FRAME( g_TextureBrowser.m_tag_frame ), 0.5, 0.5 );
                        gtk_frame_set_shadow_type( GTK_FRAME( g_TextureBrowser.m_tag_frame ), GTK_SHADOW_NONE );
 
@@ -2069,7 +2060,7 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                        gtk_container_add( GTK_CONTAINER( g_TextureBrowser.m_tag_frame ), frame_table );
                }
                { // assigned tag list
-                       ui::Widget scrolled_win = ui::Widget(gtk_scrolled_window_new( NULL, NULL ));
+                       ui::Widget scrolled_win = ui::ScrolledWindow();
                        gtk_container_set_border_width( GTK_CONTAINER( scrolled_win ), 0 );
                        gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolled_win ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS );
 
@@ -2078,7 +2069,7 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                        GtkTreeSortable* sortable = GTK_TREE_SORTABLE( g_TextureBrowser.m_assigned_store );
                        gtk_tree_sortable_set_sort_column_id( sortable, TAG_COLUMN, GTK_SORT_ASCENDING );
 
-                       GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
+                       auto renderer = ui::CellRendererText();
 
                        g_TextureBrowser.m_assigned_tree = ui::TreeView(ui::TreeModel( GTK_TREE_MODEL( g_TextureBrowser.m_assigned_store ) ));
                        g_object_unref( G_OBJECT( g_TextureBrowser.m_assigned_store ) );
@@ -2088,7 +2079,7 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                        GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW( g_TextureBrowser.m_assigned_tree ) );
                        gtk_tree_selection_set_mode( selection, GTK_SELECTION_MULTIPLE );
 
-                       GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes( "", renderer, "text", TAG_COLUMN, NULL );
+                       GtkTreeViewColumn* column = ui::TreeViewColumn( "", renderer, {{"text", TAG_COLUMN}} );
                        gtk_tree_view_append_column( GTK_TREE_VIEW( g_TextureBrowser.m_assigned_tree ), column );
                        gtk_widget_show( g_TextureBrowser.m_assigned_tree );
 
@@ -2098,7 +2089,7 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                        gtk_table_attach( GTK_TABLE( frame_table ), scrolled_win, 0, 1, 1, 3, GTK_FILL, GTK_FILL, 0, 0 );
                }
                { // available tag list
-                       ui::Widget scrolled_win = ui::Widget(gtk_scrolled_window_new( NULL, NULL ));
+                       ui::Widget scrolled_win = ui::ScrolledWindow();
                        gtk_container_set_border_width( GTK_CONTAINER( scrolled_win ), 0 );
                        gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolled_win ), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS );
 
@@ -2106,7 +2097,7 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                        GtkTreeSortable* sortable = GTK_TREE_SORTABLE( g_TextureBrowser.m_available_store );
                        gtk_tree_sortable_set_sort_column_id( sortable, TAG_COLUMN, GTK_SORT_ASCENDING );
 
-                       GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
+                       auto renderer = ui::CellRendererText();
 
                        g_TextureBrowser.m_available_tree = ui::TreeView(ui::TreeModel( GTK_TREE_MODEL( g_TextureBrowser.m_available_store ) ));
                        g_object_unref( G_OBJECT( g_TextureBrowser.m_available_store ) );
@@ -2116,7 +2107,7 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                        GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW( g_TextureBrowser.m_available_tree ) );
                        gtk_tree_selection_set_mode( selection, GTK_SELECTION_MULTIPLE );
 
-                       GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes( "", renderer, "text", TAG_COLUMN, NULL );
+                       GtkTreeViewColumn* column = ui::TreeViewColumn( "", renderer, {{"text", TAG_COLUMN}} );
                        gtk_tree_view_append_column( GTK_TREE_VIEW( g_TextureBrowser.m_available_tree ), column );
                        gtk_widget_show( g_TextureBrowser.m_available_tree );
 
@@ -2126,8 +2117,8 @@ ui::Widget TextureBrowser_constructWindow( ui::Window toplevel ){
                        gtk_table_attach( GTK_TABLE( frame_table ), scrolled_win, 2, 3, 1, 3, GTK_FILL, GTK_FILL, 0, 0 );
                }
                { // tag arrow buttons
-                       ui::Widget m_btn_left = ui::Widget(gtk_button_new());
-                       ui::Widget m_btn_right = ui::Widget(gtk_button_new());
+                       ui::Widget m_btn_left = ui::Button();
+                       ui::Widget m_btn_right = ui::Button();
                        ui::Widget m_arrow_left = ui::Widget(gtk_arrow_new( GTK_ARROW_LEFT, GTK_SHADOW_OUT ));
                        ui::Widget m_arrow_right = ui::Widget(gtk_arrow_new( GTK_ARROW_RIGHT, GTK_SHADOW_OUT ));
                        gtk_container_add( GTK_CONTAINER( m_btn_left ), m_arrow_left );
@@ -2175,7 +2166,7 @@ void TextureBrowser_destroyWindow(){
        g_signal_handler_disconnect( G_OBJECT( g_TextureBrowser.m_gl_widget ), g_TextureBrowser.m_sizeHandler );
        g_signal_handler_disconnect( G_OBJECT( g_TextureBrowser.m_gl_widget ), g_TextureBrowser.m_exposeHandler );
 
-       gtk_widget_unref( g_TextureBrowser.m_gl_widget );
+       g_object_unref( g_TextureBrowser.m_gl_widget );
 }
 
 const Vector3& TextureBrowser_getBackgroundColour( TextureBrowser& textureBrowser ){
@@ -2361,7 +2352,7 @@ void RefreshShaders(){
        ScopeDisableScreenUpdates disableScreenUpdates( "Processing...", "Loading Shaders" );
        GlobalShaderSystem().refresh();
        UpdateAllWindows();
-       GtkTreeSelection* selection = gtk_tree_view_get_selection((GtkTreeView*) GlobalTextureBrowser().m_treeViewTree.handle());
+       GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(GlobalTextureBrowser().m_treeViewTree));
        GtkTreeModel* model = NULL;
        GtkTreeIter iter;
        if ( gtk_tree_selection_get_selected (selection, &model, &iter) )