[glade3/project-tree-model] signal-editor: clean-up public members and remove silly signals all over.
- From: Johannes Schmid <jhs src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade3/project-tree-model] signal-editor: clean-up public members and remove silly signals all over.
- Date: Sun, 9 May 2010 19:20:23 +0000 (UTC)
commit e4d2dd81f095e25daa5f323f021c8cb6fa2d4e5f
Author: Johannes Schmid <jhs gnome org>
Date: Fri May 7 16:07:24 2010 +0200
signal-editor: clean-up public members and remove silly signals all over.
If there is a need for these signals it should be done in another way.
gladeui/glade-signal-editor.c | 514 ++++++++++++++++++++---------------------
gladeui/glade-signal-editor.h | 57 +----
src/glade-window.c | 10 -
3 files changed, 252 insertions(+), 329 deletions(-)
---
diff --git a/gladeui/glade-signal-editor.c b/gladeui/glade-signal-editor.c
index c356ade..6b88636 100644
--- a/gladeui/glade-signal-editor.c
+++ b/gladeui/glade-signal-editor.c
@@ -28,10 +28,7 @@
* SECTION:glade-signal-editor
* @Title: GladeSignalEditor
* @Short_Description: An interface to edit signals for a #GladeWidget.
- *
- * This isnt really a dockable widget, since you need to access the
- * #GladeSignalEditor struct's '->main_window' widget, the signal editor
- * is mostly of interest when implementing a custom object editor.
+ *W
*/
#include <string.h>
@@ -52,9 +49,7 @@
enum
{
HANDLER_EDITING_STARTED,
- HANDLER_EDITING_DONE,
USERDATA_EDITING_STARTED,
- USERDATA_EDITING_DONE,
LAST_SIGNAL
};
@@ -69,15 +64,48 @@ enum
PROP_USERDATA_RENDERER
};
-static guint glade_signal_editor_signals[LAST_SIGNAL] = {0};
+G_DEFINE_TYPE (GladeSignalEditor, glade_signal_editor, GTK_TYPE_VBOX)
+
+struct _GladeSignalEditorPrivate
+{
+ GladeWidget *widget;
+ GladeWidgetAdaptor *adaptor;
-G_DEFINE_TYPE (GladeSignalEditor, glade_signal_editor, G_TYPE_OBJECT)
+ gpointer *editor;
+ GtkWidget *signals_list;
+ GtkTreeStore *model;
+ GtkTreeView *tree_view;
+
+ GtkTreeModel *handler_store;
+ GtkTreeModel *userdata_store;
+ GtkCellRenderer *handler_renderer;
+ GtkCellRenderer *userdata_renderer;
+
+ GtkTreeViewColumn *handler_column;
+ GtkTreeViewColumn *userdata_column;
+ GtkTreeViewColumn *swapped_column_ptr;
+ IsVoidFunc is_void_handler;
+ IsVoidFunc is_void_userdata;
+
+ gulong refresh_id;
+};
#define HANDLER_DEFAULT _("<Type here>")
#define USERDATA_DEFAULT _("<Object>")
static gboolean
+glade_signal_editor_handler_editing_started_default (GladeSignalEditor *editor,
+ gchar *signal_name,
+ GtkTreeIter *iter,
+ GtkCellEditable *editable);
+static gboolean
+glade_signal_editor_userdata_editing_started_default (GladeSignalEditor *editor,
+ gchar *signal_name,
+ GtkTreeIter *iter,
+ GtkCellEditable *editable);
+
+static gboolean
is_void_handler (const gchar *signal_handler)
{
return ( signal_handler == NULL ||
@@ -99,7 +127,8 @@ glade_signal_editor_after_swapped_toggled (GtkCellRendererToggle *cell,
gpointer data)
{
GladeSignalEditor *editor = (GladeSignalEditor*) data;
- GtkTreeModel *model = GTK_TREE_MODEL (editor->model);
+ GladeSignalEditorPrivate* priv = editor->priv;
+ GtkTreeModel *model = GTK_TREE_MODEL (priv->model);
GtkTreeIter iter;
GtkTreeIter iter_parent;
GladeSignal *old_signal;
@@ -145,7 +174,7 @@ glade_signal_editor_after_swapped_toggled (GtkCellRendererToggle *cell,
old_signal = glade_signal_new (signal_name, handler, userdata, after, swapped);
new_signal = glade_signal_new (signal_name, handler, userdata, new_after, new_swapped);
- glade_command_change_signal (editor->widget, old_signal, new_signal);
+ glade_command_change_signal (priv->widget, old_signal, new_signal);
gtk_tree_store_set (GTK_TREE_STORE (model), &iter,
GSE_COLUMN_AFTER, new_after,
@@ -165,11 +194,12 @@ append_slot (GladeSignalEditor *self, GtkTreeIter *iter_signal, const gchar *sig
{
GtkTreeIter iter_new_slot;
GtkTreeIter iter_class;
- GtkTreeModel *model = GTK_TREE_MODEL (self->model);
+ GladeSignalEditorPrivate* priv = self->priv;
+ GtkTreeModel *model = GTK_TREE_MODEL (priv->model);
GladeSignal *sig = glade_signal_new (signal_name, NULL, NULL, FALSE, FALSE);
/* Check versioning warning here with a virtual signal */
- glade_project_update_signal_support_warning (self->widget, sig);
+ glade_project_update_signal_support_warning (priv->widget, sig);
gtk_tree_store_append (GTK_TREE_STORE (model), &iter_new_slot, iter_signal);
gtk_tree_store_set (GTK_TREE_STORE (model), &iter_new_slot,
@@ -280,14 +310,15 @@ remove_slot (GtkTreeModel *model, GtkTreeIter *iter, GtkTreeIter *iter_signal)
}
static gboolean
-glade_signal_editor_handler_editing_done_impl (GladeSignalEditor *self,
- gchar *signal_name,
- gchar *old_handler,
- gchar *new_handler,
- GtkTreeIter *iter)
+glade_signal_editor_handler_editing_done (GladeSignalEditor *self,
+ const gchar *signal_name,
+ const gchar *old_handler,
+ const gchar *new_handler,
+ GtkTreeIter *iter)
{
- GladeWidget *glade_widget = self->widget;
- GtkTreeModel *model = GTK_TREE_MODEL (self->model);
+ GladeSignalEditorPrivate *priv = self->priv;
+ GladeWidget *glade_widget = priv->widget;
+ GtkTreeModel *model = GTK_TREE_MODEL (priv->model);
gchar *tmp_signal_name;
gchar *userdata;
GtkTreeIter iter_signal;
@@ -301,7 +332,7 @@ glade_signal_editor_handler_editing_done_impl (GladeSignalEditor *self,
GSE_COLUMN_SWAPPED, &swapped,
-1);
- if (self->is_void_userdata (userdata))
+ if (priv->is_void_userdata (userdata))
{
g_free (userdata);
userdata = NULL;
@@ -337,7 +368,7 @@ glade_signal_editor_handler_editing_done_impl (GladeSignalEditor *self,
}
/* we're removing a signal handler */
- if (old_handler && new_handler == NULL)
+ else if (old_handler && new_handler == NULL)
{
GladeSignal *old_signal =
glade_signal_new (signal_name,
@@ -367,7 +398,7 @@ glade_signal_editor_handler_editing_done_impl (GladeSignalEditor *self,
}
/* we're changing a signal handler */
- if (old_handler && new_handler)
+ else if (old_handler && new_handler)
{
GladeSignal *old_signal =
glade_signal_new
@@ -403,14 +434,15 @@ glade_signal_editor_handler_editing_done_impl (GladeSignalEditor *self,
}
static gboolean
-glade_signal_editor_userdata_editing_done_impl (GladeSignalEditor *self,
- gchar *signal_name,
- gchar *old_userdata,
- gchar *new_userdata,
- GtkTreeIter *iter)
+glade_signal_editor_userdata_editing_done (GladeSignalEditor *self,
+ const gchar *signal_name,
+ const gchar *old_userdata,
+ const gchar *new_userdata,
+ GtkTreeIter *iter)
{
- GtkTreeModel *model = GTK_TREE_MODEL (self->model);
- GladeWidget *glade_widget = self->widget;
+ GladeSignalEditorPrivate *priv = self->priv;
+ GtkTreeModel *model = GTK_TREE_MODEL (priv->model);
+ GladeWidget *glade_widget = priv->widget;
gchar *handler;
gboolean after, swapped;
GladeSignal *old_signal, *new_signal;
@@ -479,16 +511,15 @@ glade_signal_editor_column_cell_edited (const gchar *path_str,
const gchar *new_value,
gpointer data,
gint column,
- guint signal,
IsVoidFunc is_void_callback)
{
GladeSignalEditor* self = GLADE_SIGNAL_EDITOR (data);
- GtkTreeModel *model = GTK_TREE_MODEL (self->model);
+ GladeSignalEditorPrivate *priv = self->priv;
+ GtkTreeModel *model = GTK_TREE_MODEL (priv->model);
GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
GtkTreeIter iter;
gchar *signal_name;
gchar *old_value;
- gboolean handled;
g_return_if_fail (gtk_tree_model_get_iter (model, &iter, path));
gtk_tree_path_free (path);
@@ -508,9 +539,27 @@ glade_signal_editor_column_cell_edited (const gchar *path_str,
}
/* if not a false alarm */
- if (old_value || new_value)
- g_signal_emit (self, glade_signal_editor_signals[signal],
- 0, signal_name, old_value, new_value, &iter, &handled);
+ if (old_value || new_value);
+ {
+ switch (column)
+ {
+ case GSE_COLUMN_HANDLER:
+ glade_signal_editor_handler_editing_done (self,
+ signal_name,
+ old_value,
+ new_value,
+ &iter);
+ break;
+ case GSE_COLUMN_USERDATA:
+ glade_signal_editor_userdata_editing_done (self,
+ signal_name,
+ old_value,
+ new_value,
+ &iter);
+ break;
+
+ }
+ }
g_free (signal_name);
g_free (old_value);
@@ -525,9 +574,8 @@ glade_signal_editor_handler_cell_edited (GtkCellRendererText *cell,
GladeSignalEditor *editor = GLADE_SIGNAL_EDITOR (data);
glade_signal_editor_column_cell_edited (path_str, new_handler, data,
- GSE_COLUMN_HANDLER,
- HANDLER_EDITING_DONE,
- editor->is_void_handler);
+ GSE_COLUMN_HANDLER,
+ editor->priv->is_void_handler);
}
static void
@@ -539,9 +587,8 @@ glade_signal_editor_userdata_cell_edited (GtkCellRendererText *cell,
GladeSignalEditor *editor = GLADE_SIGNAL_EDITOR (data);
glade_signal_editor_column_cell_edited (path_str, new_userdata, data,
- GSE_COLUMN_USERDATA,
- USERDATA_EDITING_DONE,
- editor->is_void_userdata);
+ GSE_COLUMN_USERDATA,
+ editor->priv->is_void_userdata);
}
static void
@@ -550,18 +597,31 @@ glade_signal_editor_column_editing_started (GtkCellEditable *editable,
GladeSignalEditor *editor,
guint signal)
{
- GtkTreeModel *model = GTK_TREE_MODEL (editor->model);
+ GladeSignalEditorPrivate *priv = editor->priv;
+ GtkTreeModel *model = GTK_TREE_MODEL (priv->model);
GtkTreePath *path;
GtkTreeIter iter;
gchar *signal_name;
- gboolean handled;
path = gtk_tree_path_new_from_string (path_str);
g_return_if_fail (gtk_tree_model_get_iter (model, &iter, path));
gtk_tree_path_free (path);
signal_name = glade_signal_editor_get_signal_name (model, &iter);
- g_signal_emit (editor, glade_signal_editor_signals[signal], 0,
- signal_name, &iter, editable, &handled);
+ switch (signal)
+ {
+ case HANDLER_EDITING_STARTED:
+ glade_signal_editor_handler_editing_started_default (editor,
+ signal_name,
+ &iter,
+ editable);
+ break;
+ case USERDATA_EDITING_STARTED:
+ glade_signal_editor_userdata_editing_started_default (editor,
+ signal_name,
+ &iter,
+ editable);
+ break;
+ }
g_free (signal_name);
}
@@ -646,8 +706,9 @@ glade_signal_editor_devhelp_cb (GtkCellRenderer *cell,
const gchar *path_str,
GladeSignalEditor *editor)
{
+ GladeSignalEditorPrivate *priv = editor->priv;
GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
- GtkTreeModel *model = GTK_TREE_MODEL (editor->model);
+ GtkTreeModel *model = GTK_TREE_MODEL (priv->model);
GtkTreeIter iter;
GladeSignalClass *signal_class;
gchar *signal, *search, *book = NULL;
@@ -658,7 +719,7 @@ glade_signal_editor_devhelp_cb (GtkCellRenderer *cell,
signal = glade_signal_editor_get_signal_name (model, &iter);
search = g_strdup_printf ("The %s signal", signal);
- signal_class = glade_widget_adaptor_get_signal_class (editor->widget->adaptor,
+ signal_class = glade_widget_adaptor_get_signal_class (priv->widget->adaptor,
signal);
g_assert (signal_class);
@@ -712,8 +773,9 @@ glade_signal_editor_user_data_activate (GtkCellRenderer *icon_renderer,
const gchar *path_str,
GladeSignalEditor *editor)
{
+ GladeSignalEditorPrivate *priv = editor->priv;
GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
- GtkTreeModel *model = GTK_TREE_MODEL (editor->model);
+ GtkTreeModel *model = GTK_TREE_MODEL (priv->model);
GtkTreeIter iter;
gchar *object_name = NULL, *signal_name = NULL, *handler = NULL;
gboolean after, swapped;
@@ -729,7 +791,7 @@ glade_signal_editor_user_data_activate (GtkCellRenderer *icon_renderer,
GSE_COLUMN_AFTER, &after, -1);
signal_name = glade_signal_editor_get_signal_name (model, &iter);
- project = glade_widget_get_project (editor->widget);
+ project = glade_widget_get_project (priv->widget);
if (object_name)
{
@@ -737,20 +799,20 @@ glade_signal_editor_user_data_activate (GtkCellRenderer *icon_renderer,
selected = g_list_prepend (selected, project_object);
}
- exception = g_list_prepend (exception, editor->widget);
+ exception = g_list_prepend (exception, priv->widget);
if (glade_editor_property_show_object_dialog (project,
_("Select an object to pass to the handler"),
- gtk_widget_get_toplevel (editor->main_window),
+ gtk_widget_get_toplevel (GTK_WIDGET(editor)),
G_TYPE_OBJECT,
- editor->widget, &project_object))
+ priv->widget, &project_object))
{
GladeSignal *old_signal = glade_signal_new (signal_name, handler, object_name, after, swapped);
GladeSignal *new_signal = glade_signal_new (signal_name, handler,
project_object ? project_object->name : NULL,
after, swapped);
- glade_command_change_signal (editor->widget, old_signal, new_signal);
+ glade_command_change_signal (priv->widget, old_signal, new_signal);
glade_signal_free (old_signal);
glade_signal_free (new_signal);
@@ -789,7 +851,9 @@ glade_signal_editor_construct_signals_list (GladeSignalEditor *editor)
GtkCellRenderer *renderer;
GtkTreeModel *model;
- editor->model = gtk_tree_store_new
+ GladeSignalEditorPrivate *priv = editor->priv;
+
+ priv->model = gtk_tree_store_new
(GSE_NUM_COLUMNS,
G_TYPE_STRING, /* Signal value */
G_TYPE_STRING, /* Handler value */
@@ -807,7 +871,7 @@ glade_signal_editor_construct_signals_list (GladeSignalEditor *editor)
G_TYPE_BOOLEAN, /* Show a warning icon for the signal */
G_TYPE_STRING); /* A tooltip for the signal row */
- model = GTK_TREE_MODEL (editor->model);
+ model = GTK_TREE_MODEL (priv->model);
view_widget = gtk_tree_view_new_with_model (model);
g_object_set (G_OBJECT (view_widget), "enable-search", FALSE, NULL);
@@ -817,7 +881,7 @@ glade_signal_editor_construct_signals_list (GladeSignalEditor *editor)
gtk_tree_view_set_tooltip_column (view, GSE_COLUMN_TOOLTIP);
/* the view now holds a reference, we can get rid of our own */
- g_object_unref (G_OBJECT (editor->model));
+ g_object_unref (G_OBJECT (priv->model));
/************************ signal column ************************/
column = gtk_tree_view_column_new ();
@@ -851,77 +915,77 @@ glade_signal_editor_construct_signals_list (GladeSignalEditor *editor)
gtk_tree_view_append_column (view, column);
/************************ handler column ************************/
- if (!editor->handler_store)
- editor->handler_store = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+ if (!priv->handler_store)
+ priv->handler_store = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
- if (!editor->handler_renderer)
+ if (!priv->handler_renderer)
{
- editor->handler_renderer = gtk_cell_renderer_combo_new ();
- g_object_set (G_OBJECT (editor->handler_renderer),
- "model", editor->handler_store,
+ priv->handler_renderer = gtk_cell_renderer_combo_new ();
+ g_object_set (G_OBJECT (priv->handler_renderer),
+ "model", priv->handler_store,
"text-column", 0,
"ellipsize", PANGO_ELLIPSIZE_END,
"width-chars", 14,
NULL);
}
- g_signal_connect (editor->handler_renderer, "edited",
+ g_signal_connect (priv->handler_renderer, "edited",
G_CALLBACK (glade_signal_editor_handler_cell_edited), editor);
- g_signal_connect (editor->handler_renderer, "editing-started",
+ g_signal_connect (priv->handler_renderer, "editing-started",
G_CALLBACK (glade_signal_editor_handler_editing_started),
editor);
- if (!editor->handler_column)
+ if (!priv->handler_column)
{
- editor->handler_column = gtk_tree_view_column_new_with_attributes
- (NULL, editor->handler_renderer,
+ priv->handler_column = gtk_tree_view_column_new_with_attributes
+ (NULL, priv->handler_renderer,
"editable", GSE_COLUMN_HANDLER_EDITABLE,
"text", GSE_COLUMN_HANDLER, NULL);
- column_header_widget (editor->handler_column, _("Handler"),
+ column_header_widget (priv->handler_column, _("Handler"),
_("Enter the handler to run for this signal"));
- gtk_tree_view_column_set_cell_data_func (editor->handler_column, editor->handler_renderer,
+ gtk_tree_view_column_set_cell_data_func (priv->handler_column, priv->handler_renderer,
glade_signal_editor_handler_cell_data_func,
NULL, NULL);
}
- gtk_tree_view_column_set_resizable (editor->handler_column, TRUE);
- gtk_tree_view_column_set_expand (editor->handler_column, TRUE);
- gtk_tree_view_append_column (view, editor->handler_column);
+ gtk_tree_view_column_set_resizable (priv->handler_column, TRUE);
+ gtk_tree_view_column_set_expand (priv->handler_column, TRUE);
+ gtk_tree_view_append_column (view, priv->handler_column);
/************************ userdata column ************************/
- if (!editor->userdata_renderer)
+ if (!priv->userdata_renderer)
{
- editor->userdata_renderer = gtk_cell_renderer_text_new ();
+ priv->userdata_renderer = gtk_cell_renderer_text_new ();
}
- if (!editor->userdata_store)
- editor->userdata_store = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
+ if (!priv->userdata_store)
+ priv->userdata_store = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
- g_signal_connect (editor->userdata_renderer, "edited",
+ g_signal_connect (priv->userdata_renderer, "edited",
G_CALLBACK (glade_signal_editor_userdata_cell_edited), editor);
- g_signal_connect (editor->userdata_renderer, "editing-started",
+ g_signal_connect (priv->userdata_renderer, "editing-started",
G_CALLBACK (glade_signal_editor_userdata_editing_started),
editor);
- if (!editor->userdata_column)
+ if (!priv->userdata_column)
{
- editor->userdata_column =
+ priv->userdata_column =
gtk_tree_view_column_new_with_attributes
- (NULL, editor->userdata_renderer,
+ (NULL, priv->userdata_renderer,
"text", GSE_COLUMN_USERDATA, NULL);
- column_header_widget (editor->userdata_column, _("Object"),
+ column_header_widget (priv->userdata_column, _("Object"),
_("An object to pass to the handler"));
- gtk_tree_view_column_set_cell_data_func (editor->userdata_column, editor->userdata_renderer,
+ gtk_tree_view_column_set_cell_data_func (priv->userdata_column, priv->userdata_renderer,
glade_signal_editor_userdata_cell_data_func,
NULL, NULL);
- g_object_set (G_OBJECT (editor->userdata_renderer),
+ g_object_set (G_OBJECT (priv->userdata_renderer),
"editable", FALSE,
"ellipsize", PANGO_ELLIPSIZE_END,
"width-chars", 10,
@@ -932,16 +996,16 @@ glade_signal_editor_construct_signals_list (GladeSignalEditor *editor)
g_signal_connect (G_OBJECT (renderer), "activate",
G_CALLBACK (glade_signal_editor_user_data_activate), editor);
- gtk_tree_view_column_pack_end (editor->userdata_column, renderer, FALSE);
- gtk_tree_view_column_set_attributes (editor->userdata_column, renderer,
+ gtk_tree_view_column_pack_end (priv->userdata_column, renderer, FALSE);
+ gtk_tree_view_column_set_attributes (priv->userdata_column, renderer,
"activatable", GSE_COLUMN_USERDATA_EDITABLE,
"visible", GSE_COLUMN_USERDATA_EDITABLE,
NULL);
}
- gtk_tree_view_column_set_resizable (editor->userdata_column, TRUE);
- gtk_tree_view_column_set_expand (editor->userdata_column, TRUE);
- gtk_tree_view_append_column (view, editor->userdata_column);
+ gtk_tree_view_column_set_resizable (priv->userdata_column, TRUE);
+ gtk_tree_view_column_set_expand (priv->userdata_column, TRUE);
+ gtk_tree_view_append_column (view, priv->userdata_column);
/************************ swapped column ************************/
renderer = gtk_cell_renderer_toggle_new ();
@@ -961,7 +1025,7 @@ glade_signal_editor_construct_signals_list (GladeSignalEditor *editor)
gtk_tree_view_append_column (view, column);
/* - No need for a ref here - */
- editor->swapped_column_ptr = column;
+ priv->swapped_column_ptr = column;
/************************ after column ************************/
renderer = gtk_cell_renderer_toggle_new ();
@@ -1012,7 +1076,7 @@ glade_signal_editor_construct_signals_list (GladeSignalEditor *editor)
gtk_tree_view_append_column (view, column);
- editor->signals_list = view_widget;
+ priv->signals_list = view_widget;
}
static GObject*
@@ -1020,17 +1084,15 @@ glade_signal_editor_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_properties)
{
- GtkWidget *vbox;
GtkWidget *scroll;
GladeSignalEditor *editor;
+ GladeSignalEditorPrivate *priv;
GObject *retval;
retval = G_OBJECT_CLASS (glade_signal_editor_parent_class)->constructor
(type, n_construct_properties, construct_properties);
editor = GLADE_SIGNAL_EDITOR (retval);
-
- vbox = gtk_vbox_new (FALSE, 0);
- editor->main_window = vbox;
+ priv = editor->priv;
scroll = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),
@@ -1041,11 +1103,11 @@ glade_signal_editor_constructor (GType type,
g_signal_emit_by_name (glade_app_get(), "signal-editor-created", retval);
- gtk_container_add (GTK_CONTAINER (scroll), editor->signals_list);
+ gtk_container_add (GTK_CONTAINER (scroll), priv->signals_list);
- gtk_box_pack_start (GTK_BOX (vbox), scroll, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (editor), scroll, TRUE, TRUE, 0);
- gtk_widget_show_all (editor->main_window);
+ gtk_widget_show_all (GTK_WIDGET(editor));
return retval;
}
@@ -1061,9 +1123,8 @@ GtkWidget *
glade_signal_editor_get_widget (GladeSignalEditor *editor)
{
g_return_val_if_fail (GLADE_IS_SIGNAL_EDITOR (editor), NULL);
- g_return_val_if_fail (GTK_IS_WIDGET (editor->main_window), NULL);
- return editor->main_window;
+ return GTK_WIDGET (editor);
}
/**
@@ -1079,7 +1140,7 @@ glade_signal_editor_new (gpointer *editor)
signal_editor = GLADE_SIGNAL_EDITOR (g_object_new (GLADE_TYPE_SIGNAL_EDITOR,
NULL, NULL));
- signal_editor->editor = editor;
+ signal_editor->priv->editor = editor;
return signal_editor;
}
@@ -1088,8 +1149,10 @@ static void
glade_signal_editor_refresh_support (GladeWidget *widget,
GladeSignalEditor *editor)
{
- g_assert (editor->widget == widget);
- glade_signal_editor_load_widget (editor, editor->widget);
+ GladeSignalEditorPrivate *priv = editor->priv;
+
+ g_assert (priv->widget == widget);
+ glade_signal_editor_load_widget (editor, priv->widget);
}
/**
@@ -1111,26 +1174,29 @@ glade_signal_editor_load_widget (GladeSignalEditor *editor,
GtkTreePath *path_first;
GPtrArray *signals;
+ GladeSignalEditorPrivate *priv = editor->priv;
+
+
g_return_if_fail (GLADE_IS_SIGNAL_EDITOR (editor));
g_return_if_fail (widget == NULL || GLADE_IS_WIDGET (widget));
- if (editor->widget != widget)
+ if (priv->widget != widget)
{
- if (editor->widget)
+ if (priv->widget)
{
- g_signal_handler_disconnect (editor->widget, editor->refresh_id);
- editor->refresh_id = 0;
- g_object_unref (editor->widget);
+ g_signal_handler_disconnect (priv->widget, priv->refresh_id);
+ priv->refresh_id = 0;
+ g_object_unref (priv->widget);
}
- editor->widget = widget;
- editor->adaptor = widget ? widget->adaptor : NULL;
+ priv->widget = widget;
+ priv->adaptor = widget ? widget->adaptor : NULL;
- if (editor->widget)
+ if (priv->widget)
{
- g_object_ref (editor->widget);
- editor->refresh_id =
- g_signal_connect (G_OBJECT (editor->widget), "support-changed",
+ g_object_ref (priv->widget);
+ priv->refresh_id =
+ g_signal_connect (G_OBJECT (priv->widget), "support-changed",
G_CALLBACK (glade_signal_editor_refresh_support), editor);
}
}
@@ -1138,29 +1204,29 @@ glade_signal_editor_load_widget (GladeSignalEditor *editor,
if (!widget)
return;
- gtk_tree_store_clear (editor->model);
+ gtk_tree_store_clear (priv->model);
if (glade_project_get_format (glade_widget_get_project (widget)) == GLADE_PROJECT_FORMAT_GTKBUILDER)
- gtk_tree_view_column_set_visible (editor->swapped_column_ptr, TRUE);
+ gtk_tree_view_column_set_visible (priv->swapped_column_ptr, TRUE);
else
- gtk_tree_view_column_set_visible (editor->swapped_column_ptr, FALSE);
+ gtk_tree_view_column_set_visible (priv->swapped_column_ptr, FALSE);
/* Loop over every signal type
*/
- for (list = editor->adaptor->signals; list; list = list->next)
+ for (list = priv->adaptor->signals; list; list = list->next)
{
GladeSignalClass *signal = (GladeSignalClass *) list->data;
GladeSignal *sig = glade_signal_new (signal->name, NULL, NULL, FALSE, FALSE);
/* Check versioning here with a virtual signal */
- glade_project_update_signal_support_warning (editor->widget, sig);
+ glade_project_update_signal_support_warning (priv->widget, sig);
/* Add class name that this signal belongs to.
*/
if (strcmp(last_type, signal->type))
{
- gtk_tree_store_append (editor->model, &parent_class, NULL);
- gtk_tree_store_set (editor->model, &parent_class,
+ gtk_tree_store_append (priv->model, &parent_class, NULL);
+ gtk_tree_store_set (priv->model, &parent_class,
GSE_COLUMN_SIGNAL, signal->type,
GSE_COLUMN_AFTER_VISIBLE, FALSE,
GSE_COLUMN_HANDLER_EDITABLE, FALSE,
@@ -1172,14 +1238,14 @@ glade_signal_editor_load_widget (GladeSignalEditor *editor,
last_type = signal->type;
}
- gtk_tree_store_append (editor->model, &parent_signal, &parent_class);
+ gtk_tree_store_append (priv->model, &parent_signal, &parent_class);
signals = glade_widget_list_signal_handlers (widget, signal->name);
if (!signals || signals->len == 0)
{
gtk_tree_store_set
- (editor->model, &parent_signal,
+ (priv->model, &parent_signal,
GSE_COLUMN_SIGNAL, signal->name,
GSE_COLUMN_HANDLER, HANDLER_DEFAULT,
GSE_COLUMN_AFTER, FALSE,
@@ -1205,16 +1271,16 @@ glade_signal_editor_load_widget (GladeSignalEditor *editor,
/* mark the class of this signal as bold and expand it,
* as there is at least one signal with handler */
- gtk_tree_store_set (editor->model, &parent_class, GSE_COLUMN_BOLD, TRUE, -1);
+ gtk_tree_store_set (priv->model, &parent_class, GSE_COLUMN_BOLD, TRUE, -1);
path_parent_class =
- gtk_tree_model_get_path (GTK_TREE_MODEL (editor->model),
+ gtk_tree_model_get_path (GTK_TREE_MODEL (priv->model),
&parent_class);
- gtk_tree_view_expand_row (GTK_TREE_VIEW (editor->signals_list),
+ gtk_tree_view_expand_row (GTK_TREE_VIEW (priv->signals_list),
path_parent_class, FALSE);
gtk_tree_path_free (path_parent_class);
gtk_tree_store_set
- (editor->model, &parent_signal,
+ (priv->model, &parent_signal,
GSE_COLUMN_SIGNAL, signal->name,
GSE_COLUMN_HANDLER, widget_signal->handler,
GSE_COLUMN_AFTER, widget_signal->after,
@@ -1239,10 +1305,10 @@ glade_signal_editor_load_widget (GladeSignalEditor *editor,
for (i = 1; i < signals->len; i++)
{
widget_signal = (GladeSignal*) g_ptr_array_index (signals, i);
- gtk_tree_store_append (editor->model, &iter, &parent_signal);
+ gtk_tree_store_append (priv->model, &iter, &parent_signal);
gtk_tree_store_set
- (editor->model, &iter,
+ (priv->model, &iter,
GSE_COLUMN_HANDLER, widget_signal->handler,
GSE_COLUMN_AFTER, widget_signal->after,
GSE_COLUMN_USERDATA,
@@ -1264,9 +1330,9 @@ glade_signal_editor_load_widget (GladeSignalEditor *editor,
}
/* add the <Type...> slot */
- gtk_tree_store_append (editor->model, &iter, &parent_signal);
+ gtk_tree_store_append (priv->model, &iter, &parent_signal);
gtk_tree_store_set
- (editor->model, &iter,
+ (priv->model, &iter,
GSE_COLUMN_HANDLER, HANDLER_DEFAULT,
GSE_COLUMN_AFTER, FALSE,
GSE_COLUMN_USERDATA, USERDATA_DEFAULT,
@@ -1288,7 +1354,7 @@ glade_signal_editor_load_widget (GladeSignalEditor *editor,
}
path_first = gtk_tree_path_new_first ();
- gtk_tree_view_expand_row (GTK_TREE_VIEW (editor->signals_list), path_first, FALSE);
+ gtk_tree_view_expand_row (GTK_TREE_VIEW (priv->signals_list), path_first, FALSE);
gtk_tree_path_free (path_first);
}
@@ -1299,26 +1365,27 @@ glade_signal_editor_get_property (GObject *object,
GParamSpec *pspec)
{
GladeSignalEditor *self = GLADE_SIGNAL_EDITOR (object);
+ GladeSignalEditorPrivate *priv = self->priv;
switch (prop_id)
{
case PROP_HANDLER_COLUMN:
- g_value_set_object (value, self->handler_column);
+ g_value_set_object (value, priv->handler_column);
break;
case PROP_USERDATA_COLUMN:
- g_value_set_object (value, self->userdata_column);
+ g_value_set_object (value, priv->userdata_column);
break;
case PROP_HANDLER_COMPLETION:
- g_value_set_object (value, self->handler_store);
+ g_value_set_object (value, priv->handler_store);
break;
case PROP_USERDATA_COMPLETION:
- g_value_set_object (value, self->userdata_store);
+ g_value_set_object (value, priv->userdata_store);
break;
case PROP_HANDLER_RENDERER:
- g_value_set_object (value, self->handler_renderer);
+ g_value_set_object (value, priv->handler_renderer);
break;
case PROP_USERDATA_RENDERER:
- g_value_set_object (value, self->userdata_renderer);
+ g_value_set_object (value, priv->userdata_renderer);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1333,26 +1400,27 @@ glade_signal_editor_set_property (GObject *object,
GParamSpec *pspec)
{
GladeSignalEditor *self = GLADE_SIGNAL_EDITOR (object);
+ GladeSignalEditorPrivate *priv = self->priv;
switch (prop_id)
{
case PROP_HANDLER_COLUMN:
- self->handler_column = g_value_get_object (value);
+ priv->handler_column = g_value_get_object (value);
break;
case PROP_USERDATA_COLUMN:
- self->userdata_column = g_value_get_object (value);
+ priv->userdata_column = g_value_get_object (value);
break;
case PROP_HANDLER_COMPLETION:
- self->handler_store = g_value_get_object (value);
+ priv->handler_store = g_value_get_object (value);
break;
case PROP_USERDATA_COMPLETION:
- self->userdata_store = g_value_get_object (value);
+ priv->userdata_store = g_value_get_object (value);
break;
case PROP_HANDLER_RENDERER:
- self->handler_renderer = g_value_get_object (value);
+ priv->handler_renderer = g_value_get_object (value);
break;
case PROP_USERDATA_RENDERER:
- self->userdata_renderer = g_value_get_object (value);
+ priv->userdata_renderer = g_value_get_object (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1364,13 +1432,14 @@ static void
glade_signal_editor_dispose (GObject *object)
{
GladeSignalEditor *self = GLADE_SIGNAL_EDITOR (object);
+ GladeSignalEditorPrivate *priv = self->priv;
glade_signal_editor_load_widget (self, NULL);
- if (self->handler_store)
- g_object_unref (self->handler_store);
- if (self->userdata_store)
- g_object_unref (self->userdata_store);
+ if (priv->handler_store)
+ g_object_unref (priv->handler_store);
+ if (priv->userdata_store)
+ g_object_unref (priv->userdata_store);
G_OBJECT_CLASS (glade_signal_editor_parent_class)->dispose (object);
}
@@ -1378,8 +1447,10 @@ glade_signal_editor_dispose (GObject *object)
static void
glade_signal_editor_init (GladeSignalEditor *self)
{
- self->is_void_handler = is_void_handler;
- self->is_void_userdata = is_void_userdata;
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GLADE_TYPE_SIGNAL_EDITOR, GladeSignalEditorPrivate);
+
+ self->priv->is_void_handler = is_void_handler;
+ self->priv->is_void_userdata = is_void_userdata;
}
static void
@@ -1395,10 +1466,6 @@ glade_signal_editor_class_init (GladeSignalEditorClass *klass)
object_class->get_property = glade_signal_editor_get_property;
object_class->set_property = glade_signal_editor_set_property;
object_class->dispose = glade_signal_editor_dispose;
- klass->handler_editing_done = glade_signal_editor_handler_editing_done_impl;
- klass->userdata_editing_done = glade_signal_editor_userdata_editing_done_impl;
- klass->handler_editing_started = NULL;
- klass->userdata_editing_started = NULL;
g_object_class_install_property (object_class,
PROP_HANDLER_COLUMN,
@@ -1458,100 +1525,10 @@ glade_signal_editor_class_init (GladeSignalEditorClass *klass)
GTK_TYPE_CELL_RENDERER,
G_PARAM_READABLE |
G_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT));
- /**
- * GladeSignalEditor::handler-editing-done:
- * @signal_editor: the #GladeSignalEditor which received the signal.
- * @signal_name: the name of the edited signal
- * @old_handler:
- * @new_handler:
- * @iter: the #GtkTreeIter of edited signal
- *
- * Emitted when editing of signal handler done.
- * You can cancel changes by returning FALSE before the default handler.
- */
- glade_signal_editor_signals[HANDLER_EDITING_DONE] =
- g_signal_new ("handler-editing-done",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GladeSignalEditorClass, handler_editing_done),
- glade_boolean_handled_accumulator, NULL,
- glade_marshal_BOOLEAN__STRING_STRING_STRING_BOXED,
- G_TYPE_BOOLEAN,
- 4,
- G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_STRING, GTK_TYPE_TREE_ITER);
-
- /**
- * GladeSignalEditor::userdata-editing-done:
- * @signal_editor: the #GladeSignalEditor which received the signal.
- * @signal_name: the name of the edited signal
- * @old_handler:
- * @new_handler:
- * @iter: the #GtkTreeIter of edited signal
- *
- * Emitted when editing of signal user data done.
- * You can cancel changes by returning FALSE before the default handler.
- */
- glade_signal_editor_signals[USERDATA_EDITING_DONE] =
- g_signal_new ("userdata-editing-done",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GladeSignalEditorClass, userdata_editing_done),
- glade_boolean_handled_accumulator, NULL,
- glade_marshal_BOOLEAN__STRING_STRING_STRING_BOXED,
- G_TYPE_BOOLEAN,
- 4,
- G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_STRING, GTK_TYPE_TREE_ITER);
-
- /**
- * GladeSignalEditor::handler-editing-started:
- * @signal_editor: the #GladeSignalEditor which received the signal.
- * @signal_name: the name of the edited signal
- * @iter: the #GtkTreeIter of the edited signal
- * @editable: the #GtkCellEditable
- *
- * Emitted when editing of signal handler started.
- * Used mainly for setting up completion.
- */
- glade_signal_editor_signals[HANDLER_EDITING_STARTED] =
- g_signal_new ("handler-editing-started",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GladeSignalEditorClass, handler_editing_started),
- glade_boolean_handled_accumulator, NULL,
- glade_marshal_BOOLEAN__STRING_BOXED_OBJECT,
- G_TYPE_BOOLEAN,
- 3,
- G_TYPE_STRING, GTK_TYPE_TREE_ITER,
- GTK_TYPE_CELL_EDITABLE);
-
- /**
- * GladeSignalEditor::userdata-editing-started:
- * @signal_editor: the #GladeSignalEditor which received the signal.
- * @signal_name: the name of the edited signal
- * @iter: the #GtkTreeIter of the edited signal
- * @editable: the #GtkCellEditable
- *
- * Emitted when editing of signal user data started.
- * Used mainly for setting up completion.
- */
- glade_signal_editor_signals[USERDATA_EDITING_STARTED] =
- g_signal_new ("userdata-editing-started",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GladeSignalEditorClass, userdata_editing_started),
- glade_boolean_handled_accumulator, NULL,
- glade_marshal_BOOLEAN__STRING_BOXED_OBJECT,
- G_TYPE_BOOLEAN,
- 3,
- G_TYPE_STRING, GTK_TYPE_TREE_ITER,
- GTK_TYPE_CELL_EDITABLE);
+ G_PARAM_CONSTRUCT));
+ g_type_class_add_private (klass, sizeof (GladeSignalEditorPrivate));
}
-/* Default implementation of completion */
-
static void
glade_signal_editor_editing_started (GtkEntry *entry, IsVoidFunc callback)
{
@@ -1564,6 +1541,8 @@ glade_signal_editor_handler_store_update (GladeSignalEditor *editor,
const gchar *signal_name,
GtkListStore *store)
{
+ GladeSignalEditorPrivate *priv = editor->priv;
+
const gchar *handlers[] = {"gtk_widget_show",
"gtk_widget_hide",
"gtk_widget_grab_focus",
@@ -1577,7 +1556,7 @@ glade_signal_editor_handler_store_update (GladeSignalEditor *editor,
gint i;
gchar *handler, *signal, *name;
- name = (gchar *) glade_widget_get_name (editor->widget);
+ name = (gchar *) glade_widget_get_name (priv->widget);
signal = g_strdup (signal_name);
glade_util_replace (signal, '-', '_');
@@ -1602,24 +1581,23 @@ glade_signal_editor_handler_store_update (GladeSignalEditor *editor,
}
}
-gboolean
-glade_signal_editor_handler_editing_started_default_impl (GladeSignalEditor *editor,
- gchar *signal_name,
- GtkTreeIter *iter,
- GtkCellEditable *editable,
- gpointer user_data)
+static gboolean
+glade_signal_editor_handler_editing_started_default (GladeSignalEditor *editor,
+ gchar *signal_name,
+ GtkTreeIter *iter,
+ GtkCellEditable *editable)
{
-
+ GladeSignalEditorPrivate *priv = editor->priv;
GtkEntry *entry;
GtkEntryCompletion *completion;
- GtkTreeModel *completion_store = editor->handler_store;
+ GtkTreeModel *completion_store = priv->handler_store;
g_return_val_if_fail (GTK_IS_BIN (editable), FALSE);
g_return_val_if_fail (GTK_IS_LIST_STORE (completion_store), FALSE);
entry = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (editable)));
- glade_signal_editor_editing_started (entry, editor->is_void_handler);
+ glade_signal_editor_editing_started (entry, priv->is_void_handler);
glade_signal_editor_handler_store_update (editor, signal_name,
GTK_LIST_STORE (completion_store));
@@ -1641,9 +1619,11 @@ glade_signal_editor_userdata_store_update (GladeSignalEditor *self,
GtkTreeIter tmp_iter;
GList *list;
+ GladeSignalEditorPrivate *priv = self->priv;
+
gtk_list_store_clear (store);
- for (list = (GList *) glade_project_get_objects (self->widget->project);
+ for (list = (GList *) glade_project_get_objects (priv->widget->project);
list && list->data;
list = g_list_next (list))
{
@@ -1660,24 +1640,24 @@ glade_signal_editor_userdata_store_update (GladeSignalEditor *self,
GTK_SORT_DESCENDING);
}
-gboolean
-glade_signal_editor_userdata_editing_started_default_impl (GladeSignalEditor *editor,
- gchar *signal_name,
- GtkTreeIter *iter,
- GtkCellEditable *editable,
- gpointer user_data)
+static gboolean
+glade_signal_editor_userdata_editing_started_default (GladeSignalEditor *editor,
+ gchar *signal_name,
+ GtkTreeIter *iter,
+ GtkCellEditable *editable)
{
GtkEntry *entry;
GtkEntryCompletion *completion;
- GtkTreeModel *completion_store = editor->userdata_store;
-
- g_return_val_if_fail (editor->widget != NULL, FALSE);
+ GladeSignalEditorPrivate *priv = editor->priv;
+ GtkTreeModel *completion_store = priv->userdata_store;
+
+ g_return_val_if_fail (priv->widget != NULL, FALSE);
g_return_val_if_fail (GTK_IS_LIST_STORE (completion_store), FALSE);
g_return_val_if_fail (GTK_IS_ENTRY (editable), FALSE);
entry = GTK_ENTRY (editable);
- glade_signal_editor_editing_started (entry, editor->is_void_handler);
+ glade_signal_editor_editing_started (entry, priv->is_void_handler);
glade_signal_editor_userdata_store_update (editor, GTK_LIST_STORE (completion_store));
diff --git a/gladeui/glade-signal-editor.h b/gladeui/glade-signal-editor.h
index 17cd2d9..50abd2c 100644
--- a/gladeui/glade-signal-editor.h
+++ b/gladeui/glade-signal-editor.h
@@ -3,6 +3,7 @@
#define __GLADE_SIGNAL_EDITOR_H__
#include <gladeui/glade.h>
+#include <gtk/gtk.h>
G_BEGIN_DECLS
@@ -14,6 +15,7 @@ G_BEGIN_DECLS
#define GLADE_SIGNAL_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GLADE_TYPE_SIGNAL_EDITOR, GladeSignalEditorClass))
typedef struct _GladeSignalEditor GladeSignalEditor;
+typedef struct _GladeSignalEditorPrivate GladeSignalEditorPrivate;
typedef struct _GladeSignalEditorClass GladeSignalEditorClass;
typedef gboolean (*IsVoidFunc) (const gchar *signal_handler);
@@ -45,52 +47,14 @@ enum
*/
struct _GladeSignalEditor
{
- GObject parent;
+ GtkVBox parent;
- GtkWidget *main_window; /* A vbox where all the widgets are added */
-
- GladeWidget *widget;
- GladeWidgetAdaptor *adaptor;
-
- gpointer *editor;
-
- GtkWidget *signals_list;
- GtkTreeStore *model;
- GtkTreeView *tree_view;
-
- GtkTreeModel *handler_store, *userdata_store;
- GtkCellRenderer *handler_renderer, *userdata_renderer;
- GtkTreeViewColumn *handler_column, *userdata_column, *swapped_column_ptr;
- IsVoidFunc is_void_handler, is_void_userdata;
-
- gulong refresh_id;
+ GladeSignalEditorPrivate* priv;
};
struct _GladeSignalEditorClass
{
- GObjectClass parent_class;
-
- gboolean (*handler_editing_done) (GladeSignalEditor *self,
- gchar *signal_name,
- gchar *old_handler,
- gchar *new_handler,
- GtkTreeIter *iter);
-
- gboolean (*userdata_editing_done) (GladeSignalEditor *self,
- gchar *signal_name,
- gchar *old_userdata,
- gchar *new_userdata,
- GtkTreeIter *iter);
-
- gboolean (*handler_editing_started) (GladeSignalEditor *self,
- gchar *signal_name,
- GtkTreeIter *iter,
- GtkCellEditable *editable);
-
- gboolean (*userdata_editing_started) (GladeSignalEditor *self,
- gchar *signal_name,
- GtkTreeIter *iter,
- GtkCellEditable *editable);
+ GtkVBoxClass parent_class;
};
GType glade_signal_editor_get_type (void) G_GNUC_CONST;
@@ -103,17 +67,6 @@ GtkWidget *glade_signal_editor_get_widget (GladeSignalEditor *editor);
void glade_signal_editor_load_widget (GladeSignalEditor *editor, GladeWidget *widget);
-gboolean glade_signal_editor_handler_editing_started_default_impl (GladeSignalEditor *editor,
- gchar *signal_name,
- GtkTreeIter *iter,
- GtkCellEditable *editable,
- gpointer user_data);
-gboolean glade_signal_editor_userdata_editing_started_default_impl (GladeSignalEditor *editor,
- gchar *signal_name,
- GtkTreeIter *iter,
- GtkCellEditable *editable,
- gpointer user_data);
-
G_END_DECLS
#endif /* __GLADE_SIGNAL_EDITOR_H__ */
diff --git a/src/glade-window.c b/src/glade-window.c
index 398e1ca..a641804 100644
--- a/src/glade-window.c
+++ b/src/glade-window.c
@@ -3388,16 +3388,6 @@ glade_window_init (GladeWindow *window)
show_dock_first_time (window, DOCK_INSPECTOR, "DockInspector");
show_dock_first_time (window, DOCK_EDITOR, "DockEditor");
- /* signal editor */
- g_signal_connect (G_OBJECT (glade_app_get_editor()->signal_editor),
- "handler-editing-started",
- G_CALLBACK (glade_signal_editor_handler_editing_started_default_impl),
- NULL);
- g_signal_connect (G_OBJECT (glade_app_get_editor()->signal_editor),
- "userdata-editing-started",
- G_CALLBACK (glade_signal_editor_userdata_editing_started_default_impl),
- NULL);
-
/* status bar */
priv->statusbar = gtk_statusbar_new ();
priv->statusbar_menu_context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (priv->statusbar),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]