From: Alexander Larsson Date: Tue, 28 Jan 2020 14:03:42 +0000 (+0100) Subject: Rename GtkIcon widget to GtkBuiltinIcon X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~20^2~126^2~23 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6a15e9169d018a18fdaa481287d5facfd2b142f1;p=gtk4.git Rename GtkIcon widget to GtkBuiltinIcon This is an internal widget whose name is not very important, and we want to rename GtkIconInfo to GtkIcon, so lets rename this. --- diff --git a/gtk/gtkbuiltinicon.c b/gtk/gtkbuiltinicon.c new file mode 100644 index 0000000000..26f81a0838 --- /dev/null +++ b/gtk/gtkbuiltinicon.c @@ -0,0 +1,124 @@ + +/* + * Copyright © 2015 Endless Mobile, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + * + * Authors: Cosimo Cecchi + */ + +#include "config.h" + +#include "gtkcssnodeprivate.h" +#include "gtkstylecontextprivate.h" +#include "gtkcssnumbervalueprivate.h" +#include "gtkbuiltiniconprivate.h" +#include "gtkwidgetprivate.h" +#include "gtkrendericonprivate.h" +#include "gtksnapshot.h" + +/* GtkBuiltinIcon was a minimal widget wrapped around a GtkBuiltinIcon gadget, + * It should be used whenever builtin-icon functionality is desired + * but a widget is needed for other reasons. + */ + +struct _GtkBuiltinIcon +{ + GtkWidget parent; +}; + +G_DEFINE_TYPE (GtkBuiltinIcon, gtk_builtin_icon, GTK_TYPE_WIDGET) + +static void +gtk_builtin_icon_snapshot (GtkWidget *widget, + GtkSnapshot *snapshot) +{ + GtkCssStyle *style = gtk_css_node_get_style (gtk_widget_get_css_node (widget)); + int width, height; + + width = gtk_widget_get_width (widget); + height = gtk_widget_get_height (widget); + + if (width > 0 && height > 0) + gtk_css_style_snapshot_icon (style, snapshot, width, height); +} + +static void +gtk_builtin_icon_style_updated (GtkWidget *widget) +{ + GtkStyleContext *context; + GtkCssStyleChange *change = NULL; + + context = gtk_widget_get_style_context (widget); + change = gtk_style_context_get_change (context); + + GTK_WIDGET_CLASS (gtk_builtin_icon_parent_class)->style_updated (widget); + + if (change == NULL || + gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_ICON_SIZE)) + { + gtk_widget_queue_resize (widget); + } + else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_ICON_TEXTURE) || + gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_ICON_REDRAW)) + { + gtk_widget_queue_draw (widget); + } +} + +static void +gtk_builtin_icon_measure (GtkWidget *widget, + GtkOrientation orientation, + int for_size, + int *minimum, + int *natural, + int *minimum_baseline, + int *natural_baseline) +{ + GtkCssValue *icon_size; + + icon_size = _gtk_style_context_peek_property (gtk_widget_get_style_context (widget), GTK_CSS_PROPERTY_ICON_SIZE); + *minimum = *natural = _gtk_css_number_value_get (icon_size, 100); +} + +static void +gtk_builtin_icon_class_init (GtkBuiltinIconClass *klass) +{ + GtkWidgetClass *wclass = GTK_WIDGET_CLASS (klass); + + wclass->snapshot = gtk_builtin_icon_snapshot; + wclass->measure = gtk_builtin_icon_measure; + wclass->style_updated = gtk_builtin_icon_style_updated; +} + +static void +gtk_builtin_icon_init (GtkBuiltinIcon *self) +{ +} + +GtkWidget * +gtk_builtin_icon_new (const char *css_name) +{ + return g_object_new (GTK_TYPE_BUILTIN_ICON, + "css-name", css_name, + NULL); +} + +void +gtk_builtin_icon_set_css_name (GtkBuiltinIcon *self, + const char *css_name) +{ + gtk_css_node_set_name (gtk_widget_get_css_node (GTK_WIDGET (self)), + g_quark_from_string (css_name)); +} diff --git a/gtk/gtkbuiltiniconprivate.h b/gtk/gtkbuiltiniconprivate.h new file mode 100644 index 0000000000..ba8accd2a9 --- /dev/null +++ b/gtk/gtkbuiltiniconprivate.h @@ -0,0 +1,38 @@ +/* + * Copyright © 2015 Endless Mobile, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + * + * Authors: Cosimo Cecchi + */ + +#ifndef __GTK_BUILTIN_ICON_PRIVATE_H__ +#define __GTK_BUILTIN_ICON_PRIVATE_H__ + +#include "gtkwidget.h" +#include "gtkcsstypesprivate.h" + +G_BEGIN_DECLS + +#define GTK_TYPE_BUILTIN_ICON (gtk_builtin_icon_get_type ()) + +G_DECLARE_FINAL_TYPE (GtkBuiltinIcon, gtk_builtin_icon, GTK, BUILTIN_ICON, GtkWidget) + +GtkWidget * gtk_builtin_icon_new (const char *css_name); +void gtk_builtin_icon_set_css_name (GtkBuiltinIcon *self, + const char *css_name); + +G_END_DECLS + +#endif /* __GTK_BUILTIN_ICON_PRIVATE_H__ */ diff --git a/gtk/gtkcheckbutton.c b/gtk/gtkcheckbutton.c index f26733b9b3..ac3d8c9e6f 100644 --- a/gtk/gtkcheckbutton.c +++ b/gtk/gtkcheckbutton.c @@ -37,7 +37,7 @@ #include "gtkstylecontextprivate.h" #include "gtkcssnumbervalueprivate.h" #include "gtkradiobutton.h" -#include "gtkiconprivate.h" +#include "gtkbuiltiniconprivate.h" /** @@ -356,7 +356,7 @@ draw_indicator_changed (GtkCheckButton *check_button) if (priv->draw_indicator) { - priv->indicator_widget = gtk_icon_new ("check"); + priv->indicator_widget = gtk_builtin_icon_new ("check"); gtk_widget_set_halign (priv->indicator_widget, GTK_ALIGN_CENTER); gtk_widget_set_valign (priv->indicator_widget, GTK_ALIGN_CENTER); gtk_widget_set_parent (priv->indicator_widget, GTK_WIDGET (check_button)); diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index bbb7dba9b1..b9c6bbee8a 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -27,7 +27,7 @@ #include "gtkcellview.h" #include "gtkeventcontrollerscroll.h" #include "gtkframe.h" -#include "gtkiconprivate.h" +#include "gtkbuiltiniconprivate.h" #include "gtkintl.h" #include "gtkliststore.h" #include "gtkmain.h" @@ -844,7 +844,7 @@ gtk_combo_box_init (GtkComboBox *combo_box) priv->text_renderer = NULL; priv->id_column = -1; - g_type_ensure (GTK_TYPE_ICON); + g_type_ensure (GTK_TYPE_BUILTIN_ICON); g_type_ensure (GTK_TYPE_TREE_POPOVER); gtk_widget_init_template (GTK_WIDGET (combo_box)); diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c index f1a38acc48..04525612a5 100644 --- a/gtk/gtkexpander.c +++ b/gtk/gtkexpander.c @@ -116,7 +116,7 @@ #include "gtkbuildable.h" #include "gtkcontainerprivate.h" #include "gtkdragdest.h" -#include "gtkiconprivate.h" +#include "gtkbuiltiniconprivate.h" #include "gtkgestureclick.h" #include "gtkgesturesingle.h" #include "gtkintl.h" @@ -369,7 +369,7 @@ gtk_expander_init (GtkExpander *expander) NULL); gtk_container_add (GTK_CONTAINER (priv->box), priv->title_widget); - priv->arrow_widget = gtk_icon_new ("expander"); + priv->arrow_widget = gtk_builtin_icon_new ("expander"); gtk_style_context_add_class (gtk_widget_get_style_context (priv->arrow_widget), GTK_STYLE_CLASS_HORIZONTAL); gtk_container_add (GTK_CONTAINER (priv->title_widget), priv->arrow_widget); diff --git a/gtk/gtkicon.c b/gtk/gtkicon.c deleted file mode 100644 index 970b61e1de..0000000000 --- a/gtk/gtkicon.c +++ /dev/null @@ -1,124 +0,0 @@ - -/* - * Copyright © 2015 Endless Mobile, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see . - * - * Authors: Cosimo Cecchi - */ - -#include "config.h" - -#include "gtkcssnodeprivate.h" -#include "gtkstylecontextprivate.h" -#include "gtkcssnumbervalueprivate.h" -#include "gtkiconprivate.h" -#include "gtkwidgetprivate.h" -#include "gtkrendericonprivate.h" -#include "gtksnapshot.h" - -/* GtkIcon was a minimal widget wrapped around a GtkBuiltinIcon gadget, - * It should be used whenever builtin-icon functionality is desired - * but a widget is needed for other reasons. - */ - -struct _GtkIcon -{ - GtkWidget parent; -}; - -G_DEFINE_TYPE (GtkIcon, gtk_icon, GTK_TYPE_WIDGET) - -static void -gtk_icon_snapshot (GtkWidget *widget, - GtkSnapshot *snapshot) -{ - GtkCssStyle *style = gtk_css_node_get_style (gtk_widget_get_css_node (widget)); - int width, height; - - width = gtk_widget_get_width (widget); - height = gtk_widget_get_height (widget); - - if (width > 0 && height > 0) - gtk_css_style_snapshot_icon (style, snapshot, width, height); -} - -static void -gtk_icon_style_updated (GtkWidget *widget) -{ - GtkStyleContext *context; - GtkCssStyleChange *change = NULL; - - context = gtk_widget_get_style_context (widget); - change = gtk_style_context_get_change (context); - - GTK_WIDGET_CLASS (gtk_icon_parent_class)->style_updated (widget); - - if (change == NULL || - gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_ICON_SIZE)) - { - gtk_widget_queue_resize (widget); - } - else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_ICON_TEXTURE) || - gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_ICON_REDRAW)) - { - gtk_widget_queue_draw (widget); - } -} - -static void -gtk_icon_measure (GtkWidget *widget, - GtkOrientation orientation, - int for_size, - int *minimum, - int *natural, - int *minimum_baseline, - int *natural_baseline) -{ - GtkCssValue *icon_size; - - icon_size = _gtk_style_context_peek_property (gtk_widget_get_style_context (widget), GTK_CSS_PROPERTY_ICON_SIZE); - *minimum = *natural = _gtk_css_number_value_get (icon_size, 100); -} - -static void -gtk_icon_class_init (GtkIconClass *klass) -{ - GtkWidgetClass *wclass = GTK_WIDGET_CLASS (klass); - - wclass->snapshot = gtk_icon_snapshot; - wclass->measure = gtk_icon_measure; - wclass->style_updated = gtk_icon_style_updated; -} - -static void -gtk_icon_init (GtkIcon *self) -{ -} - -GtkWidget * -gtk_icon_new (const char *css_name) -{ - return g_object_new (GTK_TYPE_ICON, - "css-name", css_name, - NULL); -} - -void -gtk_icon_set_css_name (GtkIcon *self, - const char *css_name) -{ - gtk_css_node_set_name (gtk_widget_get_css_node (GTK_WIDGET (self)), - g_quark_from_string (css_name)); -} diff --git a/gtk/gtkiconprivate.h b/gtk/gtkiconprivate.h deleted file mode 100644 index 2bc0255c74..0000000000 --- a/gtk/gtkiconprivate.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright © 2015 Endless Mobile, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see . - * - * Authors: Cosimo Cecchi - */ - -#ifndef __GTK_ICON_PRIVATE_H__ -#define __GTK_ICON_PRIVATE_H__ - -#include "gtkwidget.h" -#include "gtkcsstypesprivate.h" - -G_BEGIN_DECLS - -#define GTK_TYPE_ICON (gtk_icon_get_type ()) - -G_DECLARE_FINAL_TYPE (GtkIcon, gtk_icon, GTK, ICON, GtkWidget) - -GtkWidget * gtk_icon_new (const char *css_name); - -void gtk_icon_set_css_name (GtkIcon *self, - const char *css_name); - -G_END_DECLS - -#endif /* __GTK_ICON_PRIVATE_H__ */ diff --git a/gtk/gtkmenusectionbox.c b/gtk/gtkmenusectionbox.c index eee0659e0e..fd462230de 100644 --- a/gtk/gtkmenusectionbox.c +++ b/gtk/gtkmenusectionbox.c @@ -32,7 +32,7 @@ #include "gtkstylecontext.h" #include "gtkpopovermenuprivate.h" #include "gtkorientable.h" -#include "gtkiconprivate.h" +#include "gtkbuiltiniconprivate.h" typedef GtkBoxClass GtkMenuSectionBoxClass; @@ -582,7 +582,7 @@ gtk_menu_section_box_new_section (GtkMenuTrackerItem *item, gtk_orientable_set_orientation (GTK_ORIENTABLE (box->item_box), GTK_ORIENTATION_HORIZONTAL); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (box->item_box)), "inline-buttons"); - spacer = gtk_icon_new ("none"); + spacer = gtk_builtin_icon_new ("none"); gtk_container_add (GTK_CONTAINER (box->item_box), spacer); gtk_size_group_add_widget (box->indicators, spacer); diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c index 07bf8c25c2..58f3dd7644 100644 --- a/gtk/gtkmodelbutton.c +++ b/gtk/gtkmodelbutton.c @@ -38,7 +38,7 @@ #include "gtkcsstypesprivate.h" #include "gtkstylecontextprivate.h" #include "gtkcontainerprivate.h" -#include "gtkiconprivate.h" +#include "gtkbuiltiniconprivate.h" #include "gtksizegroup.h" #include "gtkaccellabelprivate.h" #include "gtkactionable.h" @@ -492,7 +492,7 @@ update_node_name (GtkModelButton *self) if (start_name && !self->start_indicator) { - self->start_indicator = gtk_icon_new (start_name); + self->start_indicator = gtk_builtin_icon_new (start_name); gtk_widget_set_halign (self->start_indicator, GTK_ALIGN_CENTER); gtk_widget_set_valign (self->start_indicator, GTK_ALIGN_CENTER); update_start_indicator (self); @@ -511,7 +511,7 @@ update_node_name (GtkModelButton *self) if (end_name && !self->end_indicator) { - self->end_indicator = gtk_icon_new (end_name); + self->end_indicator = gtk_builtin_icon_new (end_name); gtk_widget_set_halign (self->end_indicator, GTK_ALIGN_CENTER); gtk_widget_set_valign (self->end_indicator, GTK_ALIGN_CENTER); gtk_widget_set_parent (self->end_indicator, GTK_WIDGET (self)); diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index 70c50793a3..73486d71fb 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -38,7 +38,7 @@ #include "gtkeventcontrollermotion.h" #include "gtkgestureclick.h" #include "gtkgizmoprivate.h" -#include "gtkiconprivate.h" +#include "gtkbuiltiniconprivate.h" #include "gtkintl.h" #include "gtklabel.h" #include "gtkmain.h" diff --git a/gtk/gtktreepopover.c b/gtk/gtktreepopover.c index cf25dbe658..f4219c2cd9 100644 --- a/gtk/gtktreepopover.c +++ b/gtk/gtktreepopover.c @@ -29,7 +29,7 @@ #include "gtkintl.h" #include "gtkprivate.h" #include "gtkgizmoprivate.h" -#include "gtkiconprivate.h" +#include "gtkbuiltiniconprivate.h" // TODO // positioning + sizing @@ -686,14 +686,14 @@ gtk_tree_popover_create_item (GtkTreePopover *popover, if (header_item) { - indicator = gtk_icon_new ("arrow"); + indicator = gtk_builtin_icon_new ("arrow"); gtk_style_context_add_class (gtk_widget_get_style_context (indicator), "left"); gtk_widget_set_parent (indicator, item); } gtk_widget_set_parent (view, item); - indicator = gtk_icon_new (has_submenu ? "arrow" : "none"); + indicator = gtk_builtin_icon_new (has_submenu ? "arrow" : "none"); gtk_style_context_add_class (gtk_widget_get_style_context (indicator), "right"); gtk_widget_set_parent (indicator, item); diff --git a/gtk/inspector/object-tree.c b/gtk/inspector/object-tree.c index c6f4665d8e..9fd04cdd30 100644 --- a/gtk/inspector/object-tree.c +++ b/gtk/inspector/object-tree.c @@ -37,7 +37,7 @@ #include "gtkcomboboxprivate.h" #include "gtkfilterlistmodel.h" #include "gtkflattenlistmodel.h" -#include "gtkiconprivate.h" +#include "gtkbuiltiniconprivate.h" #include "gtkiconview.h" #include "gtklabel.h" #include "gtklistbox.h" @@ -1028,7 +1028,7 @@ gtk_inspector_object_tree_create_list_widget (gpointer row_item, g_object_bind_property (row_item, "expanded", title, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); gtk_container_add (GTK_CONTAINER (child), title); - arrow = gtk_icon_new ("expander"); + arrow = gtk_builtin_icon_new ("expander"); gtk_container_add (GTK_CONTAINER (title), arrow); } else diff --git a/gtk/inspector/recorder.c b/gtk/inspector/recorder.c index 2ed3649edb..a5412cc8ab 100644 --- a/gtk/inspector/recorder.c +++ b/gtk/inspector/recorder.c @@ -38,7 +38,7 @@ #include #include #include "gtk/gtkdebug.h" -#include "gtk/gtkiconprivate.h" +#include "gtk/gtkbuiltiniconprivate.h" #include "gtk/gtkrendernodepaintableprivate.h" #include "recording.h" @@ -329,7 +329,7 @@ create_widget_for_render_node (gpointer row_item, gtk_container_add (GTK_CONTAINER (child), title); g_object_set_data_full (G_OBJECT (row), "make-sure-its-not-unreffed", g_object_ref (row_item), g_object_unref); - arrow = gtk_icon_new ("expander"); + arrow = gtk_builtin_icon_new ("expander"); gtk_container_add (GTK_CONTAINER (title), arrow); } else diff --git a/gtk/meson.build b/gtk/meson.build index 4c42b008a0..698235eeec 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -108,7 +108,7 @@ gtk_private_sources = files([ 'gtkgizmo.c', 'gtkgladecatalog.c', 'gtkhsla.c', - 'gtkicon.c', + 'gtkbuiltinicon.c', 'gtkiconcache.c', 'tools/gtkiconcachevalidator.c', 'gtkiconhelper.c', diff --git a/gtk/ui/gtkcombobox.ui b/gtk/ui/gtkcombobox.ui index 24cafedb21..4739b3d35d 100644 --- a/gtk/ui/gtkcombobox.ui +++ b/gtk/ui/gtkcombobox.ui @@ -12,7 +12,7 @@ - + arrow