From: Jisung Ahn Date: Tue, 11 Dec 2012 08:27:25 +0000 (+0900) Subject: fix setas view X-Git-Tag: 2.1b_release~3^2~36 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1a07bbad632e5b0e8d90234643fbd7746bc993e3;p=apps%2Fhome%2Fug-image-viewer-efl.git fix setas view Change-Id: Ia47295546bf4ab0829056ac6230ce7b8d1e37c45 --- diff --git a/main/src/include/ivug-setas-view.h b/main/src/include/ivug-setas-view.h old mode 100644 new mode 100755 index d320386..3160492 --- a/main/src/include/ivug-setas-view.h +++ b/main/src/include/ivug-setas-view.h @@ -81,20 +81,11 @@ ivug_setas_view_object_get(Ivug_SetAsView *pSetAsView); // Called by main_view Ivug_SetAsView * -ivug_setas_view_screen_create(Evas_Object *parent, const char* filepath, ivug_setas_mode mode, ivug_set_screen_type screen_type); +ivug_setas_view_screen_create(Evas_Object *parent, ivug_setas_mode mode, ivug_set_screen_type screen_type); void ivug_setas_view_create_menu(Ivug_SetAsView *pSetAsView, Evas_Object *navi_bar, ivug_set_screen_type type); -#if 0 -Ivug_SetAsView * -ivug_setas_view_add(Evas_Object *parent); - -void -ivug_setas_view_source_file_set(Ivug_SetAsView *pSetAsView, const char* filepath); - -void -ivug_setas_view_mode_set(Ivug_SetAsView *pSetAsView, ivug_set_screen_type screen_type); -#endif +void ivug_setas_view_load_file(Ivug_SetAsView *pSetAsView, const char* filepath, ivug_set_screen_type type); #ifdef __cplusplus } diff --git a/main/src/ug-image-viewer.cpp b/main/src/ug-image-viewer.cpp old mode 100644 new mode 100755 index 5e813ec..8098f94 --- a/main/src/ug-image-viewer.cpp +++ b/main/src/ug-image-viewer.cpp @@ -477,27 +477,23 @@ static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, voi else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_WALLPAPER) { type = IVUG_CTRLBAR_SET_SCREEN_HOME; - ugd->setas_view = ivug_setas_view_screen_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, type); + ugd->setas_view = ivug_setas_view_screen_create(ugd->base, setas_mode, type); } else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_LOCKSCREEN) { type = IVUG_CTRLBAR_SET_SCREEN_LOCK; - ugd->setas_view = ivug_setas_view_screen_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, type); + ugd->setas_view = ivug_setas_view_screen_create(ugd->base, setas_mode, type); } else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_WALLPAPER_N_LOCKSCREEN) { type = IVUG_CTRLBAR_SET_SCREEN_BOTH; - ugd->setas_view = ivug_setas_view_screen_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, type); + ugd->setas_view = ivug_setas_view_screen_create(ugd->base, setas_mode, type); } else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_WALLPAPER_CROP) { type = IVUG_CTRLBAR_SET_SCREEN_HOME; setas_mode = IVUG_SETAS_CROP; - ugd->setas_view = ivug_setas_view_screen_create(ugd->base, ugd->ivug_param->filepath, - setas_mode, type); + ugd->setas_view = ivug_setas_view_screen_create(ugd->base, setas_mode, type); } else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_CROP) { @@ -541,6 +537,8 @@ static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, voi ivug_setas_view_create_menu(ugd->setas_view, ugd->navi_bar, type); + ivug_setas_view_load_file(ugd->setas_view, ugd->ivug_param->filepath, type); + //layout = ivug_setas_view_object_get(ugd->setas_view); layout = ugd->navi_bar; } diff --git a/main/src/view/ivug-main-view-menu.cpp b/main/src/view/ivug-main-view-menu.cpp index ececeee..cf20461 100755 --- a/main/src/view/ivug-main-view-menu.cpp +++ b/main/src/view/ivug-main-view-menu.cpp @@ -385,8 +385,7 @@ _on_addhome_result_cb(int ret, int pid, void *data) static void _create_setas_view(Ivug_MainView *pMainView, const char *filepath, ivug_set_screen_type type) { - pMainView->pSetAsView = ivug_setas_view_screen_create(pMainView->layout, filepath, - IVUG_SETAS_NORMAL, type); + pMainView->pSetAsView = ivug_setas_view_screen_create(pMainView->layout, IVUG_SETAS_NORMAL, type); Evas_Object *setasOjbect = ivug_setas_view_object_get(pMainView->pSetAsView); //evas_object_event_callback_add(setasOjbect, EVAS_CALLBACK_DEL, _on_setasview_deleted, pMainView); evas_object_smart_callback_add(setasOjbect, "destroy", _on_setas_view_destroyed, pMainView); @@ -398,6 +397,8 @@ static void _create_setas_view(Ivug_MainView *pMainView, const char *filepath, i NULL, back_btn, NULL, setasOjbect, NULL); ivug_setas_view_create_menu(pMainView->pSetAsView, pMainView->navi_bar, type); + + ivug_setas_view_load_file(pMainView->pSetAsView, filepath, type); } void _on_setas_selected(void *data, Evas_Object *obj, void *event_info) diff --git a/main/src/view/ivug-setas-view-callerid.cpp b/main/src/view/ivug-setas-view-callerid.cpp old mode 100644 new mode 100755 index 4fb6683..4610f55 --- a/main/src/view/ivug-setas-view-callerid.cpp +++ b/main/src/view/ivug-setas-view-callerid.cpp @@ -50,6 +50,8 @@ #define ICON_PATH_SAVE CONTROL_ICON_DIRECTORY_PATH"/T01_controlbar_icon_save.png" #define ICON_PATH_PREV CONTROL_ICON_DIRECTORY_PATH"/00_winset_btn_prev.png" +#define CROP_BOX_INTERVAL_TIME 0.3 + typedef struct { Evas_Object *layout; Evas_Object *notify; @@ -80,6 +82,7 @@ typedef struct { Eina_Bool bAspectPreserve; } crop; + Ecore_Timer *box_timer; } TSetAsData; @@ -126,6 +129,8 @@ static void _put_scissorbox_default(TSetAsData *pSetAsData) int px, py, pw, ph; ivug_image_region_get(pSetAsData->photocam, &px, &py, &pw, &ph); + MSG_SETAS_WARN("region XYWH(%d,%d,%d,%d)", px, py, pw, ph); + int ix, iy, iw, ih; if ( image_w > image_h ) // Landscape image @@ -165,7 +170,7 @@ static void _put_scissorbox_default(TSetAsData *pSetAsData) rect.w = (double)iw * pw / image_w; rect.h = (double)ih * ph / image_h; - MSG_SETAS_WARN("Face is not detected. Zoom Put Box in LCD XYWH(%d,%d,%d,%d)", + MSG_SETAS_WARN("Zoom Put Box in LCD XYWH(%d,%d,%d,%d)", rect.x, rect.y, rect.w, rect.h); ivug_scissorbox_region_set(pSetAsData->crop.box, rect.x, rect.y, rect.w, rect.h); @@ -173,22 +178,20 @@ static void _put_scissorbox_default(TSetAsData *pSetAsData) ivug_scissorbox_attach(pSetAsData->crop.box, image); // Attach to photocam } -static void _put_scissorbox(Evas_Object *obj) +static Eina_Bool _put_scissorbox_timer_cb(void *data) { - TSetAsData *pSetAsData = SETAS_DATA(obj); + TSetAsData *pSetAsData = SETAS_DATA(data); - media_handle db_handle = ivug_db_get_file_handle(pSetAsData->filepath); - if(db_handle == NULL) - { - MSG_SETAS_ERROR("Cannot get db handle %s", pSetAsData->filepath); - _put_scissorbox_default(pSetAsData); - elm_object_disabled_set(pSetAsData->btn_ok, EINA_FALSE); - return; - } + pSetAsData->box_timer = NULL; _put_scissorbox_default(pSetAsData); + + elm_object_disabled_set(pSetAsData->btn_ok, EINA_FALSE); + + return ECORE_CALLBACK_CANCEL; } + static void _on_btn_ok_clicked(void *data, Evas_Object *obj, void *event_info) { @@ -392,7 +395,7 @@ _on_photocam_loaded(void *data, Evas_Object *obj, void *event_info) MSG_SETAS_HIGH("Photocam loaded."); - _put_scissorbox(pSetAsData->layout); + pSetAsData->box_timer = ecore_timer_add(CROP_BOX_INTERVAL_TIME, _put_scissorbox_timer_cb, (void *)pSetAsData->layout); evas_object_smart_callback_call(pSetAsData->layout, "loaded", NULL); @@ -534,6 +537,12 @@ static void _on_removed(void *data, Evas *e, Evas_Object *obj, void *event_info) pSetAsData->drm_filepath = NULL; } + if(pSetAsData->btn_ok) + { + evas_object_del(pSetAsData->btn_ok); + pSetAsData->btn_ok = NULL; + } + free(pSetAsData); } @@ -671,6 +680,12 @@ Evas_Object *_ivug_setas_callerid_delete_layout(Evas_Object *obj) TSetAsData *pSetAsData = SETAS_DATA(obj); IV_ASSERT(pSetAsData != NULL); + if(pSetAsData->box_timer) + { + ecore_timer_del(pSetAsData->box_timer); + pSetAsData->box_timer = NULL; + } + if(pSetAsData->photocam) { MSG_SETAS_HIGH("Removing photocam"); @@ -716,6 +731,12 @@ Evas_Object *_ivug_setas_callerid_delete_layout(Evas_Object *obj) pSetAsData->drm_filepath = NULL; } + if(pSetAsData->btn_ok) + { + evas_object_del(pSetAsData->btn_ok); + pSetAsData->btn_ok = NULL; + } + free(pSetAsData); return NULL; diff --git a/main/src/view/ivug-setas-view-wallpaper.cpp b/main/src/view/ivug-setas-view-wallpaper.cpp old mode 100644 new mode 100755 index 6f7e110..d6d84ea --- a/main/src/view/ivug-setas-view-wallpaper.cpp +++ b/main/src/view/ivug-setas-view-wallpaper.cpp @@ -243,9 +243,8 @@ Evas_Object *_ivug_setas_create_layout(Evas_Object *parent) evas_object_smart_callback_add(photocam, "loaded", _on_photocam_loaded, (void *)pSetAsData->layout); elm_object_part_content_set(pSetAsData->layout, "setasview.photocam", photocam); - evas_object_show(photocam); - evas_object_smart_member_add(photocam, pSetAsData->layout); + evas_object_show(photocam); pSetAsData->photocam = photocam; @@ -314,6 +313,12 @@ Evas_Object *_ivug_setas_delete_layout(Evas_Object *obj) pSetAsData->drm_filepath = NULL; } + if(pSetAsData->btn_ok) + { + evas_object_del(pSetAsData->btn_ok); + pSetAsData->btn_ok = NULL; + } + free(pSetAsData); return NULL; diff --git a/main/src/view/ivug-setas-view.c b/main/src/view/ivug-setas-view.c old mode 100644 new mode 100755 index 381c74a..f268454 --- a/main/src/view/ivug-setas-view.c +++ b/main/src/view/ivug-setas-view.c @@ -635,7 +635,7 @@ static void _on_setas_hide(void *data, Evas *e, Evas_Object *obj, void *event_in } Ivug_SetAsView * -ivug_setas_view_screen_create(Evas_Object *parent, const char* filepath, ivug_setas_mode mode, ivug_set_screen_type screen_type) +ivug_setas_view_screen_create(Evas_Object *parent, ivug_setas_mode mode, ivug_set_screen_type screen_type) { Ivug_SetAsView *pSetAsView = NULL; @@ -656,8 +656,6 @@ ivug_setas_view_screen_create(Evas_Object *parent, const char* filepath, ivug_se evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_SHOW, _on_setas_show, pSetAsView); evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_HIDE, _on_setas_hide, pSetAsView); - _ivug_setas_load_file(pSetAsView->content , filepath); - return pSetAsView; } @@ -683,7 +681,6 @@ ivug_setas_view_callerid_ug_create(Evas_Object *parent, const char* filepath, iv evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_SHOW, _on_setas_show, pSetAsView); evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_HIDE, _on_setas_hide, pSetAsView); - _ivug_setas_callerid_load_file(pSetAsView->content, filepath); _ivug_setas_callerid_aspect_ratio_set(pSetAsView->content, (double)output_height/output_width); return pSetAsView; @@ -711,11 +708,8 @@ ivug_setas_view_video_call_id_ug_create(Evas_Object *parent, const char* filepat evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_SHOW, _on_setas_show, pSetAsView); evas_object_event_callback_add(pSetAsView->content, EVAS_CALLBACK_HIDE, _on_setas_hide, pSetAsView); - _ivug_setas_callerid_load_file(pSetAsView->content , filepath); _ivug_setas_callerid_aspect_ratio_set(pSetAsView->content , (double)output_height/output_width); - - return pSetAsView; } @@ -778,3 +772,18 @@ void ivug_setas_view_create_menu(Ivug_SetAsView *pSetAsView, Evas_Object *navi_b } } +void ivug_setas_view_load_file(Ivug_SetAsView *pSetAsView, const char* filepath, ivug_set_screen_type type) +{ + MSG_SETAS_HIGH("ivug_setas_view_load_file %s", filepath); + + if(type == IVUG_CTRLBAR_SET_SCREEN_CALLERID + || type == IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID) + { + _ivug_setas_callerid_load_file(pSetAsView->content , filepath); + } + else + { + _ivug_setas_load_file(pSetAsView->content , filepath); + } +} +