[sysprof/wip/gtk4-port] timelabel: port to GTK 4
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sysprof/wip/gtk4-port] timelabel: port to GTK 4
- Date: Fri, 1 Oct 2021 18:01:42 +0000 (UTC)
commit 30b201d0962b7349f2b9e42b987debca72c369b4
Author: Christian Hergert <chergert redhat com>
Date: Fri Oct 1 11:01:38 2021 -0700
timelabel: port to GTK 4
src/libsysprof-ui/sysprof-time-label.c | 52 ++++++++++++++++++++++------------
src/libsysprof-ui/sysprof-time-label.h | 2 +-
2 files changed, 35 insertions(+), 19 deletions(-)
---
diff --git a/src/libsysprof-ui/sysprof-time-label.c b/src/libsysprof-ui/sysprof-time-label.c
index 2ce58e77..7d129124 100644
--- a/src/libsysprof-ui/sysprof-time-label.c
+++ b/src/libsysprof-ui/sysprof-time-label.c
@@ -26,17 +26,37 @@
struct _SysprofTimeLabel
{
- GtkBox parent;
-
- GtkLabel *minutes;
- GtkLabel *seconds;
+ GtkWidget parent_instance;
+ GtkCenterBox *box;
+ GtkLabel *minutes;
+ GtkLabel *seconds;
};
-G_DEFINE_TYPE (SysprofTimeLabel, sysprof_time_label, GTK_TYPE_BOX)
+G_DEFINE_TYPE (SysprofTimeLabel, sysprof_time_label, GTK_TYPE_WIDGET)
+
+static void
+sysprof_time_label_dispose (GObject *object)
+{
+ SysprofTimeLabel *self = (SysprofTimeLabel *)object;
+
+ if (self->box)
+ {
+ gtk_widget_unparent (GTK_WIDGET (self->box));
+ self->box = NULL;
+ }
+
+ G_OBJECT_CLASS (sysprof_time_label_parent_class)->dispose (object);
+}
static void
sysprof_time_label_class_init (SysprofTimeLabelClass *klass)
{
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->dispose = sysprof_time_label_dispose;
+
+ gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
}
static void
@@ -48,36 +68,32 @@ sysprof_time_label_init (SysprofTimeLabel *self)
pango_attr_list_insert (attrs, pango_attr_scale_new (4));
pango_attr_list_insert (attrs, pango_attr_weight_new (PANGO_WEIGHT_BOLD));
- gtk_box_set_spacing (GTK_BOX (self), 3);
+ self->box = GTK_CENTER_BOX (gtk_center_box_new ());
+ gtk_widget_set_parent (GTK_WIDGET (self->box), GTK_WIDGET (self));
self->minutes = g_object_new (GTK_TYPE_LABEL,
"attributes", attrs,
- "visible", TRUE,
"xalign", 1.0f,
+ "hexpand", TRUE,
NULL);
- gtk_container_add_with_properties (GTK_CONTAINER (self), GTK_WIDGET (self->minutes),
- "pack-type", GTK_PACK_START,
- "expand", TRUE,
- "fill", TRUE,
- NULL);
+ gtk_center_box_set_start_widget (self->box, GTK_WIDGET (self->minutes));
sep = g_object_new (GTK_TYPE_LABEL,
+ "margin-start", 3,
+ "margin-end", 3,
"attributes", attrs,
"visible", TRUE,
"label", ":",
NULL);
- gtk_box_set_center_widget (GTK_BOX (self), sep);
+ gtk_center_box_set_center_widget (self->box, sep);
self->seconds = g_object_new (GTK_TYPE_LABEL,
"attributes", attrs,
"visible", TRUE,
"xalign", 0.0f,
+ "hexpand", TRUE,
NULL);
- gtk_container_add_with_properties (GTK_CONTAINER (self), GTK_WIDGET (self->seconds),
- "pack-type", GTK_PACK_END,
- "expand", TRUE,
- "fill", TRUE,
- NULL);
+ gtk_center_box_set_end_widget (self->box, GTK_WIDGET (self->seconds));
}
void
diff --git a/src/libsysprof-ui/sysprof-time-label.h b/src/libsysprof-ui/sysprof-time-label.h
index 7d4304c8..7dfc5707 100644
--- a/src/libsysprof-ui/sysprof-time-label.h
+++ b/src/libsysprof-ui/sysprof-time-label.h
@@ -26,7 +26,7 @@ G_BEGIN_DECLS
#define SYSPROF_TYPE_TIME_LABEL (sysprof_time_label_get_type())
-G_DECLARE_FINAL_TYPE (SysprofTimeLabel, sysprof_time_label, SYSPROF, TIME_LABEL, GtkBox)
+G_DECLARE_FINAL_TYPE (SysprofTimeLabel, sysprof_time_label, SYSPROF, TIME_LABEL, GtkWidget)
void sysprof_time_label_set_duration (SysprofTimeLabel *self,
guint duration);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]