int current_idx;
Evas_Object *photocam;
+ Evas_Object *loading;
Evas_Object *pvbar_box;
Evas_Object *pvbar_scr;
totalcount = 0;
photocam = NULL;
+ loading = NULL;
tooltip_timer = NULL;
slideshow_timer = NULL;
evas_object_del(image);
}
+void CPhotoViewerView::sm_CbPhotocamLoaded(void *data, Evas_Object *obj, void *event_info)
+{
+ CPhotoViewerView *root = (CPhotoViewerView *)data;
+
+ if (!root)
+ return;
+
+ root->m_OnPhotocamLoaded(obj);
+}
+
+void CPhotoViewerView::sm_CbPhotocamLoadedDetail(void *data, Evas_Object *obj, void *event_info)
+{
+ CPhotoViewerView *root = (CPhotoViewerView *)data;
+
+ if (!root)
+ return;
+
+ root->m_OnPhotocamLoadedDetail(obj);
+}
+
+void CPhotoViewerView::m_OnPhotocamLoaded(Evas_Object *obj)
+{
+ if (m->photocam != m->loading) {
+ if (m->photocam) evas_object_del(m->photocam);
+ m->photocam = obj;
+ }
+
+ elm_object_part_content_set(Base(), PART_CONTENTAREA, obj);
+
+}
+
+void CPhotoViewerView::m_OnPhotocamLoadedDetail(Evas_Object *obj)
+{
+ m->loading = NULL;
+}
+
Eina_Bool CPhotoViewerView::sm_CbTimerTooltip(void *cookie)
{
CPhotoViewerView *root = (CPhotoViewerView *)cookie;
if (!file_path)
return false;
- if (m->photocam)
- evas_object_del(m->photocam);
+ if (m->loading) {
+ elm_photocam_file_set(m->loading, file_path);
- m->photocam = elm_photocam_add(Base());
- if (!m->photocam)
- return false;
+ elm_photocam_image_size_get(m->loading, &width, &height);
+ if (height > width)
+ elm_photocam_zoom_mode_set(m->loading,
+ ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
+ else
+ elm_photocam_zoom_mode_set(m->loading,
+ ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL);
+ }
+ else {
+ m->loading = elm_photocam_add(Base());
+ if (!m->loading)
+ return false;
- elm_photocam_file_set(m->photocam, file_path);
- elm_photocam_image_size_get(m->photocam, &width, &height);
- if (height > width)
- elm_photocam_zoom_mode_set(m->photocam,
- ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
- else
- elm_photocam_zoom_mode_set(m->photocam,
- ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL);
- elm_object_focus_allow_set(m->photocam, EINA_FALSE);
- elm_scroller_policy_set(m->photocam,
- ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_AUTO);
- elm_object_part_content_set(Base(), PART_CONTENTAREA, m->photocam);
+ evas_object_smart_callback_add(m->loading, "loaded", sm_CbPhotocamLoaded, this);
+ evas_object_smart_callback_add(m->loading, "loaded,detail", sm_CbPhotocamLoadedDetail, this);
+
+ elm_photocam_file_set(m->loading, file_path);
+
+ elm_photocam_image_size_get(m->loading, &width, &height);
+ if (height > width)
+ elm_photocam_zoom_mode_set(m->loading,
+ ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
+ else
+ elm_photocam_zoom_mode_set(m->loading,
+ ELM_PHOTOCAM_ZOOM_MODE_AUTO_FILL);
+
+ elm_object_focus_allow_set(m->loading, EINA_FALSE);
+ elm_scroller_policy_set(m->loading,
+ ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_AUTO);
+ }
return true;
}