diff --git a/src/bin/term_container.h b/src/bin/term_container.h index a4ed35aa..383d917e 100644 --- a/src/bin/term_container.h +++ b/src/bin/term_container.h @@ -44,6 +44,8 @@ struct _Term_Container { Term *(*find_term_at_coords)(Term_Container *container, Evas_Coord mx, Evas_Coord my); void (*size_eval)(Term_Container *container, Sizeinfo *info); + void (*split)(Term_Container *container, const char *cmd, + Eina_Bool is_horizontal); /* TODO: only for solo, move out ? */ void (*swallow)(Term_Container *container, Term_Container *orig, Term_Container *new_child); void (*focus)(Term_Container *tc, Term_Container *relative); diff --git a/src/bin/win.c b/src/bin/win.c index 5b2784fc..a7b06404 100644 --- a/src/bin/win.c +++ b/src/bin/win.c @@ -453,6 +453,7 @@ _solo_new(Term *term, Win *wn) tc->get_evas_object = _solo_get_evas_object; tc->find_term_at_coords = _solo_find_term_at_coords; tc->size_eval = _solo_size_eval; + tc->split = _solo_split; tc->swallow = NULL; tc->focus = _solo_focus; tc->set_title = _solo_set_title; @@ -854,6 +855,7 @@ win_new(const char *name, const char *role, const char *title, tc->get_evas_object = _win_get_evas_object; tc->find_term_at_coords = _win_find_term_at_coords; tc->size_eval = _win_size_eval; + tc->split = NULL; tc->swallow = _win_swallow; tc->focus = _win_focus; tc->set_title = _win_set_title; @@ -1340,6 +1342,7 @@ _split_new(Term_Container *tc1, Term_Container *tc2, Eina_Bool is_horizontal) tc->get_evas_object = _split_get_evas_object; tc->find_term_at_coords = _split_find_term_at_coords; tc->size_eval = _split_size_eval; + tc->split = NULL; tc->swallow = _split_swallow; tc->focus = _split_focus; tc->set_title = _split_set_title; @@ -1765,7 +1768,7 @@ split_horizontally(Evas_Object *win EINA_UNUSED, Evas_Object *term, if (!tm) return; tc = tm->container; - _solo_split(tc, cmd, EINA_TRUE); + tc->split(tc, cmd, EINA_TRUE); } void @@ -1779,7 +1782,7 @@ split_vertically(Evas_Object *win EINA_UNUSED, Evas_Object *term, if (!tm) return; tc = tm->container; - _solo_split(tc, cmd, EINA_FALSE); + tc->split(tc, cmd, EINA_FALSE); } #if 0 @@ -2658,6 +2661,7 @@ _tabs_new(Term_Container *child, Term_Container *parent) tc->get_evas_object = _tabs_get_evas_object; tc->find_term_at_coords = _tabs_find_term_at_coords; tc->size_eval = _tabs_size_eval; + tc->split = NULL; tc->swallow = _tabs_swallow; tc->focus = _tabs_focus; tc->set_title = _tabs_set_title; @@ -3236,7 +3240,7 @@ _cb_split_h(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) Term_Container *tc = term->container; assert(tc->type == TERM_CONTAINER_TYPE_SOLO); - _solo_split(tc, NULL, EINA_TRUE); + tc->split(tc, NULL, EINA_TRUE); } static void @@ -3246,7 +3250,7 @@ _cb_split_v(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) Term_Container *tc = term->container; assert(tc->type == TERM_CONTAINER_TYPE_SOLO); - _solo_split(tc, NULL, EINA_FALSE); + tc->split(tc, NULL, EINA_FALSE); } static void