diff options
author | Maximiliano Sandoval R <msandova@gnome.org> | 2021-10-11 00:43:42 +0200 |
---|---|---|
committer | David King <amigadave@amigadave.com> | 2022-03-28 17:11:49 +0100 |
commit | 68b73fa8e9b812e477dbbf63c497c90a0ee89c16 (patch) | |
tree | 3c4719424e143553361cc4e6288b56a4c1d47d8c /src | |
parent | c1fa528be74d57429b4892017f2ec2432e042df6 (diff) | |
download | gnome-logs-68b73fa8e9b812e477dbbf63c497c90a0ee89c16.tar.gz |
eventtoolbar: Subclass from GtkWidget
Header bars are now final classes.
Diffstat (limited to 'src')
-rw-r--r-- | src/gl-eventtoolbar.c | 31 | ||||
-rw-r--r-- | src/gl-eventtoolbar.h | 2 |
2 files changed, 25 insertions, 8 deletions
diff --git a/src/gl-eventtoolbar.c b/src/gl-eventtoolbar.c index 0d40413..8b1efba 100644 --- a/src/gl-eventtoolbar.c +++ b/src/gl-eventtoolbar.c @@ -28,7 +28,7 @@ struct _GlEventToolbar { /*< private >*/ - GtkHeaderBar parent_instance; + GtkWidget parent_instance; }; typedef struct @@ -37,10 +37,11 @@ typedef struct GtkWidget *output_button; GtkWidget *menu_button; GtkWidget *search_button; + GtkWidget *headerbar; GlEventToolbarMode mode; } GlEventToolbarPrivate; -G_DEFINE_TYPE_WITH_PRIVATE (GlEventToolbar, gl_event_toolbar, HDY_TYPE_HEADER_BAR) +G_DEFINE_TYPE_WITH_PRIVATE (GlEventToolbar, gl_event_toolbar, GTK_TYPE_WIDGET) static void gl_event_toolbar_update_boot_menu_label (GlEventToolbar *toolbar, @@ -138,22 +139,20 @@ gl_event_toolbar_add_boots (GlEventToolbar *toolbar, grid = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (grid), 6); - gtk_container_add (GTK_CONTAINER (priv->menu_button), grid); + gtk_menu_button_set_child (GTK_MENU_BUTTON (priv->menu_button), grid); title_label = gtk_label_new (_("Logs")); context = gtk_widget_get_style_context (GTK_WIDGET (title_label)); gtk_style_context_add_class (context, "title"); gtk_grid_attach (GTK_GRID (grid), title_label, 0, 0, 1, 1); - gtk_label_set_text (GTK_LABEL (priv->current_boot), current_boot); + gtk_label_set_label (GTK_LABEL (priv->current_boot), current_boot); context = gtk_widget_get_style_context (GTK_WIDGET (priv->current_boot)); gtk_style_context_add_class (context, "subtitle"); gtk_grid_attach (GTK_GRID (grid), priv->current_boot, 0, 1, 1, 1); - arrow = gtk_image_new_from_icon_name ("pan-down-symbolic", - GTK_ICON_SIZE_BUTTON); + arrow = gtk_image_new_from_icon_name ("pan-down-symbolic"); gtk_grid_attach (GTK_GRID (grid), arrow, 1, 0, 1, 2); - gtk_widget_show_all (grid); adw_header_bar_set_title_widget (ADW_HEADER_BAR (priv->headerbar), priv->menu_button); @@ -162,10 +161,26 @@ gl_event_toolbar_add_boots (GlEventToolbar *toolbar, } static void +gl_event_toolbar_dispose (GObject *object) +{ + GlEventToolbar *list = GL_EVENT_TOOLBAR (object); + GlEventToolbarPrivate *priv = gl_event_toolbar_get_instance_private (list); + + gtk_widget_unparent (priv->headerbar); + + G_OBJECT_CLASS (gl_event_toolbar_parent_class)->dispose (object); +} + +static void gl_event_toolbar_class_init (GlEventToolbarClass *klass) { + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + gobject_class->dispose = gl_event_toolbar_dispose; + + gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT); + gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Logs/gl-eventtoolbar.ui"); gtk_widget_class_bind_template_child_private (widget_class, GlEventToolbar, @@ -174,6 +189,8 @@ gl_event_toolbar_class_init (GlEventToolbarClass *klass) menu_button); gtk_widget_class_bind_template_child_private (widget_class, GlEventToolbar, search_button); + gtk_widget_class_bind_template_child_private (widget_class, GlEventToolbar, + headerbar); } static void diff --git a/src/gl-eventtoolbar.h b/src/gl-eventtoolbar.h index cd45f51..996c0fd 100644 --- a/src/gl-eventtoolbar.h +++ b/src/gl-eventtoolbar.h @@ -38,7 +38,7 @@ typedef enum } GlEventToolbarMode; #define GL_TYPE_EVENT_TOOLBAR (gl_event_toolbar_get_type ()) -G_DECLARE_FINAL_TYPE (GlEventToolbar, gl_event_toolbar, GL, EVENT_TOOLBAR, HdyHeaderBar) +G_DECLARE_FINAL_TYPE (GlEventToolbar, gl_event_toolbar, GL, EVENT_TOOLBAR, GtkWidget) GtkWidget * gl_event_toolbar_new (void); void gl_event_toolbar_add_boots (GlEventToolbar *toolbar, GArray *boot_ids); |