MSG_HIGH("Test signal received");
}
-void _on_preloaded(void *data, Evas_Object *obj, void *event_info)
+static Eina_Bool _on_box_timer_expired(void *data)
{
- IV_ASSERT(data != NULL);
+ ivug_retv_if(!data, ECORE_CALLBACK_CANCEL);
IvugCropView *pCropView = static_cast<IvugCropView *>(data);
- MSG_HIGH("Image preloaded");
-
int x, y, w, h;
ivug_image_region_get(pCropView->photocam, &x, &y, &w, &h);
int nW = 0;
int nH = 0;
+ double ratio = 0.0;
if(pCropView->w > 0 && pCropView->h > 0)
{
nW = pCropView->w;
nH = pCropView->h;
+ ratio = (double)nH/nW;
+ MSG_HIGH("hW : %d, nH : %d, ratio : %f", nW, nH, ratio);
+ if(ratio > 1.0) //height is more longer
+ {
+ if(nH > h)
+ {
+ nH = h;
+ nW = h/ratio;
+ MSG_HIGH("Calculated1 : %d,%d", nW, nH);
+ }
+ if(nW > w)
+ {
+ nW = w;
+ nH = w*ratio;
+ MSG_HIGH("Calculated2 : %d,%d", nW, nH);
+ }
+ }
+ else //width is more longer
+ {
+ if(nH > h)
+ {
+ nH = h;
+ nW = h/ratio;
+ MSG_HIGH("Calculated3 : %d,%d", nW, nH);
+ }
+ if(nW > w)
+ {
+ nW = w;
+ nH = w*ratio;
+ MSG_HIGH("Calculated4 : %d,%d", nW, nH);
+ }
+ }
}
else
{
nH = h / 2;
}
+ MSG_HIGH("Calculated : %d,%d", nW, nH);
+
ivug_scissorbox_region_set(pCropView->cropbox, x + (w - nW) / 2, y + (h - nH) / 2, nW, nH);
+ elm_object_disabled_set(pCropView->btn_ok, EINA_FALSE);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+void _on_preloaded(void *data, Evas_Object *obj, void *event_info)
+{
+ IV_ASSERT(data != NULL);
+
+ IvugCropView *pCropView = static_cast<IvugCropView *>(data);
+
+ MSG_HIGH("Image preloaded");
+
+ if(pCropView->box_timer)
+ ecore_timer_del(pCropView->box_timer);
+ pCropView->box_timer = ecore_timer_add(0.3, _on_box_timer_expired, data);
+
Evas_Object *object = elm_object_part_content_unset(pCropView->layout, "thumbnail");
if(object != NULL)
{
pCropView->notify = ivug_notify_static_create(pCropView->notify_area, IDS_CROP_NOTIFY, NOTIFY_ALIGN_BOTTOM);
- elm_object_disabled_set(pCropView->btn_ok, EINA_FALSE);
-
evas_object_show(pCropView->photocam);
}
MSG_HIGH("Cancel clicked");
- evas_object_smart_callback_call(pCropView->layout, "destroyed", NULL);
-
evas_object_smart_callback_call(pCropView->layout, "cancel,clicked", NULL);
+ evas_object_smart_callback_call(pCropView->layout, "destroyed", NULL);
+
ivug_crop_view_destroy(pCropView);
}
evas_object_name_set(gesture, "Crop:Getsture");
}
+void _ivug_crop_view_box_delete(IvugCropView *pCropView)
+{
+ IV_ASSERT(pCropView != NULL);
+
+ if ( pCropView->cropbox)
+ {
+ evas_object_del(pCropView->cropbox);
+ pCropView->cropbox = NULL;
+ }
+
+ return;
+}
IvugCropView *ivug_crop_view_create(Evas_Object *parent)
{
MSG_HIGH("Destroy CropView");
+ if(pCropView->box_timer)
+ {
+ ecore_timer_del(pCropView->box_timer);
+ pCropView->box_timer = NULL;
+ }
if ( pCropView->file_path )
{
pCropView->contents_area = NULL;
}
- if(pCropView->btn_back)
+ if(pCropView->btn_ok)
{
- evas_object_del(pCropView->btn_back);
- pCropView->btn_back = NULL;
+ evas_object_del(pCropView->btn_ok);
+ pCropView->btn_ok = NULL;
}
if ( pCropView->notify)
evas_object_del(obj);
}
+static void _ivug_crop_view_transit_finished_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Ivug_MainView *pMainView = (Ivug_MainView *)data;
+
+ ivug_crop_view_destroy(pMainView->pCropView);
+
+ pMainView->pCropView = NULL;
+
+ evas_object_smart_callback_del(pMainView->navi_bar, "transition,finished",
+ _ivug_crop_view_transit_finished_cb);
+}
+
static void _ivug_crop_view_destroyed_cb(void *data, Evas_Object *obj, void *event_info)
{
Ivug_MainView *pMainView = (Ivug_MainView *)data;
ivug_main_view_set_hide_timer(pMainView);
- elm_naviframe_item_pop(pMainView->navi_bar);
- pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar);
+ evas_object_smart_callback_add(pMainView->navi_bar, "transition,finished",
+ _ivug_crop_view_transit_finished_cb, pMainView);
- ivug_crop_view_destroy(pMainView->pCropView);
+ _ivug_crop_view_box_delete(pMainView->pCropView);
- pMainView->pCropView = NULL;
+ elm_naviframe_item_pop(pMainView->navi_bar);
+ pMainView->navi_it = elm_naviframe_top_item_get(pMainView->navi_bar);
elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_TRUE);
}
static void _create_setas_view(Ivug_MainView *pMainView, const char *filepath, ivug_set_screen_type type)
{
IvugCropView *pCropView = ivug_crop_view_create(pMainView->layout);
+
int lcd_x = 0;
int lcd_y = 0;
int lcd_w = 0;
ivug_name_view_set_entry(pMainView->pNameView, name);
- ivug_name_view_set_response_callback(pMainView->pNameView, _on_rename_view_response, (void*)pMainView);
-
free(name);
+ ivug_name_view_set_response_callback(pMainView->pNameView, _on_rename_view_response, (void*)pMainView);
+
Evas_Object *layout = ivug_name_view_object_get(pMainView->pNameView);
pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, NULL, NULL, NULL, layout, NULL);