config_data: Keep window size set last time

Summary: Keep window size set last time by storing window size in config data

Reviewers: Hermet, seoz

Differential Revision: https://phab.enlightenment.org/D1665
This commit is contained in:
Jaehyun Cho 2014-11-14 17:28:03 +09:00 committed by ChunEon Park
parent 98a9eca6c5
commit 06557d3214
3 changed files with 41 additions and 0 deletions

View File

@ -28,6 +28,15 @@ win_focused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
goto_close();
}
static void
win_resize_cb(void *data EINA_UNUSED, Evas *o EINA_UNUSED, Evas_Object *obj,
void *event_info EINA_UNUSED)
{
Evas_Coord w, h;
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
config_win_size_set(w, h);
}
/*****************************************************************************/
/* Externally accessible calls */
/*****************************************************************************/
@ -176,6 +185,13 @@ base_gui_init(void)
Evas_Object *win = elm_win_util_standard_add(elm_app_name_get(),
"Enventor");
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
Evas_Coord w, h;
config_win_size_get(&w, &h);
if ((w > 0) && (w > 0))
evas_object_resize(win, w, h);
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, win_resize_cb, NULL);
evas_object_smart_callback_add(win, "delete,request", win_delete_request_cb,
NULL);
evas_object_smart_callback_add(win, "focused", win_focused_cb, NULL);

View File

@ -22,6 +22,7 @@ typedef struct config_s
void (*update_cb)(void *data);
void *update_cb_data;
Evas_Coord_Size view_size;
Evas_Coord win_size_w, win_size_h;
Eina_Bool stats_bar;
Eina_Bool linenumber;
@ -209,6 +210,10 @@ eddc_init(void)
view_scale, EET_T_DOUBLE);
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "console_size",
console_size, EET_T_DOUBLE);
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "win_size_w",
win_size_w, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "win_size_h",
win_size_h, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "stats_bar", stats_bar,
EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "linenumber",
@ -701,6 +706,24 @@ config_console_size_set(double size)
cd->console_size = size;
}
void
config_win_size_set(Evas_Coord w, Evas_Coord h)
{
config_data *cd = g_cd;
cd->win_size_w = w;
cd->win_size_h = h;
}
void
config_win_size_get(Evas_Coord *w, Evas_Coord *h)
{
config_data *cd = g_cd;
if (w) *w = cd->win_size_w;
if (h) *h = cd->win_size_h;
}
Eina_Bool
config_tools_get(void)
{

View File

@ -46,3 +46,5 @@ Eina_Bool config_tools_get(void);
void config_tools_set(Eina_Bool enabled);
double config_console_size_get(void);
void config_console_size_set(double size);
void config_win_size_get(Evas_Coord *w, Evas_Coord *h);
void config_win_size_set(Evas_Coord w, Evas_Coord h);