1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
#ifndef EMERALD_LIBENGINE_H
#define EMERALD_LIBENGINE_H
#include <emerald.h>
void copy_from_defaults_if_needed();
void load_color_setting(GKeyFile * f, decor_color_t * color, gchar * key, gchar * sect);
void load_shadow_color_setting(GKeyFile * f, gint sc[3], gchar * key, gchar * sect);
void load_float_setting(GKeyFile * f, gdouble * d, gchar * key, gchar * sect);
void load_int_setting(GKeyFile * f, gint * i, gchar * key, gchar * sect);
void load_bool_setting(GKeyFile * f, gboolean * b, gchar * key, gchar * sect);
void load_font_setting(GKeyFile * f, PangoFontDescription ** fd, gchar * key, gchar * sect);
void load_string_setting(GKeyFile * f, gchar ** s, gchar * key, gchar * sect);
void cairo_set_source_alpha_color(cairo_t * cr, alpha_color * c);
#define PFACS(zc) \
load_color_setting(f,&((private_fs *)ws->fs_act->engine_fs)->zc.color,"active_" #zc ,SECT);\
load_color_setting(f,&((private_fs *)ws->fs_inact->engine_fs)->zc.color,"inactive_" #zc ,SECT);\
load_float_setting(f,&((private_fs *)ws->fs_act->engine_fs)->zc.alpha,"active_" #zc "_alpha",SECT);\
load_float_setting(f,&((private_fs *)ws->fs_inact->engine_fs)->zc.alpha,"inactive_" #zc "_alpha",SECT);
void
fill_rounded_rectangle (cairo_t *cr,
double x,
double y,
double w,
double h,
int corner,
alpha_color * c0,
alpha_color * c1,
int gravity,
window_settings * ws,
double radius);
void
rounded_rectangle (cairo_t *cr,
double x,
double y,
double w,
double h,
int corner,
window_settings * ws,
double radius);
/* themer stuff */
typedef struct _EngineMetaInfo
{
gchar * description;
gchar * version;
gchar * last_compat;
GdkPixbuf * icon;
} EngineMetaInfo;
typedef enum _SettingType
{
ST_BOOL,
ST_INT,
ST_FLOAT,
ST_COLOR,
ST_FONT,
ST_META_STRING,
ST_IMG_FILE,
ST_STRING_COMBO,
ST_SFILE_INT_COMBO,
ST_ENGINE_COMBO,
ST_SFILE_BOOL,
ST_SFILE_INT,
ST_NUM
} SettingType;
typedef struct _SettingItem
{
SettingType type;
gchar * key;
gchar * section;
GtkWidget * widget;
gchar * fvalue;
GtkImage * image;
GtkImage * preview;
} SettingItem;
#include <titlebar.h>
#define gtk_box_pack_startC(a,b,c,d,e) gtk_box_pack_start(GTK_BOX(a),GTK_WIDGET(b),c,d,e)
#define gtk_box_pack_endC(a,b,c,d,e) gtk_box_pack_end(GTK_BOX(a),b,c,d,e)
#define gtk_container_addC(a,b) gtk_container_add(GTK_CONTAINER(a),b)
#define gtk_container_set_border_widthC(a,b) gtk_container_set_border_width(GTK_CONTAINER(a),b)
#define ACAV(caption,basekey,sect) add_color_alpha_value(caption,basekey,sect,active)
/* returns FALSE if couldn't find engine */
gboolean get_engine_meta_info(const gchar * engine, EngineMetaInfo * inf);
GtkWidget * scaler_new(gdouble low, gdouble high, gdouble prec);
void add_color_alpha_value(gchar * caption, gchar * basekey, gchar * sect, gboolean active);
void make_labels(gchar * header);
GtkWidget * build_frame(GtkWidget * vbox, gchar * title, gboolean is_hbox);
SettingItem * register_setting(GtkWidget * widget, SettingType type, gchar * section, gchar * key);
SettingItem * register_img_file_setting(GtkWidget * widget, gchar * section, gchar * key, GtkImage * image);
void table_new(gint width, gboolean same, gboolean labels);
void table_append(GtkWidget * child,gboolean stretch);
void table_append_separator();
#if GTK_CHECK_VERSION(3, 0, 0)
GtkGrid * get_current_table();
#else
GtkTable * get_current_table();
#endif
void send_reload_signal();
void apply_settings();
void cb_apply_setting(GtkWidget * w, gpointer p);
#ifdef USE_DBUS
void setup_dbus();
#endif
void write_setting(SettingItem * item, gpointer p);
void write_setting_file();
gboolean get_bool(SettingItem * item);
gdouble get_float(SettingItem * item);
gint get_int(SettingItem * item);
const gchar * get_float_str(SettingItem * item);
const gchar * get_color(SettingItem * item);
const gchar * get_font(SettingItem * item);
const gchar * get_string(SettingItem * item);
void check_file(SettingItem * item,gchar * f);
const gchar * get_file(SettingItem * item);
const gchar * get_string_combo(SettingItem * item);
gint get_sf_int_combo(SettingItem * item);
void update_preview(GtkFileChooser * fc, gchar * filename, GtkImage * img);
void update_preview_cb(GtkFileChooser * file_chooser, gpointer data);
void set_file(SettingItem * item,gchar * f);
void set_bool(SettingItem * item, gboolean b);
void set_float(SettingItem * item, gdouble f);
void set_int(SettingItem * item, gint i);
void set_float_str(SettingItem * item, gchar * s);
void set_color(SettingItem * item, gchar * s);
void set_font(SettingItem * item, gchar * f);
void set_string(SettingItem * item, gchar * s);
void set_string_combo(SettingItem * item, gchar * s);
void set_sf_int_combo(SettingItem * item, gint i);
void read_setting(SettingItem * item, gpointer * p);
void init_settings();
void set_changed(gboolean schanged);
void set_apply(gboolean sapply);
void cb_clear_file(GtkWidget * button, gpointer p);
void init_key_files();
GSList * get_setting_list();
const gchar * get_engine_combo(SettingItem * item);
void do_engine(const gchar * nam);
GtkWidget * build_notebook_page(gchar * title, GtkWidget * notebook);
gchar * make_filename(gchar * sect, gchar * key, gchar * ext);
void layout_engine_list(GtkWidget * vbox);
void init_engine_list();
#endif
|