BEAST - Free Software Audio Synthesizer and Tracker  0.10.0
gxkassortment.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __GXK_ASSORTMENT_H__
3 #define __GXK_ASSORTMENT_H__
4 
5 #include "gxkutils.hh"
6 
7 G_BEGIN_DECLS
8 
9 #define GXK_ASSORTMENT_PRIORITY (G_PRIORITY_HIGH - 10)
10 
11 /* --- assortment --- */
12 #define GXK_TYPE_ASSORTMENT_ENTRY (gxk_assortment_entry_get_type ())
13 #define GXK_TYPE_ASSORTMENT (gxk_assortment_get_type ())
14 #define GXK_ASSORTMENT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GXK_TYPE_ASSORTMENT, GxkAssortment))
15 #define GXK_ASSORTMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GXK_TYPE_ASSORTMENT, GxkAssortmentClass))
16 #define GXK_IS_ASSORTMENT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GXK_TYPE_ASSORTMENT))
17 #define GXK_IS_ASSORTMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GXK_TYPE_ASSORTMENT))
18 #define GXK_ASSORTMENT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), GXK_TYPE_ASSORTMENT, GxkAssortmentClass))
19 typedef struct GxkAssortment GxkAssortment;
20 typedef void (*GxkAssortmentDelete) (gpointer user_data,
21  GObject *object,
22  gpointer owner);
23 typedef struct {
24  gchar *label;
25  gchar *stock_icon; /* stock_id for the icon or NULL */
26  gchar *tooltip;
27  gpointer user_data;
28  gpointer owner;
29  GObject *object;
30  GxkAssortmentDelete free_func;
31  guint ref_count;
34 {
35  GObject parent_instance;
36  gchar *publishing_name;
37  GSList *entries;
38  GxkAssortmentEntry *selected;
39  guint block_count;
40 };
41 typedef struct {
42  GObjectClass parent_class;
43  void (*entry_added) (GxkAssortment *self,
44  GxkAssortmentEntry *entry);
45  void (*entry_changed) (GxkAssortment *self,
46  GxkAssortmentEntry *entry);
47  void (*entry_remove) (GxkAssortment *self,
48  GxkAssortmentEntry *entry);
49  void (*selection_changed) (GxkAssortment *self);
51 
52 /* --- assortment --- */
53 GType gxk_assortment_entry_get_type (void);
54 GType gxk_assortment_get_type (void);
55 GxkAssortment* gxk_assortment_new (void);
56 GxkAssortmentEntry* gxk_assortment_find_data (GxkAssortment *self,
57  gpointer entry_user_data);
58 GxkAssortmentEntry* gxk_assortment_insert (GxkAssortment *self,
59  guint position,
60  const gchar *label,
61  const gchar *stock_icon, /* maybe NULL */
62  const gchar *tooltip,
63  gpointer user_data,
64  GObject *object,
65  gpointer owner,
66  GxkAssortmentDelete free_func);
67 void gxk_assortment_changed (GxkAssortment *self,
68  GxkAssortmentEntry *entry);
69 void gxk_assortment_remove (GxkAssortment *self,
70  GxkAssortmentEntry *entry);
71 void gxk_assortment_dispose (GxkAssortment *self);
72 void gxk_assortment_block_selection (GxkAssortment *self);
73 void gxk_assortment_select (GxkAssortment *self,
74  GxkAssortmentEntry *entry);
75 void gxk_assortment_select_data (GxkAssortment *self,
76  gpointer entry_user_data);
77 void gxk_assortment_unblock_selection (GxkAssortment *self);
78 void gxk_assortment_manage_menu (GxkAssortment *self,
79  GtkMenu *menu);
80 
81 /* --- publishing --- */
82 void gxk_widget_publish_assortment (gpointer widget,
83  const gchar *publishing_name,
84  GxkAssortment *assortment);
85 typedef void (*GxkAssortmentClient) (gpointer client_data,
86  GtkWindow *window,
87  GxkAssortment *assortment,
88  GtkWidget *publisher);
89 void gxk_window_add_assortment_client (GtkWindow *window,
90  GxkAssortmentClient added_func,
91  GxkAssortmentClient removed_func,
92  gpointer client_data);
93 void gxk_window_remove_assortment_client (GtkWindow *window,
94  gpointer client_data);
95 
96 
97 G_END_DECLS
98 
99 #endif /* __GXK_ASSORTMENT_H__ */
Definition: gxkassortment.hh:41
Definition: gxkassortment.hh:23
Definition: gxkassortment.hh:33