[sysprof/wip/visualizers] empty-state: make empty state labels changable
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sysprof/wip/visualizers] empty-state: make empty state labels changable
- Date: Sun, 9 Oct 2016 22:13:25 +0000 (UTC)
commit e239887a9bc8ba16e89c61e092619779f69f6f18
Author: Christian Hergert <chergert redhat com>
Date: Sun Oct 9 15:12:50 2016 -0700
empty-state: make empty state labels changable
lib/resources/ui/sp-empty-state-view.ui | 4 +-
lib/sp-empty-state-view.c | 62 ++++++++++++++++++++++++++++++-
2 files changed, 63 insertions(+), 3 deletions(-)
---
diff --git a/lib/resources/ui/sp-empty-state-view.ui b/lib/resources/ui/sp-empty-state-view.ui
index fd61eb4..61c02e7 100644
--- a/lib/resources/ui/sp-empty-state-view.ui
+++ b/lib/resources/ui/sp-empty-state-view.ui
@@ -18,7 +18,7 @@
</object>
</child>
<child>
- <object class="GtkLabel">
+ <object class="GtkLabel" id="title">
<property name="label" translatable="yes">Welcome to Sysprof</property>
<property name="visible">true</property>
<style>
@@ -35,7 +35,7 @@
</packing>
</child>
<child>
- <object class="GtkLabel">
+ <object class="GtkLabel" id="subtitle">
<property name="label" translatable="yes">Start profiling your system with the
<b>Record</b> button above</property>
<property name="use-markup">true</property>
<property name="visible">true</property>
diff --git a/lib/sp-empty-state-view.c b/lib/sp-empty-state-view.c
index 8164fdc..9dc064a 100644
--- a/lib/sp-empty-state-view.c
+++ b/lib/sp-empty-state-view.c
@@ -18,7 +18,22 @@
#include "sp-empty-state-view.h"
-G_DEFINE_TYPE (SpEmptyStateView, sp_empty_state_view, GTK_TYPE_BIN)
+typedef struct
+{
+ GtkLabel *title;
+ GtkLabel *subtitle;
+} SpEmptyStateViewPrivate;
+
+G_DEFINE_TYPE_WITH_PRIVATE (SpEmptyStateView, sp_empty_state_view, GTK_TYPE_BIN)
+
+enum {
+ PROP_0,
+ PROP_TITLE,
+ PROP_SUBTITLE,
+ N_PROPS
+};
+
+static GParamSpec *properties [N_PROPS];
GtkWidget *
sp_empty_state_view_new (void)
@@ -27,11 +42,56 @@ sp_empty_state_view_new (void)
}
static void
+sp_empty_state_view_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ SpEmptyStateView *self = SP_EMPTY_STATE_VIEW (object);
+ SpEmptyStateViewPrivate *priv = sp_empty_state_view_get_instance_private (self);
+
+ switch (prop_id)
+ {
+ case PROP_TITLE:
+ gtk_label_set_label (priv->title, g_value_get_string (value));
+ break;
+
+ case PROP_SUBTITLE:
+ gtk_label_set_label (priv->subtitle, g_value_get_string (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
sp_empty_state_view_class_init (SpEmptyStateViewClass *klass)
{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+ object_class->set_property = sp_empty_state_view_set_property;
+
+ properties [PROP_TITLE] =
+ g_param_spec_string ("title",
+ NULL,
+ NULL,
+ NULL,
+ (G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS));
+
+ properties [PROP_SUBTITLE] =
+ g_param_spec_string ("subtitle",
+ NULL,
+ NULL,
+ NULL,
+ (G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_properties (object_class, N_PROPS, properties);
+
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/sysprof/ui/sp-empty-state-view.ui");
+ gtk_widget_class_bind_template_child_private (widget_class, SpEmptyStateView, subtitle);
+ gtk_widget_class_bind_template_child_private (widget_class, SpEmptyStateView, title);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]