ecrustified

SVN revision: 57909
This commit is contained in:
Mike Blumenkrantz 2011-03-20 06:12:17 +00:00
parent 3e85ebbb42
commit 1bfdf90aab
8 changed files with 955 additions and 768 deletions

File diff suppressed because it is too large Load Diff

View File

@ -6,10 +6,10 @@
typedef struct _E_Comp E_Comp;
typedef struct _E_Comp_Win E_Comp_Win;
Eina_Bool e_mod_comp_init (void);
void e_mod_comp_shutdown (void);
Eina_Bool e_mod_comp_init(void);
void e_mod_comp_shutdown(void);
void e_mod_comp_shadow_set(void);
void e_mod_comp_shadow_set (void);
#endif
#endif

View File

@ -4,7 +4,6 @@
//////////////////////////////////////////////////////////////////////////
static void
_e_mod_comp_tiles_alloc(E_Update *up)
{
@ -18,7 +17,7 @@ E_Update *
e_mod_comp_update_new(void)
{
E_Update *up;
up = calloc(1, sizeof(E_Update));
up->tsw = 32;
up->tsh = 32;
@ -34,13 +33,16 @@ e_mod_comp_update_free(E_Update *up)
}
void
e_mod_comp_update_policy_set(E_Update *up, E_Update_Policy pol)
e_mod_comp_update_policy_set(E_Update *up,
E_Update_Policy pol)
{
up->pol = pol;
}
void
e_mod_comp_update_tile_size_set(E_Update *up, int tsw, int tsh)
e_mod_comp_update_tile_size_set(E_Update *up,
int tsw,
int tsh)
{
if ((up->tsw == tsw) && (up->tsh == tsh)) return;
up->tsw = tsw;
@ -49,17 +51,19 @@ e_mod_comp_update_tile_size_set(E_Update *up, int tsw, int tsh)
}
void
e_mod_comp_update_resize(E_Update *up, int w, int h)
e_mod_comp_update_resize(E_Update *up,
int w,
int h)
{
unsigned char *ptiles, *p, *pp;
int ptw, pth, x, y;
if ((!up) || ((up->w == w) && (up->h == h))) return;
ptw = up->tw;
pth = up->th;
ptiles = up->tiles;
up->w = w;
up->h = h;
up->tw = (up->w + up->tsw - 1) / up->tsw;
@ -93,34 +97,40 @@ e_mod_comp_update_resize(E_Update *up, int w, int h)
}
void
e_mod_comp_update_add(E_Update *up, int x, int y, int w, int h)
e_mod_comp_update_add(E_Update *up,
int x,
int y,
int w,
int h)
{
int tx, ty, txx, tyy, xx, yy;
unsigned char *t, *t2;
if ((w <= 0) || (h <= 0)) return;
if ((up->tw <= 0) || (up->th <= 0)) return;
_e_mod_comp_tiles_alloc(up);
E_RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, up->w, up->h);
if ((w <= 0) || (h <= 0)) return;
switch (up->pol)
{
case E_UPDATE_POLICY_RAW:
case E_UPDATE_POLICY_RAW:
break;
case E_UPDATE_POLICY_HALF_WIDTH_OR_MORE_ROUND_UP_TO_FULL_WIDTH:
case E_UPDATE_POLICY_HALF_WIDTH_OR_MORE_ROUND_UP_TO_FULL_WIDTH:
if (w > (up->w / 2))
{
x = 0;
w = up->w;
}
break;
default:
default:
break;
}
tx = x / up->tsw;
ty = y / up->tsh;
txx = (x + w - 1) / up->tsw;
@ -145,7 +155,7 @@ e_mod_comp_update_rects_get(E_Update *up)
int ri = 0;
int x, y;
unsigned char *t, *t2, *t3;
if (!up->tiles) return NULL;
r = calloc((up->tw * up->th) + 1, sizeof(E_Update_Rect));
if (!r) return NULL;
@ -158,13 +168,14 @@ e_mod_comp_update_rects_get(E_Update *up)
{
int can_expand_x = 1, can_expand_y = 1;
int xx = 0, yy = 0;
t2 = t + 1;
while (can_expand_x)
{
xx++;
if ((x + xx) >= up->tw) can_expand_x = 0;
else if (!*t2) can_expand_x = 0;
else if (!*t2)
can_expand_x = 0;
if (can_expand_x) *t2 = 0;
t2++;
}
@ -172,7 +183,7 @@ e_mod_comp_update_rects_get(E_Update *up)
while (can_expand_y)
{
int i;
yy++;
t3 += up->tw;
if ((y + yy) >= up->th) can_expand_y = 0;

View File

@ -18,21 +18,30 @@ struct _E_Update_Rect
struct _E_Update
{
int w, h;
int tw, th;
int tsw, tsh;
unsigned char *tiles;
int w, h;
int tw, th;
int tsw, tsh;
unsigned char *tiles;
E_Update_Policy pol;
};
E_Update *e_mod_comp_update_new (void);
void e_mod_comp_update_free (E_Update *up);
void e_mod_comp_update_policy_set (E_Update *up, E_Update_Policy pol);
void e_mod_comp_update_tile_size_set (E_Update *up, int tsw, int tsh);
void e_mod_comp_update_resize (E_Update *up, int w, int h);
void e_mod_comp_update_add (E_Update *up, int x, int y, int w, int h);
E_Update_Rect *e_mod_comp_update_rects_get (E_Update *up);
void e_mod_comp_update_clear (E_Update *up);
E_Update *e_mod_comp_update_new(void);
void e_mod_comp_update_free(E_Update *up);
void e_mod_comp_update_policy_set(E_Update *up,
E_Update_Policy pol);
void e_mod_comp_update_tile_size_set(E_Update *up,
int tsw,
int tsh);
void e_mod_comp_update_resize(E_Update *up,
int w,
int h);
void e_mod_comp_update_add(E_Update *up,
int x,
int y,
int w,
int h);
E_Update_Rect *e_mod_comp_update_rects_get(E_Update *up);
void e_mod_comp_update_clear(E_Update *up);
#endif
#endif

View File

@ -15,36 +15,36 @@ typedef struct _E_Demo_Style_Item
typedef struct _Match_Config
{
Match match;
Match match;
E_Config_Dialog *cfd;
char *title, *name, *clas, *role;
int borderless, dialog, accepts_focus, vkbd;
int quickpanel, argb, fullscreen, modal;
char *title, *name, *clas, *role;
int borderless, dialog, accepts_focus, vkbd;
int quickpanel, argb, fullscreen, modal;
} Match_Config;
struct _E_Config_Dialog_Data
{
int use_shadow;
int engine;
int indirect;
int texture_from_pixmap;
int smooth_windows;
int lock_fps;
int efl_sync;
int loose_sync;
int grab;
int vsync;
int use_shadow;
int engine;
int indirect;
int texture_from_pixmap;
int smooth_windows;
int lock_fps;
int efl_sync;
int loose_sync;
int grab;
int vsync;
const char *shadow_style;
struct
{
Eina_List *popups;
Eina_List *borders;
Eina_List *overrides;
Eina_List *menus;
int changed;
} match;
struct
{
Eina_List *popups;
Eina_List *borders;
Eina_List *overrides;
Eina_List *menus;
int changed;
} match;
Evas_Object *popups_il;
Evas_Object *borders_il;
@ -53,29 +53,33 @@ struct _E_Config_Dialog_Data
Evas_Object *edit_il;
int keep_unmapped;
int max_unmapped_pixels;
int max_unmapped_time;
int min_unmapped_time;
int send_flush;
int send_dump;
int nocomp_fs;
int keep_unmapped;
int max_unmapped_pixels;
int max_unmapped_time;
int min_unmapped_time;
int send_flush;
int send_dump;
int nocomp_fs;
int fps_show;
int fps_corner;
int fps_average_range;
double first_draw_delay;
int fps_show;
int fps_corner;
int fps_average_range;
double first_draw_delay;
};
/* Protos */
static void *_create_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create_widgets (E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static void *_create_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd,
E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd,
Evas *evas,
E_Config_Dialog_Data *cfdata);
static int _basic_apply_data(E_Config_Dialog *cfd,
E_Config_Dialog_Data *cfdata);
E_Config_Dialog *
e_int_config_comp_module(E_Container *con, const char *params __UNUSED__)
e_int_config_comp_module(E_Container *con,
const char *params __UNUSED__)
{
E_Config_Dialog *cfd;
E_Config_Dialog_View *v;
@ -90,16 +94,17 @@ e_int_config_comp_module(E_Container *con, const char *params __UNUSED__)
v->basic.apply_cfdata = _basic_apply_data;
v->basic.create_widgets = _basic_create_widgets;
snprintf(buf, sizeof(buf), "%s/e-module-comp.edj",
snprintf(buf, sizeof(buf), "%s/e-module-comp.edj",
e_module_dir_get(mod->module));
cfd = e_config_dialog_new(con, _("Composite Settings"),
"E", "appearance/comp", buf, 0, v, mod);
"E", "appearance/comp", buf, 0, v, mod);
mod->config_dialog = cfd;
return cfd;
}
static void
_match_dup(Match *m, Match_Config *m2)
_match_dup(Match *m,
Match_Config *m2)
{
m2->match = *m;
if (m2->match.title) m2->match.title = eina_stringshare_add(m2->match.title);
@ -110,13 +115,13 @@ _match_dup(Match *m, Match_Config *m2)
}
static void *
_create_data(E_Config_Dialog *cfd)
_create_data(E_Config_Dialog *cfd)
{
E_Config_Dialog_Data *cfdata;
Eina_List *l;
Match *m;
Match_Config *m2;
cfdata = E_NEW(E_Config_Dialog_Data, 1);
cfdata->use_shadow = _comp_mod->conf->use_shadow;
@ -142,12 +147,13 @@ _create_data(E_Config_Dialog *cfd)
cfdata->send_flush = _comp_mod->conf->send_flush;
cfdata->send_dump = _comp_mod->conf->send_dump;
cfdata->nocomp_fs = _comp_mod->conf->nocomp_fs;
cfdata->fps_show = _comp_mod->conf->fps_show;
cfdata->fps_corner = _comp_mod->conf->fps_corner;
cfdata->fps_average_range = _comp_mod->conf->fps_average_range;
if (cfdata->fps_average_range < 1) cfdata->fps_average_range = 12;
else if (cfdata->fps_average_range > 120) cfdata->fps_average_range = 120;
else if (cfdata->fps_average_range > 120)
cfdata->fps_average_range = 120;
cfdata->first_draw_delay = _comp_mod->conf->first_draw_delay;
EINA_LIST_FOREACH(_comp_mod->conf->match.popups, l, m)
@ -157,7 +163,7 @@ _create_data(E_Config_Dialog *cfd)
m2->cfd = cfd;
cfdata->match.popups = eina_list_append(cfdata->match.popups, m2);
}
EINA_LIST_FOREACH(_comp_mod->conf->match.borders, l, m)
{
m2 = E_NEW(Match_Config, 1);
@ -165,15 +171,15 @@ _create_data(E_Config_Dialog *cfd)
m2->cfd = cfd;
cfdata->match.borders = eina_list_append(cfdata->match.borders, m2);
}
EINA_LIST_FOREACH(_comp_mod->conf->match.overrides, l, m)
{
m2 = E_NEW(Match_Config, 1);
_match_dup(m, m2);
m2->cfd = cfd;
m2->cfd = cfd;
cfdata->match.overrides = eina_list_append(cfdata->match.overrides, m2);
}
EINA_LIST_FOREACH(_comp_mod->conf->match.menus, l, m)
{
m2 = E_NEW(Match_Config, 1);
@ -181,7 +187,7 @@ _create_data(E_Config_Dialog *cfd)
m2->cfd = cfd;
cfdata->match.menus = eina_list_append(cfdata->match.menus, m2);
}
return cfdata;
}
@ -201,7 +207,8 @@ _match_free(Match_Config *m)
}
static void
_free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
_free_data(E_Config_Dialog *cfd __UNUSED__,
E_Config_Dialog_Data *cfdata)
{
Match_Config *m;
@ -227,7 +234,9 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
}
static void
_shadow_changed(void *data, Evas_Object *obj, void *event_info __UNUSED__)
_shadow_changed(void *data,
Evas_Object *obj,
void *event_info __UNUSED__)
{
E_Config_Dialog_Data *cfdata = data;
Evas_Object *orec0;
@ -239,10 +248,10 @@ _shadow_changed(void *data, Evas_Object *obj, void *event_info __UNUSED__)
style_list = evas_object_data_get(orec0, "list");
EINA_LIST_FOREACH(style_list, l, it)
{
if (cfdata->use_shadow)
edje_object_signal_emit(it->preview, "e,state,shadow,on", "e");
else
edje_object_signal_emit(it->preview, "e,state,shadow,off", "e");
if (cfdata->use_shadow)
edje_object_signal_emit(it->preview, "e,state,shadow,on", "e");
else
edje_object_signal_emit(it->preview, "e,state,shadow,off", "e");
}
}
@ -256,49 +265,56 @@ _style_demo(void *data)
demo_state = (long)evas_object_data_get(data, "style_demo_state");
demo_state = (demo_state + 1) % 4;
evas_object_data_set(data, "style_demo_state", (void *)(long)demo_state);
style_shadows = evas_object_data_get(data, "style_shadows");
EINA_LIST_FOREACH(style_shadows, l, it)
{
Evas_Object *ob = it->preview;
Evas_Object *of = it->frame;
switch (demo_state)
{
case 0:
edje_object_signal_emit(ob, "e,state,visible,on", "e");
edje_object_signal_emit(ob, "e,state,focus,on", "e");
edje_object_part_text_set(of, "e.text.label", _("Visible"));
break;
case 1:
edje_object_signal_emit(ob, "e,state,focus,off", "e");
edje_object_part_text_set(of, "e.text.label", _("Focus-Out"));
break;
case 2:
edje_object_signal_emit(ob, "e,state,focus,on", "e");
edje_object_part_text_set(of, "e.text.label", _("Focus-In"));
break;
case 3:
edje_object_signal_emit(ob, "e,state,visible,off", "e");
edje_object_part_text_set(of, "e.text.label", _("Hidden"));
break;
default:
break;
}
Evas_Object *ob = it->preview;
Evas_Object *of = it->frame;
switch (demo_state)
{
case 0:
edje_object_signal_emit(ob, "e,state,visible,on", "e");
edje_object_signal_emit(ob, "e,state,focus,on", "e");
edje_object_part_text_set(of, "e.text.label", _("Visible"));
break;
case 1:
edje_object_signal_emit(ob, "e,state,focus,off", "e");
edje_object_part_text_set(of, "e.text.label", _("Focus-Out"));
break;
case 2:
edje_object_signal_emit(ob, "e,state,focus,on", "e");
edje_object_part_text_set(of, "e.text.label", _("Focus-In"));
break;
case 3:
edje_object_signal_emit(ob, "e,state,visible,off", "e");
edje_object_part_text_set(of, "e.text.label", _("Hidden"));
break;
default:
break;
}
}
return ECORE_CALLBACK_RENEW;
}
static void
_style_selector_del(void *data __UNUSED__, Evas *e, Evas_Object *o, void *event_info __UNUSED__)
_style_selector_del(void *data __UNUSED__,
Evas *e,
Evas_Object *o,
void *event_info __UNUSED__)
{
Eina_List *style_shadows, *style_list;
Ecore_Timer *timer;
Evas_Object *orec0;
orec0 = evas_object_name_find(e, "style_shadows");
style_list = evas_object_data_get(orec0, "list");
style_shadows = evas_object_data_get(o, "style_shadows");
if (style_shadows)
{
@ -330,7 +346,9 @@ _style_selector_del(void *data __UNUSED__, Evas *e, Evas_Object *o, void *event_
}
static Evas_Object *
_style_selector(Evas *evas, int use_shadow, const char **source)
_style_selector(Evas *evas,
int use_shadow,
const char **source)
{
Evas_Object *oi, *ob, *oo, *obd, *orec, *oly, *orec0;
Eina_List *styles, *l, *style_shadows = NULL, *style_list;
@ -349,10 +367,10 @@ _style_selector(Evas *evas, int use_shadow, const char **source)
n = 0;
EINA_LIST_FOREACH(styles, l, style)
{
E_Demo_Style_Item *ds_it;
E_Demo_Style_Item *ds_it;
char buf[PATH_MAX];
ds_it = malloc(sizeof(E_Demo_Style_Item));
ds_it = malloc(sizeof(E_Demo_Style_Item));
ob = e_livethumb_add(evas);
ds_it->livethumb = ob;
@ -365,7 +383,7 @@ _style_selector(Evas *evas, int use_shadow, const char **source)
evas_object_show(oly);
oo = edje_object_add(e_livethumb_evas_get(ob));
ds_it->preview = oo;
ds_it->preview = oo;
snprintf(buf, sizeof(buf), "e/comp/%s", style);
e_theme_edje_object_set(oo, "base/theme/borders", buf);
e_layout_pack(oly, oo);
@ -375,11 +393,11 @@ _style_selector(Evas *evas, int use_shadow, const char **source)
edje_object_signal_emit(oo, "e,state,visible,on", "e");
evas_object_show(oo);
ds_it->frame = edje_object_add(evas);
e_theme_edje_object_set
(ds_it->frame, "base/theme/modules/comp", "e/modules/comp/preview");
edje_object_part_swallow(ds_it->frame, "e.swallow.preview", ob);
evas_object_show(ds_it->frame);
ds_it->frame = edje_object_add(evas);
e_theme_edje_object_set
(ds_it->frame, "base/theme/modules/comp", "e/modules/comp/preview");
edje_object_part_swallow(ds_it->frame, "e.swallow.preview", ob);
evas_object_show(ds_it->frame);
style_shadows = eina_list_append(style_shadows, ds_it);
obd = edje_object_add(e_livethumb_evas_get(ob));
@ -416,7 +434,7 @@ _style_selector(Evas *evas, int use_shadow, const char **source)
e_widget_size_min_set(oi, 160, 100);
e_widget_ilist_selected_set(oi, sel);
e_widget_ilist_go(oi);
return oi;
}
@ -472,38 +490,38 @@ _match_label_get(Match_Config *m)
if (m->match.title)
{
eina_strbuf_append(buf, _("Title:"));
eina_strbuf_append(buf, m->match.title);
eina_strbuf_append(buf, _(" / "));
eina_strbuf_append(buf, _("Title:"));
eina_strbuf_append(buf, m->match.title);
eina_strbuf_append(buf, _(" / "));
}
if (m->match.primary_type)
{
eina_strbuf_append(buf, _("Type:"));
eina_strbuf_append(buf, _match_type_label_get(m->match.primary_type));
eina_strbuf_append(buf, _(" / "));
eina_strbuf_append(buf, _("Type:"));
eina_strbuf_append(buf, _match_type_label_get(m->match.primary_type));
eina_strbuf_append(buf, _(" / "));
}
if (m->match.name)
{
eina_strbuf_append(buf, _("Name:"));
eina_strbuf_append(buf, m->match.name);
eina_strbuf_append(buf, _(" / "));
eina_strbuf_append(buf, _("Name:"));
eina_strbuf_append(buf, m->match.name);
eina_strbuf_append(buf, _(" / "));
}
if (m->match.clas)
{
eina_strbuf_append(buf, _("Class:"));
eina_strbuf_append(buf, m->match.clas);
eina_strbuf_append(buf, _(" / "));
eina_strbuf_append(buf, _("Class:"));
eina_strbuf_append(buf, m->match.clas);
eina_strbuf_append(buf, _(" / "));
}
if (m->match.role)
{
eina_strbuf_append(buf, _("Role:"));
eina_strbuf_append(buf, m->match.role);
eina_strbuf_append(buf, _(" / "));
eina_strbuf_append(buf, _("Role:"));
eina_strbuf_append(buf, m->match.role);
eina_strbuf_append(buf, _(" / "));
}
if (m->match.shadow_style)
{
eina_strbuf_append(buf, _("Style:"));
eina_strbuf_append(buf, m->match.shadow_style);
eina_strbuf_append(buf, _("Style:"));
eina_strbuf_append(buf, m->match.shadow_style);
}
if (!eina_strbuf_length_get(buf))
@ -516,7 +534,10 @@ _match_label_get(Match_Config *m)
}
static void
_match_ilist_append(Evas_Object *il, Match_Config *m, int pos, int pre)
_match_ilist_append(Evas_Object *il,
Match_Config *m,
int pos,
int pre)
{
char *name = _match_label_get(m);
@ -533,7 +554,8 @@ _match_ilist_append(Evas_Object *il, Match_Config *m, int pos, int pre)
}
static void
_match_list_up(Eina_List **list, Match_Config *m)
_match_list_up(Eina_List **list,
Match_Config *m)
{
Eina_List *l, *lp;
@ -546,7 +568,8 @@ _match_list_up(Eina_List **list, Match_Config *m)
}
static void
_match_list_down(Eina_List **list, Match_Config *m)
_match_list_down(Eina_List **list,
Match_Config *m)
{
Eina_List *l, *lp;
@ -559,7 +582,8 @@ _match_list_down(Eina_List **list, Match_Config *m)
}
static void
_match_list_del(Eina_List **list, Match_Config *m)
_match_list_del(Eina_List **list,
Match_Config *m)
{
Eina_List *l, *lp;
@ -571,7 +595,10 @@ _match_list_del(Eina_List **list, Match_Config *m)
}
static void
_cb_dialog_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
_cb_dialog_resize(void *data,
Evas *e __UNUSED__,
Evas_Object *obj,
void *event_info __UNUSED__)
{
Evas_Object *bg, *of;
int x, y, w, h;
@ -587,7 +614,8 @@ _cb_dialog_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_
}
static void
_edit_ok(void *d1, void *d2)
_edit_ok(void *d1,
void *d2)
{
Match_Config *m = d1;
Evas_Object *dia, *bg, *of = d2;
@ -650,7 +678,10 @@ _edit_ok(void *d1, void *d2)
}
static void
_create_edit_frame(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata, Match_Config *m)
_create_edit_frame(E_Config_Dialog *cfd,
Evas *evas,
E_Config_Dialog_Data *cfdata,
Match_Config *m)
{
Evas_Object *of, *oi, *lb, *en, *bt, *tb, *tab2, *o, *sf, *li;
E_Radio_Group *rg;
@ -763,7 +794,7 @@ _create_edit_frame(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdat
evas_object_resize(li, mw, mh);
sf = e_widget_scrollframe_simple_add(evas, li);
e_widget_toolbook_page_append(tb, NULL, _("Types"), sf,
e_widget_toolbook_page_append(tb, NULL, _("Types"), sf,
1, 1, 1, 1, 0.5, 0.0);
}
@ -887,11 +918,11 @@ _create_edit_frame(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdat
e_widget_table_object_append(tab2, o, 3, row, 1, 1, 0, 0, 0, 0);
row++;
}
e_widget_toolbook_page_append(tb, NULL, _("Flags"), tab2,
e_widget_toolbook_page_append(tb, NULL, _("Flags"), tab2,
1, 1, 1, 1, 0.5, 0.0);
oi = _style_selector(evas, cfdata->use_shadow, &(m->match.shadow_style));
e_widget_toolbook_page_append(tb, NULL, _("Style"), oi,
e_widget_toolbook_page_append(tb, NULL, _("Style"), oi,
1, 1, 1, 1, 0.5, 0.0);
e_widget_frametable_object_append(of, tb, 0, 0, 1, 1, 1, 1, 1, 1);
@ -902,7 +933,8 @@ _create_edit_frame(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdat
}
static void
_but_up(void *d1, void *d2)
_but_up(void *d1,
void *d2)
{
E_Config_Dialog *cfd = d1;
Evas_Object *il = d2;
@ -915,8 +947,8 @@ _but_up(void *d1, void *d2)
m = e_widget_ilist_nth_data_get(il, n);
if (!m)
{
e_widget_ilist_thaw(il);
return;
e_widget_ilist_thaw(il);
return;
}
e_widget_ilist_remove_num(il, n);
n--;
@ -933,7 +965,8 @@ _but_up(void *d1, void *d2)
}
static void
_but_down(void *d1, void *d2)
_but_down(void *d1,
void *d2)
{
E_Config_Dialog *cfd = d1;
Evas_Object *il = d2;
@ -946,8 +979,8 @@ _but_down(void *d1, void *d2)
m = e_widget_ilist_nth_data_get(il, n);
if (!m)
{
e_widget_ilist_thaw(il);
return;
e_widget_ilist_thaw(il);
return;
}
e_widget_ilist_remove_num(il, n);
_match_ilist_append(il, m, n, 0);
@ -963,7 +996,8 @@ _but_down(void *d1, void *d2)
}
static void
_but_add(void *d1, void *d2)
_but_add(void *d1,
void *d2)
{
E_Config_Dialog *cfd = d1;
Evas_Object *il = d2;
@ -991,16 +1025,17 @@ _but_add(void *d1, void *d2)
e_widget_ilist_thaw(il);
e_widget_ilist_go(il);
n = e_widget_ilist_count(il);
e_widget_ilist_nth_show(il, n-1, 0);
e_widget_ilist_selected_set(il, n-1);
e_widget_ilist_nth_show(il, n - 1, 0);
e_widget_ilist_selected_set(il, n - 1);
cfd->cfdata->edit_il = il;
_create_edit_frame(cfd, evas_object_evas_get(il), cfd->cfdata, m);
cfd->cfdata->match.changed = 1;
}
static void
_but_del(void *d1, void *d2)
_but_del(void *d1,
void *d2)
{
E_Config_Dialog *cfd = d1;
Evas_Object *il = d2;
@ -1012,8 +1047,8 @@ _but_del(void *d1, void *d2)
m = e_widget_ilist_nth_data_get(il, n);
if (!m)
{
e_widget_ilist_thaw(il);
return;
e_widget_ilist_thaw(il);
return;
}
e_widget_ilist_remove_num(il, n);
e_widget_ilist_thaw(il);
@ -1026,7 +1061,8 @@ _but_del(void *d1, void *d2)
}
static void
_but_edit(void *d1, void *d2)
_but_edit(void *d1,
void *d2)
{
E_Config_Dialog *cfd = d1;
Evas_Object *il = d2;
@ -1043,7 +1079,11 @@ _but_edit(void *d1, void *d2)
}
static Evas_Object *
_create_match_editor(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata __UNUSED__, Eina_List **matches, Evas_Object **il_ret)
_create_match_editor(E_Config_Dialog *cfd,
Evas *evas,
E_Config_Dialog_Data *cfdata __UNUSED__,
Eina_List **matches,
Evas_Object **il_ret)
{
Evas_Object *tab, *il, *bt;
Match_Config *m;
@ -1079,7 +1119,9 @@ _create_match_editor(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfd
}
static Evas_Object *
_create_styles_toolbook(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
_create_styles_toolbook(E_Config_Dialog *cfd,
Evas *evas,
E_Config_Dialog_Data *cfdata)
{
Evas_Object *tb, *oi, *il;
@ -1110,7 +1152,9 @@ _create_styles_toolbook(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *
}
static Evas_Object *
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
_basic_create_widgets(E_Config_Dialog *cfd,
Evas *evas,
E_Config_Dialog_Data *cfdata)
{
Evas_Object *ob, *ol, *ol2, *of, *otb, *oi, *orec0, *tab;
E_Radio_Group *rg;
@ -1151,9 +1195,9 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
ob = e_widget_check_add(evas, _("Grab Server during draw"), &(cfdata->grab));
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
ob = e_widget_label_add(evas, _("Initial draw timeout for newly mapped windows"));
ob = e_widget_label_add(evas, _("Initial draw timeout for newly mapped windows"));
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
ob = e_widget_slider_add(evas, 1, 0, _("%1.2f Seconds"), 0.01, 0.5, 0.01, 0, &(cfdata->first_draw_delay), NULL, 150);
ob = e_widget_slider_add(evas, 1, 0, _("%1.2f Seconds"), 0.01, 0.5, 0.01, 0, &(cfdata->first_draw_delay), NULL, 150);
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
e_widget_toolbook_page_append(otb, NULL, _("Sync"), ol, 0, 0, 0, 0, 0.5, 0.0);
@ -1307,7 +1351,8 @@ _match_list_free(Eina_List *list)
}
static void
_match_dup2(Match_Config *m2, Match *m)
_match_dup2(Match_Config *m2,
Match *m)
{
*m = m2->match;
if (m->title) m->title = eina_stringshare_add(m->title);
@ -1318,7 +1363,8 @@ _match_dup2(Match_Config *m2, Match *m)
}
static int
_basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
_basic_apply_data(E_Config_Dialog *cfd __UNUSED__,
E_Config_Dialog_Data *cfdata)
{
if ((cfdata->use_shadow != _comp_mod->conf->use_shadow) ||
(cfdata->lock_fps != _comp_mod->conf->lock_fps) ||
@ -1359,28 +1405,28 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{
m = E_NEW(Match, 1);
_match_dup2(m2, m);
_comp_mod->conf->match.popups =
_comp_mod->conf->match.popups =
eina_list_append(_comp_mod->conf->match.popups, m);
}
EINA_LIST_FOREACH(cfdata->match.borders, l, m2)
{
m = E_NEW(Match, 1);
_match_dup2(m2, m);
_comp_mod->conf->match.borders =
_comp_mod->conf->match.borders =
eina_list_append(_comp_mod->conf->match.borders, m);
}
EINA_LIST_FOREACH(cfdata->match.overrides, l, m2)
{
m = E_NEW(Match, 1);
_match_dup2(m2, m);
_comp_mod->conf->match.overrides =
_comp_mod->conf->match.overrides =
eina_list_append(_comp_mod->conf->match.overrides, m);
}
EINA_LIST_FOREACH(cfdata->match.menus, l, m2)
{
m = E_NEW(Match, 1);
_match_dup2(m2, m);
_comp_mod->conf->match.menus =
_comp_mod->conf->match.menus =
eina_list_append(_comp_mod->conf->match.menus, m);
}
cfdata->match.changed = 0;
@ -1391,7 +1437,7 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
_comp_mod->conf->grab = cfdata->grab;
_comp_mod->conf->keep_unmapped = cfdata->keep_unmapped;
_comp_mod->conf->nocomp_fs = cfdata->nocomp_fs;
_comp_mod->conf->max_unmapped_pixels = cfdata->max_unmapped_pixels;
_comp_mod->conf->max_unmapped_pixels = cfdata->max_unmapped_pixels;
_comp_mod->conf->max_unmapped_time = cfdata->max_unmapped_time;
_comp_mod->conf->min_unmapped_time = cfdata->min_unmapped_time;
_comp_mod->conf->send_flush = cfdata->send_flush;
@ -1399,7 +1445,7 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
_comp_mod->conf->fps_show = cfdata->fps_show;
_comp_mod->conf->fps_corner = cfdata->fps_corner;
_comp_mod->conf->fps_average_range = cfdata->fps_average_range;
_comp_mod->conf->first_draw_delay = cfdata->first_draw_delay;
_comp_mod->conf->first_draw_delay = cfdata->first_draw_delay;
if (_comp_mod->conf->shadow_style)
eina_stringshare_del(_comp_mod->conf->shadow_style);
_comp_mod->conf->shadow_style = NULL;
@ -1431,3 +1477,4 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
e_config_save_queue();
return 1;
}

View File

@ -2,6 +2,7 @@
#else
#ifndef E_MOD_CONFIG_H
#define E_MOD_CONFIG_H
E_Config_Dialog *e_int_config_comp_module(E_Container *con, const char *params __UNUSED__);
E_Config_Dialog *e_int_config_comp_module(E_Container *con,
const char *params __UNUSED__);
#endif
#endif

View File

@ -21,7 +21,7 @@
Mod *_comp_mod = NULL;
/* public module routines. all modules must have these */
EAPI E_Module_Api e_modapi =
EAPI E_Module_Api e_modapi =
{
E_MODULE_API_VERSION,
"Composite"
@ -32,15 +32,15 @@ e_modapi_init(E_Module *m)
{
Mod *mod;
char buf[4096];
mod = calloc(1, sizeof(Mod));
m->data = mod;
mod->module = m;
snprintf(buf, sizeof(buf), "%s/e-module-comp.edj", e_module_dir_get(m));
e_configure_registry_category_add("appearance", 10, _("Look"), NULL,
e_configure_registry_category_add("appearance", 10, _("Look"), NULL,
"preferences-look");
e_configure_registry_item_add("appearance/comp", 120, _("Composite"), NULL,
e_configure_registry_item_add("appearance/comp", 120, _("Composite"), NULL,
buf, e_int_config_comp_module);
mod->conf_match_edd = E_CONFIG_DD_NEW("Comp_Match", Match);
@ -62,7 +62,7 @@ e_modapi_init(E_Module *m)
E_CONFIG_VAL(D, T, fullscreen, CHAR);
E_CONFIG_VAL(D, T, modal, CHAR);
E_CONFIG_VAL(D, T, shadow_style, STR);
mod->conf_edd = E_CONFIG_DD_NEW("Comp_Config", Config);
#undef T
#undef D
@ -91,14 +91,14 @@ e_modapi_init(E_Module *m)
E_CONFIG_VAL(D, T, nocomp_fs, UCHAR);
E_CONFIG_VAL(D, T, smooth_windows, UCHAR);
E_CONFIG_VAL(D, T, first_draw_delay, DOUBLE);
E_CONFIG_LIST(D, T, match.popups, mod->conf_match_edd);
E_CONFIG_LIST(D, T, match.borders, mod->conf_match_edd);
E_CONFIG_LIST(D, T, match.popups, mod->conf_match_edd);
E_CONFIG_LIST(D, T, match.borders, mod->conf_match_edd);
E_CONFIG_LIST(D, T, match.overrides, mod->conf_match_edd);
E_CONFIG_LIST(D, T, match.menus, mod->conf_match_edd);
E_CONFIG_LIST(D, T, match.menus, mod->conf_match_edd);
mod->conf = e_config_domain_load("module.comp", mod->conf_edd);
if (!mod->conf) _e_mod_config_new(m);
if (!e_config->use_composite)
{
e_config->use_composite = 1;
@ -107,7 +107,7 @@ e_modapi_init(E_Module *m)
/* XXX remove: update old configs. add config versioning */
if (mod->conf->first_draw_delay == 0)
mod->conf->first_draw_delay = 0.05;
_comp_mod = mod;
if (!e_mod_comp_init())
@ -125,12 +125,12 @@ _e_mod_config_new(E_Module *m)
{
Mod *mod = m->data;
Match *mat;
mod->conf = E_NEW(Config, 1);
mod->conf->shadow_file = NULL;
mod->conf->shadow_style = eina_stringshare_add("default");
mod->conf->engine = E_EVAS_ENGINE_SOFTWARE_X11;
mod->conf->max_unmapped_pixels = 32 * 1024; // implement
mod->conf->max_unmapped_pixels = 32 * 1024; // implement
mod->conf->max_unmapped_time = 10 * 3600; // implement
mod->conf->min_unmapped_time = 5 * 60; // implement
mod->conf->fps_average_range = 30;
@ -138,7 +138,7 @@ _e_mod_config_new(E_Module *m)
mod->conf->fps_show = 0;
mod->conf->use_shadow = 1;
mod->conf->indirect = 0;
mod->conf->texture_from_pixmap = 0;
mod->conf->texture_from_pixmap = 0;
mod->conf->lock_fps = 0;
mod->conf->efl_sync = 1;
mod->conf->loose_sync = 1;
@ -150,7 +150,7 @@ _e_mod_config_new(E_Module *m)
mod->conf->nocomp_fs = 0; // buggy
mod->conf->smooth_windows = 0;
mod->conf->first_draw_delay = 0.05;
mod->conf->match.popups = NULL;
mat = E_NEW(Match, 1);
mod->conf->match.popups = eina_list_append(mod->conf->match.popups, mat);
@ -159,9 +159,9 @@ _e_mod_config_new(E_Module *m)
mat = E_NEW(Match, 1);
mod->conf->match.popups = eina_list_append(mod->conf->match.popups, mat);
mat->shadow_style = eina_stringshare_add("popup");
mod->conf->match.borders = NULL;
mod->conf->match.overrides = NULL;
mat = E_NEW(Match, 1);
mod->conf->match.overrides = eina_list_append(mod->conf->match.overrides, mat);
@ -192,7 +192,7 @@ _e_mod_config_new(E_Module *m)
mat = E_NEW(Match, 1);
mod->conf->match.overrides = eina_list_append(mod->conf->match.overrides, mat);
mat->shadow_style = eina_stringshare_add("popup");
mod->conf->match.menus = NULL;
mat = E_NEW(Match, 1);
mod->conf->match.menus = eina_list_append(mod->conf->match.menus, mat);
@ -203,7 +203,7 @@ static void
_match_list_free(Eina_List *list)
{
Match *m;
EINA_LIST_FREE(list, m)
{
if (m->title) eina_stringshare_del(m->title);
@ -219,7 +219,7 @@ void
_e_mod_config_free(E_Module *m)
{
Mod *mod = m->data;
if (mod->conf->shadow_file) eina_stringshare_del(mod->conf->shadow_file);
if (mod->conf->shadow_style) eina_stringshare_del(mod->conf->shadow_style);
@ -227,7 +227,7 @@ _e_mod_config_free(E_Module *m)
_match_list_free(mod->conf->match.borders);
_match_list_free(mod->conf->match.overrides);
_match_list_free(mod->conf->match.menus);
free(mod->conf);
mod->conf = NULL;
}
@ -236,25 +236,25 @@ EAPI int
e_modapi_shutdown(E_Module *m)
{
Mod *mod = m->data;
e_mod_comp_shutdown();
e_configure_registry_item_del("appearance/comp");
e_configure_registry_category_del("appearance");
if (mod->config_dialog)
if (mod->config_dialog)
{
e_object_del(E_OBJECT(mod->config_dialog));
mod->config_dialog = NULL;
}
_e_mod_config_free(m);
E_CONFIG_DD_FREE(mod->conf_match_edd);
E_CONFIG_DD_FREE(mod->conf_edd);
free(mod);
if (mod == _comp_mod) _comp_mod = NULL;
return 1;
}
@ -265,3 +265,4 @@ e_modapi_save(E_Module *m)
e_config_domain_save("module.comp", mod->conf_edd, mod->conf);
return 1;
}

View File

@ -1,53 +1,54 @@
#ifndef E_MOD_MAIN_H
#define E_MOD_MAIN_H
typedef struct _Config Config;
typedef struct _Mod Mod;
typedef struct _Config Config;
typedef struct _Mod Mod;
typedef struct _Match Match;
typedef struct _Match Match;
struct _Config
{
const char *shadow_file;
const char *shadow_style;
int engine;
int max_unmapped_pixels;
int max_unmapped_time;
int min_unmapped_time;
int fps_average_range;
unsigned char fps_corner;
unsigned char fps_show;
unsigned char use_shadow;
unsigned char indirect;
unsigned char texture_from_pixmap;
unsigned char lock_fps;
unsigned char loose_sync;
unsigned char efl_sync;
unsigned char grab;
unsigned char vsync;
unsigned char keep_unmapped;
unsigned char send_flush;
unsigned char send_dump;
unsigned char nocomp_fs;
unsigned char smooth_windows;
double first_draw_delay;
const char *shadow_file;
const char *shadow_style;
int engine;
int max_unmapped_pixels;
int max_unmapped_time;
int min_unmapped_time;
int fps_average_range;
unsigned char fps_corner;
unsigned char fps_show;
unsigned char use_shadow;
unsigned char indirect;
unsigned char texture_from_pixmap;
unsigned char lock_fps;
unsigned char loose_sync;
unsigned char efl_sync;
unsigned char grab;
unsigned char vsync;
unsigned char keep_unmapped;
unsigned char send_flush;
unsigned char send_dump;
unsigned char nocomp_fs;
unsigned char smooth_windows;
double first_draw_delay;
struct {
Eina_List *popups; // used for e popups
Eina_List *borders; // used for borders
Eina_List *overrides; // used for client menus, tooltips etc.
Eina_List *menus; // used for e menus
struct
{
Eina_List *popups; // used for e popups
Eina_List *borders; // used for borders
Eina_List *overrides; // used for client menus, tooltips etc.
Eina_List *menus; // used for e menus
} match;
};
struct _Mod
{
E_Module *module;
E_Config_DD *conf_edd;
E_Config_DD *conf_match_edd;
Config *conf;
E_Config_Dialog *config_dialog;
};
@ -57,9 +58,9 @@ struct _Match
const char *name; // glob - used for borders, overrides, popups, NULL if not to be used
const char *clas; // glob - used for borders, overrides, NULL if not to be used
const char *role; // glob - used for borders
const char *shadow_style; // shadow style to use
int primary_type; // Ecore_X_Window_Type - used for borders, overrides, first one found - ECORE_X_WINDOW_TYPE_UNKNOWN if not to be used
char borderless; // used for borders, 0 == dont use, 1 == borderless, -1 == not borderless
char dialog; // used for borders, 0 == don't use, 1 == dialog, -1 == not dialog
@ -69,19 +70,18 @@ struct _Match
char argb; // used for borders, overrides, popups, menus, 0 == don't use, 1 == is argb, -1 == not argb
char fullscreen; // used for borders, 0 == don't use, 1 == is fullscreen, -1 == not fullscreen
char modal; // used for borders, 0 == don't use, 1 == is modal, -1 == not modal
};
extern Mod *_comp_mod;
EAPI extern E_Module_Api e_modapi;
EAPI void *e_modapi_init (E_Module *m);
EAPI int e_modapi_shutdown (E_Module *m);
EAPI int e_modapi_save (E_Module *m);
EAPI int e_modapi_info (E_Module *m);
EAPI void *e_modapi_init(E_Module *m);
EAPI int e_modapi_shutdown(E_Module *m);
EAPI int e_modapi_save(E_Module *m);
EAPI int e_modapi_info(E_Module *m);
void _e_mod_config_new(E_Module *m);
void _e_mod_config_free(E_Module *m);
void _e_mod_config_new(E_Module *m);
void _e_mod_config_free(E_Module *m);
#endif