BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __BST_UTILS_H__ 00003 #define __BST_UTILS_H__ 00004 #include "bstbseutils.hh" 00005 #include <gtk/gtk.h> 00006 #include "bstdefs.hh" 00007 #include "bstcluehunter.hh" 00008 /* generated type IDs, idl types */ 00009 #include "bstgentypes.h" 00010 00011 00012 // == Bse Server (BSE remote origin) == 00013 extern Bse::ServerH bse_server; 00014 00015 G_BEGIN_DECLS 00016 00017 /* --- GUI utilities --- */ 00018 void bst_status_set_error (BseErrorType error, const std::string &message); 00019 #define bst_status_eprintf(error, ...) bst_status_set_error (error, Rapicorn::string_format (__VA_ARGS__)) 00020 void bst_gui_error_bell (gpointer widget); 00021 void bst_window_sync_title_to_proxy (gpointer window, 00022 SfiProxy proxy, 00023 const gchar *title_format); 00024 void bst_container_set_named_child (GtkWidget *container, 00025 GQuark qname, 00026 GtkWidget *child); 00027 GtkWidget* bst_container_get_named_child (GtkWidget *container, 00028 GQuark qname); 00029 GtkWidget* bst_xpm_view_create (const gchar **xpm, 00030 GtkWidget *colormap_widget); 00031 GtkWidget* bst_vpack (const gchar *first_location, 00032 ...) G_GNUC_NULL_TERMINATED; 00033 GtkWidget* bst_hpack (const gchar *first_location, 00034 ...) G_GNUC_NULL_TERMINATED; 00035 GtkWidget* bst_vpack0 (const gchar *first_location, 00036 ...) G_GNUC_NULL_TERMINATED; 00037 GtkWidget* bst_hpack0 (const gchar *first_location, 00038 ...) G_GNUC_NULL_TERMINATED; 00039 void bst_action_list_add_cat (GxkActionList *alist, 00040 BseCategory *cat, 00041 guint skip_levels, 00042 const gchar *stock_fallback, 00043 GxkActionCheck acheck, 00044 GxkActionExec aexec, 00045 gpointer user_data); 00046 GxkActionList* bst_action_list_from_cats (BseCategorySeq *cseq, 00047 guint skip_levels, 00048 const gchar *stock_fallback, 00049 GxkActionCheck acheck, 00050 GxkActionExec aexec, 00051 gpointer user_data); 00052 typedef gboolean (*BstActionListCategoryP) (gpointer predicate_data, 00053 BseCategory *cat); 00054 GxkActionList* bst_action_list_from_cats_pred (BseCategorySeq *cseq, 00055 guint skip_levels, 00056 const gchar *stock_fallback, 00057 GxkActionCheck acheck, 00058 GxkActionExec aexec, 00059 gpointer user_data, 00060 BstActionListCategoryP predicate, 00061 gpointer predicate_data); 00062 void bst_background_handler1_add (gboolean (*handler) (gpointer data), 00063 gpointer data, 00064 void (*free_func) (gpointer data)); 00065 void bst_background_handler2_add (gboolean (*handler) (gpointer data), 00066 gpointer data, 00067 void (*free_func) (gpointer data)); 00068 00069 00070 /* --- stock utilities --- */ 00071 GtkWidget* bst_stock_button (const gchar *stock_id); 00072 GtkWidget* bst_stock_dbutton (const gchar *stock_id); 00073 GtkWidget* bst_stock_icon_button (const gchar *stock_id); 00074 void bst_stock_register_icon (const gchar *stock_id, 00075 guint bytes_per_pixel, 00076 guint width, 00077 guint height, 00078 guint rowstride, 00079 const guint8 *pixels); 00080 00081 /* --- pixbuf shortcuts --- */ 00082 #define bst_pixbuf_no_icon() gxk_stock_fallback_pixbuf (BST_STOCK_NO_ICON) 00083 #define bst_pixbuf_ladspa() gxk_stock_fallback_pixbuf (BST_STOCK_LADSPA) 00084 #define bst_pixbuf_knob() gxk_stock_fallback_pixbuf (BST_STOCK_KNOB) 00085 00086 00087 /* --- misc utils --- */ 00088 gint bst_fft_size_to_int (BstFFTSize fft_size); 00089 BstFFTSize bst_fft_size_from_int (guint sz); 00090 gchar* bst_file_scan_find_key (const gchar *file, 00091 const gchar *key, 00092 const gchar *value_prefix); 00093 00094 00095 /* --- GUI field mask --- */ 00096 typedef struct _BstGMask BstGMask; 00097 GtkWidget* bst_gmask_container_create (guint border_width, 00098 gboolean dislodge_columns); 00099 typedef enum /*< skip >*/ 00100 { 00101 BST_GMASK_FIT, 00102 BST_GMASK_FILL, 00103 BST_GMASK_INTERLEAVE, /* stretch */ 00104 BST_GMASK_BIG, 00105 BST_GMASK_CENTER, 00106 BST_GMASK_MULTI_SPAN 00107 } BstGMaskPack; 00108 BstGMask* bst_gmask_form (GtkWidget *gmask_container, 00109 GtkWidget *action, 00110 BstGMaskPack gpack); 00111 #define bst_gmask_form_big(c,a) bst_gmask_form ((c), (a), BST_GMASK_BIG) 00112 void bst_gmask_set_tip (BstGMask *mask, 00113 const gchar *tip_text); 00114 void bst_gmask_set_prompt (BstGMask *mask, 00115 gpointer widget); 00116 void bst_gmask_set_aux1 (BstGMask *mask, 00117 gpointer widget); 00118 void bst_gmask_set_aux2 (BstGMask *mask, 00119 gpointer widget); 00120 void bst_gmask_set_aux3 (BstGMask *mask, 00121 gpointer widget); 00122 void bst_gmask_set_column (BstGMask *mask, 00123 guint column); 00124 GtkWidget* bst_gmask_get_prompt (BstGMask *mask); 00125 GtkWidget* bst_gmask_get_aux1 (BstGMask *mask); 00126 GtkWidget* bst_gmask_get_aux2 (BstGMask *mask); 00127 GtkWidget* bst_gmask_get_aux3 (BstGMask *mask); 00128 GtkWidget* bst_gmask_get_action (BstGMask *mask); 00129 void bst_gmask_foreach (BstGMask *mask, 00130 gpointer func, 00131 gpointer data); 00132 void bst_gmask_pack (BstGMask *mask); 00133 BstGMask* bst_gmask_quick (GtkWidget *gmask_container, 00134 guint column, 00135 const gchar *prompt, 00136 gpointer action, 00137 const gchar *tip_text); 00138 #define bst_gmask_set_sensitive(mask, sensitive) \ 00139 bst_gmask_foreach ((mask), \ 00140 (sensitive) ? gxk_widget_make_sensitive : gxk_widget_make_insensitive, \ 00141 NULL) 00142 #define bst_gmask_destroy(mask) \ 00143 bst_gmask_foreach ((mask), gtk_widget_destroy, NULL) 00144 #define bst_gmask_ref g_object_ref 00145 #define bst_gmask_unref g_object_unref 00146 00147 00148 /* --- object utils --- */ 00149 #define bst_object_class_install_property(oclass, group, property_id, pspec) \ 00150 g_object_class_install_property (oclass, property_id, sfi_pspec_set_group (pspec, group)) 00151 00152 /* --- stock icon aliases --- */ 00153 #define BST_STOCK_QUESTION GTK_STOCK_DIALOG_QUESTION 00154 #define BST_STOCK_WARNING GTK_STOCK_DIALOG_WARNING 00155 #define BST_STOCK_ERROR GTK_STOCK_DIALOG_ERROR 00156 00157 #define BST_STOCK_NEW GTK_STOCK_NEW 00158 #define BST_STOCK_OPEN GTK_STOCK_OPEN 00159 #define BST_STOCK_MERGE GTK_STOCK_OPEN // FIXME 00160 #define BST_STOCK_SAVE GTK_STOCK_SAVE 00161 #define BST_STOCK_SAVE_AS GTK_STOCK_SAVE_AS 00162 #define BST_STOCK_PREFERENCES GTK_STOCK_PREFERENCES 00163 #define BST_STOCK_QUIT GTK_STOCK_QUIT 00164 #define BST_STOCK_CLEAR_UNDO GTK_STOCK_DELETE // FIXME 00165 #define BST_STOCK_PREFERENCES GTK_STOCK_PREFERENCES 00166 #define BST_STOCK_PLAY GTK_STOCK_GO_FORWARD // FIXME 00167 #define BST_STOCK_STOP GTK_STOCK_STOP 00168 #define BST_STOCK_REMOVE_SYNTH GTK_STOCK_REMOVE 00169 #define BST_STOCK_DOC_INDEX GTK_STOCK_HELP // FIXME 00170 #define BST_STOCK_DOC_NEWS GTK_STOCK_NEW // FIXME 00171 #define BST_STOCK_HELP GTK_STOCK_HELP 00172 #define BST_STOCK_DOC_FAQ GTK_STOCK_NEW // FIXME 00173 #define BST_STOCK_DOC_DEVEL GTK_STOCK_NEW // FIXME 00174 #define BST_STOCK_ABOUT GTK_STOCK_YES // FIXME 00175 #define BST_STOCK_ONLINE_HELP_DESK GTK_STOCK_HELP // FIXME 00176 #define BST_STOCK_ONLINE_BUGS GTK_STOCK_HELP // FIXME 00177 #define BST_STOCK_ONLINE_BEAST_SITE GTK_STOCK_HOME // FIXME 00178 #define BST_STOCK_ONLINE_SOUND_ARCHIVE BST_STOCK_LOAD_LIB // FIXME 00179 #define BST_STOCK_ADD GTK_STOCK_ADD 00180 #define BST_STOCK_REMOVE GTK_STOCK_REMOVE 00181 00182 #define BST_STOCK_SELECT_ALL BST_STOCK_NONE // FIXME 00183 #define BST_STOCK_SELECT_NONE BST_STOCK_NONE // FIXME 00184 #define BST_STOCK_SELECT_INVERT BST_STOCK_NONE // FIXME 00185 00186 00187 /* --- stock actions and aliases --- */ 00188 #define BST_STOCK_NONE (NULL) 00189 #define BST_STOCK_APPLY GTK_STOCK_APPLY 00190 #define BST_STOCK_CANCEL GTK_STOCK_CANCEL 00191 #define BST_STOCK_CDROM GTK_STOCK_CDROM 00192 #define BST_STOCK_CLONE ("bst-stock-clone") 00193 #define BST_STOCK_CLOSE GTK_STOCK_CLOSE 00194 #define BST_STOCK_DEFAULT_REVERT ("bst-stock-default-revert") 00195 #define BST_STOCK_DELETE GTK_STOCK_DELETE 00196 #define BST_STOCK_DISMISS ("bst-stock-dismiss") 00197 #define BST_STOCK_EXECUTE GTK_STOCK_EXECUTE 00198 #define BST_STOCK_OK GTK_STOCK_OK 00199 #define BST_STOCK_OVERWRITE ("bst-stock-overwrite") 00200 #define BST_STOCK_REDO GTK_STOCK_REDO 00201 #define BST_STOCK_REVERT ("bst-stock-revert") 00202 #define BST_STOCK_UNDO GTK_STOCK_UNDO 00203 #define BST_STOCK_ZOOM_100 GTK_STOCK_ZOOM_100 00204 #define BST_STOCK_ZOOM_FIT GTK_STOCK_ZOOM_FIT 00205 #define BST_STOCK_ZOOM_IN GTK_STOCK_ZOOM_IN 00206 #define BST_STOCK_ZOOM_OUT GTK_STOCK_ZOOM_OUT 00207 /* --- generated includes --- */ 00208 /* marshallers */ 00209 #include "bstmarshal.h" 00210 /* icon stock IDs */ 00211 #include "beast-gtk/icons/bst-stock-gen.h" 00212 /* --- config values --- */ 00213 BstGConfig* bst_gconfig_get_global (void); 00214 #define BST_GCONFIG(field) (* bst_gconfig_get_global ()) . field 00215 /* --- internal --- */ 00216 void _bst_init_utils (void); 00217 void _bst_init_radgets (void); 00218 G_END_DECLS 00219 00220 00221 // == mouse button checks == 00222 bool bst_mouse_button_activate (GdkEvent *event); 00223 bool bst_mouse_button_activate1 (GdkEvent *event); 00224 bool bst_mouse_button_activate2 (GdkEvent *event); 00225 bool bst_mouse_button_context (GdkEvent *event); 00226 bool bst_mouse_button_move (GdkEvent *event); 00227 inline bool bst_mouse_button_activate (GdkEventButton *event) { return bst_mouse_button_activate ((GdkEvent*) event); } 00228 inline bool bst_mouse_button_activate1 (GdkEventButton *event) { return bst_mouse_button_activate1 ((GdkEvent*) event); } 00229 inline bool bst_mouse_button_activate2 (GdkEventButton *event) { return bst_mouse_button_activate2 ((GdkEvent*) event); } 00230 inline bool bst_mouse_button_context (GdkEventButton *event) { return bst_mouse_button_context ((GdkEvent*) event); } 00231 inline bool bst_mouse_button_move (GdkEventButton *event) { return bst_mouse_button_move ((GdkEvent*) event); } 00232 00233 00234 #endif /* __BST_UTILS_H__ */