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