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