description { state: "default" 0.0;
min: 40 40;
max: 40 40;
- fixed: 1 1;
+ fixed: 1 1;
align: 1 0.5;
rel1.to: "elm.text.title";
rel1.relative: 0 0;
Evas_Object *ic = elm_icon_add(win);
elm_icon_standard_set(ic, "home");
evas_object_show(ic);
-elm_flip_content_front_set(o, ic);
+elm_object_part_content_set(o, "front", ic);
ic = elm_icon_add(win);
elm_icon_standard_set(ic, "file");
evas_object_show(ic);
-elm_flip_content_back_set(o, ic);
+elm_object_part_content_set(o, "back", ic);
ecore_timer_add(0.35, _func, o);
{
elm_flip_go(data, ELM_FLIP_CUBE_RIGHT);
return 0;
-}
\ No newline at end of file
+}
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_01.jpg");
elm_bg_file_set(o, buf, NULL);
- elm_flip_content_front_set(fl, o);
+ elm_object_part_content_set(fl, "front", o);
evas_object_show(o);
ly = elm_layout_add(win);
elm_layout_file_set(ly, buf, "layout");
evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_flip_content_back_set(fl, ly);
+ elm_object_part_content_set(fl, "back", ly);
evas_object_show(ly);
bt = elm_button_add(ly);
elm_box_pack_end(o, li);
evas_object_show(li);
- elm_flip_content_front_set(fl, o);
+ elm_object_part_content_set(fl, "front", o);
evas_object_show(o);
en = elm_entry_add(win);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_flip_content_back_set(fl, en);
+ elm_object_part_content_set(fl, "back", en);
evas_object_show(en);
evas_object_show(fl);
elm_object_text_set(fr, "Front");
evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_flip_content_front_set(fl, fr);
+ elm_object_part_content_set(fl, "front", fr);
evas_object_show(fr);
fl_f = elm_flip_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_01.jpg");
elm_bg_file_set(o, buf, NULL);
- elm_flip_content_front_set(fl_f, o);
+ elm_object_part_content_set(fl_f, "front", o);
evas_object_show(o);
o = elm_bg_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_02.jpg");
elm_bg_file_set(o, buf, NULL);
- elm_flip_content_back_set(fl_f, o);
+ elm_object_part_content_set(fl_f, "back", o);
evas_object_show(o);
fr = elm_frame_add(win);
elm_object_text_set(fr, "Back");
evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_flip_content_back_set(fl, fr);
+ elm_object_part_content_set(fl, "back", fr);
evas_object_show(fr);
fl_b = elm_flip_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_03.jpg");
elm_bg_file_set(o, buf, NULL);
- elm_flip_content_front_set(fl_b, o);
+ elm_object_part_content_set(fl_b, "front", o);
evas_object_show(o);
o = elm_bg_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
snprintf(buf, sizeof(buf), "%s/images/%s", elm_app_data_dir_get(), "sky_04.jpg");
elm_bg_file_set(o, buf, NULL);
- elm_flip_content_back_set(fl_b, o);
+ elm_object_part_content_set(fl_b, "back", o);
evas_object_show(o);
bx2 = elm_box_add(win);
snprintf(buf, sizeof(buf), "%s/images/%s",
elm_app_data_dir_get(), "twofish.jpg");
evas_object_image_file_set(im, buf, NULL);
- elm_flip_content_front_set(fl, im);
+ elm_object_part_content_set(fl, "front", im);
evas_object_show(im);
#if 0
snprintf(buf, sizeof(buf), "%s/images/%s",
elm_app_data_dir_get(), "sky_04.jpg");
evas_object_image_file_set(im, buf, NULL);
- elm_flip_content_back_set(fl, im);
+ elm_object_part_content_set(fl, "back", im);
evas_object_show(im);
#else
li = elm_list_add(win);
elm_list_item_append(li, "Item 2", NULL, NULL, NULL, NULL);
elm_list_item_append(li, "Item 3 (Which is very long just for testing purposes)", NULL, NULL, NULL, NULL);
elm_list_go(li);
- elm_flip_content_back_set(fl, li);
+ elm_object_part_content_set(fl, "back", li);
evas_object_show(li);
#endif
weather[0] = eweather_object_add(evas_object_evas_get(win));
evas_object_size_hint_weight_set(weather[0], EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(weather[0], -1.0, -1.0);
- elm_flip_content_front_set(fl, weather[0]);
+ elm_object_part_content_set(fl, "front", weather[0]);
evas_object_show(weather[0]);
module[1] = NULL;
eweather = eweather_object_eweather_get(weather[1]);
evas_object_size_hint_weight_set(weather[1], EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(weather[1], -1.0, -1.0);
- elm_flip_content_back_set(fl, weather[1]);
+ elm_object_part_content_set(fl, "back", weather[1]);
evas_object_show(weather[1]);
evas_object_show(fl);
evas_object_show(rect2);
flip = elm_flip_add(win);
- elm_flip_content_front_set(flip, rect);
- elm_flip_content_back_set(flip, rect2);
+ elm_object_part_content_set(flip, "front", rect);
+ elm_object_part_conetnt_set(flip, "back", rect2);
evas_object_resize(flip, 150, 150);
evas_object_move(flip, 10, 10);
evas_object_show(flip);
* @ingroup Entry
*/
EINA_DEPRECATED EAPI void elm_entry_text_filter_remove(Evas_Object *obj, Elm_Entry_Filter_Cb func, void *data);
+
+/**
+ * @brief Set the front content of the flip widget.
+ *
+ * @param obj The flip object
+ * @param content The new front content object
+ *
+ * Once the content object is set, a previously set one will be deleted.
+ * If you want to keep that old content object, use the
+ * elm_flip_content_front_unset() function.
+ *
+ * @deprecated Use elm_objecet_part_content_set(flip, "front") instead
+ */
+EINA_DEPRECATED EAPI void elm_flip_content_front_set(Evas_Object *obj, Evas_Object *content);
+
+/**
+ * @brief Set the back content of the flip widget.
+ *
+ * @param obj The flip object
+ * @param content The new back content object
+ *
+ * Once the content object is set, a previously set one will be deleted.
+ * If you want to keep that old content object, use the
+ * elm_flip_content_back_unset() function.
+ *
+ * @deprecated Use elm_objecet_part_content_set(flip, "back") instead
+ */
+EINA_DEPRECATED EAPI void elm_flip_content_back_set(Evas_Object *obj, Evas_Object *content);
+
+/**
+ * @brief Get the front content used for the flip
+ *
+ * @param obj The flip object
+ * @return The front content object that is being used
+ *
+ * Return the front content object which is set for this widget.
+ *
+ * @deprecated Use elm_objecet_part_content_get(flip, "front") instead
+ */
+EINA_DEPRECATED EAPI Evas_Object *elm_flip_content_front_get(const Evas_Object *obj);
+
+/**
+ * @brief Get the back content used for the flip
+ *
+ * @param obj The flip object
+ * @return The back content object that is being used
+ *
+ * Return the back content object which is set for this widget.
+ *
+ * @deprecated Use elm_objecet_part_content_get(flip, "back") instead
+ */
+EINA_DEPRECATED EAPI Evas_Object *elm_flip_content_back_get(const Evas_Object *obj);
+
+/**
+ * @brief Unset the front content used for the flip
+ *
+ * @param obj The flip object
+ * @return The front content object that was being used
+ *
+ * Unparent and return the front content object which was set for this widget.
+ *
+ * @deprecated Use elm_objecet_part_content_unset(flip, "front") instead
+ */
+EINA_DEPRECATED EAPI Evas_Object *elm_flip_content_front_unset(Evas_Object *obj);
+
+/**
+ * @brief Unset the back content used for the flip
+ *
+ * @param obj The flip object
+ * @return The back content object that was being used
+ *
+ * Unparent and return the back content object which was set for this widget.
+ *
+ * @deprecated Use elm_objecet_part_content_unset(flip, "back") instead
+ */
+EINA_DEPRECATED EAPI Evas_Object *elm_flip_content_back_unset(Evas_Object *obj);
+
}
static Eina_Bool
-_elm_flip_focus_next_hook(const Evas_Object *obj, Elm_Focus_Direction dir, Evas_Object **next)
+_elm_flip_focus_next_hook(const Evas_Object *obj,
+ Elm_Focus_Direction dir, Evas_Object **next)
{
Widget_Data *wd = elm_widget_data_get(obj);
-
- if (!wd)
- return EINA_FALSE;
+ if (!wd) return EINA_FALSE;
/* Try Focus cycle in subitem */
if (wd->state)
return elm_widget_focus_next_get(wd->front.content, dir, next);
else
return elm_widget_focus_next_get(wd->back.content, dir, next);
-
}
static void
wd->job = ecore_job_add(_update_job, wd);
}
+static void
+_flip_content_front_set(Evas_Object *obj, Evas_Object *content)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ int i;
+
+ if (wd->front.content == content) return;
+ if (wd->front.content) evas_object_del(wd->front.content);
+ wd->front.content = content;
+ if (content)
+ {
+ elm_widget_sub_object_add(obj, content);
+ evas_object_smart_member_add(content, obj);
+ evas_object_clip_set(content, wd->front.clip);
+ evas_object_event_callback_add(content,
+ EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+ _changed_size_hints, obj);
+ _sizing_eval(obj);
+ }
+
+ // force calc to contents are the right size before transition
+ evas_smart_objects_calculate(evas_object_evas_get(obj));
+ flip_show_hide(obj);
+ _configure(obj);
+ if (wd->intmode != ELM_FLIP_INTERACTION_NONE)
+ {
+ for (i = 0; i < 4; i++) evas_object_raise(wd->event[i]);
+ }
+}
+
+static void
+_flip_content_back_set(Evas_Object *obj, Evas_Object *content)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ int i;
+ if (wd->back.content == content) return;
+ if (wd->back.content) evas_object_del(wd->back.content);
+ wd->back.content = content;
+ if (content)
+ {
+ elm_widget_sub_object_add(obj, content);
+ evas_object_smart_member_add(content, obj);
+ evas_object_clip_set(content, wd->back.clip);
+ evas_object_event_callback_add(content,
+ EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+ _changed_size_hints, obj);
+ _sizing_eval(obj);
+ }
+
+ // force calc to contents are the right size before transition
+ evas_smart_objects_calculate(evas_object_evas_get(obj));
+ flip_show_hide(obj);
+ _configure(obj);
+ if (wd->intmode != ELM_FLIP_INTERACTION_NONE)
+ {
+ for (i = 0; i < 4; i++) evas_object_raise(wd->event[i]);
+ }
+}
+
+static Evas_Object *
+_content_front_unset(Evas_Object *obj)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if ((!wd) || (!wd->front.content)) return NULL;
+
+ Evas_Object *content = wd->front.content;
+ evas_object_clip_unset(content);
+ elm_widget_sub_object_del(obj, content);
+ evas_object_event_callback_del_full(content,
+ EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+ _changed_size_hints, obj);
+ evas_object_smart_member_del(content);
+ wd->front.content = NULL;
+ return content;
+}
+
+static Evas_Object *
+_content_back_unset(Evas_Object *obj)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if ((!wd) || (!wd->back.content)) return NULL;
+
+ Evas_Object *content = wd->back.content;
+ evas_object_clip_unset(content);
+ elm_widget_sub_object_del(obj, content);
+ evas_object_event_callback_del_full(content,
+ EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+ _changed_size_hints, obj);
+ evas_object_smart_member_del(content);
+ wd->back.content = NULL;
+ return content;
+}
+
+static void
+_content_set_hook(Evas_Object *obj, const char *part, Evas_Object *content)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype);
+
+ if (!part || !strcmp(part, "front"))
+ _flip_content_front_set(obj, content);
+ else if (!strcmp(part, "back"))
+ _flip_content_back_set(obj, content);
+}
+
+static Evas_Object *
+_content_get_hook(const Evas_Object *obj, const char *part)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return NULL;
+
+ if (!part || !strcmp(part, "front"))
+ return wd->front.content;
+ else if (!strcmp(part, "back"))
+ return wd->back.content;
+
+ return NULL;
+}
+
+static Evas_Object *
+_content_unset_hook(Evas_Object *obj, const char *part)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+
+ if (!part || !strcmp(part, "front"))
+ return _content_front_unset(obj);
+ else if (!strcmp(part, "back"))
+ return _content_back_unset(obj);
+
+ return NULL;
+}
+
EAPI Evas_Object *
elm_flip_add(Evas_Object *parent)
{
elm_widget_theme_hook_set(obj, _theme_hook);
elm_widget_focus_next_hook_set(obj, _elm_flip_focus_next_hook);
elm_widget_can_focus_set(obj, EINA_FALSE);
+ elm_widget_content_set_hook_set(obj, _content_set_hook);
+ elm_widget_content_get_hook_set(obj, _content_get_hook);
+ elm_widget_content_unset_hook_set(obj, _content_unset_hook);
wd->obj = obj;
wd->clip = evas_object_rectangle_add(e);
- evas_object_static_clip_set(wd->clip, 1);
+ evas_object_static_clip_set(wd->clip, EINA_TRUE);
evas_object_color_set(wd->clip, 255, 255, 255, 255);
evas_object_move(wd->clip, -49999, -49999);
evas_object_resize(wd->clip, 99999, 99999);
evas_object_smart_member_add(wd->clip, obj);
wd->front.clip = evas_object_rectangle_add(e);
- evas_object_static_clip_set(wd->front.clip, 1);
+ evas_object_static_clip_set(wd->front.clip, EINA_TRUE);
evas_object_data_set(wd->front.clip, "_elm_leaveme", obj);
evas_object_color_set(wd->front.clip, 255, 255, 255, 255);
evas_object_move(wd->front.clip, -49999, -49999);
evas_object_clip_set(wd->front.clip, wd->clip);
wd->back.clip = evas_object_rectangle_add(e);
- evas_object_static_clip_set(wd->back.clip, 1);
+ evas_object_static_clip_set(wd->back.clip, EINA_TRUE);
evas_object_data_set(wd->back.clip, "_elm_leaveme", obj);
evas_object_color_set(wd->back.clip, 255, 255, 255, 255);
evas_object_move(wd->back.clip, -49999, -49999);
evas_object_smart_callbacks_descriptions_set(obj, _signals);
- wd->state = 1;
+ wd->state = EINA_TRUE;
wd->intmode = ELM_FLIP_INTERACTION_NONE;
_sizing_eval(obj);
EAPI void
elm_flip_content_front_set(Evas_Object *obj, Evas_Object *content)
{
- ELM_CHECK_WIDTYPE(obj, widtype);
- Widget_Data *wd = elm_widget_data_get(obj);
- int i;
- if (!wd) return;
- if (wd->front.content == content) return;
- if (wd->front.content) evas_object_del(wd->front.content);
- wd->front.content = content;
- if (content)
- {
- elm_widget_sub_object_add(obj, content);
- evas_object_smart_member_add(content, obj);
- evas_object_clip_set(content, wd->front.clip);
- evas_object_event_callback_add(content,
- EVAS_CALLBACK_CHANGED_SIZE_HINTS,
- _changed_size_hints, obj);
- _sizing_eval(obj);
- }
- // force calc to contents are the right size before transition
- evas_smart_objects_calculate(evas_object_evas_get(obj));
- flip_show_hide(obj);
- _configure(obj);
- if (wd->intmode != ELM_FLIP_INTERACTION_NONE)
- {
- for (i = 0; i < 4; i++) evas_object_raise(wd->event[i]);
- }
+ elm_object_part_content_set(obj, NULL, content);
}
EAPI void
elm_flip_content_back_set(Evas_Object *obj, Evas_Object *content)
{
- ELM_CHECK_WIDTYPE(obj, widtype);
- Widget_Data *wd = elm_widget_data_get(obj);
- int i;
- if (!wd) return;
- if (wd->back.content == content) return;
- if (wd->back.content) evas_object_del(wd->back.content);
- wd->back.content = content;
- if (content)
- {
- elm_widget_sub_object_add(obj, content);
- evas_object_smart_member_add(content, obj);
- evas_object_clip_set(content, wd->back.clip);
- evas_object_event_callback_add(content,
- EVAS_CALLBACK_CHANGED_SIZE_HINTS,
- _changed_size_hints, obj);
- _sizing_eval(obj);
- }
- // force calc to contents are the right size before transition
- evas_smart_objects_calculate(evas_object_evas_get(obj));
- flip_show_hide(obj);
- _configure(obj);
- if (wd->intmode != ELM_FLIP_INTERACTION_NONE)
- {
- for (i = 0; i < 4; i++) evas_object_raise(wd->event[i]);
- }
+ elm_object_part_content_set(obj, "back", content);
}
EAPI Evas_Object *
elm_flip_content_front_get(const Evas_Object *obj)
{
- ELM_CHECK_WIDTYPE(obj, widtype) NULL;
- Widget_Data *wd = elm_widget_data_get(obj);
- return wd->front.content;
+ return elm_object_part_content_get(obj, NULL);
}
-
EAPI Evas_Object *
elm_flip_content_back_get(const Evas_Object *obj)
{
- ELM_CHECK_WIDTYPE(obj, widtype) NULL;
- Widget_Data *wd = elm_widget_data_get(obj);
- return wd->back.content;
+ return elm_object_part_content_get(obj, "back");
}
EAPI Evas_Object *
elm_flip_content_front_unset(Evas_Object *obj)
{
- ELM_CHECK_WIDTYPE(obj, widtype) NULL;
- Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd) return NULL;
- if (!wd->front.content) return NULL;
- Evas_Object *content = wd->front.content;
- evas_object_clip_unset(content);
- elm_widget_sub_object_del(obj, content);
- evas_object_event_callback_del_full(content,
- EVAS_CALLBACK_CHANGED_SIZE_HINTS,
- _changed_size_hints, obj);
- evas_object_smart_member_del(content);
- wd->front.content = NULL;
- return content;
+ return elm_object_part_content_unset(obj, NULL);
}
EAPI Evas_Object *
elm_flip_content_back_unset(Evas_Object *obj)
{
- ELM_CHECK_WIDTYPE(obj, widtype) NULL;
- Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd) return NULL;
- if (!wd->back.content) return NULL;
- Evas_Object *content = wd->back.content;
- evas_object_clip_unset(content);
- elm_widget_sub_object_del(obj, content);
- evas_object_event_callback_del_full(content,
- EVAS_CALLBACK_CHANGED_SIZE_HINTS,
- _changed_size_hints, obj);
- evas_object_smart_member_del(content);
- wd->back.content = NULL;
- return content;
+ return elm_object_part_content_unset(obj, "back");
}
EAPI Eina_Bool
* "animate,begin" - when a flip animation was started
* "animate,done" - when a flip animation is finished
*
+ * Default contents parts of the filp widget that you can use for are:
+ * @li "front" - A front content of the flip
+ * @li "back" - A back content of the flip
+ *
+ * Supported elm_object common APIs.
+ * @li elm_object_part_content_set
+ * @li elm_object_part_content_get
+ * @li elm_object_part_content_unset
+ *
* @ref tutorial_flip show how to use most of the API.
*
* @{
*/
EAPI Evas_Object *elm_flip_add(Evas_Object *parent);
-/**
- * @brief Set the front content of the flip widget.
- *
- * @param obj The flip object
- * @param content The new front content object
- *
- * Once the content object is set, a previously set one will be deleted.
- * If you want to keep that old content object, use the
- * elm_flip_content_front_unset() function.
- */
-EAPI void elm_flip_content_front_set(Evas_Object *obj, Evas_Object *content);
-
-/**
- * @brief Set the back content of the flip widget.
- *
- * @param obj The flip object
- * @param content The new back content object
- *
- * Once the content object is set, a previously set one will be deleted.
- * If you want to keep that old content object, use the
- * elm_flip_content_back_unset() function.
- */
-EAPI void elm_flip_content_back_set(Evas_Object *obj, Evas_Object *content);
-
-/**
- * @brief Get the front content used for the flip
- *
- * @param obj The flip object
- * @return The front content object that is being used
- *
- * Return the front content object which is set for this widget.
- */
-EAPI Evas_Object *elm_flip_content_front_get(const Evas_Object *obj);
-
-/**
- * @brief Get the back content used for the flip
- *
- * @param obj The flip object
- * @return The back content object that is being used
- *
- * Return the back content object which is set for this widget.
- */
-EAPI Evas_Object *elm_flip_content_back_get(const Evas_Object *obj);
-
-/**
- * @brief Unset the front content used for the flip
- *
- * @param obj The flip object
- * @return The front content object that was being used
- *
- * Unparent and return the front content object which was set for this widget.
- */
-EAPI Evas_Object *elm_flip_content_front_unset(Evas_Object *obj);
-
-/**
- * @brief Unset the back content used for the flip
- *
- * @param obj The flip object
- * @return The back content object that was being used
- *
- * Unparent and return the back content object which was set for this widget.
- */
-EAPI Evas_Object *elm_flip_content_back_unset(Evas_Object *obj);
/**
* @brief Get flip front visibility state