{
Eina_Inlist *stack;
Evas_Object *base;
+ Evas_Object *rect;
Eina_Bool preserve: 1;
Eina_Bool auto_pushed: 1;
Eina_Bool freeze_events: 1;
Evas *e,
Evas_Object *obj,
void *event_info);
+static void _hide(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void _title_clicked(void *data, Evas_Object *obj,
const char *emission,
const char *source);
_elm_widget_mirrored_reload(obj);
_mirrored_set(obj, elm_widget_mirrored_get(obj));
+
+ evas_object_hide(wd->rect);
}
static void _emit_hook(Evas_Object *obj,
Evas_Object *obj,
void *event_info __UNUSED__)
{
+ Evas_Coord x, y;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ evas_object_geometry_get(obj, &x, &y, NULL, NULL);
+ evas_object_move(wd->rect, x, y);
+
_sizing_eval(obj);
}
Evas_Object *obj,
void *event_info __UNUSED__)
{
+ Evas_Coord w, h;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ evas_object_geometry_get(obj, NULL, NULL, &w, &h);
+ evas_object_resize(wd->rect, w, h);
+
_sizing_eval(obj);
}
static void
+_hide(void *data __UNUSED__,
+ Evas *e __UNUSED__,
+ Evas_Object *obj,
+ void *event_info __UNUSED__)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+ if (wd->freeze_events)
+ evas_object_hide(wd->rect);
+}
+
+static void
_title_clicked(void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
evas_object_smart_callback_call(WIDGET(it),
SIG_PUSH_FINISHED,
data);
- if (wd->freeze_events)
- evas_object_freeze_events_set(VIEW(it), EINA_FALSE);
}
static void
SIG_TRANSITION_FINISHED,
data);
if (wd->freeze_events)
- evas_object_freeze_events_set(VIEW(it), EINA_FALSE);
+ evas_object_hide(wd->rect);
}
static void
_item_sizing_eval(navi_it);
wd = elm_widget_data_get(WIDGET(navi_it));
- if (!wd) return;
-
- if (wd->freeze_events)
- evas_object_freeze_events_set(VIEW(navi_it), EINA_FALSE);
+ if (wd && wd->freeze_events)
+ evas_object_hide(wd->rect);
}
static Elm_Naviframe_Item *
elm_widget_resize_object_set(obj, wd->base);
_elm_theme_object_set(obj, wd->base, "naviframe", "base", "default");
+ //rect
+ wd->rect = evas_object_rectangle_add(e);
+ evas_object_color_set(wd->rect, 0, 0, 0, 0);
+ elm_widget_sub_object_add(obj, wd->rect);
+
evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _move, obj);
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize, obj);
+ evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _hide, obj);
evas_object_smart_callbacks_descriptions_set(obj, _signals);
wd->auto_pushed = EINA_TRUE;
if (prev_it)
{
if (wd->freeze_events)
- {
- evas_object_freeze_events_set(VIEW(it), EINA_TRUE);
- evas_object_freeze_events_set(VIEW(prev_it), EINA_TRUE);
- }
+ evas_object_show(wd->rect);
+
edje_object_signal_emit(VIEW(prev_it),
"elm,state,cur,pushed",
"elm");
if (prev_it)
{
if (wd->freeze_events)
- {
- evas_object_freeze_events_set(VIEW(it), EINA_TRUE);
- evas_object_freeze_events_set(VIEW(prev_it), EINA_TRUE);
- }
+ evas_object_show(wd->rect);
edje_object_signal_emit(VIEW(it), "elm,state,cur,popped", "elm");
evas_object_show(VIEW(prev_it));
evas_object_raise(VIEW(prev_it));
prev_it = EINA_INLIST_CONTAINER_GET(wd->stack->last->prev,
Elm_Naviframe_Item);
if (wd->freeze_events)
- {
- evas_object_freeze_events_set(VIEW(it), EINA_TRUE);
- evas_object_freeze_events_set(VIEW(prev_it), EINA_TRUE);
- }
+ evas_object_show(wd->rect);
edje_object_signal_emit(VIEW(prev_it),
"elm,state,cur,pushed",
"elm");