[anjuta/git-shell] libanjuta: Add selection signals to AnjutaDockPane
- From: James Liggett <jrliggett src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta/git-shell] libanjuta: Add selection signals to AnjutaDockPane
- Date: Tue, 6 Jul 2010 02:04:56 +0000 (UTC)
commit acf990501adb963a980f873405263272a2c9a473
Author: James Liggett <jrliggett cox net>
Date: Thu Jun 24 17:21:25 2010 -0700
libanjuta: Add selection signals to AnjutaDockPane
The new signals, single-selection-changed and multiple-selection-changed, now
give us the opportunity to build dock panes that let users know when the items
the user has selected have changed.
libanjuta/anjuta-dock-pane.c | 83 ++++++++++++++++++++++++++++++++++++++++++
libanjuta/anjuta-dock-pane.h | 6 +++
2 files changed, 89 insertions(+), 0 deletions(-)
---
diff --git a/libanjuta/anjuta-dock-pane.c b/libanjuta/anjuta-dock-pane.c
index 96ae621..f7a3a6e 100644
--- a/libanjuta/anjuta-dock-pane.c
+++ b/libanjuta/anjuta-dock-pane.c
@@ -38,6 +38,16 @@ enum
ANJUTA_DOCK_PANE_PLUGIN = 1
};
+enum
+{
+ SINGLE_SELECTION_CHANGED,
+ MULTIPLE_SELECTION_CHANGED,
+
+ LAST_SIGNAL
+};
+
+static guint anjuta_dock_pane_signals[LAST_SIGNAL] = { 0 };
+
struct _AnjutaDockPanePriv
{
AnjutaPlugin *plugin;
@@ -102,6 +112,16 @@ anjuta_dock_pane_get_property (GObject *object, guint property_id,
}
static void
+anjuta_dock_pane_single_selection_changed (AnjutaDockPane *pane)
+{
+}
+
+static void
+anjuta_dock_pane_multiple_selection_changed (AnjutaDockPane *pane)
+{
+}
+
+static void
anjuta_dock_pane_class_init (AnjutaDockPaneClass *klass)
{
GObjectClass* object_class = G_OBJECT_CLASS (klass);
@@ -112,6 +132,8 @@ anjuta_dock_pane_class_init (AnjutaDockPaneClass *klass)
object_class->get_property = anjuta_dock_pane_get_property;
klass->refresh = NULL;
klass->get_widget = NULL;
+ klass->single_selection_changed = anjuta_dock_pane_single_selection_changed;
+ klass->multiple_selection_changed = anjuta_dock_pane_multiple_selection_changed;
param_spec = g_param_spec_object ("plugin", "Plugin",
"Plugin object associated with this pane.",
@@ -119,6 +141,44 @@ anjuta_dock_pane_class_init (AnjutaDockPaneClass *klass)
G_PARAM_READWRITE);
g_object_class_install_property (object_class, ANJUTA_DOCK_PANE_PLUGIN,
param_spec);
+
+ /**
+ * AnjutaDockPane::single-selection-changed
+ * @pane: An AnjutaDockPane
+ *
+ * This signal is emitted by pane subclasses to notify clients that
+ * the user has selected an item. This signal should be used when users are
+ * expected to only select one item at a time.
+ */
+ anjuta_dock_pane_signals[SINGLE_SELECTION_CHANGED] =
+ g_signal_new ("single-selection-changed",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (AnjutaDockPaneClass, single_selection_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
+ /**
+ * AnjutaDockPane::multiple-selection-changed
+ * @pane: An AnjutaDockPane
+ *
+ * This signal is emitted by pane subclasses to notify clients that the set
+ * of selected items in the pane has changed.
+ */
+ anjuta_dock_pane_signals[MULTIPLE_SELECTION_CHANGED] =
+ g_signal_new ("multiple-selection-changed",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (AnjutaDockPaneClass, multiple_selection_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+
}
/**
@@ -165,3 +225,26 @@ anjuta_dock_pane_get_plugin (AnjutaDockPane *self)
return self->priv->plugin;
}
+/**
+ * anjuta_dock_pane_notify_single_selection_changed:
+ * @self: An AnjutaDockPane
+ *
+ * Emits the single-selection-changed signal.
+ */
+void
+anjuta_dock_pane_notify_single_selection_changed (AnjutaDockPane *self)
+{
+ g_signal_emit_by_name (self, "single-selection-changed", NULL);
+}
+
+/**
+ * anjuta_dock_pane_notify_multiple_selection_changed:
+ * @pane: An AnjutaDockPane
+ *
+ * Emits the multiple-selection-changed signal.
+ */
+void
+anjuta_dock_pane_notify_multiple_selection_changed (AnjutaDockPane *self)
+{
+ g_signal_emit_by_name (self, "multiple-selection-changed", NULL);
+}
\ No newline at end of file
diff --git a/libanjuta/anjuta-dock-pane.h b/libanjuta/anjuta-dock-pane.h
index bd754ec..8facc4c 100644
--- a/libanjuta/anjuta-dock-pane.h
+++ b/libanjuta/anjuta-dock-pane.h
@@ -44,6 +44,10 @@ struct _AnjutaDockPaneClass
/* Virtual methods */
void (*refresh) (AnjutaDockPane *self);
GtkWidget * (*get_widget) (AnjutaDockPane *self);
+
+ /* Signals */
+ void (*single_selection_changed) (AnjutaDockPane *self);
+ void (*multiple_selection_changed) (AnjutaDockPane *self);
};
struct _AnjutaDockPane
@@ -57,6 +61,8 @@ GType anjuta_dock_pane_get_type (void) G_GNUC_CONST;
void anjuta_dock_pane_refresh (AnjutaDockPane *self);
GtkWidget *anjuta_dock_pane_get_widget (AnjutaDockPane *self);
AnjutaPlugin *anjuta_dock_pane_get_plugin (AnjutaDockPane *self);
+void anjuta_dock_pane_notify_single_selection_changed (AnjutaDockPane *self);
+void anjuta_dock_pane_notify_multiple_selection_changed (AnjutaDockPane *self);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]