[glade3/signal-tree-model: 40/43] signal-editor, signal-model: Added adding and changing of signal handlers
- From: Johannes Schmid <jhs src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade3/signal-tree-model: 40/43] signal-editor, signal-model: Added adding and changing of signal handlers
- Date: Fri, 9 Jul 2010 20:57:39 +0000 (UTC)
commit fc84a8989fac660e4aafc86ebb82eae7fde03424
Author: Johannes Schmid <jhs gnome org>
Date: Tue Jul 6 19:57:59 2010 +0200
signal-editor, signal-model: Added adding and changing of signal handlers
Also fixed the iter->stamp stuff to change correctly when an iterator becomes invalid.
gladeui/glade-signal-editor.c | 303 ++++++++++++++++++++++++++++++++++-------
gladeui/glade-signal-model.c | 147 ++++++++++++++++++---
gladeui/glade-signal-model.h | 5 +-
3 files changed, 387 insertions(+), 68 deletions(-)
---
diff --git a/gladeui/glade-signal-editor.c b/gladeui/glade-signal-editor.c
index 0bc4de4..041cac2 100644
--- a/gladeui/glade-signal-editor.c
+++ b/gladeui/glade-signal-editor.c
@@ -45,6 +45,7 @@
#include "glade-command.h"
#include "glade-marshallers.h"
#include "glade-accumulators.h"
+#include "glade-project.h"
G_DEFINE_TYPE (GladeSignalEditor, glade_signal_editor, GTK_TYPE_VBOX)
@@ -56,16 +57,209 @@ struct _GladeSignalEditorPrivate
GladeWidgetAdaptor* adaptor;
GtkWidget* signal_tree;
+ GtkTreeViewColumn* column_name;
+ GtkTreeViewColumn* column_handler;
+ GtkTreeViewColumn* column_userdata;
+ GtkTreeViewColumn* column_swap;
+ GtkTreeViewColumn* column_after;
+
+ GtkCellRenderer* renderer_userdata;
};
-#define HANDLER_DEFAULT _("<Type here>")
-#define USERDATA_DEFAULT _("<Object>")
+/* Signal handlers */
+static void
+on_handler_edited (GtkCellRendererText* renderer,
+ gchar* path,
+ gchar* handler,
+ gpointer user_data)
+{
+ GladeSignalEditor* self = GLADE_SIGNAL_EDITOR(user_data);
+ GtkTreePath* tree_path = gtk_tree_path_new_from_string (path);
+ GtkTreeIter iter;
+ gchar* name;
+ gchar* old_handler;
+ gboolean not_dummy;
+
+ g_return_if_fail (self->priv->widget != NULL);
+
+ gtk_tree_model_get_iter (self->priv->model,
+ &iter,
+ tree_path);
+
+ gtk_tree_model_get (self->priv->model, &iter,
+ GLADE_SIGNAL_COLUMN_NOT_DUMMY, ¬_dummy,
+ GLADE_SIGNAL_COLUMN_HANDLER, &old_handler, -1);
+
+ /* False alarm ? */
+ if (handler && !g_str_equal (old_handler, handler))
+ {
+ if (not_dummy)
+ {
+ /* change an existing signal handler */
+ GladeSignal* old_signal;
+ GladeSignal* new_signal;
+
+ gtk_tree_model_get (self->priv->model,
+ &iter,
+ GLADE_SIGNAL_COLUMN_SIGNAL,
+ &old_signal, -1);
+
+ new_signal = glade_signal_clone (old_signal);
+
+ /* Change the new signal handler */
+ g_free (new_signal->handler);
+ new_signal->handler = g_strdup(handler);
+
+ glade_command_change_signal (self->priv->widget, old_signal, new_signal);
+
+ glade_signal_free (new_signal);
+ }
+ else
+ {
+ GtkTreeIter parent;
+ GladeSignal* signal;
+
+ /* Get the signal name */
+ gtk_tree_model_iter_parent (self->priv->model, &parent, &iter);
+ gtk_tree_model_get (self->priv->model, &parent,
+ GLADE_SIGNAL_COLUMN_NAME, &name,
+ -1);
+
+ /* Add a new signal handler */
+ signal = glade_signal_new (name, handler, NULL, FALSE, FALSE);
+ glade_command_add_signal (self->priv->widget, signal);
+
+ /* Select next column */
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW(self->priv->signal_tree),
+ tree_path,
+ self->priv->column_userdata,
+ TRUE);
+ glade_signal_free (signal);
+ }
+ }
+ g_free (name);
+ g_free (old_handler);
+ gtk_tree_path_free (tree_path);
+}
+
+static void
+on_userdata_edited (GtkCellRendererText* renderer,
+ gchar* path,
+ gchar* new_userdata,
+ gpointer user_data)
+{
+ GladeSignalEditor* self = GLADE_SIGNAL_EDITOR(user_data);
+ GtkTreePath* tree_path = gtk_tree_path_new_from_string (path);
+ GtkTreeIter iter;
+ gchar* old_userdata;
+
+ g_return_if_fail (self->priv->widget != NULL);
+
+ gtk_tree_model_get_iter (self->priv->model,
+ &iter,
+ tree_path);
+
+ gtk_tree_model_get (self->priv->model, &iter,
+ GLADE_SIGNAL_COLUMN_OBJECT, &old_userdata, -1);
+
+ /* False alarm ? */
+ if (new_userdata && !g_str_equal (old_userdata, new_userdata))
+ {
+ /* change an existing signal handler */
+ GladeSignal* old_signal;
+ GladeSignal* new_signal;
+
+ gtk_tree_model_get (self->priv->model,
+ &iter,
+ GLADE_SIGNAL_COLUMN_SIGNAL,
+ &old_signal, -1);
+
+ new_signal = glade_signal_clone (old_signal);
+
+ /* Change the new signal handler */
+ g_free (new_signal->userdata);
+ new_signal->userdata = g_strdup(new_userdata);
+
+ glade_command_change_signal (self->priv->widget, old_signal, new_signal);
+
+ glade_signal_free (new_signal);
+ }
+ g_free (old_userdata);
+ gtk_tree_path_free (tree_path);
+}
+
+static void
+on_swap_toggled (GtkCellRendererToggle* renderer,
+ gchar* path,
+ gpointer user_data)
+{
+ GladeSignalEditor* self = GLADE_SIGNAL_EDITOR(user_data);
+ GtkTreePath* tree_path = gtk_tree_path_new_from_string (path);
+ GtkTreeIter iter;
+ GladeSignal* old_signal;
+ GladeSignal* new_signal;
+
+ g_return_if_fail (self->priv->widget != NULL);
+
+ gtk_tree_model_get_iter (self->priv->model,
+ &iter,
+ tree_path);
+
+ gtk_tree_model_get (self->priv->model,
+ &iter,
+ GLADE_SIGNAL_COLUMN_SIGNAL,
+ &old_signal, -1);
+
+ new_signal = glade_signal_clone (old_signal);
+
+ /* Change the new signal handler */
+ new_signal->swapped = !gtk_cell_renderer_toggle_get_active (renderer);
+
+ glade_command_change_signal (self->priv->widget, old_signal, new_signal);
+
+ glade_signal_free (new_signal);
+
+ gtk_tree_path_free (tree_path);
+}
+
+static void
+on_after_toggled (GtkCellRendererToggle* renderer,
+ gchar* path,
+ gpointer user_data)
+{
+ GladeSignalEditor* self = GLADE_SIGNAL_EDITOR(user_data);
+ GtkTreePath* tree_path = gtk_tree_path_new_from_string (path);
+ GtkTreeIter iter;
+ GladeSignal* old_signal;
+ GladeSignal* new_signal;
+
+ g_return_if_fail (self->priv->widget != NULL);
+
+ gtk_tree_model_get_iter (self->priv->model,
+ &iter,
+ tree_path);
+
+ gtk_tree_model_get (self->priv->model,
+ &iter,
+ GLADE_SIGNAL_COLUMN_SIGNAL,
+ &old_signal, -1);
+
+ new_signal = glade_signal_clone (old_signal);
+
+ /* Change the new signal handler */
+ new_signal->after = !gtk_cell_renderer_toggle_get_active (renderer);
+
+ glade_command_change_signal (self->priv->widget, old_signal, new_signal);
+
+ glade_signal_free (new_signal);
+
+ gtk_tree_path_free (tree_path);
+}
/**
* glade_signal_editor_new:
- * @editor: a #GladeEditor
*
- * Returns: a new #GladeSignalEditor associated with @editor
+ * Returns: a new #GladeSignalEditor
*/
GladeSignalEditor *
glade_signal_editor_new ()
@@ -81,9 +275,10 @@ glade_signal_editor_new ()
/**
* glade_signal_editor_load_widget:
* @editor: a #GladeSignalEditor
- * @widget: a #GladeWidget
+ * @widget: a #GladeWidget or NULL
*
- * TODO: write me
+ * Load a widget in the signal editor. This will show all signals of the widget
+ * an it's accessors in the signal editor where the user can edit them.
*/
void
glade_signal_editor_load_widget (GladeSignalEditor *editor,
@@ -92,9 +287,7 @@ glade_signal_editor_load_widget (GladeSignalEditor *editor,
GladeSignalEditorPrivate *priv = editor->priv;
if (priv->widget != widget)
- {
- if (priv->widget)
-
+ {
priv->widget = widget;
priv->adaptor = widget ? widget->adaptor : NULL;
@@ -115,6 +308,7 @@ glade_signal_editor_load_widget (GladeSignalEditor *editor,
priv->model = glade_signal_model_new (widget);
gtk_tree_view_set_model (GTK_TREE_VIEW (priv->signal_tree), priv->model);
+ g_object_set (priv->renderer_userdata, "model", glade_app_get_project (), NULL);
}
static void
@@ -132,62 +326,73 @@ glade_signal_editor_init (GladeSignalEditor *self)
{
GtkWidget *scroll;
GtkCellRenderer* renderer;
- GtkTreeViewColumn* column;
-
+ GladeSignalEditorPrivate* priv;
+
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GLADE_TYPE_SIGNAL_EDITOR, GladeSignalEditorPrivate);
-
+ priv = self->priv;
+
/* Create signal tree */
- self->priv->signal_tree = gtk_tree_view_new ();
+ priv->signal_tree = gtk_tree_view_new ();
/* Create columns */
/* Signal name */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Signal"),
- renderer,
- "text", GLADE_SIGNAL_COLUMN_NAME,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), column);
+ priv->column_name = gtk_tree_view_column_new_with_attributes (_("Signal"),
+ renderer,
+ "text", GLADE_SIGNAL_COLUMN_NAME,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), priv->column_name);
/* Signal handler */
renderer = gtk_cell_renderer_text_new ();
- g_object_set (renderer, "foreground", "grey", NULL);
- column = gtk_tree_view_column_new_with_attributes (_("Handler"),
- renderer,
- "text", GLADE_SIGNAL_COLUMN_HANDLER,
- "visible", GLADE_SIGNAL_COLUMN_IS_HANDLER,
- "foreground-set", GLADE_SIGNAL_COLUMN_IS_DUMMY,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), column);
-
+ g_object_set (renderer,
+ "editable", TRUE, NULL);
+ g_signal_connect (renderer, "edited", G_CALLBACK(on_handler_edited), self);
+ priv->column_handler = gtk_tree_view_column_new_with_attributes (_("Handler"),
+ renderer,
+ "text", GLADE_SIGNAL_COLUMN_HANDLER,
+ "visible", GLADE_SIGNAL_COLUMN_IS_HANDLER,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), priv->column_handler);
/* Signal user_data */
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("User data"),
- renderer,
- "text", GLADE_SIGNAL_COLUMN_OBJECT,
- "visible", GLADE_SIGNAL_COLUMN_IS_HANDLER,
- "sensitive", GLADE_SIGNAL_COLUMN_IS_DUMMY,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), column);
+ priv->renderer_userdata = gtk_cell_renderer_combo_new ();
+ g_signal_connect (priv->renderer_userdata, "edited", G_CALLBACK(on_userdata_edited),
+ self);
+ g_object_set (priv->renderer_userdata,
+ "has-entry", FALSE,
+ "text-column", GLADE_PROJECT_MODEL_COLUMN_NAME,
+ NULL);
+
+ priv->column_userdata = gtk_tree_view_column_new_with_attributes (_("User data"),
+ priv->renderer_userdata,
+ "text", GLADE_SIGNAL_COLUMN_OBJECT,
+ "visible", GLADE_SIGNAL_COLUMN_IS_HANDLER,
+ "sensitive", GLADE_SIGNAL_COLUMN_NOT_DUMMY,
+ "editable", GLADE_SIGNAL_COLUMN_NOT_DUMMY,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), priv->column_userdata);
/* Swap signal */
renderer = gtk_cell_renderer_toggle_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Swap"),
- renderer,
- "active", GLADE_SIGNAL_COLUMN_SWAP,
- "visible", GLADE_SIGNAL_COLUMN_IS_HANDLER,
- "sensitive", GLADE_SIGNAL_COLUMN_IS_DUMMY,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), column);
+ g_signal_connect (renderer, "toggled", G_CALLBACK (on_swap_toggled), self);
+ priv->column_swap = gtk_tree_view_column_new_with_attributes (_("Swap"),
+ renderer,
+ "active", GLADE_SIGNAL_COLUMN_SWAP,
+ "visible", GLADE_SIGNAL_COLUMN_IS_HANDLER,
+ "sensitive", GLADE_SIGNAL_COLUMN_NOT_DUMMY,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), priv->column_swap);
/* After */
renderer = gtk_cell_renderer_toggle_new ();
- column = gtk_tree_view_column_new_with_attributes (_("After"),
- renderer,
- "active", GLADE_SIGNAL_COLUMN_AFTER,
- "visible", GLADE_SIGNAL_COLUMN_IS_HANDLER,
- "sensitive", GLADE_SIGNAL_COLUMN_IS_DUMMY,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), column);
+ g_signal_connect (renderer, "toggled", G_CALLBACK (on_after_toggled), self);
+ priv->column_after = gtk_tree_view_column_new_with_attributes (_("After"),
+ renderer,
+ "active", GLADE_SIGNAL_COLUMN_AFTER,
+ "visible", GLADE_SIGNAL_COLUMN_IS_HANDLER,
+ "sensitive", GLADE_SIGNAL_COLUMN_NOT_DUMMY,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->signal_tree), priv->column_after);
/* Create scrolled window */
scroll = gtk_scrolled_window_new (NULL, NULL);
diff --git a/gladeui/glade-signal-model.c b/gladeui/glade-signal-model.c
index a4e5513..f8a7cdb 100644
--- a/gladeui/glade-signal-model.c
+++ b/gladeui/glade-signal-model.c
@@ -5,7 +5,7 @@
*
* glade3 is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
- * Free Software Foundation, either version 3 of the License, or
+ * Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* glade3 is distributed in the hope that it will be useful, but
@@ -16,10 +16,18 @@
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
#include "glade-signal-model.h"
+
+#include <glib/gi18n-lib.h>
#include <string.h>
+#define HANDLER_DEFAULT _("<Type here>")
+#define USERDATA_DEFAULT _("<Object>")
+
struct _GladeSignalModelPrivate
{
GladeWidget *widget;
@@ -37,6 +45,16 @@ enum
static void gtk_tree_model_iface_init (GtkTreeModelIface* iface);
+static void
+on_glade_signal_model_added (GladeWidget* widget, const GladeSignal* signal,
+ GladeSignalModel* model);
+static void
+on_glade_signal_model_removed (GladeWidget* widget, const GladeSignal* signal,
+ GladeSignalModel* model);
+static void
+on_glade_signal_model_changed (GladeWidget* widget, const GladeSignal* old_signal,
+ const GladeSignal* new_signal, GladeSignalModel* model);
+
G_DEFINE_TYPE_WITH_CODE (GladeSignalModel, glade_signal_model, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL,
gtk_tree_model_iface_init))
@@ -87,6 +105,15 @@ glade_signal_model_set_property (GObject *object, guint prop_id, const GValue *v
case PROP_WIDGET:
sig_model->priv->widget = g_value_get_object (value);
glade_signal_model_create_widget_list (sig_model);
+ g_signal_connect (sig_model->priv->widget,
+ "add-signal-handler",
+ G_CALLBACK (on_glade_signal_model_added), sig_model);
+ g_signal_connect (sig_model->priv->widget,
+ "remove-signal-handler",
+ G_CALLBACK (on_glade_signal_model_removed), sig_model);
+ g_signal_connect (sig_model->priv->widget,
+ "change-signal-handler",
+ G_CALLBACK (on_glade_signal_model_changed), sig_model);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -180,8 +207,10 @@ glade_signal_model_get_column_type (GtkTreeModel* model,
return G_TYPE_BOOLEAN;
case GLADE_SIGNAL_COLUMN_IS_HANDLER:
return G_TYPE_BOOLEAN;
- case GLADE_SIGNAL_COLUMN_IS_DUMMY:
+ case GLADE_SIGNAL_COLUMN_NOT_DUMMY:
return G_TYPE_BOOLEAN;
+ case GLADE_SIGNAL_COLUMN_SIGNAL:
+ return G_TYPE_POINTER;
default:
g_assert_not_reached();
return G_TYPE_NONE;
@@ -205,8 +234,8 @@ glade_signal_model_get_dummy_handler (GladeSignalModel* model, GladeSignalClass*
if (!signal)
{
signal = glade_signal_new (sig_class->name,
- "<Handler>",
- "",
+ HANDLER_DEFAULT,
+ USERDATA_DEFAULT,
FALSE,
FALSE);
g_hash_table_insert (model->priv->dummy_signals, (gpointer) sig_class->name, signal);
@@ -215,17 +244,17 @@ glade_signal_model_get_dummy_handler (GladeSignalModel* model, GladeSignalClass*
}
static gboolean
-glade_signal_model_is_dummy_handler (GladeSignalModel* model,
- GtkTreeIter* iter)
+glade_signal_model_not_dummy_handler (GladeSignalModel* model,
+ GtkTreeIter* iter)
{
const gchar* widget = iter->user_data;
GladeSignalClass* sig_class = iter->user_data2;
GladeSignal* handler = iter->user_data3;
if (widget && sig_class && handler)
- return handler == glade_signal_model_get_dummy_handler (model,
+ return handler != glade_signal_model_get_dummy_handler (model,
sig_class);
- return FALSE;
+ return TRUE;
}
static void
@@ -243,12 +272,12 @@ static void
glade_signal_model_create_handler_iter (GladeSignalModel* sig_model,
const gchar* widget,
GladeSignalClass* signal_class,
- GladeSignal* signal,
+ const GladeSignal* signal,
GtkTreeIter* iter)
{
glade_signal_model_create_widget_iter (sig_model, widget, iter);
iter->user_data2 = signal_class;
- iter->user_data3 = signal;
+ iter->user_data3 = (GladeSignal*) signal;
}
static void
@@ -279,6 +308,80 @@ static GList* glade_signal_model_create_signal_list (GladeSignalModel* sig_model
}
static gboolean
+glade_signal_model_iter_for_signal (GladeSignalModel* model, const GladeSignal* signal, GtkTreeIter* iter)
+{
+ GList* list;
+
+ for (list = model->priv->widget->adaptor->signals;
+ list != NULL; list = g_list_next (list))
+ {
+ GladeSignalClass *sig_class = (GladeSignalClass *) list->data;
+ if (g_str_equal (signal->name, sig_class->name))
+ {
+ glade_signal_model_create_handler_iter (model,
+ sig_class->type,
+ sig_class,
+ signal,
+ iter);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static void
+on_glade_signal_model_added (GladeWidget* widget, const GladeSignal* signal,
+ GladeSignalModel* model)
+{
+ GtkTreeIter iter;
+ if (glade_signal_model_iter_for_signal (model, signal, &iter))
+ {
+ GtkTreePath* path = gtk_tree_model_get_path (GTK_TREE_MODEL (model),
+ &iter);
+ gtk_tree_model_row_inserted (GTK_TREE_MODEL (model),
+ path,
+ &iter);
+ gtk_tree_path_free (path);
+ model->priv->stamp++;
+ }
+}
+
+static void
+on_glade_signal_model_removed (GladeWidget* widget, const GladeSignal* signal,
+ GladeSignalModel* model)
+{
+ GtkTreeIter iter;
+ if (glade_signal_model_iter_for_signal (model, signal, &iter))
+ {
+ GtkTreePath* path = gtk_tree_model_get_path (GTK_TREE_MODEL (model),
+ &iter);
+ gtk_tree_model_row_deleted (GTK_TREE_MODEL (model),
+ gtk_tree_model_get_path (GTK_TREE_MODEL (model),
+ &iter));
+ gtk_tree_path_free (path);
+ model->priv->stamp++;
+ }
+}
+
+static void
+on_glade_signal_model_changed (GladeWidget* widget, const GladeSignal* old_signal,
+ const GladeSignal* new_signal, GladeSignalModel* model)
+{
+ GtkTreeIter iter;
+ if (glade_signal_model_iter_for_signal (model, new_signal, &iter))
+ {
+ GtkTreePath* path = gtk_tree_model_get_path (GTK_TREE_MODEL (model),
+ &iter);
+ gtk_tree_model_row_changed (GTK_TREE_MODEL (model),
+ gtk_tree_model_get_path (GTK_TREE_MODEL (model),
+ &iter),
+ &iter);
+ gtk_tree_path_free (path);
+ model->priv->stamp++;
+ }
+}
+
+static gboolean
glade_signal_model_get_iter (GtkTreeModel* model,
GtkTreeIter* iter,
GtkTreePath* path)
@@ -389,9 +492,10 @@ glade_signal_model_get_path (GtkTreeModel* model,
{
/* Handler */
GPtrArray* handlers;
- gint index0, index1, index2;
+ gint index0, index1, index2;
GList* signals = glade_signal_model_create_signal_list (sig_model,
widget);
+
index0 = g_list_index (sig_model->priv->widgets,
widget);
index1 = g_list_index (signals, sig_class);
@@ -411,8 +515,8 @@ glade_signal_model_get_path (GtkTreeModel* model,
index2 = g_ptr_array_find (handlers, handler);
else
g_assert_not_reached();
-
- g_list_free (signals);
+
+ g_list_free (signals);
return gtk_tree_path_new_from_indices (index0, index1, index2, -1);
}
else if (sig_class)
@@ -481,8 +585,14 @@ glade_signal_model_get_value (GtkTreeModel* model,
break;
case GLADE_SIGNAL_COLUMN_OBJECT:
if (widget && sig_class && handler)
- g_value_set_static_string (value,
- handler->userdata);
+ {
+ if (handler->userdata && strlen (handler->userdata))
+ g_value_set_static_string (value,
+ handler->userdata);
+ else
+ g_value_set_static_string (value,
+ USERDATA_DEFAULT);
+ }
else
g_value_set_static_string (value,
"");
@@ -511,11 +621,14 @@ glade_signal_model_get_value (GtkTreeModel* model,
g_value_set_boolean (value,
!(widget && sig_class && handler));
break;
- case GLADE_SIGNAL_COLUMN_IS_DUMMY:
+ case GLADE_SIGNAL_COLUMN_NOT_DUMMY:
g_value_set_boolean (value,
- glade_signal_model_is_dummy_handler (sig_model,
+ glade_signal_model_not_dummy_handler (sig_model,
iter));
break;
+ case GLADE_SIGNAL_COLUMN_SIGNAL:
+ g_value_set_pointer (value, handler);
+ break;
default:
g_assert_not_reached();
}
diff --git a/gladeui/glade-signal-model.h b/gladeui/glade-signal-model.h
index 3eb10ab..3aa9c34 100644
--- a/gladeui/glade-signal-model.h
+++ b/gladeui/glade-signal-model.h
@@ -5,7 +5,7 @@
*
* glade3 is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
- * Free Software Foundation, either version 3 of the License, or
+ * Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* glade3 is distributed in the hope that it will be useful, but
@@ -45,8 +45,9 @@ typedef enum
GLADE_SIGNAL_COLUMN_AFTER,
GLADE_SIGNAL_COLUMN_IS_HANDLER,
GLADE_SIGNAL_COLUMN_IS_LABEL,
- GLADE_SIGNAL_COLUMN_IS_DUMMY,
+ GLADE_SIGNAL_COLUMN_NOT_DUMMY,
GLADE_SIGNAL_COLUMN_VERSION_WARNING,
+ GLADE_SIGNAL_COLUMN_SIGNAL,
GLADE_SIGNAL_N_COLUMNS
} GladeSignalModelColumns;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]