X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fgtkmisc.cpp;h=702f6ac4e38a339b2c7743bfccf60608495d7400;hb=02282bbec513816e422bccd2255e17f7cdd8a08d;hp=a38fde78010c7110d4df837df1494f893b1f8010;hpb=2c07c3a2aaa0b9b16a8fcd50259ebbf28d9f9dc9;p=xonotic%2Fnetradiant.git diff --git a/radiant/gtkmisc.cpp b/radiant/gtkmisc.cpp index a38fde78..702f6ac4 100644 --- a/radiant/gtkmisc.cpp +++ b/radiant/gtkmisc.cpp @@ -32,9 +32,9 @@ // Small functions to help with GTK // +#include #include "gtkmisc.h" -#include #include "uilib/uilib.h" #include "math/vector.h" @@ -43,7 +43,6 @@ #include "gtkutil/dialog.h" #include "gtkutil/filechooser.h" #include "gtkutil/menu.h" -#include "gtkutil/toolbar.h" #include "commands.h" @@ -72,49 +71,48 @@ 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( GtkMenu* 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( GtkMenu* 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 ); return create_menu_item_with_mnemonic( menu, mnemonic, command ); } -GtkToolButton* toolbar_append_button( GtkToolbar* toolbar, const char* description, const char* icon, const char* commandName ){ +ui::ToolButton toolbar_append_button( ui::Toolbar toolbar, const char* description, const char* icon, const char* commandName ){ return toolbar_append_button( toolbar, description, icon, GlobalCommands_find( commandName ) ); } -GtkToggleToolButton* toolbar_append_toggle_button( GtkToolbar* toolbar, const char* description, const char* icon, const char* commandName ){ +ui::ToggleToolButton toolbar_append_toggle_button( ui::Toolbar toolbar, const char* description, const char* icon, const char* commandName ){ return toolbar_append_toggle_button( toolbar, description, icon, GlobalToggles_find( commandName ) ); } // ============================================================================= // File dialog -bool color_dialog( ui::Widget parent, Vector3& color, const char* title ){ - ui::Widget dlg; +bool color_dialog( ui::Window parent, Vector3& color, const char* title ){ GdkColor clr = { 0, guint16(color[0] * 65535), guint16(color[1] * 65535), guint16(color[2] * 65535) }; ModalDialog dialog; - dlg = ui::Widget(gtk_color_selection_dialog_new( title )); + auto dlg = ui::Window::from(gtk_color_selection_dialog_new( title )); gtk_color_selection_set_current_color( GTK_COLOR_SELECTION( gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG( dlg )) ), &clr ); - g_signal_connect( G_OBJECT( dlg ), "delete_event", G_CALLBACK( dialog_delete_callback ), &dialog ); + dlg.connect( "delete_event", G_CALLBACK( dialog_delete_callback ), &dialog ); GtkWidget *ok_button, *cancel_button; - g_object_get(dlg, "ok-button", &ok_button, "cancel-button", &cancel_button, nullptr); - g_signal_connect( ok_button, "clicked", G_CALLBACK( dialog_button_ok ), &dialog ); - g_signal_connect( cancel_button, "clicked", G_CALLBACK( dialog_button_cancel ), &dialog ); + g_object_get(G_OBJECT(dlg), "ok-button", &ok_button, "cancel-button", &cancel_button, nullptr); + ui::Widget::from(ok_button).connect( "clicked", G_CALLBACK( dialog_button_ok ), &dialog ); + ui::Widget::from(cancel_button).connect( "clicked", G_CALLBACK( dialog_button_cancel ), &dialog ); if ( parent ) { - gtk_window_set_transient_for( GTK_WINDOW( dlg ), GTK_WINDOW( parent ) ); + gtk_window_set_transient_for( dlg, parent ); } - bool ok = modal_dialog_show( ui::Window(GTK_WINDOW( dlg )), dialog ) == eIDOK; + bool ok = modal_dialog_show( dlg, dialog ) == eIDOK; if ( ok ) { gtk_color_selection_get_current_color( GTK_COLOR_SELECTION( gtk_color_selection_dialog_get_color_selection(GTK_COLOR_SELECTION_DIALOG( dlg )) ), &clr ); color[0] = clr.red / 65535.0f; @@ -122,26 +120,26 @@ bool color_dialog( ui::Widget parent, Vector3& color, const char* title ){ color[2] = clr.blue / 65535.0f; } - gtk_widget_destroy( dlg ); + dlg.destroy(); return ok; } -void button_clicked_entry_browse_file( ui::Widget widget, GtkEntry* entry ){ - const char *filename = ui::Widget(gtk_widget_get_toplevel( widget )).file_dialog( TRUE, "Choose File", gtk_entry_get_text( entry ) ); +void button_clicked_entry_browse_file( ui::Widget widget, ui::Entry entry ){ + const char *filename = widget.file_dialog( TRUE, "Choose File", gtk_entry_get_text( entry ) ); if ( filename != 0 ) { - gtk_entry_set_text( entry, filename ); + entry.text(filename); } } -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 : "" ); + char *dir = dir_dialog( widget.window(), "Choose Directory", path_is_absolute( text ) ? text : "" ); if ( dir != 0 ) { gchar* converted = g_filename_to_utf8( dir, -1, 0, 0, 0 ); - gtk_entry_set_text( entry, converted ); + entry.text(converted); g_free( dir ); g_free( converted ); }