panes - refactoring.

it's now singleton style.
only base gui access this panes internally.
This commit is contained in:
ChunEon Park 2014-02-04 21:37:49 +09:00
parent 13d1a9f2c8
commit 29e4aa94c6
5 changed files with 31 additions and 17 deletions

View File

@ -5,7 +5,6 @@ struct base_s
{
Evas_Object *win;
Evas_Object *layout;
Evas_Object *panes;
};
static base_data *g_bd = NULL;
@ -37,7 +36,6 @@ base_statusbar_toggle()
elm_object_signal_emit(bd->layout, "elm,state,statusbar,hide", "");
}
//This function is used in panes. Maybe layout should be separated from main.
void
base_hotkey_toggle()
{
@ -82,34 +80,35 @@ void
base_full_view_left()
{
base_data *bd = g_bd;
panes_full_view_left(bd->panes);
panes_full_view_left();
}
void
base_full_view_right()
{
base_data *bd = g_bd;
panes_full_view_right(bd->panes);
panes_full_view_right();
}
void
base_right_view_set(Evas_Object *right)
{
base_data *bd = g_bd;
elm_object_part_content_set(bd->panes, "right", right);
panes_content_set("right", right);
}
void
base_left_view_set(Evas_Object *left)
{
base_data *bd = g_bd;
elm_object_part_content_set(bd->panes, "left", left);
panes_content_set("left", left);
}
void
base_gui_term()
{
base_data *bd = g_bd;
panes_term();
free(bd);
}
@ -145,12 +144,11 @@ base_gui_init()
evas_object_show(layout);
//Panes
Evas_Object *panes = panes_create(layout);
Evas_Object *panes = panes_init(layout);
elm_object_part_content_set(layout, "elm.swallow.panes", panes);
bd->win = win;
bd->layout = layout;
bd->panes = panes;
return EINA_TRUE;
}

View File

@ -156,19 +156,34 @@ panes_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void
panes_full_view_right(Evas_Object *panes)
{
panes_data *pd = evas_object_data_get(panes, PANES_DATA);
panes_data *pd = g_pd;
right_clicked_cb(pd, pd->right_arrow, NULL);
}
void
panes_full_view_left(Evas_Object *panes)
{
panes_data *pd = evas_object_data_get(panes, PANES_DATA);
panes_data *pd = g_pd;
left_clicked_cb(pd, pd->left_arrow, NULL);
}
void
panes_content_set(const char *part, Evas_Object *content)
{
panes_data *pd = g_pd;
elm_object_part_content_set(pd->panes, part, content);
}
void
panes_term()
{
panes_data *pd = g_pd;
evas_object_del(pd->panes);
free(pd);
}
Evas_Object *
panes_create(Evas_Object *parent)
panes_init(Evas_Object *parent)
{
Evas_Object *img;
@ -238,6 +253,4 @@ panes_create(Evas_Object *parent)
pd->state = PANES_SPLIT_VIEW;
evas_object_data_set(panes, PANES_DATA, pd);
return panes;
}

View File

@ -1,3 +1,5 @@
#include "panes.h"
Eina_Bool base_gui_init();
Evas_Object *base_win_get();
Evas_Object *base_layout_get();

View File

@ -22,7 +22,6 @@ typedef struct base_s base_data;
#include "syntax_color.h"
#include "config_data.h"
#include "edc_parser.h"
#include "panes.h"
#include "dummy_obj.h"
#include "ctxpopup.h"
#include "indent.h"

View File

@ -1,3 +1,5 @@
Evas_Object *panes_create(Evas_Object *parent);
void panes_full_view_right(Evas_Object *panes);
void panes_full_view_left(Evas_Object *panes);
Evas_Object *panes_init(Evas_Object *parent);
void panes_term();
void panes_full_view_right();
void panes_full_view_left();
void panes_content_set(const char *part, Evas_Object *content);