8de0df7e62d5f0c8cc66559e79b259e2313863d4
[tbo.git] / src / ui-toolbar.h
1 #ifndef __UI_TOOLBAR__
2 #define __UI_TOOLBAR__
3
4 #include <gtk/gtk.h>
5 #include "tbo-window.h"
6
7 enum ToolSignal
8 {
9     TOOL_SELECT,
10     TOOL_UNSELECT,
11     TOOL_MOVE,
12     TOOL_CLICK,
13     TOOL_RELEASE,
14     TOOL_KEY,
15     TOOL_DRAWING,
16 };
17
18 enum Tool
19 {
20     NONE,
21     SELECTOR,
22     FRAME,
23     DOODLE,
24     TEXT,
25 };
26
27 typedef struct
28 {
29     enum Tool tool;
30     void (*tool_on_select) (TboWindow *);
31     void (*tool_on_unselect) (TboWindow *);
32     void (*tool_on_move) (GtkWidget *, GdkEventMotion *, TboWindow *);
33     void (*tool_on_click) (GtkWidget *, GdkEventButton *, TboWindow *);
34     void (*tool_on_release) (GtkWidget *, GdkEventButton *, TboWindow *);
35     void (*tool_on_key) (GtkWidget *, GdkEventKey *, TboWindow *);
36     void (*tool_drawing) (cairo_t *cr);
37 } ToolStruct;
38
39 void tool_signal (enum Tool tool, enum ToolSignal signal, gpointer data);
40
41 enum Tool get_selected_tool ();
42 void set_selected_tool (enum Tool tool, TboWindow *tbo);
43
44 GtkWidget *generate_toolbar (TboWindow *window);
45
46 gboolean notebook_switch_page_cb (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, TboWindow *tbo);
47
48 #endif
49