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>
11 /* Equivalent to GTK Actions of the same type, but can support Inkscape SVG icons */
13 G_BEGIN_DECLS
15 #define INK_ACTION_TYPE ( ink_action_get_type() )
16 #define INK_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_ACTION_TYPE, InkAction) )
17 #define INK_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_ACTION_TYPE, InkActionClass) )
18 #define IS_INK_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_ACTION_TYPE) )
19 #define IS_INK_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_ACTION_TYPE) )
20 #define INK_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_ACTION_TYPE, InkActionClass) )
22 typedef struct _InkAction InkAction;
23 typedef struct _InkActionClass InkActionClass;
24 typedef struct _InkActionPrivate InkActionPrivate;
26 struct _InkAction
27 {
28 GtkAction action;
29 InkActionPrivate *private_data;
30 };
32 struct _InkActionClass
33 {
34 GtkActionClass parent_class;
35 };
37 GType ink_action_get_type( void );
39 InkAction* ink_action_new( const gchar *name,
40 const gchar *label,
41 const gchar *tooltip,
42 const gchar *inkId,
43 Inkscape::IconSize size );
46 /* --------------------------------------------------------------- */
47 /* --------------------------------------------------------------- */
48 /* --------------------------------------------------------------- */
49 /* --------------------------------------------------------------- */
52 #define INK_TOGGLE_ACTION_TYPE ( ink_toggle_action_get_type() )
53 #define INK_TOGGLE_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_TOGGLE_ACTION_TYPE, InkToggleAction) )
54 #define INK_TOGGLE_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_TOGGLE_ACTION_TYPE, InkToggleActionClass) )
55 #define IS_INK_TOGGLE_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_TOGGLE_ACTION_TYPE) )
56 #define IS_INK_TOGGLE_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_TOGGLE_ACTION_TYPE) )
57 #define INK_TOGGLE_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_TOGGLE_ACTION_TYPE, InkToggleActionClass) )
59 typedef struct _InkToggleAction InkToggleAction;
60 typedef struct _InkToggleActionClass InkToggleActionClass;
61 typedef struct _InkToggleActionPrivate InkToggleActionPrivate;
63 struct _InkToggleAction
64 {
65 GtkToggleAction action;
66 InkToggleActionPrivate *private_data;
67 };
69 struct _InkToggleActionClass
70 {
71 GtkToggleActionClass parent_class;
72 };
74 GType ink_toggle_action_get_type( void );
76 InkToggleAction* ink_toggle_action_new( const gchar *name,
77 const gchar *label,
78 const gchar *tooltip,
79 const gchar *inkId,
80 Inkscape::IconSize size );
83 /* --------------------------------------------------------------- */
84 /* --------------------------------------------------------------- */
85 /* --------------------------------------------------------------- */
86 /* --------------------------------------------------------------- */
89 #define INK_RADIO_ACTION_TYPE ( ink_radio_action_get_type() )
90 #define INK_RADIO_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_CAST( (obj), INK_RADIO_ACTION_TYPE, InkRadioAction) )
91 #define INK_RADIO_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_CAST( (klass), INK_RADIO_ACTION_TYPE, InkRadioActionClass) )
92 #define IS_INK_RADIO_ACTION( obj ) ( G_TYPE_CHECK_INSTANCE_TYPE( (obj), INK_RADIO_ACTION_TYPE) )
93 #define IS_INK_RADIO_ACTION_CLASS( klass ) ( G_TYPE_CHECK_CLASS_TYPE( (klass), INK_RADIO_ACTION_TYPE) )
94 #define INK_RADIO_ACTION_GET_CLASS( obj ) ( G_TYPE_INSTANCE_GET_CLASS( (obj), INK_RADIO_ACTION_TYPE, InkRadioActionClass) )
96 typedef struct _InkRadioAction InkRadioAction;
97 typedef struct _InkRadioActionClass InkRadioActionClass;
98 typedef struct _InkRadioActionPrivate InkRadioActionPrivate;
100 struct _InkRadioAction
101 {
102 GtkRadioAction action;
103 InkRadioActionPrivate *private_data;
104 };
106 struct _InkRadioActionClass
107 {
108 GtkRadioActionClass parent_class;
109 };
111 GType ink_radio_action_get_type( void );
113 InkRadioAction* ink_radio_action_new( const gchar *name,
114 const gchar *label,
115 const gchar *tooltip,
116 const gchar *inkId,
117 Inkscape::IconSize size );
121 G_END_DECLS
123 #endif /* SEEN_INK_ACTION */