panes: refactoring code.

clean up code for maintainance.
This commit is contained in:
ChunEon Park 2014-08-11 20:17:31 +09:00
parent c4e3ac89fd
commit 0c0e439bb4
5 changed files with 106 additions and 104 deletions

View File

@ -91,39 +91,39 @@ void base_tools_set(Evas_Object *tools)
}
void
base_full_view_left(void)
base_live_view_full_view(void)
{
panes_full_view_left();
panes_live_view_full_view();
}
void
base_full_view_right(void)
base_text_editor_full_view(void)
{
panes_full_view_right();
panes_text_editor_full_view();
}
void
base_full_view_top(void)
base_editors_full_view(void)
{
panes_full_view_top();
panes_editors_full_view();
}
void
base_full_view_bottom(void)
base_console_full_view(void)
{
panes_full_view_bottom();
panes_console_full_view();
}
void
base_right_view_set(Evas_Object *right)
base_text_editor_set(Evas_Object *text_editor)
{
panes_content_set("right", right);
panes_text_editor_set(text_editor);
}
void
base_left_view_set(Evas_Object *left)
base_live_view_set(Evas_Object *live_view)
{
panes_content_set("left", left);
panes_live_view_set(live_view);
}
void
@ -156,7 +156,7 @@ err_noti_cb(void *data, const char *msg)
fflush(stdout);
config_console_set(EINA_TRUE);
elm_object_signal_emit(bd->layout, "elm,state,console,show", "");
elm_object_signal_emit(bd->layout, "elm,state,alert,show", "");
}
Eina_Bool

View File

@ -155,25 +155,25 @@ ctrl_func(app_data *ad, const char *key)
//Full Edit View
if (!strcmp(key, "Left"))
{
base_full_view_left();
base_live_view_full_view();
return ECORE_CALLBACK_DONE;
}
//Full Live View
if (!strcmp(key, "Right"))
{
base_full_view_right();
base_text_editor_full_view();
return ECORE_CALLBACK_DONE;
}
//Full Console View
if (!strcmp(key, "Up"))
{
base_full_view_top();
base_editors_full_view();
return ECORE_CALLBACK_DONE;
}
//Full Editors View
if (!strcmp(key, "Down"))
{
base_full_view_bottom();
base_console_full_view();
return ECORE_CALLBACK_DONE;
}
//Auto Indentation
@ -383,7 +383,7 @@ edc_edit_set(app_data *ad)
{
edit_data *ed = edit_init(base_layout_get());
edit_edc_read(ed, config_edc_path_get());
base_right_view_set(edit_obj_get(ed));
base_text_editor_set(edit_obj_get(ed));
edit_view_sync_cb_set(ed, view_sync_cb, ad);
ad->ed = ed;
}
@ -528,7 +528,7 @@ static void
edj_mgr_set()
{
edj_mgr_init(base_layout_get());
base_left_view_set(edj_mgr_obj_get());
base_live_view_set(edj_mgr_obj_get());
}
static void

View File

@ -12,23 +12,19 @@ typedef enum
PANES_SPLIT_VIEW
} Panes_State;
typedef struct _pane_data
{
Evas_Object *obj;
Panes_State state;
double origin;
double delta;
double last_size[2]; //when down the panes bar
} pane_data;
typedef struct _panes_data
{
Evas_Object *panes_h;
Evas_Object *panes_v;
Panes_State state_v;
Panes_State state_h;
double origin_h;
double origin_v;
double delta_h;
double delta_v;
double last_bottom_size1; //when down the panes bar
double last_bottom_size2; //when up the panes bar
double last_right_size1; //when down the panes bar
double last_right_size2; //when up the panes bar
pane_data horiz; //horizontal pane data (live view, text editor)
pane_data vert; //vertical pane data (editors, console)
} panes_data;
static panes_data *g_pd = NULL;
@ -37,55 +33,55 @@ static void
transit_op_v(void *data, Elm_Transit *transit EINA_UNUSED, double progress)
{
panes_data *pd = data;
elm_panes_content_right_size_set(pd->panes_v,
pd->origin_v + (pd->delta_v * progress));
elm_panes_content_right_size_set(pd->vert.obj,
pd->vert.origin +
(pd->vert.delta * progress));
}
static void
transit_op_h(void *data, Elm_Transit *transit EINA_UNUSED, double progress)
{
panes_data *pd = data;
elm_panes_content_right_size_set(pd->panes_h,
pd->origin_h + (pd->delta_h * progress));
elm_panes_content_right_size_set(pd->horiz.obj,
pd->horiz.origin +
(pd->horiz.delta * progress));
}
static void
v_press_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
panes_data *pd = data;
pd->last_bottom_size1 = elm_panes_content_right_size_get(obj);
pd->vert.last_size[0] = elm_panes_content_right_size_get(obj);
}
static void
v_unpress_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
panes_data *pd = data;
double bottom_size = elm_panes_content_right_size_get(obj);
if (pd->last_bottom_size1 != bottom_size)
pd->last_right_size2 = bottom_size;
double size = elm_panes_content_right_size_get(obj);
if (pd->vert.last_size[0] != size) pd->vert.last_size[1] = size;
}
static void
h_press_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
panes_data *pd = data;
pd->last_right_size1 = elm_panes_content_right_size_get(obj);
pd->horiz.last_size[0] = elm_panes_content_right_size_get(obj);
}
static void
h_unpress_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
panes_data *pd = data;
double right_size = elm_panes_content_right_size_get(obj);
if (pd->last_right_size1 != right_size)
pd->last_right_size2 = right_size;
double size = elm_panes_content_right_size_get(obj);
if (pd->horiz.last_size[0] != size) pd->horiz.last_size[1] = size;
}
static void
panes_h_full_view_cancel(panes_data *pd)
{
pd->origin_h = elm_panes_content_right_size_get(pd->panes_h);
pd->delta_h = pd->last_right_size2 - pd->origin_h;
pd->horiz.origin = elm_panes_content_right_size_get(pd->horiz.obj);
pd->horiz.delta = pd->horiz.last_size[1] - pd->horiz.origin;
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_h, pd, NULL);
@ -93,14 +89,14 @@ panes_h_full_view_cancel(panes_data *pd)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->state_h = PANES_SPLIT_VIEW;
pd->horiz.state = PANES_SPLIT_VIEW;
}
static void
panes_v_full_view_cancel(panes_data *pd)
{
pd->origin_v = elm_panes_content_right_size_get(pd->panes_v);
pd->delta_v = pd->last_bottom_size2 - pd->origin_v;
pd->vert.origin = elm_panes_content_right_size_get(pd->vert.obj);
pd->vert.delta = pd->vert.last_size[1] - pd->vert.origin;
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_v, pd, NULL);
@ -108,26 +104,26 @@ panes_v_full_view_cancel(panes_data *pd)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->state_v = PANES_SPLIT_VIEW;
pd->vert.state = PANES_SPLIT_VIEW;
}
void
panes_full_view_right(void)
panes_text_editor_full_view(void)
{
panes_data *pd = g_pd;
//Revert state if the current state is full view right already.
if (pd->state_h == PANES_FULL_VIEW_RIGHT)
if (pd->horiz.state == PANES_FULL_VIEW_RIGHT)
{
panes_h_full_view_cancel(pd);
return;
}
double origin_h = elm_panes_content_right_size_get(pd->panes_h);
if (origin_h == 0.0) return;
double origin = elm_panes_content_right_size_get(pd->horiz.obj);
if (origin == 0.0) return;
pd->origin_h = origin_h;
pd->delta_h = 0.0 - pd->origin_h;
pd->horiz.origin = origin;
pd->horiz.delta = 0.0 - pd->horiz.origin;
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_h, pd, NULL);
@ -135,26 +131,26 @@ panes_full_view_right(void)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->state_h = PANES_FULL_VIEW_RIGHT;
pd->horiz.state = PANES_FULL_VIEW_RIGHT;
}
void
panes_full_view_left(void)
panes_live_view_full_view(void)
{
panes_data *pd = g_pd;
//Revert state if the current state is full view left already.
if (pd->state_h == PANES_FULL_VIEW_LEFT)
if (pd->horiz.state == PANES_FULL_VIEW_LEFT)
{
panes_h_full_view_cancel(pd);
return;
}
double origin_h = elm_panes_content_right_size_get(pd->panes_h);
if (origin_h == 1.0) return;
double origin = elm_panes_content_right_size_get(pd->horiz.obj);
if (origin == 1.0) return;
pd->origin_h = origin_h;
pd->delta_h = 1.0 - pd->origin_h;
pd->horiz.origin = origin;
pd->horiz.delta = 1.0 - pd->horiz.origin;
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_h, pd, NULL);
@ -162,26 +158,25 @@ panes_full_view_left(void)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->state_h = PANES_FULL_VIEW_LEFT;
pd->horiz.state = PANES_FULL_VIEW_LEFT;
}
void
panes_full_view_bottom(void)
panes_console_full_view(void)
{
panes_data *pd = g_pd;
//Revert state if the current state is full view bottom already.
if (pd->state_v == PANES_FULL_VIEW_BOTTOM)
if (pd->vert.state == PANES_FULL_VIEW_BOTTOM)
{
panes_v_full_view_cancel(pd);
return;
}
double origin_v = elm_panes_content_right_size_get(pd->panes_v);
if (origin_v == 0.0) return;
double origin = elm_panes_content_right_size_get(pd->vert.obj);
if (origin == 0.0) return;
pd->origin_v = origin_v;
pd->delta_v = 0.0 - pd->origin_v;
pd->vert.origin = origin;
pd->vert.delta = 0.0 - pd->vert.origin;
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_v, pd, NULL);
@ -189,26 +184,26 @@ panes_full_view_bottom(void)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->state_v = PANES_FULL_VIEW_BOTTOM;
pd->vert.state = PANES_FULL_VIEW_BOTTOM;
}
void
panes_full_view_top(void)
panes_editors_full_view(void)
{
panes_data *pd = g_pd;
//Revert state if the current state is full view top already.
if (pd->state_v == PANES_FULL_VIEW_TOP)
if (pd->vert.state == PANES_FULL_VIEW_TOP)
{
panes_v_full_view_cancel(pd);
return;
}
double origin_v = elm_panes_content_right_size_get(pd->panes_v);
if (origin_v == 1.0) return;
double origin = elm_panes_content_right_size_get(pd->vert.obj);
if (origin == 1.0) return;
pd->origin_v = origin_v;
pd->delta_v = 1.0 - pd->origin_v;
pd->vert.origin = origin;
pd->vert.delta = 1.0 - pd->vert.origin;
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_v, pd, NULL);
@ -216,22 +211,28 @@ panes_full_view_top(void)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->state_v = PANES_FULL_VIEW_TOP;
pd->vert.state = PANES_FULL_VIEW_TOP;
}
void
panes_content_set(const char *part, Evas_Object *content)
panes_text_editor_set(Evas_Object *text_editor)
{
panes_data *pd = g_pd;
elm_object_part_content_set(pd->panes_h, part, content);
elm_object_part_content_set(pd->horiz.obj, "right", text_editor);
}
void
panes_live_view_set(Evas_Object *live_view)
{
panes_data *pd = g_pd;
elm_object_part_content_set(pd->horiz.obj, "left", live_view);
}
void
panes_term(void)
{
panes_data *pd = g_pd;
evas_object_del(pd->panes_v);
evas_object_del(pd->vert.obj);
free(pd);
}
@ -255,10 +256,10 @@ panes_init(Evas_Object *parent)
evas_object_smart_callback_add(panes_v, "press", v_press_cb, pd);
evas_object_smart_callback_add(panes_v, "unpress", v_unpress_cb, pd);
pd->panes_v = panes_v;
pd->state_v = PANES_SPLIT_VIEW;
pd->last_bottom_size1 = 0.5;
pd->last_bottom_size2 = 0.5;
pd->vert.obj = panes_v;
pd->vert.state = PANES_SPLIT_VIEW;
pd->vert.last_size[0] = 0.5;
pd->vert.last_size[1] = 0.5;
//Panes Horizontal
Evas_Object *panes_h = elm_panes_add(parent);
@ -271,10 +272,10 @@ panes_init(Evas_Object *parent)
elm_object_part_content_set(panes_v, "top", panes_h);
pd->panes_h = panes_h;
pd->state_h = PANES_SPLIT_VIEW;
pd->last_right_size1 = 0.5;
pd->last_right_size2 = 0.5;
pd->horiz.obj = panes_h;
pd->horiz.state = PANES_SPLIT_VIEW;
pd->horiz.last_size[0] = 0.5;
pd->horiz.last_size[1] = 0.5;
return panes_v;
}

View File

@ -9,11 +9,11 @@ void base_title_set(const char *path);
void base_statusbar_toggle(Eina_Bool config);
void base_tools_toggle(Eina_Bool config);
void base_tools_set(Evas_Object *tools);
void base_full_view_left(void);
void base_full_view_right(void);
void base_full_view_top(void);
void base_full_view_bottom(void);
void base_text_editor_full_view(void);
void base_live_view_full_view(void);
void base_editors_full_view(void);
void base_console_full_view(void);
void base_console_toggle(Eina_Bool config);
void base_left_view_set(Evas_Object *left);
void base_right_view_set(Evas_Object *right);
void base_live_view_set(Evas_Object *live_view);
void base_text_editor_set(Evas_Object *text_editor);
void base_gui_term(void);

View File

@ -1,7 +1,8 @@
Evas_Object *panes_init(Evas_Object *parent);
void panes_term(void);
void panes_full_view_right(void);
void panes_full_view_left(void);
void panes_full_view_top(void);
void panes_full_view_bottom(void);
void panes_content_set(const char *part, Evas_Object *content);
void panes_text_editor_full_view(void);
void panes_live_view_full_view(void);
void panes_editors_full_view(void);
void panes_console_full_view(void);
void panes_live_view_set(Evas_Object *live_view);
void panes_text_editor_set(Evas_Object *text_editor);