[tepl] TabGroup: add the :active-view property
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tepl] TabGroup: add the :active-view property
- Date: Fri, 21 Jul 2017 03:27:14 +0000 (UTC)
commit b4515b0cd09218af0de1688527e2e2e8acc17d74
Author: Sébastien Wilmet <swilmet gnome org>
Date: Fri Jul 21 05:13:07 2017 +0200
TabGroup: add the :active-view property
tepl/tepl-application-window.c | 20 ++++++++++++++++++++
tepl/tepl-notebook.c | 7 +++++++
tepl/tepl-tab-group.c | 16 ++++++++++++++++
tepl/tepl-tab.c | 6 ++++++
4 files changed, 49 insertions(+), 0 deletions(-)
---
diff --git a/tepl/tepl-application-window.c b/tepl/tepl-application-window.c
index 2ebc6bf..aa36406 100644
--- a/tepl/tepl-application-window.c
+++ b/tepl/tepl-application-window.c
@@ -67,6 +67,7 @@ enum
PROP_0,
PROP_APPLICATION_WINDOW,
PROP_ACTIVE_TAB,
+ PROP_ACTIVE_VIEW,
};
#define TEPL_APPLICATION_WINDOW_KEY "tepl-application-window-key"
@@ -99,6 +100,10 @@ tepl_application_window_get_property (GObject *object,
g_value_set_object (value, tepl_tab_group_get_active_tab (TEPL_TAB_GROUP
(tepl_window)));
break;
+ case PROP_ACTIVE_VIEW:
+ g_value_set_object (value, tepl_tab_group_get_active_view (TEPL_TAB_GROUP
(tepl_window)));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -178,6 +183,7 @@ tepl_application_window_class_init (TeplApplicationWindowClass *klass)
G_PARAM_STATIC_STRINGS));
g_object_class_override_property (object_class, PROP_ACTIVE_TAB, "active-tab");
+ g_object_class_override_property (object_class, PROP_ACTIVE_VIEW, "active-view");
}
static GList *
@@ -280,6 +286,14 @@ active_tab_notify_cb (TeplTabGroup *tab_group,
g_object_notify (G_OBJECT (tepl_window), "active-tab");
}
+static void
+active_view_notify_cb (TeplTabGroup *tab_group,
+ GParamSpec *pspec,
+ TeplApplicationWindow *tepl_window)
+{
+ g_object_notify (G_OBJECT (tepl_window), "active-view");
+}
+
/**
* tepl_application_window_set_tab_group:
* @tepl_window: a #TeplApplicationWindow.
@@ -315,6 +329,12 @@ tepl_application_window_set_tab_group (TeplApplicationWindow *tepl_window,
G_CALLBACK (active_tab_notify_cb),
tepl_window,
0);
+
+ g_signal_connect_object (tab_group,
+ "notify::active-view",
+ G_CALLBACK (active_view_notify_cb),
+ tepl_window,
+ 0);
}
/* ex:set ts=8 noet: */
diff --git a/tepl/tepl-notebook.c b/tepl/tepl-notebook.c
index 95973fe..d7ab54a 100644
--- a/tepl/tepl-notebook.c
+++ b/tepl/tepl-notebook.c
@@ -40,6 +40,7 @@ enum
{
PROP_0,
PROP_ACTIVE_TAB,
+ PROP_ACTIVE_VIEW,
};
static void tepl_tab_group_interface_init (gpointer g_iface,
@@ -66,6 +67,10 @@ tepl_notebook_get_property (GObject *object,
g_value_set_object (value, tepl_tab_group_get_active_tab (tab_group));
break;
+ case PROP_ACTIVE_VIEW:
+ g_value_set_object (value, tepl_tab_group_get_active_view (tab_group));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -103,6 +108,7 @@ tepl_notebook_switch_page (GtkNotebook *notebook,
* other GtkNotebook signals?
*/
g_object_notify (G_OBJECT (notebook), "active-tab");
+ g_object_notify (G_OBJECT (notebook), "active-view");
}
static void
@@ -117,6 +123,7 @@ tepl_notebook_class_init (TeplNotebookClass *klass)
notebook_class->switch_page = tepl_notebook_switch_page;
g_object_class_override_property (object_class, PROP_ACTIVE_TAB, "active-tab");
+ g_object_class_override_property (object_class, PROP_ACTIVE_VIEW, "active-view");
}
static GList *
diff --git a/tepl/tepl-tab-group.c b/tepl/tepl-tab-group.c
index 70bf7c9..aadf9ee 100644
--- a/tepl/tepl-tab-group.c
+++ b/tepl/tepl-tab-group.c
@@ -19,6 +19,7 @@
#include "tepl-tab-group.h"
#include "tepl-tab.h"
+#include "tepl-view.h"
/**
* SECTION:tab-group
@@ -67,6 +68,21 @@ tepl_tab_group_default_init (TeplTabGroupInterface *interface)
TEPL_TYPE_TAB,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
+
+ /**
+ * TeplTabGroup:active-view:
+ *
+ * The #TeplView of the active tab.
+ *
+ * Since: 3.0
+ */
+ g_object_interface_install_property (interface,
+ g_param_spec_object ("active-view",
+ "Active View",
+ "",
+ TEPL_TYPE_VIEW,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
}
/**
diff --git a/tepl/tepl-tab.c b/tepl/tepl-tab.c
index 148c57f..e4d78fa 100644
--- a/tepl/tepl-tab.c
+++ b/tepl/tepl-tab.c
@@ -56,6 +56,7 @@ enum
PROP_0,
PROP_VIEW,
PROP_ACTIVE_TAB,
+ PROP_ACTIVE_VIEW,
};
static void tepl_tab_group_interface_init (gpointer g_iface,
@@ -183,6 +184,10 @@ tepl_tab_get_property (GObject *object,
g_value_set_object (value, tepl_tab_group_get_active_tab (TEPL_TAB_GROUP (tab)));
break;
+ case PROP_ACTIVE_VIEW:
+ g_value_set_object (value, tepl_tab_group_get_active_view (TEPL_TAB_GROUP (tab)));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -250,6 +255,7 @@ tepl_tab_class_init (TeplTabClass *klass)
G_PARAM_STATIC_STRINGS));
g_object_class_override_property (object_class, PROP_ACTIVE_TAB, "active-tab");
+ g_object_class_override_property (object_class, PROP_ACTIVE_VIEW, "active-view");
}
static GList *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]