fix setas view
authorJisung Ahn <jcastle.ahn@samsung.com>
Tue, 11 Dec 2012 08:27:25 +0000 (17:27 +0900)
committerJisung Ahn <jcastle.ahn@samsung.com>
Tue, 11 Dec 2012 09:54:03 +0000 (18:54 +0900)
Change-Id: Ia47295546bf4ab0829056ac6230ce7b8d1e37c45

main/src/include/ivug-setas-view.h [changed mode: 0644->0755]
main/src/ug-image-viewer.cpp [changed mode: 0644->0755]
main/src/view/ivug-main-view-menu.cpp
main/src/view/ivug-setas-view-callerid.cpp [changed mode: 0644->0755]
main/src/view/ivug-setas-view-wallpaper.cpp [changed mode: 0644->0755]
main/src/view/ivug-setas-view.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index d320386..3160492
@@ -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
 }
old mode 100644 (file)
new mode 100755 (executable)
index 5e813ec..8098f94
@@ -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;
                }
index ececeee..cf20461 100755 (executable)
@@ -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)
old mode 100644 (file)
new mode 100755 (executable)
index 4fb6683..4610f55
@@ -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;
old mode 100644 (file)
new mode 100755 (executable)
index 6f7e110..d6d84ea
@@ -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;
old mode 100644 (file)
new mode 100755 (executable)
index 381c74a..f268454
@@ -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);
+       }
+}
+