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 __GXK_RADGET_H__ 00003 #define __GXK_RADGET_H__ 00004 00005 #include "gxkutils.hh" 00006 00007 G_BEGIN_DECLS 00008 00009 /* --- structures --- */ 00010 #define GXK_RADGET G_OBJECT 00011 #define GXK_IS_RADGET G_IS_OBJECT 00012 typedef void GxkRadget; 00013 typedef struct _GxkRadgetArgs GxkRadgetArgs; 00014 00015 00016 /* --- radget args (aggregation of (name, value) pairs) --- */ 00017 GxkRadgetArgs* gxk_radget_args (const gchar *name1, 00018 ...); 00019 GxkRadgetArgs* gxk_radget_args_valist (const gchar *name1, 00020 va_list var_args); 00021 GxkRadgetArgs* gxk_radget_const_args (void); /* based on intern_string values */ 00022 GxkRadgetArgs* gxk_radget_args_set (GxkRadgetArgs *args, 00023 const gchar *name, 00024 const gchar *value); 00025 const gchar* gxk_radget_args_get (const GxkRadgetArgs *args, 00026 const gchar *name); 00027 GxkRadgetArgs* gxk_radget_args_merge (GxkRadgetArgs *dest, 00028 const GxkRadgetArgs *source); 00029 void gxk_radget_free_args (GxkRadgetArgs *args); 00030 00031 00032 /* --- radget functions --- */ 00033 GxkRadget* gxk_radget_create (const gchar *domain_name, 00034 const gchar *name, 00035 const gchar *var1, 00036 ...); 00037 GxkRadget* gxk_radget_complete (GxkRadget *radget, 00038 const gchar *domain_name, 00039 const gchar *name, 00040 const gchar *var1, 00041 ...); 00042 GxkRadget* gxk_radget_creator (GxkRadget *radget, 00043 const gchar *domain_name, 00044 const gchar *name, 00045 GxkRadget *parent, 00046 GSList *call_args, /* const GxkRadgetArgs* */ 00047 GSList *env_args); /* const GxkRadgetArgs* */ 00048 const gchar* gxk_radget_get_domain (GxkRadget *radget); 00049 void gxk_radget_parse (const gchar *domain_name, 00050 const gchar *file_name, 00051 const gchar *i18n_domain, 00052 GError **error); 00053 void gxk_radget_parse_text (const gchar *domain_name, 00054 const gchar *text, 00055 gint text_len, 00056 const gchar *i18n_domain, 00057 GError **error); 00058 gpointer gxk_radget_find (GxkRadget *radget, 00059 const gchar *name); 00060 gpointer gxk_radget_find_area (GxkRadget *radget, 00061 const gchar *area); 00062 void gxk_radget_add (GxkRadget *radget, 00063 const gchar *area, 00064 gpointer widget); 00065 void gxk_radget_sensitize (GxkRadget *radget, 00066 const gchar *name, 00067 gboolean sensitive); 00068 00069 00070 /* --- radget types --- */ 00071 typedef struct GxkRadgetData GxkRadgetData; 00072 typedef struct { 00073 GParamSpec* (*find_prop) (GTypeClass *klass, 00074 const gchar *construct_param_name); 00075 GxkRadget* (*create) (GType type, 00076 const gchar *name, 00077 guint n_construct_params, 00078 GParameter *construct_params, 00079 GxkRadgetData *gdgdata); 00080 void (*set_prop) (GxkRadget *radget, 00081 const gchar *prop_name, 00082 const GValue *value); 00083 gboolean (*adopt) (GxkRadget *radget, 00084 GxkRadget *parent, 00085 GxkRadgetData *gdgdata); 00086 GParamSpec* (*find_pack) (GxkRadget *radget, 00087 const gchar *pack_name); 00088 void (*set_pack) (GxkRadget *radget, 00089 const gchar *pack_name, 00090 const GValue *value); 00091 } GxkRadgetType; 00092 void gxk_radget_define_widget_type (GType type); 00093 void gxk_radget_define_type (GType type, 00094 const GxkRadgetType *ggtype); 00095 gboolean gxk_radget_type_lookup (GType type, 00096 GxkRadgetType *ggtype); 00097 typedef void (*GxkRadgetHook) (GxkRadget *radget, 00098 guint property_id, 00099 const GValue *value, 00100 GParamSpec *pspec); 00101 void gxk_radget_register_hook (GParamSpec *pspec, 00102 guint property_id, 00103 GxkRadgetHook hook_func); 00104 GxkRadgetArgs* gxk_radget_data_copy_call_args (GxkRadgetData *gdgdata); 00105 GxkRadget* gxk_radget_data_get_scope_radget (GxkRadgetData *gdgdata); 00106 gchar* gxk_radget_data_dup_expand (GxkRadgetData *gdgdata, 00107 const gchar *expression); 00108 00109 G_END_DECLS 00110 00111 #endif /* __GXK_RADGET_H__ */