E_VIEW_TYPE_IMAGE,
E_VIEW_TYPE_CLIENT,
E_VIEW_TYPE_EDJE,
- E_VIEW_TYPE_LAYOUT,
} E_View_Type;
struct _E_View_Impl
#include "e_view_layout_intern.h"
-#include "e_layout_intern.h"
+#include "e_view_rect.h"
+#include "e_view_image.h"
#include "e_view_intern.h"
+#include "e_view_client_intern.h"
#include "e_canvas_intern.h"
+typedef struct _E_View_Layout_Item E_View_Layout_Item;
+
struct _E_View_Layout
{
- E_View view;
+ E_View_Tree tree;
+ E_View_Rect *clip;
+
+ int x, y, w, h;
+ int vw, vh;
+ int frozen;
+ unsigned char changed : 1;
+ Eina_Inlist *items;
+};
- Eina_List *children;
+struct _E_View_Layout_Item
+{
+ EINA_INLIST;
+ E_View_Layout *layout;
+ int x, y, w, h;
+ E_View *view;
+ E_Canvas_Layer prev_layer;
+ bool destroying;
+ struct wl_listener destroy;
};
-static void _view_layout_handle_destroy(E_View *view);
+static void _e_view_layout_disown(E_View *child);
+static void _view_layout_handle_destroy(E_View_Tree *tree);
-const static E_View_Impl view_layout_impl = {
- .destroy = _view_layout_handle_destroy,
+E_View_Tree_Impl view_layout_tree_impl = {
+ .destroy = _view_layout_handle_destroy,
};
static E_View_Layout *
-_view_layout_from_view(E_View *view)
+_view_layout_from_tree(E_View_Tree *tree)
{
E_View_Layout *layout;
- assert(view->impl == &view_layout_impl);
- return wl_container_of(view, layout, view);
+ assert(tree->impl == &view_layout_tree_impl);
+ return wl_container_of(tree, layout, tree);
}
static void
-_view_layout_handle_destroy(E_View *view)
+_view_layout_handle_destroy(E_View_Tree *tree)
{
- E_View_Layout *layout = _view_layout_from_view(view);
+ E_View_Layout *layout = _view_layout_from_tree(tree);
+ E_View *view = e_view_rect_view_get(layout->clip);
- evas_object_del(view->eo);
+ while (layout->items)
+ {
+ E_View_Layout_Item *li = (E_View_Layout_Item *)layout->items;
+ layout->items = eina_inlist_remove(layout->items, EINA_INLIST_GET(li));
+ _e_view_layout_disown(li->view);
+ }
+ e_view_destroy(view);
free(layout);
}
-EINTERN int
-e_view_layout_freeze(E_View *view)
+static void
+_e_view_layout_move_resize_item(E_View_Layout_Item *li)
{
- return e_layout_freeze(view->eo);
+ e_view_position_set(li->view,
+ li->layout->x + ((li->x * li->layout->w) / li->layout->vw),
+ li->layout->y + ((li->y * li->layout->h) / li->layout->vh));
+ if (li->view->type == E_VIEW_TYPE_RECT)
+ e_view_rect_size_set(e_view_rect_try_from_view(li->view),
+ MAX((li->w * li->layout->w) / li->layout->vw, 1),
+ MAX((li->h * li->layout->h) / li->layout->vh, 1));
+ else if (li->view->type == E_VIEW_TYPE_IMAGE)
+ e_view_image_size_set(e_view_image_try_from_view(li->view),
+ MAX((li->w * li->layout->w) / li->layout->vw, 1),
+ MAX((li->h * li->layout->h) / li->layout->vh, 1));
+#ifndef E_VIEW_TEST
+ else if (li->view->type == E_VIEW_TYPE_CLIENT)
+ e_view_client_size_set(e_view_client_try_from_view(li->view),
+ MAX((li->w * li->layout->w) / li->layout->vw, 1),
+ MAX((li->h * li->layout->h) / li->layout->vh, 1));
+#endif
+/*
+ else if (li->view->type == E_VIEW_TYPE_EDJE)
+ e_view_edje_size_set(e_view_edje_try_from_view(li->view),
+ MAX((li->w * li->layout->w) / li->layout->vw, 1),
+ MAX((li->h * li->layout->h) / li->layout->vh, 1));
+*/
}
-EINTERN int
-e_view_layout_thaw(E_View *view)
+static void
+_e_view_layout_reconfigure(E_View_Layout *layout)
{
- return e_layout_thaw(view->eo);
-}
+ E_View_Layout_Item *li;
-EINTERN void
-e_view_layout_virtual_size_get(E_View *view, int *w, int *h)
-{
- e_layout_virtual_size_get(view->eo, w, h);
-}
+ if (!layout->changed) return;
-EINTERN void
-e_view_layout_child_lower(E_View *view)
-{
- e_layout_child_lower(view->eo);
-}
+ EINA_INLIST_FOREACH(layout->items, li)
+ _e_view_layout_move_resize_item(li);
-EINTERN void
-e_view_layout_child_raise_above(E_View *view, E_View *above)
-{
- e_layout_child_raise_above(view->eo, above->eo);
+ layout->changed = 0;
}
-EINTERN void
-e_view_layout_child_lower_below (E_View *view, E_View *below)
+static void
+_e_view_layout_cb_child_destroy(struct wl_listener *listener, void *data)
{
- e_layout_child_lower_below(view->eo, below->eo);
-}
+ E_View_Layout_Item *li = wl_container_of(listener, li, destroy);
-EINTERN void
-e_view_layout_child_geometry_get(E_View *view, int *x, int *y, int *w, int *h)
-{
- e_layout_child_geometry_get(view->eo, x, y, w, h);
+ li->destroying = true;
+ e_view_layout_unpack(li->view);
}
-EINTERN E_View *
-e_view_layout_top_child_at_xy_get(E_View *view, int x, int y, Eina_Bool vis, const Eina_List *ignore)
+static E_View_Layout_Item *
+_e_view_layout_adopt(E_View_Layout *layout, E_View *child)
{
- Evas_Object* obj;
- E_View *ignore_view;
- Eina_List *l, *evas_list = NULL;
- EINA_LIST_FOREACH((Eina_List *)ignore, l, ignore_view)
- {
- evas_list = eina_list_append(evas_list, ignore_view->eo);
- }
+ E_View_Layout_Item *li;
- obj = e_layout_top_child_at_xy_get(view->eo, x, y, vis, evas_list);
- eina_list_free(evas_list);
+ li = e_view_data_get(child, "e_view_layout_data");
- if (obj)
- return evas_object_data_get(obj, "e_view");
+ if (li) e_view_layout_unpack(child);
+ li = calloc(1, sizeof(E_View_Layout_Item));
+ if (!li) return NULL;
- return NULL;
-}
+ li->layout = layout;
+ li->view = child;
+ li->prev_layer = e_view_layer_index_get(child);
-EINTERN E_View *
-e_view_layout_child_below_get(E_View *view)
-{
- Evas_Object* obj;
+ e_view_clip_set(child, e_view_rect_view_get(layout->clip));
+ e_view_reparent(child, &layout->tree);
+ e_view_data_set(child, "e_view_layout_data", li);
- obj = e_layout_child_below_get(view->eo);
+ li->destroy.notify = _e_view_layout_cb_child_destroy;
+ e_view_event_listener_add(child, E_VIEW_DESTROY, &li->destroy);
- if (obj)
- return evas_object_data_get(obj, "e_view");
+ if (!e_view_visible_get(e_view_rect_view_get(layout->clip)) &&
+ e_view_visible_get(e_view_tree_view_get(&layout->tree)))
+ e_view_show(e_view_rect_view_get(layout->clip));
- return NULL;
+ return li;
}
-EINTERN E_View *
-e_view_layout_child_above_get(E_View *view)
+static void
+_e_view_layout_disown(E_View *child)
{
- Evas_Object* obj;
+ E_View_Layout_Item *li;
- obj = e_layout_child_above_get(view->eo);
+ li = e_view_data_get(child, "e_view_layout_data");
+ if (!li) return;
+ if (!li->layout->items)
+ {
+ e_view_hide(e_view_rect_view_get(li->layout->clip));
+ }
- if (obj)
- return evas_object_data_get(obj, "e_view");
+ e_view_event_listener_del(child, E_VIEW_DESTROY, &li->destroy);
+ e_view_data_del(child, "e_view_layout_data");
+
+ if (!li->destroying)
+ {
+ e_view_reparent(child, e_canvas_layer_view_tree_get(e_canvas_get(child), li->prev_layer));
+ }
- return NULL;
+ free(li);
}
-EINTERN E_View *
-e_view_layout_top_child_get(E_View *view)
+EINTERN int
+e_view_layout_freeze(E_View_Layout *layout)
{
- Evas_Object* obj;
-
- obj = e_layout_top_child_get(view->eo);
+ if (layout == NULL) return 0;
- if (obj)
- return evas_object_data_get(obj, "e_view");
-
- return NULL;
+ layout->frozen++;
+ return layout->frozen;
}
-EINTERN void
-e_view_layout_coord_canvas_to_virtual(E_View *view, int cx, int cy, int *vx, int *vy)
+EINTERN int
+e_view_layout_thaw(E_View_Layout *layout)
{
- e_layout_coord_canvas_to_virtual(view->eo, cx, cy, vx, vy);
+ if (layout == NULL) return 0;
+
+ layout->frozen--;
+ if (layout->frozen <= 0) _e_view_layout_reconfigure(layout);
+ return layout->frozen;
}
EINTERN void
-e_view_layout_coord_virtual_to_canvas(E_View *view, int vx, int vy, int *cx, int *cy)
+e_view_layout_virtual_size_get(E_View_Layout *layout, int *w, int *h)
{
- e_layout_coord_virtual_to_canvas(view->eo, vx, vy, cx, cy);
+ if (layout == NULL) return;
+
+ if (w) *w = layout->vw;
+ if (h) *h = layout->vh;
}
-E_API E_View_Layout *
-e_view_layout_try_from_view(E_View *view)
+EINTERN void
+e_view_layout_child_lower(E_View *view)
{
- if (view->impl != &view_layout_impl)
- return NULL;
+ E_View_Layout_Item *li;
- return _view_layout_from_view(view);
+ li = e_view_data_get(view, "e_view_layout_data");
+ if (!li) return;
+ if ((!li->layout->items) || (!EINA_INLIST_GET(li)->next)) return;
+ li->layout->items = eina_inlist_promote(li->layout->items, EINA_INLIST_GET(li));
+ e_view_lower_to_bottom(view);
}
-
+#if 0
E_API E_View *
e_view_layout_view_get(E_View_Layout *layout)
{
- return &layout->view;
+ if (!layout) return NULL;
+
+ return e_view_tree_view_get(&layout->tree);
}
+#endif
E_API E_View_Layout *
e_view_layout_create(E_View_Tree *parent)
{
- E_Canvas *canvas;
E_View_Layout *layout;
- Evas_Object *eo;
+ const int color[4] = {255, 255, 255, 255};
assert(parent != NULL);
- layout = malloc(sizeof(*layout));
+ layout = calloc(1, sizeof(E_View_Layout));
if (!layout) return NULL;
- layout->children = NULL;
+ e_view_tree_init(&layout->tree, &view_layout_tree_impl, parent);
+// e_view_reorderable_set(&layout->tree.view, false);
- canvas = e_canvas_get(&parent->view);
- eo = e_layout_add(canvas->evas);
- if (!eo)
- {
- free(layout);
- return NULL;
- }
+ layout->vw = 1;
+ layout->vh = 1;
+
+ layout->clip = e_view_rect_create(&layout->tree, 200002, 200002, color);
+ e_view_position_set(e_view_rect_view_get(layout->clip), -100001, -100001);
+
+// _e_view_layout_adopt(layout, e_view_rect_view_get(layout->clip));
- e_view_init(&layout->view, E_VIEW_TYPE_LAYOUT, (E_View_Impl*)&view_layout_impl, eo, parent);
+// evas_object_intercept_layer_set_callback_add(obj, _e_layout_intercept_layer_set, sd);
return layout;
}
+E_API void e_view_layout_destroy(E_View_Layout *layout)
+{
+ if (!layout) return;
+
+ while (layout->items)
+ {
+ E_View_Layout_Item *li = (E_View_Layout_Item*)layout->items;
+ layout->items = eina_inlist_remove(layout->items, EINA_INLIST_GET(li));
+ _e_view_layout_disown(li->view);
+ }
+ e_view_destroy(e_view_rect_view_get(layout->clip));
+ free(layout);
+}
+
E_API void
e_view_layout_virtual_size_set(E_View_Layout *layout, int w, int h)
{
- E_View *view;
-
if (!layout) return;
- view = e_view_layout_view_get(layout);
- e_layout_virtual_size_set(view->eo, w, h);
+ if (w < 1) w = 1;
+ if (h < 1) h = 1;
+ if (layout->vw == w && layout->vh == h) return;
+
+ layout->vw = w;
+ layout->vh = h;
+ layout->changed = 1;
+ if (layout->frozen <= 0) _e_view_layout_reconfigure(layout);
}
E_API void
e_view_layout_pack(E_View_Layout *layout, E_View *child)
{
- E_View *view;
+ E_View_Layout_Item *li;
if (!layout || !child) return;
- view = e_view_layout_view_get(layout);
- e_layout_pack(view->eo, child->eo);
+ li = _e_view_layout_adopt(layout, child);
+ if (!li) return;
- layout->children = eina_list_append(layout->children, child);
- e_view_data_set(child, "e_view_layout", layout);
+ layout->items = eina_inlist_append(layout->items, EINA_INLIST_GET(li));
+ if (layout->frozen <= 0) _e_view_layout_move_resize_item(li);
}
E_API void
e_view_layout_unpack(E_View *child)
{
+ E_View_Layout *layout;
+ E_View_Layout_Item *li;
+
if (!child) return;
- E_View_Layout *layout = e_view_data_get(child, "e_view_layout");
- if (!layout) return;
+ li = e_view_data_get(child, "e_view_layout");
+ if (!li) return;
- layout->children = eina_list_remove(layout->children, child);
- e_layout_unpack(child->eo);
+ layout = li->layout;
+ layout->items = eina_inlist_remove(layout->items, EINA_INLIST_GET(li));
+ _e_view_layout_disown(child);
}
E_API Eina_List *
e_view_layout_children_get(E_View_Layout *layout)
{
+ Eina_List *l = NULL;
+ E_View_Layout_Item *li;
+
if (!layout) return NULL;
+ if (!layout->items) return NULL;
- return layout->children;
+ EINA_INLIST_FOREACH(layout->items, li)
+ {
+ l = eina_list_append(l, li->view);
+ }
+
+ return l;
}
E_API void
e_view_layout_child_move(E_View *child, int x, int y)
{
- e_layout_child_move(child->eo, x, y);
+ E_View_Layout_Item *li;
+
+ li = e_view_data_get(child, "e_view_layout_data");
+ if (!li) return;
+ if ((li->x == x) && (li->y == y)) return;
+ li->x = x;
+ li->y = y;
+ if (li->layout->frozen <= 0) _e_view_layout_move_resize_item(li);
}
E_API void
e_view_layout_child_resize(E_View *child, int w, int h)
{
- e_layout_child_resize(child->eo, w, h);
+ E_View_Layout_Item *li;
+
+ li = e_view_data_get(child, "e_view_layout_data");
+ if (!li) return;
+ if (w < 0) w = 0;
+ if (h < 0) h = 0;
+ if ((li->w == w) && (li->h == h)) return;
+ li->w = w;
+ li->h = h;
+ if (li->layout->frozen <= 0) _e_view_layout_move_resize_item(li);
}
E_API void
e_view_layout_child_raise (E_View *child)
{
- e_layout_child_raise(child->eo);
+ E_View_Layout_Item *li;
+
+ li = e_view_data_get(child, "e_view_layout_data");
+ if (!li) return;
+ if ((!li->layout->items) || (!EINA_INLIST_GET(li)->prev)) return;
+ li->layout->items = eina_inlist_demote(li->layout->items, EINA_INLIST_GET(li));
+ e_view_raise_to_top(child);
+}
+
+E_API void
+e_view_layout_layer_set(E_View_Layout *layout, E_Layer layer)
+{
+ E_View_Layout_Item *li;
+ E_View_Tree *layer_tree;
+ E_Canvas_Layer canvas_layer;
+
+ if (!layout) return;
+
+ canvas_layer = e_canvas_util_e_layer_map(layer);
+
+ layer_tree = e_canvas_layer_view_tree_get(e_canvas_get(e_view_tree_view_get(&layout->tree)), canvas_layer);
+
+ EINA_INLIST_FOREACH(layout->items, li)
+ {
+ evas_object_layer_set(li->view->eo, canvas_layer);
+ }
+
+ e_view_reparent(e_view_tree_view_get(&layout->tree), layer_tree);
}
+
+E_API void
+e_view_layout_show(E_View_Layout *layout)
+{
+ E_View *view;
+
+ if (!layout) return;
+ if (!layout->items) return;
+
+ view = e_view_tree_view_get(&layout->tree);
+ view->visible = true;
+
+ e_view_show(e_view_rect_view_get(layout->clip));
+}
+
+E_API void
+e_view_layout_hide(E_View_Layout *layout)
+{
+ E_View *view;
+
+ if (!layout) return;
+
+ view = e_view_tree_view_get(&layout->tree);
+ view->visible = false;
+
+ e_view_hide(e_view_rect_view_get(layout->clip));
+}
+
+E_API void
+e_view_layout_move(E_View_Layout *layout, int x, int y)
+{
+ E_View_Layout_Item *li;
+ int dx, dy;
+
+ if (!layout) return;
+
+ if ((x == layout->x) && (y == layout->y)) return;
+
+ dx = x - layout->x;
+ dy = y - layout->y;
+ EINA_INLIST_FOREACH(layout->items, li)
+ {
+ int ox, oy;
+
+ e_view_position_get(li->view, &ox, &oy);
+ e_view_position_set(li->view, ox +dx, oy + dy);
+ }
+ layout->x = x;
+ layout->y = y;
+}
+
+E_API void
+e_view_layout_resize(E_View_Layout *layout, int w, int h)
+{
+ if (!layout) return;
+
+ if ((w == layout->w) && (h == layout->h)) return;
+
+ layout->w = w;
+ layout->h = h;
+ layout->changed = 1;
+ if (layout->frozen <= 0) _e_view_layout_reconfigure(layout);
+}
+
+E_API void
+e_view_layout_color_set(E_View_Layout *layout, int r, int g, int b, int a)
+{
+ if (!layout) return;
+
+ e_view_color_set(e_view_rect_view_get(layout->clip), r, g, b, a);
+}
+
+E_API void
+e_view_layout_clip_set(E_View_Layout *layout, E_View *clip)
+{
+ if (!layout || !clip) return;
+
+ e_view_clip_set(e_view_rect_view_get(layout->clip), clip);
+}
+
+E_API void
+e_view_layout_clip_unset(E_View_Layout *layout)
+{
+ if (!layout) return;
+
+ e_view_clip_unset(e_view_rect_view_get(layout->clip));
+}
+
#include "e_intern.h"
#include "e_view_layout.h"
-EINTERN int e_view_layout_freeze (E_View *view);
-EINTERN int e_view_layout_thaw (E_View *view);
-EINTERN void e_view_layout_virtual_size_get (E_View *view, int *w, int *h);
-EINTERN void e_view_layout_child_lower (E_View *view);
-EINTERN void e_view_layout_child_raise_above (E_View *view, E_View *above);
-EINTERN void e_view_layout_child_lower_below (E_View *view, E_View *below);
-EINTERN void e_view_layout_child_geometry_get(E_View *view, int *x, int *y, int *w, int *h);
-EINTERN E_View *e_view_layout_top_child_at_xy_get(E_View *view, int x, int y, Eina_Bool vis, const Eina_List *ignore);
-EINTERN E_View *e_view_layout_child_below_get(E_View *view);
-EINTERN E_View *e_view_layout_child_above_get(E_View *view);
-EINTERN E_View *e_view_layout_top_child_get(E_View *view);
-
-EINTERN void e_view_layout_coord_canvas_to_virtual (E_View *view, int cx, int cy, int *vx, int *vy);
-EINTERN void e_view_layout_coord_virtual_to_canvas (E_View *view, int vx, int vy, int *cx, int *cy);
+EINTERN int e_view_layout_freeze(E_View_Layout *layout);
+EINTERN int e_view_layout_thaw(E_View_Layout *layout);
+EINTERN void e_view_layout_virtual_size_get(E_View_Layout *layout, int *w, int *h);
+EINTERN void e_view_layout_child_lower(E_View *view);
#endif
typedef struct _E_View_Layout E_View_Layout;
-E_API E_View_Layout *e_view_layout_try_from_view(E_View *view);
-E_API E_View *e_view_layout_view_get(E_View_Layout *layout);
-
-E_API E_View_Layout *e_view_layout_create (E_View_Tree *parent);
-E_API void e_view_layout_virtual_size_set (E_View_Layout *layout, int w, int h);
-E_API void e_view_layout_pack (E_View_Layout *layout, E_View *child);
-E_API void e_view_layout_unpack (E_View *child);
-
-E_API Eina_List *e_view_layout_children_get(E_View_Layout *layout);
-E_API void e_view_layout_child_move (E_View *child, int x, int y);
-E_API void e_view_layout_child_resize(E_View *child, int w, int h);
-E_API void e_view_layout_child_raise (E_View *child);
+E_API E_View_Layout *e_view_layout_create(E_View_Tree *parent);
+E_API void e_view_layout_destroy(E_View_Layout *layout);
+
+E_API void e_view_layout_virtual_size_set(E_View_Layout *layout, int w, int h);
+E_API void e_view_layout_pack(E_View_Layout *layout, E_View *child);
+E_API void e_view_layout_unpack(E_View *child);
+
+E_API Eina_List *e_view_layout_children_get(E_View_Layout *layout);
+E_API void e_view_layout_child_move(E_View *child, int x, int y);
+E_API void e_view_layout_child_resize(E_View *child, int w, int h);
+E_API void e_view_layout_child_raise(E_View *child);
+
+E_API void e_view_layout_layer_set(E_View_Layout *layout, E_Layer layer);
+
+E_API void e_view_layout_show(E_View_Layout *layout);
+E_API void e_view_layout_hide(E_View_Layout *layout);
+E_API void e_view_layout_move(E_View_Layout *layout, int x, int y);
+E_API void e_view_layout_resize(E_View_Layout *layout, int w, int h);
+E_API void e_view_layout_color_set(E_View_Layout *layout, int r, int g, int b, int a);
+E_API void e_view_layout_clip_set(E_View_Layout *layout, E_View *clip);
+E_API void e_view_layout_clip_unset(E_View_Layout *layout);
#ifdef __cplusplus
}
$(top_builddir)/src/bin/core/e_canvas.c \
$(top_builddir)/src/bin/utils/e_map.c \
$(top_builddir)/src/bin/core/e_view_event.c \
- $(top_builddir)/src/bin/windowmgr/e_layout.c \
$(top_builddir)/src/bin/core/e_view_layout.c
enlightenment_tests_SOURCES = \
TEST_F(EViewLayoutTest, Test_E_View_Layout_Create)
{
Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
+ int color[4] = { 255, 255, 255, 255 };
- EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
- EXPECT_CALL(*evasMock, evas_smart_class_new(_));
- EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_))
- .Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_smart_add(_, _))
+ EXPECT_CALL(*evasMock, evas_object_rectangle_add(this->evas))
.Times(1)
.WillOnce(Return(obj));
+ EXPECT_CALL(*evasMock, evas_object_resize(obj, 200002, 200002));
+ EXPECT_CALL(*evasMock, evas_object_move(obj, _, _))
+ .Times(2);
+ EXPECT_CALL(*evasMock, evas_object_color_set(obj, color[0], color[1], color[2], color[3]));
+ EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
E_View_Layout *layout = e_view_layout_create(this->tree);
EXPECT_NE(layout, nullptr);
- E_View *view = e_view_layout_view_get(layout);
- EXPECT_NE(view, nullptr);
- EXPECT_CALL(*evasMock, evas_object_smart_data_get(_))
- .Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_))
- .Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_del(_));
EXPECT_CALL(*evasMock, evas_object_data_del(_, _));
- e_view_destroy(view);
+ EXPECT_CALL(*evasMock, evas_object_del(_));
+ e_view_layout_destroy(layout);
free(obj);
}
TEST_F(EViewLayoutTest, Test_E_View_Layout_Pack_UnPack)
{
- const int color[4] = {0, 0, 0, 0};
-
Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
Evas_Object *obj2 = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
+ int color[4] = { 255, 255, 255, 255 };
- EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
- EXPECT_CALL(*evasMock, evas_smart_class_new(_));
- EXPECT_CALL(*evasMock, evas_object_smart_add(_, _))
+ EXPECT_CALL(*evasMock, evas_object_rectangle_add(this->evas))
.Times(1)
.WillOnce(Return(obj));
+ EXPECT_CALL(*evasMock, evas_object_resize(obj, 200002, 200002));
+ EXPECT_CALL(*evasMock, evas_object_move(obj, _, _))
+ .Times(2);
+ EXPECT_CALL(*evasMock, evas_object_color_set(obj, color[0], color[1], color[2], color[3]));
+ EXPECT_CALL(*evasMock, evas_object_data_get(_, _));
+ EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
E_View_Layout *layout = e_view_layout_create(this->tree);
- E_View *view = e_view_layout_view_get(layout);
EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _))
.Times(AnyNumber());
EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
EXPECT_CALL(*evasMock, evas_object_stack_above(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
+ EXPECT_CALL(*evasMock, evas_object_move(_, _, _))
+ .Times(3);
EXPECT_CALL(*evasMock, evas_object_color_set(_, _, _, _, _));
EXPECT_CALL(*evasMock, evas_object_resize(_, _, _));
EXPECT_CALL(*evasMock, evas_object_rectangle_add(_))
E_View_Rect* view_rect = e_view_rect_create(this->tree, 1, 1, color);
E_View *childView = e_view_rect_view_get(view_rect);
- EXPECT_CALL(*evasMock, evas_object_smart_data_get(_))
- .Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_))
- .Times(AnyNumber());
EXPECT_CALL(*evasMock, evas_object_visible_get(_))
.Times(AnyNumber());
+ EXPECT_CALL(*evasMock, evas_object_clip_set(_, _));
+ EXPECT_CALL(*evasMock, evas_object_raise(_));
e_view_layout_pack(layout, childView);
EXPECT_CALL(*evasMock, evas_object_data_get(_, _))
EXPECT_CALL(*evasMock, evas_object_del(_));
e_view_destroy(childView);
- EXPECT_CALL(*evasMock, evas_object_del(_));
+ EXPECT_CALL(*evasMock, evas_object_data_get(_, _));
EXPECT_CALL(*evasMock, evas_object_data_del(_, _));
- e_view_destroy(view);
+ EXPECT_CALL(*evasMock, evas_object_del(_));
+ e_view_layout_destroy(layout);
free(obj);
free(obj2);
}
TEST_F(EViewLayoutTest, Test_E_View_Layout_Virtual_Size_Set)
{
Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
+ int color[4] = { 255, 255, 255, 255 };
- EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
- EXPECT_CALL(*evasMock, evas_smart_class_new(_));
- EXPECT_CALL(*evasMock, evas_object_smart_add(_, _))
+ EXPECT_CALL(*evasMock, evas_object_rectangle_add(this->evas))
.Times(1)
.WillOnce(Return(obj));
+ EXPECT_CALL(*evasMock, evas_object_resize(obj, 200002, 200002));
+ EXPECT_CALL(*evasMock, evas_object_move(obj, _, _))
+ .Times(2);;
+ EXPECT_CALL(*evasMock, evas_object_color_set(obj, color[0], color[1], color[2], color[3]));
+ EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
E_View_Layout *layout = e_view_layout_create(this->tree);
- E_View *view = e_view_layout_view_get(layout);
- EXPECT_CALL(*evasMock, evas_object_smart_data_get(_))
- .Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_))
- .Times(AnyNumber());
e_view_layout_virtual_size_set(layout, 100, 200);
- EXPECT_CALL(*evasMock, evas_object_del(_));
EXPECT_CALL(*evasMock, evas_object_data_del(_, _));
- e_view_destroy(view);
+ EXPECT_CALL(*evasMock, evas_object_del(_));
+ e_view_layout_destroy(layout);
free(obj);
}
TEST_F(EViewLayoutTest, Test_E_View_Layout_Children_Move)
{
- const int color[4] = {0, 0, 0, 0};
-
Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
Evas_Object *obj2 = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
+ int color[4] = { 255, 255, 255, 255 };
- EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
- EXPECT_CALL(*evasMock, evas_smart_class_new(_));
- EXPECT_CALL(*evasMock, evas_object_smart_add(_, _))
+ EXPECT_CALL(*evasMock, evas_object_rectangle_add(this->evas))
.Times(1)
.WillOnce(Return(obj));
+ EXPECT_CALL(*evasMock, evas_object_resize(obj, 200002, 200002));
+ EXPECT_CALL(*evasMock, evas_object_move(obj, _, _))
+ .Times(2);
+ EXPECT_CALL(*evasMock, evas_object_color_set(obj, color[0], color[1], color[2], color[3]));
+ EXPECT_CALL(*evasMock, evas_object_data_get(_, _));
+ EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
E_View_Layout *layout = e_view_layout_create(this->tree);
- E_View *view = e_view_layout_view_get(layout);
EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _))
.Times(AnyNumber());
EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
EXPECT_CALL(*evasMock, evas_object_stack_above(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
+ EXPECT_CALL(*evasMock, evas_object_move(_, _, _))
+ .Times(3);
EXPECT_CALL(*evasMock, evas_object_color_set(_, _, _, _, _));
EXPECT_CALL(*evasMock, evas_object_resize(_, _, _));
EXPECT_CALL(*evasMock, evas_object_rectangle_add(_))
E_View_Rect* view_rect = e_view_rect_create(this->tree, 1, 1, color);
E_View *childView = e_view_rect_view_get(view_rect);
- EXPECT_CALL(*evasMock, evas_object_smart_data_get(_))
- .Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_))
- .Times(AnyNumber());
EXPECT_CALL(*evasMock, evas_object_visible_get(_))
.Times(AnyNumber());
+ EXPECT_CALL(*evasMock, evas_object_clip_set(_, _));
+ EXPECT_CALL(*evasMock, evas_object_raise(_));
e_view_layout_pack(layout, childView);
EXPECT_CALL(*evasMock, evas_object_data_get(_, _))
EXPECT_CALL(*evasMock, evas_object_del(_));
EXPECT_CALL(*evasMock, evas_object_data_del(_, _));
- e_view_destroy(view);
+ e_view_layout_destroy(layout);
free(obj);
free(obj2);
}
TEST_F(EViewLayoutTest, Test_E_View_Layout_Children_Resize)
{
- const int color[4] = {0, 0, 0, 0};
-
Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
Evas_Object *obj2 = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
+ int color[4] = { 255, 255, 255, 255 };
- EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
- EXPECT_CALL(*evasMock, evas_smart_class_new(_));
- EXPECT_CALL(*evasMock, evas_object_smart_add(_, _))
+ EXPECT_CALL(*evasMock, evas_object_rectangle_add(this->evas))
.Times(1)
.WillOnce(Return(obj));
+ EXPECT_CALL(*evasMock, evas_object_resize(obj, 200002, 200002));
+ EXPECT_CALL(*evasMock, evas_object_move(obj, _, _))
+ .Times(2);
+ EXPECT_CALL(*evasMock, evas_object_color_set(obj, color[0], color[1], color[2], color[3]));
+ EXPECT_CALL(*evasMock, evas_object_data_get(_, _));
+ EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
E_View_Layout *layout = e_view_layout_create(this->tree);
- E_View *view = e_view_layout_view_get(layout);
EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _))
.Times(AnyNumber());
EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
EXPECT_CALL(*evasMock, evas_object_stack_above(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
+ EXPECT_CALL(*evasMock, evas_object_move(_, _, _))
+ .Times(3);
EXPECT_CALL(*evasMock, evas_object_color_set(_, _, _, _, _));
EXPECT_CALL(*evasMock, evas_object_resize(_, _, _));
EXPECT_CALL(*evasMock, evas_object_rectangle_add(_))
E_View_Rect* view_rect = e_view_rect_create(this->tree, 1, 1, color);
E_View *childView = e_view_rect_view_get(view_rect);
- EXPECT_CALL(*evasMock, evas_object_smart_data_get(_))
- .Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_))
- .Times(AnyNumber());
EXPECT_CALL(*evasMock, evas_object_visible_get(_))
.Times(AnyNumber());
+ EXPECT_CALL(*evasMock, evas_object_clip_set(_, _));
+ EXPECT_CALL(*evasMock, evas_object_raise(_));
e_view_layout_pack(layout, childView);
EXPECT_CALL(*evasMock, evas_object_data_get(_, _))
EXPECT_CALL(*evasMock, evas_object_del(_));
EXPECT_CALL(*evasMock, evas_object_data_del(_, _));
- e_view_destroy(view);
+ e_view_layout_destroy(layout);
free(obj);
free(obj2);
}
TEST_F(EViewLayoutTest, Test_E_View_Layout_Children_Raise)
{
- const int color[4] = {0, 0, 0, 0};
-
Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
Evas_Object *obj2 = (Evas_Object *)malloc(EVAS_OBJECT_SIZE);
+ int color[4] = { 255, 255, 255, 255 };
- EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
- EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
- EXPECT_CALL(*evasMock, evas_smart_class_new(_));
- EXPECT_CALL(*evasMock, evas_object_smart_add(_, _))
+ EXPECT_CALL(*evasMock, evas_object_rectangle_add(this->evas))
.Times(1)
.WillOnce(Return(obj));
+ EXPECT_CALL(*evasMock, evas_object_resize(obj, 200002, 200002));
+ EXPECT_CALL(*evasMock, evas_object_move(obj, _, _))
+ .Times(2);
+ EXPECT_CALL(*evasMock, evas_object_color_set(obj, color[0], color[1], color[2], color[3]));
+ EXPECT_CALL(*evasMock, evas_object_data_get(_, _));
+ EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _));
E_View_Layout *layout = e_view_layout_create(this->tree);
- E_View *view = e_view_layout_view_get(layout);
EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _))
.Times(AnyNumber());
EXPECT_CALL(*evasMock, evas_object_layer_set(_, _));
EXPECT_CALL(*evasMock, evas_object_stack_above(_, _));
- EXPECT_CALL(*evasMock, evas_object_move(_, _, _));
+ EXPECT_CALL(*evasMock, evas_object_move(_, _, _))
+ .Times(3);
EXPECT_CALL(*evasMock, evas_object_color_set(_, _, _, _, _));
EXPECT_CALL(*evasMock, evas_object_resize(_, _, _));
EXPECT_CALL(*evasMock, evas_object_rectangle_add(_))
E_View_Rect* view_rect = e_view_rect_create(this->tree, 1, 1, color);
E_View *childView = e_view_rect_view_get(view_rect);
- EXPECT_CALL(*evasMock, evas_object_smart_data_get(_))
- .Times(AnyNumber());
- EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_))
- .Times(AnyNumber());
EXPECT_CALL(*evasMock, evas_object_visible_get(_))
.Times(AnyNumber());
+ EXPECT_CALL(*evasMock, evas_object_clip_set(_, _));
+ EXPECT_CALL(*evasMock, evas_object_raise(_));
e_view_layout_pack(layout, childView);
EXPECT_CALL(*evasMock, evas_object_data_get(_, _))
EXPECT_CALL(*evasMock, evas_object_del(_));
EXPECT_CALL(*evasMock, evas_object_data_del(_, _));
- e_view_destroy(view);
+ e_view_layout_destroy(layout);
free(obj);
free(obj2);
}