2008-09-24 06:29:16 -07:00
|
|
|
#include "e.h"
|
|
|
|
|
|
|
|
EAPI double e_scale = 1.0;
|
|
|
|
|
2010-11-22 07:21:32 -08:00
|
|
|
EINTERN int
|
2008-09-24 06:29:16 -07:00
|
|
|
e_scale_init(void)
|
|
|
|
{
|
|
|
|
e_scale_update();
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2010-11-22 07:21:32 -08:00
|
|
|
EINTERN int
|
2008-09-24 06:29:16 -07:00
|
|
|
e_scale_shutdown(void)
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
EAPI void
|
|
|
|
e_scale_update(void)
|
|
|
|
{
|
2014-03-11 04:24:41 -07:00
|
|
|
int dpi = 0;
|
2008-09-24 06:29:16 -07:00
|
|
|
char buf[128];
|
2010-07-06 12:44:33 -07:00
|
|
|
|
2008-09-24 06:29:16 -07:00
|
|
|
if (e_config->scale.use_dpi)
|
|
|
|
{
|
2014-03-11 04:24:41 -07:00
|
|
|
#ifndef HAVE_WAYLAND_ONLY
|
2014-03-18 13:14:04 -07:00
|
|
|
if (e_comp_get(NULL)->comp_type == E_PIXMAP_TYPE_X)
|
|
|
|
{
|
|
|
|
dpi = ecore_x_dpi_get();
|
|
|
|
e_scale = (double)dpi / (double)e_config->scale.base_dpi;
|
|
|
|
}
|
2014-03-11 04:24:41 -07:00
|
|
|
#endif
|
2013-01-11 02:34:29 -08:00
|
|
|
if (e_scale > e_config->scale.max) e_scale = e_config->scale.max;
|
|
|
|
else if (e_scale < e_config->scale.min)
|
|
|
|
e_scale = e_config->scale.min;
|
2008-09-24 06:29:16 -07:00
|
|
|
}
|
|
|
|
else if (e_config->scale.use_custom)
|
|
|
|
{
|
2013-01-11 02:34:29 -08:00
|
|
|
e_scale = e_config->scale.factor;
|
|
|
|
if (e_scale > e_config->scale.max) e_scale = e_config->scale.max;
|
|
|
|
else if (e_scale < e_config->scale.min)
|
|
|
|
e_scale = e_config->scale.min;
|
2008-09-24 06:29:16 -07:00
|
|
|
}
|
2010-07-06 12:44:33 -07:00
|
|
|
|
2008-09-24 06:29:16 -07:00
|
|
|
edje_scale_set(e_scale);
|
|
|
|
snprintf(buf, sizeof(buf), "%1.3f", e_scale);
|
|
|
|
e_util_env_set("E_SCALE", buf);
|
|
|
|
e_hints_scale_update();
|
|
|
|
}
|
2013-01-11 02:34:29 -08:00
|
|
|
|