BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bstutils.hh
Go to the documentation of this file.
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__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines