#define PART_DATETEXT "date.text"
#define PART_COUNTTEXT "count.text"
#define PART_CURRENTTEXT "current.text"
-#define PART_PREVIEWBAR "previewbar"
-#define PART_PREVIEWBAR_BORDER "previewbar.border"
-#define PART_PREVIEWBAR_IMG "previewbar.image"
-#define PART_PREVIEWBAR_SCR "previewbar.scroller"
#define PART_LEFTSWALLOW "left_swallow"
#define PART_HOVERSELAREA1 "hoversel_area1"
#define PART_HOVERSELAREA2 "hoversel_area2"
#define GRP_LAYOUT_EVENTS "layout_events"
#define GRP_ZOOM_VIEW "zoom_view"
#define GRP_ZOOM_NAVI "zoom_navi"
-#define GRP_PREVIEWBAR "previewbar"
-#define GRP_PREVIEWBAR_ITEM_NORMAL "previewbar_item,normal"
-#define GRP_PREVIEWBAR_ITEM_CENTER "previewbar_item,center"
/* Signal definitions */
#define SIG_SELECTED "selected"
#define SIG_MENU_SHOW "menu,show"
#define SIG_MENU_SHOW_FINISH "menu,show,finish"
#define SIG_MENU_HIDE "menu,hide"
-#define SIG_PREVIEWBAR_SHOW "previewbar,show"
-#define SIG_PREVIEWBAR_HIDE "previewbar,hide"
#define SIG_UPARROW_SHOW "uparrow,show"
#define SIG_UPARROW_HIDE "uparrow,hide"
#define SIG_DOWNARROW_SHOW "downarrow,show"
#define SIZE_CONTENT_LABEL_WIDTH 550
#define SIZE_LABEL_ZOOM_LEVEL_WIDTH 100
-#define SIZE_PREVIEWBAR_ITEM_W 135
-
#define CTXT_MENU_GENGRID_ITEM_SIZE_W (238+14)
#define CTXT_MENU_GENGRID_ITEM_SIZE_H (293+14)
#define RGB_GALLERY 147 170 0
#define RGBA_BLACK_BG 0 0 0 (255*0.9)
#define RGBA_COLOR_BG RGB_GALLERY (255*0.25)
-#define PREVIEWBAR_BOX_ALPHA 100
/* others */
#define TIMEOUT_TOOLTIP 3.0
-#define TIMEOUT_PREVIEWBAR 2.0
#define TIMEOUT_ZOOMNAVI 0.25
/* TODO: Need to set timers as per specs */
#define TIMEOUT_PHOTOVIEWER 3.0
align: 1.0 0.0;
}
}
- part {
- name: "padding_previewbar";
- type: SPACER;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 605 289;
- rel1.relative: 0.0 1.0;
- rel2.relative: 0.0 1.0;
- fixed: 1 1;
- align: 0.0 1.0;
- }
- description {
- state: "bottom" 0.0;
- inherit: "default" 0.0;
- min: 605 180;
- }
- description {
- state: "hide" 0.0;
- inherit: "default" 0.0;
- min: 605 0;
- }
- }
- part {
- name: PART_PREVIEWBAR;
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 710 150;
- rel1 {
- to: "padding_previewbar";
- relative: 1.0 0.0;
- }
- rel2 {
- to: "padding_previewbar";
- relative: 1.0 0.0;
- }
- fixed: 1 1;
- align: 0.0 0.0;
- }
- }
- part {
- name: PART_PREVIEWBAR_BORDER;
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 170 150;
- rel1 {
- to: PART_PREVIEWBAR;
- relative: 0.5 0.5;
- }
- rel2 {
- to: PART_PREVIEWBAR;
- relative: 0.5 0.5;
- }
- fixed: 1 1;
- align: 0.5 0.5;
- }
- }
-
-/* bottom area drawing */
+ /* bottom area drawing */
part {
name: "bottomarea";
type: RECT;
transition: LINEAR 0.2;
}
program {
- name: "previewbar_bottom";
- signal: SIG_MENU_HIDE;
- source: "";
- action: STATE_SET "bottom" 0.0;
- target: "padding_previewbar";
- transition: LINEAR 0.2;
- }
- program {
name: "menu_show";
signal: SIG_MENU_SHOW;
source: "";
action: STATE_SET "default" 0.0;
target: "toparea";
target: "bottomarea";
- target: "padding_previewbar";
transition: LINEAR 0.2;
after: "emit,menu_signal";
}
name: "emit,menu_signal";
action: SIGNAL_EMIT SIG_MENU_SHOW_FINISH "";
}
- program {
- name: "previewbar_hide";
- signal: SIG_PREVIEWBAR_HIDE;
- source: "";
- action: STATE_SET "hide" 0.0;
- target: "padding_previewbar";
- transition: LINEAR 0.2;
- }
- program {
- name: "previewbar_show";
- signal: SIG_PREVIEWBAR_SHOW;
- source: "";
- action: STATE_SET "bottom" 0.0;
- target: "padding_previewbar";
- transition: LINEAR 0.2;
- }
- }
-}
-
-group {
- name: GRP_PREVIEWBAR;
- parts {
- part {
- name: "area";
- type: RECT;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 710 150;
- visible, 0;
- }
- }
- part {
- name: PART_PREVIEWBAR_SCR;
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1.relative: 0.5 0.0;
- rel2.relative: 0.5 0.0;
- min: 710 150;
- fixed: 1 1;
- align: 0.5 0.0;
- }
- }
- }
-}
-
-group {
- name: GRP_PREVIEWBAR_ITEM_NORMAL;
- parts {
- part {
- name: "area";
- type: RECT;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 135 115;
- visible, 0;
- }
- }
- part {
- name: "img_bg";
- type: RECT;
- scale: 1;
- description {
- state, "default" 0.0;
- rel1.relative: 0.5 0.0;
- rel2.relative: 0.5 0.0;
- min: 135 115;
- fixed: 1 1;
- align: 0.5 0.0;
- color: 0 0 0 255;
- }
- }
- part {
- name: PART_PREVIEWBAR_IMG;
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1.relative: 0.5 0.0;
- rel2.relative: 0.5 0.0;
- min: 135 115;
- fixed: 1 1;
- align: 0.5 0.0;
- color: 255 255 255 30;
- }
- }
- }
-}
-
-group {
- name: GRP_PREVIEWBAR_ITEM_CENTER;
- parts {
- part {
- name: "area";
- type: RECT;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 170 150;
- visible, 0;
- }
- }
- part {
- name: "img_bg";
- type: RECT;
- scale: 1;
- description {
- state, "default" 0.0;
- rel1.relative: 0.5 0.0;
- rel2.relative: 0.5 0.0;
- min: 170 150;
- fixed: 1 1;
- align: 0.5 0.0;
- color: 0 0 0 255;
- }
- }
- part {
- name: PART_PREVIEWBAR_IMG;
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1.relative: 0.5 0.0;
- rel2.relative: 0.5 0.0;
- min: 170 150;
- fixed: 1 1;
- align: 0.5 0.0;
- color: 255 255 255 30;
- }
- }
}
}
SETTING_SPEED_FAST
};
-enum PreviewBarDir {
- PREVIEWBAR_TO_NEXT = 0,
- PREVIEWBAR_TO_PREV
-};
-
enum EObjectType {
PHOTOVIEWER_BTN = 0,
PHOTOVIEWER_CTXPOPUP
Evas_Object *photocam;
Evas_Object *loading;
- Evas_Object *pvbar_box;
- Evas_Object *pvbar_scr;
-
Ecore_Timer *tooltip_timer;
- Ecore_Timer *pvbar_timer;
CTimeoutHandler cTimeoutHandler;
- bool menu_show;
Ecore_Timer *slideshow_timer;
int slideshow_state;
if (!m_DrawTopArea(minfo))
return;
- if (!m_UpdatePreviewBar(PREVIEWBAR_TO_PREV))
- return;
-
- if (!m->menu_show) {
- if (m->slideshow_state == STATE_PAUSE) {
- if (m->pvbar_timer)
- ecore_timer_reset(m->pvbar_timer);
- else {
- m->pvbar_timer = ecore_timer_add(
- TIMEOUT_PREVIEWBAR,
- sm_CbTimerPreviewBar,
- this);
- elm_object_signal_emit(Base(),
- SIG_PREVIEWBAR_SHOW, "");
- }
- }
- }
-
m->vd->minfo = minfo;
}
if (!m_DrawTopArea(minfo))
return;
- if (!m_UpdatePreviewBar(PREVIEWBAR_TO_NEXT))
- return;
-
- if (!m->menu_show) {
- if (m->slideshow_state == STATE_PAUSE) {
- if (m->pvbar_timer)
- ecore_timer_reset(m->pvbar_timer);
- else {
- m->pvbar_timer = ecore_timer_add(
- TIMEOUT_PREVIEWBAR,
- sm_CbTimerPreviewBar,
- this);
- elm_object_signal_emit(Base(),
- SIG_PREVIEWBAR_SHOW, "");
- }
- }
- }
-
m->vd->minfo = minfo;
}
return ECORE_CALLBACK_CANCEL;
}
-Eina_Bool CPhotoViewerView::sm_CbTimerPreviewBar(void *cookie)
-{
- CPhotoViewerView *root = (CPhotoViewerView *)cookie;
-
- Eina_Bool ret = ECORE_CALLBACK_CANCEL;
-
- if (root)
- ret = root->m_OnTimerPreviewBar();
-
- return ret;
-}
-
-Eina_Bool CPhotoViewerView::m_OnTimerPreviewBar(void)
-{
- ecore_timer_del(m->pvbar_timer);
- m->pvbar_timer = NULL;
-
- elm_object_signal_emit(Base(), SIG_PREVIEWBAR_HIDE, "");
-
- return ECORE_CALLBACK_CANCEL;
-}
-
void CPhotoViewerView::sm_CbCtxPopupSelected(void *cookie,
CContextPopup *instance, const char *text)
{
return ECORE_CALLBACK_RENEW;
}
-
-
Evas_Object *CPhotoViewerView::m_AddTooltipBtn(Evas_Object *parent,
const char *style_text, const char *tt_text)
{
return btn;
}
-bool CPhotoViewerView::m_DrawPreviewBar(void)
-{
- Evas_Object *ly, *scr, *box;
- int x, y, w, h;
-
- ly = elm_layout_add(Base());
- if (!ly)
- return false;
-
- elm_layout_file_set(ly, EDJEFILE, GRP_PREVIEWBAR);
-
- scr = elm_scroller_add(ly);
- if (!scr)
- return false;
-
- elm_scroller_policy_set(scr, ELM_SCROLLER_POLICY_OFF,
- ELM_SCROLLER_POLICY_OFF);
-
- box = elm_box_add(scr);
- if (!box)
- return false;
-
- evas_object_size_hint_weight_set(box,
- EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_box_horizontal_set(box, EINA_TRUE);
- evas_object_color_set(box, 255, 255, 255, PREVIEWBAR_BOX_ALPHA);
-
- elm_object_part_content_set(ly, PART_PREVIEWBAR_SCR, scr);
- elm_object_content_set(scr, box);
-
- elm_object_part_content_set(Base(), PART_PREVIEWBAR, ly);
-
- m->pvbar_scr = scr;
- m->pvbar_box = box;
-
- if (!m_DrawPreviewBarItem()) {
- evas_object_del(ly);
- return false;
- }
-
- if (!m_DrawPreviewBarBorder()) {
- evas_object_del(ly);
- return false;
- }
-
- elm_scroller_region_get(scr, &x, &y, &w, &h);
- elm_scroller_region_show(scr, x + SIZE_PREVIEWBAR_ITEM_W, y, w, h);
-
- return true;
-}
-
-bool CPhotoViewerView::m_DrawPreviewBarItem(void)
-{
- Evas_Object *ly, *img;
- CMediaInfo *minfo;
- int i, img_idx;
-
- img_idx = m->current_idx - PREVIEWBAR_CENTER_IDX;
- if (img_idx < 0)
- img_idx += m->totalcount;
-
- for (i = 0; i < MAX_PREVIEWBAR_IMG; i++) {
- ly = elm_layout_add(m->pvbar_box);
- if (!ly)
- return false;
-
- if (i == PREVIEWBAR_CENTER_IDX) {
- elm_layout_file_set(ly, EDJEFILE,
- GRP_PREVIEWBAR_ITEM_CENTER);
- } else {
- elm_layout_file_set(ly, EDJEFILE,
- GRP_PREVIEWBAR_ITEM_NORMAL);
- }
-
- img = elm_image_add(ly);
- if (!img)
- return false;
-
- elm_object_part_content_set(ly, PART_PREVIEWBAR_IMG, img);
-
- if (img_idx + i > m->totalcount - 1)
- img_idx -= m->totalcount;
-
- minfo = (CMediaInfo *)eina_list_nth(m->vd->media_list,
- img_idx + i);
- if (!minfo) {
- _ERR("Get mediainfo failed");
- return false;
- }
-
- elm_image_file_set(img, minfo->ThumbnailPath(), NULL);
- elm_image_aspect_fixed_set(img, EINA_FALSE);
-
- evas_object_size_hint_align_set(ly, 0.0, 0.5);
- elm_box_pack_end(m->pvbar_box, ly);
-
- evas_object_show(ly);
- }
-
- evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- return true;
-}
-
-bool CPhotoViewerView::m_DrawPreviewBarBorder(void)
-{
- Evas *evas;
- Evas_Object *img;
-
- evas = evas_object_evas_get(Base());
- if (!evas)
- return false;
-
- img = evas_object_image_add(evas);
- if (!img)
- return false;
-
- evas_object_image_file_set(img, IMAGE_PREVIEWBAR_BORDER, NULL);
- evas_object_image_filled_set(img, EINA_TRUE);
- evas_object_image_border_set(img, BORDER_SIZE, BORDER_SIZE,
- BORDER_SIZE, BORDER_SIZE);
- evas_object_image_border_center_fill_set(img, EVAS_BORDER_FILL_NONE);
-
- evas_object_color_set(img, 255, 255, 255, 100);
-
- elm_object_part_content_set(Base(), PART_PREVIEWBAR_BORDER, img);
-
- return true;
-}
-
-bool CPhotoViewerView::m_UpdatePreviewBar(int direction)
-{
- Evas_Object *ly;
- int new_item_idx;
- int x, y, w, h;
-
- elm_scroller_region_get(m->pvbar_scr, &x, &y, &w, &h);
-
- if (direction == PREVIEWBAR_TO_PREV) {
- new_item_idx = m->current_idx - PREVIEWBAR_CENTER_IDX;
- if (new_item_idx < 0)
- new_item_idx += m->totalcount;
-
- ly = m_MovePreviewBar(x + SIZE_PREVIEWBAR_ITEM_W,
- MAX_PREVIEWBAR_IMG - 1, new_item_idx);
- if (!ly)
- return false;
-
- elm_box_pack_start(m->pvbar_box, ly);
- evas_object_show(ly);
- } else if (direction == PREVIEWBAR_TO_NEXT) {
- new_item_idx = m->current_idx + PREVIEWBAR_CENTER_IDX;
- if (new_item_idx > m->totalcount - 1)
- new_item_idx -= m->totalcount;
-
- ly = m_MovePreviewBar(x - SIZE_PREVIEWBAR_ITEM_W,
- 0, new_item_idx);
- if (!ly)
- return false;
-
- elm_box_pack_end(m->pvbar_box, ly);
- evas_object_show(ly);
- }
-
- elm_scroller_region_bring_in(m->pvbar_scr,
- SIZE_PREVIEWBAR_ITEM_W, y, w, h);
-
- return true;
-}
-
-Evas_Object *CPhotoViewerView::m_MovePreviewBar(int new_x,
- int unpack_item_idx, int new_item_idx)
-{
- Eina_List *pvbar_item;
- Evas_Object *ly;
- Evas_Object *img;
- CMediaInfo *minfo;
- int y, w, h;
-
- elm_scroller_region_get(m->pvbar_scr, NULL, &y, &w, &h);
- elm_scroller_region_show(m->pvbar_scr, new_x, y, w, h);
-
- pvbar_item = elm_box_children_get(m->pvbar_box);
-
- ly = (Evas_Object *)eina_list_nth(pvbar_item, PREVIEWBAR_CENTER_IDX);
- elm_layout_file_set(ly, EDJEFILE, GRP_PREVIEWBAR_ITEM_NORMAL);
-
- if (unpack_item_idx == 0) {
- ly = (Evas_Object *)eina_list_nth(pvbar_item,
- PREVIEWBAR_CENTER_IDX + 1);
- elm_layout_file_set(ly, EDJEFILE, GRP_PREVIEWBAR_ITEM_CENTER);
- } else {
- ly = (Evas_Object *)eina_list_nth(pvbar_item,
- PREVIEWBAR_CENTER_IDX - 1);
- elm_layout_file_set(ly, EDJEFILE, GRP_PREVIEWBAR_ITEM_CENTER);
- }
-
- ly = (Evas_Object *)eina_list_nth(pvbar_item, unpack_item_idx);
- elm_box_unpack(m->pvbar_box, ly);
- evas_object_hide(ly);
-
- img = elm_object_part_content_get(ly, PART_PREVIEWBAR_IMG);
- if (!img) {
- _ERR("Get image object failed");
- return NULL;
- }
-
- minfo = (CMediaInfo *)eina_list_nth(m->vd->media_list, new_item_idx);
- if (!minfo) {
- _ERR("Get mediainfo failed");
- return NULL;
- }
-
- elm_image_file_set(img, minfo->ThumbnailPath(), NULL);
- elm_image_aspect_fixed_set(img, EINA_FALSE);
-
- return ly;
-}
-
bool CPhotoViewerView::m_DrawBottomArea(void)
{
int i, j;
m->slideshow_state = STATE_PAUSE;
m->slideshow_speed = SETTING_SPEED_NORMAL;
- m->menu_show = true;
-
return true;
}
evas_object_freeze_events_set(m->btn[i], EINA_FALSE);
elm_object_focus_allow_set(m->btn[i], EINA_TRUE);
}
-
- if (m->pvbar_timer) {
- ecore_timer_del(m->pvbar_timer);
- m->pvbar_timer = NULL;
- }
-
- m->menu_show = true;
}
void CPhotoViewerView::m_HideMenuView(void)
if (!m_DrawTopArea(m->vd->minfo))
return false;
- if (!m_DrawPreviewBar())
- return false;
-
if (!m_DrawBottomArea())
return false;
if (m->tooltip_timer)
ecore_timer_del(m->tooltip_timer);
- if (m->pvbar_timer)
- ecore_timer_del(m->pvbar_timer);
-
if (m->slideshow_timer)
ecore_timer_del(m->slideshow_timer);
eina_list_free(m->vd->media_list);
free(m->vd);
- elm_box_clear(m->pvbar_box);
-
delete m;
m = NULL;
}
elm_object_signal_emit(Base(), SIG_MENU_HIDE, "");
m_HideMenuView();
-
- if (m->slideshow_state == STATE_PAUSE)
- m->pvbar_timer = ecore_timer_add(TIMEOUT_PREVIEWBAR,
- sm_CbTimerPreviewBar, this);
- else if (m->slideshow_state == STATE_PLAY) {
- m->pvbar_timer = NULL;
- elm_object_signal_emit(Base(), SIG_PREVIEWBAR_HIDE, "");
- }
-
- m->menu_show = false;
}