forked from enlightenment/enlightenment
parent
74df9a238b
commit
9f691c9b39
|
@ -492,7 +492,7 @@ group "E_Config" struct {
|
||||||
value "border_keyboard.resize.dx" uchar: 5;
|
value "border_keyboard.resize.dx" uchar: 5;
|
||||||
value "border_keyboard.resize.dy" uchar: 5;
|
value "border_keyboard.resize.dy" uchar: 5;
|
||||||
value "dbus_desktop" int: 1;
|
value "dbus_desktop" int: 1;
|
||||||
value "scale.min" double: 1.0;
|
value "scale.min" double: 0.8;
|
||||||
value "scale.max" double: 3.0;
|
value "scale.max" double: 3.0;
|
||||||
value "scale.factor" double: 1.0;
|
value "scale.factor" double: 1.0;
|
||||||
value "scale.base_dpi" int: 90;
|
value "scale.base_dpi" int: 90;
|
||||||
|
|
|
@ -178,9 +178,9 @@ group "E_Config" struct {
|
||||||
value "border_keyboard.move.dy" uchar: 5;
|
value "border_keyboard.move.dy" uchar: 5;
|
||||||
value "border_keyboard.resize.dx" uchar: 5;
|
value "border_keyboard.resize.dx" uchar: 5;
|
||||||
value "border_keyboard.resize.dy" uchar: 5;
|
value "border_keyboard.resize.dy" uchar: 5;
|
||||||
value "scale.min" double: 1.0000000000000000000000000;
|
value "scale.min" double: 0.8;
|
||||||
value "scale.max" double: 3.0000000000000000000000000;
|
value "scale.max" double: 3.0;
|
||||||
value "scale.factor" double: 1.0000000000000000000000000;
|
value "scale.factor" double: 1.0;
|
||||||
value "scale.base_dpi" int: 90;
|
value "scale.base_dpi" int: 90;
|
||||||
value "scale.use_dpi" uchar: 1;
|
value "scale.use_dpi" uchar: 1;
|
||||||
value "scale.use_custom" uchar: 0;
|
value "scale.use_custom" uchar: 0;
|
||||||
|
|
|
@ -167,7 +167,7 @@ group "E_Config" struct {
|
||||||
value "thumbscroll_threshhold" int: 8;
|
value "thumbscroll_threshhold" int: 8;
|
||||||
value "thumbscroll_momentum_threshhold" double: 100.0;
|
value "thumbscroll_momentum_threshhold" double: 100.0;
|
||||||
value "thumbscroll_friction" double: 1.0;
|
value "thumbscroll_friction" double: 1.0;
|
||||||
value "scale.min" double: 1.0;
|
value "scale.min" double: 0.8;
|
||||||
value "scale.max" double: 3.0;
|
value "scale.max" double: 3.0;
|
||||||
value "scale.factor" double: 1.0;
|
value "scale.factor" double: 1.0;
|
||||||
value "scale.base_dpi" int: 90;
|
value "scale.base_dpi" int: 90;
|
||||||
|
|
|
@ -7,7 +7,6 @@ static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_
|
||||||
static Evas_Object *_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata);
|
static Evas_Object *_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||||
static int _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
static int _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
||||||
static int _basic_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
static int _basic_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
||||||
static void _basic_use_dpi_changed(void *data, Evas_Object *obj __UNUSED__);
|
|
||||||
static Evas_Object *_adv_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata);
|
static Evas_Object *_adv_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata);
|
||||||
static int _adv_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
static int _adv_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
||||||
static int _adv_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
static int _adv_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata);
|
||||||
|
@ -32,8 +31,123 @@ struct _E_Config_Dialog_Data
|
||||||
Evas_Object *max_lbl, *max_slider;
|
Evas_Object *max_lbl, *max_slider;
|
||||||
} adv;
|
} adv;
|
||||||
} gui;
|
} gui;
|
||||||
|
Eina_List *obs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
_scale_preview_sel_set(Evas_Object *ob, int sel)
|
||||||
|
{
|
||||||
|
Evas_Object *rc, *ob2;
|
||||||
|
double *sc, scl;
|
||||||
|
int v;
|
||||||
|
Eina_List *l;
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
|
||||||
|
cfdata = evas_object_data_get(ob, "cfdata");
|
||||||
|
rc = evas_object_data_get(ob, "rec");
|
||||||
|
if (sel)
|
||||||
|
{
|
||||||
|
evas_object_color_set(rc, 0, 0, 0, 0);
|
||||||
|
sc = evas_object_data_get(ob, "scalep");
|
||||||
|
v = (int)(unsigned long)evas_object_data_get(ob, "scale");
|
||||||
|
scl = (double)v / 1000.0;
|
||||||
|
if (sc) *sc = scl;
|
||||||
|
EINA_LIST_FOREACH(cfdata->obs, l, ob2)
|
||||||
|
{
|
||||||
|
if (ob == ob2) continue;
|
||||||
|
_scale_preview_sel_set(ob2, 0);
|
||||||
|
}
|
||||||
|
if (evas_object_data_get(ob, "dpi"))
|
||||||
|
cfdata->use_dpi = EINA_TRUE;
|
||||||
|
else
|
||||||
|
cfdata->use_dpi = EINA_FALSE;
|
||||||
|
}
|
||||||
|
else evas_object_color_set(rc, 0, 0, 0, 192);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_scale_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||||
|
{
|
||||||
|
Evas_Object *ob = data;
|
||||||
|
|
||||||
|
_scale_preview_sel_set(ob, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Evas_Object *
|
||||||
|
_scale_preview_new(E_Config_Dialog_Data *cfdata, Evas *e, double sc, double *scp, const char *tit, Eina_Bool dpi)
|
||||||
|
{
|
||||||
|
Evas_Object *ob, *bg, *cm, *bd, *wb, *rc;
|
||||||
|
const char *file;
|
||||||
|
char buf[64];
|
||||||
|
int v;
|
||||||
|
|
||||||
|
#define SZW 110
|
||||||
|
#define SZH 80
|
||||||
|
ob = e_widget_preview_add(e, SZW, SZH);
|
||||||
|
e_widget_preview_vsize_set(ob, SZW, SZH);
|
||||||
|
|
||||||
|
bg = edje_object_add(e_widget_preview_evas_get(ob));
|
||||||
|
file = e_bg_file_get(0, 0, 0, 0);
|
||||||
|
edje_object_file_set(bg, file, "e/desktop/background");
|
||||||
|
evas_object_move(bg, 0, 0);
|
||||||
|
evas_object_resize(bg, 640, 480);
|
||||||
|
evas_object_show(bg);
|
||||||
|
|
||||||
|
cm = edje_object_add(e_widget_preview_evas_get(ob));
|
||||||
|
e_theme_edje_object_set(cm, "base/theme/borders", "e/comp/default");
|
||||||
|
evas_object_move(cm, 16, 16);
|
||||||
|
evas_object_resize(cm, 320, 400);
|
||||||
|
evas_object_show(cm);
|
||||||
|
|
||||||
|
bd = edje_object_add(e_widget_preview_evas_get(ob));
|
||||||
|
e_theme_edje_object_set(bd, "base/theme/borders", "e/widgets/border/default/border");
|
||||||
|
edje_object_part_swallow(cm, "e.swallow.content", bd);
|
||||||
|
evas_object_show(bd);
|
||||||
|
|
||||||
|
wb = edje_object_add(e_widget_preview_evas_get(ob));
|
||||||
|
e_theme_edje_object_set(wb, "base/theme/dialog", "e/widgets/dialog/main");
|
||||||
|
edje_object_part_swallow(bd, "e.swallow.client", wb);
|
||||||
|
evas_object_show(wb);
|
||||||
|
|
||||||
|
rc = evas_object_rectangle_add(e_widget_preview_evas_get(ob));
|
||||||
|
evas_object_move(rc, 0, 0);
|
||||||
|
evas_object_resize(rc, 640, 480);
|
||||||
|
evas_object_color_set(rc, 0, 0, 0, 192);
|
||||||
|
evas_object_show(rc);
|
||||||
|
|
||||||
|
if (!tit)
|
||||||
|
{
|
||||||
|
snprintf(buf, sizeof(buf), "%1.1f %s", sc, _("Factor"));
|
||||||
|
edje_object_part_text_set(bd, "e.text.title", buf);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
edje_object_part_text_set(bd, "e.text.title", tit);
|
||||||
|
edje_object_signal_emit(bd, "e,state,focused", "e");
|
||||||
|
|
||||||
|
edje_object_signal_emit(cm, "e,state,visible,on", "e");
|
||||||
|
edje_object_signal_emit(cm, "e,state,shadow,on", "e");
|
||||||
|
edje_object_signal_emit(cm, "e,state,focus,on", "e");
|
||||||
|
|
||||||
|
edje_object_scale_set(bd, sc);
|
||||||
|
edje_object_scale_set(cm, sc);
|
||||||
|
edje_object_scale_set(bg, sc);
|
||||||
|
edje_object_scale_set(wb, sc);
|
||||||
|
|
||||||
|
evas_object_data_set(ob, "rec", rc);
|
||||||
|
v = sc * 1000;
|
||||||
|
evas_object_data_set(ob, "scale", (void *)(unsigned long)v);
|
||||||
|
evas_object_data_set(ob, "scalep", scp);
|
||||||
|
evas_object_data_set(ob, "dpi", (void *)(unsigned long)dpi);
|
||||||
|
evas_object_data_set(ob, "cfdata", cfdata);
|
||||||
|
|
||||||
|
evas_object_event_callback_add(rc,
|
||||||
|
EVAS_CALLBACK_MOUSE_DOWN,
|
||||||
|
_scale_down, ob);
|
||||||
|
cfdata->obs = eina_list_append(cfdata->obs, ob);
|
||||||
|
|
||||||
|
return ob;
|
||||||
|
}
|
||||||
|
|
||||||
E_Config_Dialog *
|
E_Config_Dialog *
|
||||||
e_int_config_scale(E_Container *con, const char *params __UNUSED__)
|
e_int_config_scale(E_Container *con, const char *params __UNUSED__)
|
||||||
{
|
{
|
||||||
|
@ -86,35 +200,45 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
||||||
static void
|
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)
|
||||||
{
|
{
|
||||||
|
eina_list_free(cfdata->obs);
|
||||||
E_FREE(cfdata);
|
E_FREE(cfdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata)
|
_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
Evas_Object *o, *of, *ow;
|
Evas_Object *o, *ob;
|
||||||
char buff[256];
|
double sc = 1.0;
|
||||||
|
int dpi, x = 0, y = 0;
|
||||||
|
|
||||||
o = e_widget_list_add(evas, 0, 0);
|
o = e_widget_table_add(evas, 1);
|
||||||
|
|
||||||
ow = e_widget_check_add(evas, _("Scale with DPI"), &(cfdata->use_dpi));
|
dpi = ecore_x_dpi_get();
|
||||||
e_widget_on_change_hook_set(ow, _basic_use_dpi_changed, cfdata);
|
if ((dpi > 0) && (cfdata->base_dpi > 0))
|
||||||
e_widget_list_object_append(o, ow, 1, 0, 0.5);
|
sc = (double)dpi / (double)cfdata->base_dpi;
|
||||||
|
|
||||||
|
ob = _scale_preview_new(cfdata, evas, sc, &(cfdata->factor), _("DPI Scaling"), EINA_TRUE);
|
||||||
|
e_widget_table_object_align_append(o, ob, 0, 0, 1, 1, 0, 0, 0, 0, 0.5, 0.5);
|
||||||
|
if (cfdata->use_dpi) _scale_preview_sel_set(ob, 1);
|
||||||
|
|
||||||
|
x = 1;
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("Relative"), 0);
|
#define COL 3
|
||||||
ow = e_widget_label_add(evas, _("Base DPI to scale relative to"));
|
#define SCALE_OP(v) do { \
|
||||||
cfdata->gui.basic.o_lbl = ow;
|
ob = _scale_preview_new(cfdata, evas, v, &(cfdata->factor), NULL, EINA_FALSE); \
|
||||||
e_widget_framelist_object_append(of, ow);
|
e_widget_table_object_align_append(o, ob, x, y, 1, 1, 0, 0, 0, 0, 0.5, 0.5); \
|
||||||
ow = e_widget_slider_add(evas, 1, 0, _("%1.0f DPI"), 30, 600, 1, 0,
|
if (cfdata->factor == v) _scale_preview_sel_set(ob, 1); \
|
||||||
NULL, &(cfdata->base_dpi), 100);
|
x++; if (x >= COL) { x = 0; y++; } \
|
||||||
cfdata->gui.basic.o_slider = ow;
|
} while (0)
|
||||||
e_widget_framelist_object_append(of, ow);
|
|
||||||
snprintf(buff, sizeof(buff), _("Currently %i DPI"), ecore_x_dpi_get());
|
|
||||||
ow = e_widget_label_add(evas, buff);
|
|
||||||
e_widget_framelist_object_append(of, ow);
|
|
||||||
e_widget_list_object_append(o, of, 1, 0, 0.5);
|
|
||||||
|
|
||||||
_basic_use_dpi_changed(cfdata, NULL);
|
SCALE_OP(0.8);
|
||||||
|
SCALE_OP(1.0);
|
||||||
|
SCALE_OP(1.2);
|
||||||
|
SCALE_OP(1.5);
|
||||||
|
SCALE_OP(1.7);
|
||||||
|
SCALE_OP(1.9);
|
||||||
|
SCALE_OP(2.0);
|
||||||
|
SCALE_OP(2.2);
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,16 +270,6 @@ _basic_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||||
(cfdata->base_dpi != e_config->scale.base_dpi);
|
(cfdata->base_dpi != e_config->scale.base_dpi);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_basic_use_dpi_changed(void *data, Evas_Object *obj __UNUSED__)
|
|
||||||
{
|
|
||||||
E_Config_Dialog_Data *cfdata;
|
|
||||||
|
|
||||||
if (!(cfdata = data)) return;
|
|
||||||
e_widget_disabled_set(cfdata->gui.basic.o_lbl, !cfdata->use_dpi);
|
|
||||||
e_widget_disabled_set(cfdata->gui.basic.o_slider, !cfdata->use_dpi);
|
|
||||||
}
|
|
||||||
|
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
_adv_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata)
|
_adv_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue