aboutsummaryrefslogtreecommitdiff
path: root/src/ld-window-main.c
diff options
context:
space:
mode:
authorPřemysl Janouch <p.janouch@gmail.com>2011-01-04 09:54:05 +0100
committerPřemysl Janouch <p.janouch@gmail.com>2011-01-04 09:54:05 +0100
commitd3e5483c848d0a75b767082c7ca09b96f0dd5a37 (patch)
tree33b6b11aa4c72cf54a7c5a8fcc2a1d3a4c3feaea /src/ld-window-main.c
parent713f2821e44b5682f08a26b1e35439020e2144d4 (diff)
downloadlogdiag-d3e5483c848d0a75b767082c7ca09b96f0dd5a37.tar.gz
logdiag-d3e5483c848d0a75b767082c7ca09b96f0dd5a37.tar.xz
logdiag-d3e5483c848d0a75b767082c7ca09b96f0dd5a37.zip
Make adding symbols to the diagram possible.
This required creating a simple framework for operations to LdCanvas. It is probable that it's going to require some changes when other operations are added. The basic idea behind it seems to be good, though.
Diffstat (limited to 'src/ld-window-main.c')
-rw-r--r--src/ld-window-main.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/ld-window-main.c b/src/ld-window-main.c
index 16c223c..32212a1 100644
--- a/src/ld-window-main.c
+++ b/src/ld-window-main.c
@@ -761,7 +761,25 @@ on_canvas_button_release (GtkWidget *widget, GdkEventButton *event,
if (event->button != 1)
return FALSE;
- /* TODO: Add the selected symbol into the document on the position. */
+ if (data->active_item != -1)
+ {
+ LdDiagramSymbol *symbol;
+ const gchar *category_name, *symbol_name;
+ gchar *klass;
+
+ category_name = ld_symbol_category_get_name
+ (g_object_get_data (G_OBJECT (data->active_button), "category"));
+ symbol_name = ld_symbol_get_name
+ (data->items[data->active_item].symbol);
+
+ klass = g_build_path (LD_LIBRARY_IDENTIFIER_SEPARATOR,
+ category_name, symbol_name, NULL);
+ symbol = ld_diagram_symbol_new (klass);
+ g_free (klass);
+
+ ld_canvas_add_object_begin (self->priv->canvas,
+ LD_DIAGRAM_OBJECT (symbol));
+ }
/* We've either chosen a symbol or canceled the menu, so hide it. */
if (data->active_button)