X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=libs%2Fgtkutil%2Ftoolbar.cpp;h=049d05ec1fc62fd4684ecb79661fb54077a70551;hp=3ac74f610451be6cd95ddb7795059774f42c7f7d;hb=6882578a4675ab8b8609d0b0421918dc664a2c18;hpb=7fc621fc78d0e040dc2c12f38dc53dd9048215dc diff --git a/libs/gtkutil/toolbar.cpp b/libs/gtkutil/toolbar.cpp index 3ac74f61..049d05ec 100644 --- a/libs/gtkutil/toolbar.cpp +++ b/libs/gtkutil/toolbar.cpp @@ -21,52 +21,49 @@ #include "toolbar.h" -#include -#include +#include +#include #include "generic/callback.h" #include "accelerator.h" #include "button.h" -#include "closure.h" -#include "pointer.h" +#include "image.h" -void toolbar_append( GtkToolbar* toolbar, GtkButton* button, const char* description ){ - gtk_widget_show( GTK_WIDGET( button ) ); - gtk_button_set_relief( button, GTK_RELIEF_NONE ); - GTK_WIDGET_UNSET_FLAGS( GTK_WIDGET( button ), GTK_CAN_FOCUS ); - GTK_WIDGET_UNSET_FLAGS( GTK_WIDGET( button ), GTK_CAN_DEFAULT ); - gtk_toolbar_append_element( toolbar, GTK_TOOLBAR_CHILD_WIDGET, GTK_WIDGET( button ), "", description, "", 0, 0, 0 ); +void toolbar_append( ui::Toolbar toolbar, ui::ToolItem button, const char* description ){ + gtk_widget_show_all(button); + gtk_widget_set_tooltip_text(button, description); + toolbar.add(button); } -GtkButton* toolbar_append_button( GtkToolbar* toolbar, const char* description, const char* icon, const Callback& callback ){ - GtkButton* button = GTK_BUTTON( gtk_button_new() ); - button_set_icon( button, icon ); - button_connect_callback( button, callback ); - toolbar_append( toolbar, button, description ); +ui::ToolButton toolbar_append_button( ui::Toolbar toolbar, const char* description, const char* icon, const Callback& callback ){ + auto button = ui::ToolButton::from(gtk_tool_button_new(new_local_image(icon), nullptr)); + button_connect_callback(button, callback); + toolbar_append(toolbar, button, description); return button; } -GtkToggleButton* toolbar_append_toggle_button( GtkToolbar* toolbar, const char* description, const char* icon, const Callback& callback ){ - GtkToggleButton* button = GTK_TOGGLE_BUTTON( gtk_toggle_button_new() ); - button_set_icon( GTK_BUTTON( button ), icon ); - toggle_button_connect_callback( button, callback ); - toolbar_append( toolbar, GTK_BUTTON( button ), description ); +ui::ToggleToolButton toolbar_append_toggle_button( ui::Toolbar toolbar, const char* description, const char* icon, const Callback& callback ){ + auto button = ui::ToggleToolButton::from(gtk_toggle_tool_button_new()); + toggle_button_connect_callback(button, callback); + gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(button), new_local_image(icon)); + gtk_tool_button_set_label(GTK_TOOL_BUTTON(button), description); + toolbar_append(toolbar, button, description); return button; } -GtkButton* toolbar_append_button( GtkToolbar* toolbar, const char* description, const char* icon, const Command& command ){ +ui::ToolButton toolbar_append_button( ui::Toolbar toolbar, const char* description, const char* icon, const Command& command ){ return toolbar_append_button( toolbar, description, icon, command.m_callback ); } -void toggle_button_set_active_callback( GtkToggleButton& button, bool active ){ - toggle_button_set_active_no_signal( &button, active ); +void toggle_button_set_active_callback(void *it, bool active ){ + auto button = ui::ToggleToolButton::from(it); + toggle_button_set_active_no_signal( button, active ); } -typedef ReferenceCaller1 ToggleButtonSetActiveCaller; -GtkToggleButton* toolbar_append_toggle_button( GtkToolbar* toolbar, const char* description, const char* icon, const Toggle& toggle ){ - GtkToggleButton* button = toolbar_append_toggle_button( toolbar, description, icon, toggle.m_command.m_callback ); - toggle.m_exportCallback( ToggleButtonSetActiveCaller( *button ) ); +ui::ToggleToolButton toolbar_append_toggle_button( ui::Toolbar toolbar, const char* description, const char* icon, const Toggle& toggle ){ + auto button = toolbar_append_toggle_button( toolbar, description, icon, toggle.m_command.m_callback ); + toggle.m_exportCallback( PointerCaller( button._handle ) ); return button; }