1 #ifndef SEEN_INK_ACTION
2 #define SEEN_INK_ACTION
5 #include <glib.h>
6 #include <gtk/gtkaction.h>
7 #include <gtk/gtktoggleaction.h>
8 #include <gtk/gtkradioaction.h>
9 #include <glib-object.h>
10 #include "icon-size.h"
12 /* Equivalent to GTK Actions of the same type, but can support Inkscape SVG icons */
14 G_BEGIN_DECLS
16 #define INK_ACTION_TYPE ( ink_action_get_type() )
17 #define INK_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_ACTION_TYPE, InkAction) )
18 #define INK_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_ACTION_TYPE, InkActionClass) )
19 #define IS_INK_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_ACTION_TYPE) )
20 #define IS_INK_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_ACTION_TYPE) )
21 #define INK_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_ACTION_TYPE, InkActionClass) )
23 typedef struct _InkAction InkAction;
24 typedef struct _InkActionClass InkActionClass;
25 typedef struct _InkActionPrivate InkActionPrivate;
27 struct _InkAction
28 {
29 GtkAction action;
30 InkActionPrivate *private_data;
31 };
33 struct _InkActionClass
34 {
35 GtkActionClass parent_class;
36 };
38 GType ink_action_get_type( void );
40 InkAction* ink_action_new( const gchar *name,
41 const gchar *label,
42 const gchar *tooltip,
43 const gchar *inkId,
44 Inkscape::IconSize size );
47 /* --------------------------------------------------------------- */
48 /* --------------------------------------------------------------- */
49 /* --------------------------------------------------------------- */
50 /* --------------------------------------------------------------- */
53 #define INK_TOGGLE_ACTION_TYPE ( ink_toggle_action_get_type() )
54 #define INK_TOGGLE_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_TOGGLE_ACTION_TYPE, InkToggleAction) )
55 #define INK_TOGGLE_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_TOGGLE_ACTION_TYPE, InkToggleActionClass) )
56 #define IS_INK_TOGGLE_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_TOGGLE_ACTION_TYPE) )
57 #define IS_INK_TOGGLE_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_TOGGLE_ACTION_TYPE) )
58 #define INK_TOGGLE_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_TOGGLE_ACTION_TYPE, InkToggleActionClass) )
60 typedef struct _InkToggleAction InkToggleAction;
61 typedef struct _InkToggleActionClass InkToggleActionClass;
62 typedef struct _InkToggleActionPrivate InkToggleActionPrivate;
64 struct _InkToggleAction
65 {
66 GtkToggleAction action;
67 InkToggleActionPrivate *private_data;
68 };
70 struct _InkToggleActionClass
71 {
72 GtkToggleActionClass parent_class;
73 };
75 GType ink_toggle_action_get_type( void );
77 InkToggleAction* ink_toggle_action_new( const gchar *name,
78 const gchar *label,
79 const gchar *tooltip,
80 const gchar *inkId,
81 Inkscape::IconSize size );
84 /* --------------------------------------------------------------- */
85 /* --------------------------------------------------------------- */
86 /* --------------------------------------------------------------- */
87 /* --------------------------------------------------------------- */
90 #define INK_RADIO_ACTION_TYPE ( ink_radio_action_get_type() )
91 #define INK_RADIO_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_RADIO_ACTION_TYPE, InkRadioAction) )
92 #define INK_RADIO_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_RADIO_ACTION_TYPE, InkRadioActionClass) )
93 #define IS_INK_RADIO_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_RADIO_ACTION_TYPE) )
94 #define IS_INK_RADIO_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_RADIO_ACTION_TYPE) )
95 #define INK_RADIO_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_RADIO_ACTION_TYPE, InkRadioActionClass) )
97 typedef struct _InkRadioAction InkRadioAction;
98 typedef struct _InkRadioActionClass InkRadioActionClass;
99 typedef struct _InkRadioActionPrivate InkRadioActionPrivate;
101 struct _InkRadioAction
102 {
103 GtkRadioAction action;
104 InkRadioActionPrivate *private_data;
105 };
107 struct _InkRadioActionClass
108 {
109 GtkRadioActionClass parent_class;
110 };
112 GType ink_radio_action_get_type( void );
114 InkRadioAction* ink_radio_action_new( const gchar *name,
115 const gchar *label,
116 const gchar *tooltip,
117 const gchar *inkId,
118 Inkscape::IconSize size );
122 G_END_DECLS
124 #endif /* SEEN_INK_ACTION */