aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2011-11-23 00:07:39 +0100
committerThomas White <taw@bitwiz.org.uk>2011-11-23 00:07:39 +0100
commit140d35a2c0483b11e141b0ceb9b742bad48d981f (patch)
treee3fffffd892a5d1e8bce2cc0101e51179bc8169b
parent368cbfb3d696d9237f7103867758893cda4d3df9 (diff)
Add "Delete" button
-rw-r--r--src/objects.c6
-rw-r--r--src/presentation.h3
-rw-r--r--src/tool_image.c2
-rw-r--r--src/tool_select.c22
-rw-r--r--src/tool_text.c2
5 files changed, 27 insertions, 8 deletions
diff --git a/src/objects.c b/src/objects.c
index 80b57a7..93349ea 100644
--- a/src/objects.c
+++ b/src/objects.c
@@ -196,9 +196,9 @@ void realise_everything(struct presentation *p)
int i;
/* Realise all the tools */
- p->select_tool->realise(p->select_tool, p->drawingarea);
- p->text_tool->realise(p->text_tool, p->drawingarea);
- p->image_tool->realise(p->image_tool, p->drawingarea);
+ p->select_tool->realise(p->select_tool, p->drawingarea, p);
+ p->text_tool->realise(p->text_tool, p->drawingarea, p);
+ p->image_tool->realise(p->image_tool, p->drawingarea, p);
for ( i=0; i<p->num_slides; i++ ) {
diff --git a/src/presentation.h b/src/presentation.h
index 228d886..8b4bc6f 100644
--- a/src/presentation.h
+++ b/src/presentation.h
@@ -94,7 +94,8 @@ struct toolinfo
int (*valid_object)(struct object *o);
- void (*realise)(struct toolinfo *tip, GtkWidget *w);
+ void (*realise)(struct toolinfo *tip, GtkWidget *w,
+ struct presentation *p);
struct object *(*deserialize)(struct presentation *p,
struct ds_node *root,
diff --git a/src/tool_image.c b/src/tool_image.c
index 0187ad4..aaea288 100644
--- a/src/tool_image.c
+++ b/src/tool_image.c
@@ -467,7 +467,7 @@ static struct object *deserialize(struct presentation *p, struct ds_node *root,
}
-static void realise(struct toolinfo *ti, GtkWidget *w)
+static void realise(struct toolinfo *ti, GtkWidget *w, struct presentation *p)
{
ti->tbox = gtk_label_new("Image tool");
g_object_ref(ti->tbox);
diff --git a/src/tool_select.c b/src/tool_select.c
index e473149..acc6ac4 100644
--- a/src/tool_select.c
+++ b/src/tool_select.c
@@ -180,14 +180,32 @@ static int valid_object(struct object *o)
}
-static void realise(struct toolinfo *ti, GtkWidget *w)
+static gint delete_sig(GtkWidget *widget, struct presentation *p)
+{
+ if ( p->editing_object == NULL ) return FALSE;
+
+ delete_object(p->editing_object);
+ p->editing_object = NULL;
+ redraw_slide(p->cur_edit_slide);
+
+ return FALSE;
+}
+
+
+static void realise(struct toolinfo *ti, GtkWidget *w, struct presentation *p)
{
GtkWidget *hbox;
+ GtkWidget *del;
hbox = gtk_hbox_new(FALSE, 0.0);
ti->tbox = hbox;
+
+ del = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ g_signal_connect(G_OBJECT(del), "clicked", G_CALLBACK(delete_sig), p);
+ gtk_box_pack_start(GTK_BOX(hbox), del, 0, 0, FALSE);
+
g_object_ref(ti->tbox);
- gtk_widget_show(ti->tbox);
+ gtk_widget_show_all(ti->tbox);
}
diff --git a/src/tool_text.c b/src/tool_text.c
index d011c49..68e53c7 100644
--- a/src/tool_text.c
+++ b/src/tool_text.c
@@ -732,7 +732,7 @@ static int valid_object(struct object *o)
}
-static void realise(struct toolinfo *ti, GtkWidget *w)
+static void realise(struct toolinfo *ti, GtkWidget *w, struct presentation *p)
{
struct text_toolinfo *tip = (struct text_toolinfo *)ti;
tip->pc = gtk_widget_get_pango_context(w);