BEAST - Free Software Audio Synthesizer and Tracker  0.9.2
bstutils.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 __BST_UTILS_H__
3 #define __BST_UTILS_H__
4 #include "bstbseutils.hh"
5 #include <gtk/gtk.h>
6 #include "bstdefs.hh"
7 #include "bstcluehunter.hh"
8 /* generated type IDs, idl types */
9 #include "bstserverapi.hh"
10 
11 // == Bse Server (BSE remote origin) ==
12 extern Bse::ServerH bse_server;
13 
14 G_BEGIN_DECLS
15 
16 /* --- GUI utilities --- */
17 void bst_status_set_error (Bse::ErrorType error, const String &message);
18 #define bst_status_eprintf(error, ...) bst_status_set_error (error, Rapicorn::string_format (__VA_ARGS__))
19 void bst_gui_error_bell (gpointer widget);
20 void bst_window_sync_title_to_proxy (gpointer window,
21  SfiProxy proxy,
22  const gchar *title_format);
23 void bst_container_set_named_child (GtkWidget *container,
24  GQuark qname,
25  GtkWidget *child);
26 GtkWidget* bst_container_get_named_child (GtkWidget *container,
27  GQuark qname);
28 GtkWidget* bst_xpm_view_create (const gchar **xpm,
29  GtkWidget *colormap_widget);
30 GtkWidget* bst_vpack (const gchar *first_location,
31  ...) G_GNUC_NULL_TERMINATED;
32 GtkWidget* bst_hpack (const gchar *first_location,
33  ...) G_GNUC_NULL_TERMINATED;
34 GtkWidget* bst_vpack0 (const gchar *first_location,
35  ...) G_GNUC_NULL_TERMINATED;
36 GtkWidget* bst_hpack0 (const gchar *first_location,
37  ...) G_GNUC_NULL_TERMINATED;
38 void bst_action_list_add_cat (GxkActionList *alist,
39  BseCategory *cat,
40  guint skip_levels,
41  const gchar *stock_fallback,
42  GxkActionCheck acheck,
43  GxkActionExec aexec,
44  gpointer user_data);
45 GxkActionList* bst_action_list_from_cats (BseCategorySeq *cseq,
46  guint skip_levels,
47  const gchar *stock_fallback,
48  GxkActionCheck acheck,
49  GxkActionExec aexec,
50  gpointer user_data);
51 typedef gboolean (*BstActionListCategoryP) (gpointer predicate_data,
52  BseCategory *cat);
53 GxkActionList* bst_action_list_from_cats_pred (BseCategorySeq *cseq,
54  guint skip_levels,
55  const gchar *stock_fallback,
56  GxkActionCheck acheck,
57  GxkActionExec aexec,
58  gpointer user_data,
59  BstActionListCategoryP predicate,
60  gpointer predicate_data);
61 void bst_background_handler1_add (gboolean (*handler) (gpointer data),
62  gpointer data,
63  void (*free_func) (gpointer data));
64 void bst_background_handler2_add (gboolean (*handler) (gpointer data),
65  gpointer data,
66  void (*free_func) (gpointer data));
67 
68 
69 /* --- stock utilities --- */
70 GtkWidget* bst_stock_button (const gchar *stock_id);
71 GtkWidget* bst_stock_dbutton (const gchar *stock_id);
72 GtkWidget* bst_stock_icon_button (const gchar *stock_id);
73 void bst_stock_register_icon (const gchar *stock_id,
74  guint bytes_per_pixel,
75  guint width,
76  guint height,
77  guint rowstride,
78  const guint8 *pixels);
79 
80 /* --- pixbuf shortcuts --- */
81 #define bst_pixbuf_no_icon() gxk_stock_fallback_pixbuf (BST_STOCK_NO_ICON)
82 #define bst_pixbuf_ladspa() gxk_stock_fallback_pixbuf (BST_STOCK_LADSPA)
83 #define bst_pixbuf_knob() gxk_stock_fallback_pixbuf (BST_STOCK_KNOB)
84 
85 
86 /* --- misc utils --- */
87 gchar* bst_file_scan_find_key (const gchar *file,
88  const gchar *key,
89  const gchar *value_prefix);
90 
91 
92 /* --- GUI field mask --- */
93 typedef struct _BstGMask BstGMask;
94 GtkWidget* bst_gmask_container_create (guint border_width,
95  gboolean dislodge_columns);
96 typedef enum /*< skip >*/
97 {
98  BST_GMASK_FIT,
99  BST_GMASK_FILL,
100  BST_GMASK_INTERLEAVE, /* stretch */
101  BST_GMASK_BIG,
102  BST_GMASK_CENTER,
103  BST_GMASK_MULTI_SPAN
104 } BstGMaskPack;
105 BstGMask* bst_gmask_form (GtkWidget *gmask_container,
106  GtkWidget *action,
107  BstGMaskPack gpack);
108 #define bst_gmask_form_big(c,a) bst_gmask_form ((c), (a), BST_GMASK_BIG)
109 void bst_gmask_set_tip (BstGMask *mask,
110  const gchar *tip_text);
111 void bst_gmask_set_prompt (BstGMask *mask,
112  gpointer widget);
113 void bst_gmask_set_aux1 (BstGMask *mask,
114  gpointer widget);
115 void bst_gmask_set_aux2 (BstGMask *mask,
116  gpointer widget);
117 void bst_gmask_set_aux3 (BstGMask *mask,
118  gpointer widget);
119 void bst_gmask_set_column (BstGMask *mask,
120  guint column);
121 GtkWidget* bst_gmask_get_prompt (BstGMask *mask);
122 GtkWidget* bst_gmask_get_aux1 (BstGMask *mask);
123 GtkWidget* bst_gmask_get_aux2 (BstGMask *mask);
124 GtkWidget* bst_gmask_get_aux3 (BstGMask *mask);
125 GtkWidget* bst_gmask_get_action (BstGMask *mask);
126 void bst_gmask_foreach (BstGMask *mask,
127  gpointer func,
128  gpointer data);
129 void bst_gmask_pack (BstGMask *mask);
130 BstGMask* bst_gmask_quick (GtkWidget *gmask_container,
131  guint column,
132  const gchar *prompt,
133  gpointer action,
134  const gchar *tip_text);
135 #define bst_gmask_set_sensitive(mask, sensitive) \
136  bst_gmask_foreach ((mask), \
137  (sensitive) ? gxk_widget_make_sensitive : gxk_widget_make_insensitive, \
138  NULL)
139 #define bst_gmask_destroy(mask) \
140  bst_gmask_foreach ((mask), gtk_widget_destroy, NULL)
141 #define bst_gmask_ref g_object_ref
142 #define bst_gmask_unref g_object_unref
143 
144 
145 /* --- object utils --- */
146 #define bst_object_class_install_property(oclass, group, property_id, pspec) \
147  g_object_class_install_property (oclass, property_id, sfi_pspec_set_group (pspec, group))
148 
149 /* --- stock icon aliases --- */
150 #define BST_STOCK_QUESTION GTK_STOCK_DIALOG_QUESTION
151 #define BST_STOCK_WARNING GTK_STOCK_DIALOG_WARNING
152 #define BST_STOCK_ERROR GTK_STOCK_DIALOG_ERROR
153 
154 #define BST_STOCK_NEW GTK_STOCK_NEW
155 #define BST_STOCK_OPEN GTK_STOCK_OPEN
156 #define BST_STOCK_MERGE GTK_STOCK_OPEN // FIXME
157 #define BST_STOCK_SAVE GTK_STOCK_SAVE
158 #define BST_STOCK_SAVE_AS GTK_STOCK_SAVE_AS
159 #define BST_STOCK_PREFERENCES GTK_STOCK_PREFERENCES
160 #define BST_STOCK_QUIT GTK_STOCK_QUIT
161 #define BST_STOCK_CLEAR_UNDO GTK_STOCK_DELETE // FIXME
162 #define BST_STOCK_PREFERENCES GTK_STOCK_PREFERENCES
163 #define BST_STOCK_PLAY GTK_STOCK_GO_FORWARD // FIXME
164 #define BST_STOCK_STOP GTK_STOCK_STOP
165 #define BST_STOCK_REMOVE_SYNTH GTK_STOCK_REMOVE
166 #define BST_STOCK_DOC_INDEX GTK_STOCK_HELP // FIXME
167 #define BST_STOCK_DOC_NEWS GTK_STOCK_NEW // FIXME
168 #define BST_STOCK_HELP GTK_STOCK_HELP
169 #define BST_STOCK_DOC_FAQ GTK_STOCK_NEW // FIXME
170 #define BST_STOCK_DOC_DEVEL GTK_STOCK_NEW // FIXME
171 #define BST_STOCK_ABOUT GTK_STOCK_YES // FIXME
172 #define BST_STOCK_ONLINE_HELP_DESK GTK_STOCK_HELP // FIXME
173 #define BST_STOCK_ONLINE_BUGS GTK_STOCK_HELP // FIXME
174 #define BST_STOCK_ONLINE_BEAST_SITE GTK_STOCK_HOME // FIXME
175 #define BST_STOCK_ONLINE_SOUND_ARCHIVE BST_STOCK_LOAD_LIB // FIXME
176 #define BST_STOCK_ADD GTK_STOCK_ADD
177 #define BST_STOCK_REMOVE GTK_STOCK_REMOVE
178 
179 #define BST_STOCK_SELECT_ALL BST_STOCK_NONE // FIXME
180 #define BST_STOCK_SELECT_NONE BST_STOCK_NONE // FIXME
181 #define BST_STOCK_SELECT_INVERT BST_STOCK_NONE // FIXME
182 
183 
184 /* --- stock actions and aliases --- */
185 #define BST_STOCK_NONE (NULL)
186 #define BST_STOCK_APPLY GTK_STOCK_APPLY
187 #define BST_STOCK_CANCEL GTK_STOCK_CANCEL
188 #define BST_STOCK_CDROM GTK_STOCK_CDROM
189 #define BST_STOCK_CLONE ("bst-stock-clone")
190 #define BST_STOCK_CLOSE GTK_STOCK_CLOSE
191 #define BST_STOCK_DEFAULT_REVERT ("bst-stock-default-revert")
192 #define BST_STOCK_DELETE GTK_STOCK_DELETE
193 #define BST_STOCK_DISMISS ("bst-stock-dismiss")
194 #define BST_STOCK_EXECUTE GTK_STOCK_EXECUTE
195 #define BST_STOCK_OK GTK_STOCK_OK
196 #define BST_STOCK_OVERWRITE ("bst-stock-overwrite")
197 #define BST_STOCK_REDO GTK_STOCK_REDO
198 #define BST_STOCK_REVERT ("bst-stock-revert")
199 #define BST_STOCK_UNDO GTK_STOCK_UNDO
200 #define BST_STOCK_ZOOM_100 GTK_STOCK_ZOOM_100
201 #define BST_STOCK_ZOOM_FIT GTK_STOCK_ZOOM_FIT
202 #define BST_STOCK_ZOOM_IN GTK_STOCK_ZOOM_IN
203 #define BST_STOCK_ZOOM_OUT GTK_STOCK_ZOOM_OUT
204 /* --- generated includes --- */
205 /* marshallers */
206 #include "bstmarshal.h"
207 /* icon stock IDs */
208 #include "beast-gtk/icons/bst-stock-gen.h"
209 /* --- config values --- */
210 Bst::GConfig* bst_gconfig_get_global (void);
211 #define BST_GCONFIG(field) (* bst_gconfig_get_global ()) . field
212 /* --- internal --- */
213 void _bst_init_utils (void);
214 void _bst_init_radgets (void);
215 G_END_DECLS
216 
217 
218 // == mouse button checks ==
219 bool bst_mouse_button_activate (GdkEvent *event);
220 bool bst_mouse_button_activate1 (GdkEvent *event);
221 bool bst_mouse_button_activate2 (GdkEvent *event);
222 bool bst_mouse_button_context (GdkEvent *event);
223 bool bst_mouse_button_move (GdkEvent *event);
224 inline bool bst_mouse_button_activate (GdkEventButton *event) { return bst_mouse_button_activate ((GdkEvent*) event); }
225 inline bool bst_mouse_button_activate1 (GdkEventButton *event) { return bst_mouse_button_activate1 ((GdkEvent*) event); }
226 inline bool bst_mouse_button_activate2 (GdkEventButton *event) { return bst_mouse_button_activate2 ((GdkEvent*) event); }
227 inline bool bst_mouse_button_context (GdkEventButton *event) { return bst_mouse_button_context ((GdkEvent*) event); }
228 inline bool bst_mouse_button_move (GdkEventButton *event) { return bst_mouse_button_move ((GdkEvent*) event); }
229 
230 
231 #endif /* __BST_UTILS_H__ */
void bst_gmask_set_aux3(BstGMask *mask, gpointer widget)
Definition: bstutils.cc:736
void bst_gmask_set_aux2(BstGMask *mask, gpointer widget)
Definition: bstutils.cc:713
void bst_gmask_set_aux1(BstGMask *mask, gpointer widget)
Definition: bstutils.cc:688
void bst_gmask_set_prompt(BstGMask *mask, gpointer widget)
Definition: bstutils.cc:665
BstGMask * bst_gmask_form(GtkWidget *gmask_container, GtkWidget *action, BstGMaskPack gpack)
Definition: bstutils.cc:631
GtkWidget * bst_gmask_container_create(guint border_width, gboolean dislodge_columns)
Definition: bstutils.cc:588
void bst_gmask_pack(BstGMask *mask)
Definition: bstutils.cc:952
void bst_gmask_set_tip(BstGMask *mask, const gchar *tip_text)
Definition: bstutils.cc:645
STL class.
GtkWidget * bst_gmask_get_aux1(BstGMask *mask)
Definition: bstutils.cc:797
GtkWidget * bst_gmask_get_aux3(BstGMask *mask)
Definition: bstutils.cc:833
See also the corresponding IDL class Server.
Definition: bseclientapi.hh:1042
void bst_gmask_foreach(BstGMask *mask, gpointer func, gpointer data)
Definition: bstutils.cc:871
GtkWidget * bst_gmask_get_aux2(BstGMask *mask)
Definition: bstutils.cc:815
BstGMask * bst_gmask_quick(GtkWidget *gmask_container, guint column, const gchar *prompt, gpointer action, const gchar *tip_text)
Definition: bstutils.cc:1114
GtkWidget * bst_gmask_get_prompt(BstGMask *mask)
Definition: bstutils.cc:779
Definition: bstapi.idl:104
void bst_gmask_set_column(BstGMask *mask, guint column)
Definition: bstutils.cc:760
GtkWidget * bst_gmask_get_action(BstGMask *mask)
Definition: bstutils.cc:851