File: libengine.h

package info (click to toggle)
emerald 0.8.18-4.2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,916 kB
  • sloc: ansic: 15,354; sh: 4,719; makefile: 191; xml: 7
file content (149 lines) | stat: -rw-r--r-- 5,480 bytes parent folder | download | duplicates (4)
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