Show symbol names in the statusbar again..
Not very clean but serves its purpose.
This commit is contained in:
parent
24b4e9956b
commit
492daa3ce3
|
@ -92,6 +92,36 @@ ld_category_symbol_view_class_init (LdCategorySymbolViewClass *klass)
|
||||||
object_class->set_property = ld_category_symbol_view_set_property;
|
object_class->set_property = ld_category_symbol_view_set_property;
|
||||||
object_class->finalize = ld_category_symbol_view_finalize;
|
object_class->finalize = ld_category_symbol_view_finalize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LdCategorySymbolView::symbol-selected:
|
||||||
|
* @self: an #LdCategorySymbolView object.
|
||||||
|
* @symbol: the selected #LdSymbol object.
|
||||||
|
* @path: location of the symbol within the library.
|
||||||
|
*
|
||||||
|
* A symbol has been selected.
|
||||||
|
*/
|
||||||
|
klass->symbol_selected_signal = g_signal_new
|
||||||
|
("symbol-selected", G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST, 0, NULL, NULL,
|
||||||
|
ld_marshal_VOID__OBJECT_STRING,
|
||||||
|
G_TYPE_NONE, 2, LD_TYPE_SYMBOL,
|
||||||
|
G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LdCategorySymbolView::symbol-deselected:
|
||||||
|
* @self: an #LdCategorySymbolView object.
|
||||||
|
* @symbol: the deselected #LdSymbol object.
|
||||||
|
* @path: location of the symbol within the library.
|
||||||
|
*
|
||||||
|
* A symbol has been deselected.
|
||||||
|
*/
|
||||||
|
klass->symbol_deselected_signal = g_signal_new
|
||||||
|
("symbol-deselected", G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST, 0, NULL, NULL,
|
||||||
|
ld_marshal_VOID__OBJECT_STRING,
|
||||||
|
G_TYPE_NONE, 2, LD_TYPE_SYMBOL,
|
||||||
|
G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LdCategorySymbolView:category:
|
* LdCategorySymbolView:category:
|
||||||
*
|
*
|
||||||
|
@ -118,10 +148,16 @@ symbol_redraw (LdCategorySymbolView *self, SymbolData *symbol)
|
||||||
static void
|
static void
|
||||||
symbol_deselect (LdCategorySymbolView *self)
|
symbol_deselect (LdCategorySymbolView *self)
|
||||||
{
|
{
|
||||||
if (!self->priv->preselected)
|
SymbolData *preselected;
|
||||||
|
|
||||||
|
preselected = self->priv->preselected;
|
||||||
|
if (!preselected)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
symbol_redraw (self, self->priv->preselected);
|
g_signal_emit (self, LD_CATEGORY_SYMBOL_VIEW_GET_CLASS (self)->
|
||||||
|
symbol_deselected_signal, 0, preselected->symbol, preselected->path);
|
||||||
|
|
||||||
|
symbol_redraw (self, preselected);
|
||||||
self->priv->preselected = NULL;
|
self->priv->preselected = NULL;
|
||||||
gtk_drag_source_unset (GTK_WIDGET (self));
|
gtk_drag_source_unset (GTK_WIDGET (self));
|
||||||
}
|
}
|
||||||
|
@ -164,6 +200,9 @@ on_motion_notify (GtkWidget *widget, GdkEventMotion *event, gpointer user_data)
|
||||||
|
|
||||||
gtk_drag_source_set (widget,
|
gtk_drag_source_set (widget,
|
||||||
GDK_BUTTON1_MASK, &target, 1, GDK_ACTION_COPY);
|
GDK_BUTTON1_MASK, &target, 1, GDK_ACTION_COPY);
|
||||||
|
|
||||||
|
g_signal_emit (self, LD_CATEGORY_SYMBOL_VIEW_GET_CLASS (self)->
|
||||||
|
symbol_selected_signal, 0, data->symbol, data->path);
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -253,6 +292,8 @@ symbol_data_free (SymbolData *self)
|
||||||
static void
|
static void
|
||||||
layout_destroy (LdCategorySymbolView *self)
|
layout_destroy (LdCategorySymbolView *self)
|
||||||
{
|
{
|
||||||
|
symbol_deselect (self);
|
||||||
|
|
||||||
g_slist_foreach (self->priv->layout, (GFunc) symbol_data_free, NULL);
|
g_slist_foreach (self->priv->layout, (GFunc) symbol_data_free, NULL);
|
||||||
g_slist_free (self->priv->layout);
|
g_slist_free (self->priv->layout);
|
||||||
self->priv->layout = NULL;
|
self->priv->layout = NULL;
|
||||||
|
|
|
@ -45,6 +45,9 @@ struct _LdCategorySymbolViewClass
|
||||||
{
|
{
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
GtkDrawingAreaClass parent_class;
|
GtkDrawingAreaClass parent_class;
|
||||||
|
|
||||||
|
guint symbol_selected_signal;
|
||||||
|
guint symbol_deselected_signal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,36 @@ ld_category_view_class_init (LdCategoryViewClass *klass)
|
||||||
object_class->set_property = ld_category_view_set_property;
|
object_class->set_property = ld_category_view_set_property;
|
||||||
object_class->dispose = ld_category_view_dispose;
|
object_class->dispose = ld_category_view_dispose;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LdCategoryView::symbol-selected:
|
||||||
|
* @self: an #LdCategoryView object.
|
||||||
|
* @symbol: the selected #LdSymbol object.
|
||||||
|
* @path: location of the symbol within the library.
|
||||||
|
*
|
||||||
|
* A symbol has been selected.
|
||||||
|
*/
|
||||||
|
klass->symbol_selected_signal = g_signal_new
|
||||||
|
("symbol-selected", G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST, 0, NULL, NULL,
|
||||||
|
ld_marshal_VOID__OBJECT_STRING,
|
||||||
|
G_TYPE_NONE, 2, LD_TYPE_SYMBOL,
|
||||||
|
G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LdCategoryView::symbol-deselected:
|
||||||
|
* @self: an #LdCategoryView object.
|
||||||
|
* @symbol: the deselected #LdSymbol object.
|
||||||
|
* @path: location of the symbol within the library.
|
||||||
|
*
|
||||||
|
* A symbol has been deselected.
|
||||||
|
*/
|
||||||
|
klass->symbol_deselected_signal = g_signal_new
|
||||||
|
("symbol-deselected", G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST, 0, NULL, NULL,
|
||||||
|
ld_marshal_VOID__OBJECT_STRING,
|
||||||
|
G_TYPE_NONE, 2, LD_TYPE_SYMBOL,
|
||||||
|
G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LdCategoryView:category:
|
* LdCategoryView:category:
|
||||||
*
|
*
|
||||||
|
@ -257,6 +287,22 @@ reconstruct_prefix (LdCategoryView *self)
|
||||||
g_free (end);
|
g_free (end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_symbol_selected (GObject *source,
|
||||||
|
LdSymbol *symbol, const gchar *path, LdCategoryView *self)
|
||||||
|
{
|
||||||
|
g_signal_emit (self, LD_CATEGORY_VIEW_GET_CLASS (self)->
|
||||||
|
symbol_selected_signal, 0, symbol, path);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_symbol_deselected (GObject *source,
|
||||||
|
LdSymbol *symbol, const gchar *path, LdCategoryView *self)
|
||||||
|
{
|
||||||
|
g_signal_emit (self, LD_CATEGORY_VIEW_GET_CLASS (self)->
|
||||||
|
symbol_deselected_signal, 0, symbol, path);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
reload_category (LdCategoryView *self)
|
reload_category (LdCategoryView *self)
|
||||||
{
|
{
|
||||||
|
@ -266,6 +312,8 @@ reload_category (LdCategoryView *self)
|
||||||
gtk_container_foreach (GTK_CONTAINER (self),
|
gtk_container_foreach (GTK_CONTAINER (self),
|
||||||
(GtkCallback) gtk_widget_destroy, NULL);
|
(GtkCallback) gtk_widget_destroy, NULL);
|
||||||
|
|
||||||
|
/* XXX: We might want to disconnect signal handlers. */
|
||||||
|
|
||||||
if (self->priv->category)
|
if (self->priv->category)
|
||||||
{
|
{
|
||||||
GSList *symbols, *children;
|
GSList *symbols, *children;
|
||||||
|
@ -279,6 +327,11 @@ reload_category (LdCategoryView *self)
|
||||||
|
|
||||||
symbol_view = ld_category_symbol_view_new (self->priv->category);
|
symbol_view = ld_category_symbol_view_new (self->priv->category);
|
||||||
gtk_box_pack_start (GTK_BOX (self), symbol_view, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (self), symbol_view, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
g_signal_connect_after (symbol_view, "symbol-selected",
|
||||||
|
G_CALLBACK (on_symbol_selected), self);
|
||||||
|
g_signal_connect_after (symbol_view, "symbol-deselected",
|
||||||
|
G_CALLBACK (on_symbol_deselected), self);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (children)
|
if (children)
|
||||||
|
@ -318,5 +371,10 @@ load_category_cb (gpointer data, gpointer user_data)
|
||||||
child = ld_category_view_new (cat);
|
child = ld_category_view_new (cat);
|
||||||
gtk_container_add (GTK_CONTAINER (expander), child);
|
gtk_container_add (GTK_CONTAINER (expander), child);
|
||||||
gtk_box_pack_start (GTK_BOX (self), expander, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (self), expander, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
g_signal_connect_after (child, "symbol-selected",
|
||||||
|
G_CALLBACK (on_symbol_selected), self);
|
||||||
|
g_signal_connect_after (child, "symbol-deselected",
|
||||||
|
G_CALLBACK (on_symbol_deselected), self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,9 @@ struct _LdCategoryViewClass
|
||||||
{
|
{
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
GtkVBoxClass parent_class;
|
GtkVBoxClass parent_class;
|
||||||
|
|
||||||
|
guint symbol_selected_signal;
|
||||||
|
guint symbol_deselected_signal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,11 @@ static gboolean may_close_diagram (LdWindowMain *self,
|
||||||
const gchar *dialog_message);
|
const gchar *dialog_message);
|
||||||
static gboolean may_quit (LdWindowMain *self);
|
static gboolean may_quit (LdWindowMain *self);
|
||||||
|
|
||||||
|
static void on_symbol_selected (LdCategoryView *view,
|
||||||
|
LdSymbol *symbol, const gchar *path, LdWindowMain *self);
|
||||||
|
static void on_symbol_deselected (LdCategoryView *view,
|
||||||
|
LdSymbol *symbol, const gchar *path, LdWindowMain *self);
|
||||||
|
|
||||||
static void on_action_new (GtkAction *action, LdWindowMain *self);
|
static void on_action_new (GtkAction *action, LdWindowMain *self);
|
||||||
static void on_action_open (GtkAction *action, LdWindowMain *self);
|
static void on_action_open (GtkAction *action, LdWindowMain *self);
|
||||||
static void on_action_save (GtkAction *action, LdWindowMain *self);
|
static void on_action_save (GtkAction *action, LdWindowMain *self);
|
||||||
|
@ -341,6 +346,11 @@ ld_window_main_init (LdWindowMain *self)
|
||||||
ld_category_view_set_category (LD_CATEGORY_VIEW (priv->library_view),
|
ld_category_view_set_category (LD_CATEGORY_VIEW (priv->library_view),
|
||||||
ld_library_get_root (priv->library));
|
ld_library_get_root (priv->library));
|
||||||
|
|
||||||
|
g_signal_connect_after (priv->library_view, "symbol-selected",
|
||||||
|
G_CALLBACK (on_symbol_selected), self);
|
||||||
|
g_signal_connect_after (priv->library_view, "symbol-deselected",
|
||||||
|
G_CALLBACK (on_symbol_deselected), self);
|
||||||
|
|
||||||
diagram_set_filename (self, NULL);
|
diagram_set_filename (self, NULL);
|
||||||
|
|
||||||
priv->statusbar_hint_drag = gtk_statusbar_push
|
priv->statusbar_hint_drag = gtk_statusbar_push
|
||||||
|
@ -841,6 +851,25 @@ may_quit (LdWindowMain *self)
|
||||||
|
|
||||||
/* ===== User interface actions ============================================ */
|
/* ===== User interface actions ============================================ */
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_symbol_selected (LdCategoryView *view,
|
||||||
|
LdSymbol *symbol, const gchar *path, LdWindowMain *self)
|
||||||
|
{
|
||||||
|
const gchar *symbol_name;
|
||||||
|
|
||||||
|
symbol_name = ld_symbol_get_human_name (symbol);
|
||||||
|
gtk_statusbar_push (GTK_STATUSBAR (self->priv->statusbar),
|
||||||
|
self->priv->statusbar_menu_context_id, symbol_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_symbol_deselected (LdCategoryView *view,
|
||||||
|
LdSymbol *symbol, const gchar *path, LdWindowMain *self)
|
||||||
|
{
|
||||||
|
gtk_statusbar_pop (GTK_STATUSBAR (self->priv->statusbar),
|
||||||
|
self->priv->statusbar_menu_context_id);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_view_zoom_changed (LdDiagramView *view, GParamSpec *pspec,
|
on_view_zoom_changed (LdDiagramView *view, GParamSpec *pspec,
|
||||||
LdWindowMain *self)
|
LdWindowMain *self)
|
||||||
|
|
Loading…
Reference in New Issue