void (*result_cb) (ui_gadget_h ug, service_h result, void *priv);
/** destroy callback */
void (*destroy_cb) (ui_gadget_h ug, void *priv);
+ /** end callback */
+ void (*end_cb) (ui_gadget_h ug, void *priv);
/** private data */
void *priv;
+ void *reserved[3];
};
/**
*/
int ug_disable_effect(ui_gadget_h ug);
+/**
+ * \par Description:
+ * This function check whether given ug is installed or not
+ *
+ * \par Purpose:
+ * This function is used for checking whether given ug is installed or not
+ *
+ * \par Typical use case:
+ * Anyone who want to know whether given ug is installed or not
+ *
+ * \par Method of function operation:
+ * This function returns value that ug is installed or not.
+ *
+ * \par Context of function:
+ * N/A
+ *
+ * @param[in] ug The UI gadget
+ * @return 1 - installed, 0 - installed, -1 - error
+ *
+ * \pre None
+ * \post None
+ * \see None
+ * \remarks None
+ *
+ * \par Sample code:
+ * \code
+ * #include <ui-gadget.h>
+ * ...
+ * ret = ug_is_installed(ug);
+ * ...
+ */
+int ug_is_installed(const char *name);
+
#ifdef __cplusplus
}
#endif
static Evas_Object *navi = NULL;
static Evas_Object *conform = NULL;
static void on_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void __hide_finished(void *data, Evas_Object *obj, void *event_info);
static void (*show_end_cb)(void* data) = NULL;
static void (*hide_end_cb)(void* data) = NULL;
ug->layout = NULL;
}
-static void __del_effect_top_layout(ui_gadget_h ug)
-{
- _DBG("\t cb transition add ug=%p", ug);
- evas_object_smart_callback_add(navi, "transition,finished",
- __hide_finished, ug);
- elm_naviframe_item_pop(navi);
- ug->effect_layout = NULL;
- ug->layout_state = UG_LAYOUT_HIDEEFFECT;
-}
-
static Eina_Bool __destroy_end_cb(void *data)
{
GSList *child;
return ECORE_CALLBACK_CANCEL;
}
-
static void __del_effect_end(ui_gadget_h ug)
{
if (navi) {
Elm_Object_Item *t = elm_naviframe_top_item_get(navi);
Elm_Object_Item *b = elm_naviframe_bottom_item_get(navi);
if (t == b) {
- _DBG("\t remove navi");
- evas_object_del(navi);
- navi = NULL;
+ _DBG("\t unset navi");
+ elm_object_part_content_unset(conform, "elm.swallow.ug");
+ evas_object_hide(navi);
}
}
if (ug->layout) {
ug->layout_state = UG_LAYOUT_DESTROY;
}
+static void __del_finished(void *data, Evas_Object *obj, void *event_info)
+{
+ ui_gadget_h ug = (ui_gadget_h)data;
+ if (!ug)
+ return;
+
+ _DBG("\t obj=%p ug=%p", obj, ug);
+
+ evas_object_smart_callback_del(obj, "transition,finished",
+ __del_finished);
+
+ if(ug->layout_state == UG_LAYOUT_HIDEEFFECT)
+ __del_effect_end(ug);
+ else
+ _ERR("wrong ug(%p) state(%d)", ug, ug->layout_state);
+}
+
+static void __del_effect_top_layout(ui_gadget_h ug)
+{
+ _DBG("\t cb transition add ug=%p", ug);
+ evas_object_smart_callback_add(navi, "transition,finished",
+ __del_finished, ug);
+ elm_naviframe_item_pop(navi);
+ ug->effect_layout = NULL;
+ ug->layout_state = UG_LAYOUT_HIDEEFFECT;
+}
+
static void __del_effect_layout(ui_gadget_h ug, ui_gadget_h t_ug)
{
GSList *child;
__del_effect_end(ug);
}
+static void __hide_effect_end(ui_gadget_h ug)
+{
+ if (navi) {
+ Elm_Object_Item *t = elm_naviframe_top_item_get(navi);
+ Elm_Object_Item *b = elm_naviframe_bottom_item_get(navi);
+ if (t == b) {
+ _DBG("\t unset navi");
+ elm_object_part_content_unset(conform, "elm.swallow.ug");
+ evas_object_hide(navi);
+ }
+ }
+
+ if (ug->layout) {
+ evas_object_hide(ug->layout);
+ }
+
+ ug->layout_state = UG_LAYOUT_HIDE;
+}
+
static void __hide_finished(void *data, Evas_Object *obj, void *event_info)
{
ui_gadget_h ug = (ui_gadget_h)data;
__hide_finished);
if(ug->layout_state == UG_LAYOUT_HIDEEFFECT)
- __del_effect_end(ug);
+ __hide_effect_end(ug);
else
_ERR("wrong ug(%p) state(%d)", ug, ug->layout_state);
}
}
if (elm_naviframe_top_item_get(navi) == ug->effect_layout) {
+ _DBG("\t cb transition add ug=%p", ug);
+ evas_object_smart_callback_add(navi, "transition,finished",
+ __hide_finished, ug);
elm_naviframe_item_pop(navi);
+ ug->layout_state = UG_LAYOUT_HIDEEFFECT;
} else {
elm_object_item_del(ug->effect_layout);
+ __hide_effect_end(ug);
}
ug->effect_layout = NULL;
_DBG("ug(%p) already destroyed", ug);
} else if (ug->layout_state == UG_LAYOUT_SHOWEFFECT) {
ug->layout_state = UG_LAYOUT_SHOW;
- if(show_end_cb)
+ if((show_end_cb)&&(ug->state == UG_STATE_CREATED))
show_end_cb(ug);
} else {
_ERR("wrong state(%d)", ug->layout_state);
evas_object_intercept_hide_callback_add(ug->layout,
__on_hideonly_cb, ug);
- evas_object_event_callback_add(ug->layout, EVAS_CALLBACK_DEL, _layout_del_cb, ug);
//if 'elm.swallow.ug' string is changed, msg team have to apply this changes.
elm_object_part_content_set(conform, "elm.swallow.ug", navi);
if (ug->layout_state == UG_LAYOUT_HIDEEFFECT
+ || ug->layout_state == UG_LAYOUT_HIDE
|| ug->layout_state == UG_LAYOUT_INIT) {
_DBG("\t UG_LAYOUT_Init(%d) obj=%p", ug->layout_state, obj);
ug->layout_state = UG_LAYOUT_SHOWEFFECT;
evas_object_hide(ug->layout);
evas_object_event_callback_add(ug->layout, EVAS_CALLBACK_SHOW, on_show_cb, ug);
+ evas_object_event_callback_add(ug->layout, EVAS_CALLBACK_DEL, _layout_del_cb, ug);
ug->layout_state = UG_LAYOUT_INIT;