summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaximiliano Sandoval R <msandova@gnome.org>2021-10-11 00:43:42 +0200
committerDavid King <amigadave@amigadave.com>2022-03-28 17:11:49 +0100
commit68b73fa8e9b812e477dbbf63c497c90a0ee89c16 (patch)
tree3c4719424e143553361cc4e6288b56a4c1d47d8c
parentc1fa528be74d57429b4892017f2ec2432e042df6 (diff)
downloadgnome-logs-68b73fa8e9b812e477dbbf63c497c90a0ee89c16.tar.gz
eventtoolbar: Subclass from GtkWidget
Header bars are now final classes.
-rw-r--r--src/gl-eventtoolbar.c31
-rw-r--r--src/gl-eventtoolbar.h2
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);