2 * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef __PHOTOVIEWER_VIEW_H__
18 #define __PHOTOVIEWER_VIEW_H__
21 class CPhotoViewerView : public CBaseView,
22 IMouseClickedListener, IMouseMoveListener,
23 IFocusedListener, ITimeoutListener {
25 struct SPhotoViewerView *m;
28 virtual void t_OnShow(void);
29 virtual void t_OnHide(void);
30 virtual void t_OnUpdate(void *data);
31 virtual void t_OnPause(void);
32 virtual void t_OnResume(void);
35 Evas_Object *m_AddTooltipBtn(Evas_Object *parent,
36 const char *style_text, const char *tt_text);
39 static void sm_CbPrevBtnClicked(void *dt, Evas_Object *obj,
40 const char *emission, const char *source);
41 void m_OnPrevBtnClicked(Evas_Object *obj,
42 const char *emission, const char *source);
44 static void sm_CbNextBtnClicked(void *dt, Evas_Object *obj,
45 const char *emission, const char *source);
46 void m_OnNextBtnClicked(Evas_Object *obj,
47 const char *emission, const char *source);
49 static void sm_CbSlideshowBtnClicked(void *dt, Evas_Object *obj,
50 const char *emission, const char *source);
51 void m_OnSlideshowBtnClicked(Evas_Object *obj,
52 const char *emission, const char *source);
54 static void sm_CbSettingBtnClicked(void *dt, Evas_Object *obj,
55 const char *emission, const char *source);
56 void m_OnSettingBtnClicked(Evas_Object *obj,
57 const char *emission, const char *source);
59 static void sm_CbZoomBtnClicked(void *dt, Evas_Object *obj,
60 const char *emission, const char *source);
61 void m_OnZoomBtnClicked(Evas_Object *obj,
62 const char *emission, const char *source);
64 static void sm_CbRotateBtnClicked(void *dt, Evas_Object *obj,
65 const char *emission, const char *source);
66 void m_OnRotateBtnClicked(Evas_Object *obj,
67 const char *emission, const char *source);
69 static void sm_CbCtxPopupSelected(void *cookie,
70 CContextPopup *instance, const char *text);
71 static void sm_CbPhotocamLoaded(void *data, Evas_Object *obj,
73 static void sm_CbPhotocamLoadedDetail(void *data, Evas_Object *obj,
75 void m_OnPhotocamLoaded(Evas_Object *obj);
76 void m_OnPhotocamLoadedDetail(Evas_Object *obj);
78 void m_OnCtxPopupSelected(CContextPopup *instance, const char *text);
80 static Eina_Bool sm_CbTimerTooltip(void *cookie);
81 Eina_Bool m_OnTimerTooltip(void);
83 static Eina_Bool sm_CbTimerPreviewBar(void *cookie);
84 Eina_Bool m_OnTimerPreviewBar(void);
86 static Eina_Bool sm_CbFocus(void *dt);
87 Eina_Bool OnFocus(void);
89 static void sm_CbShowMenuViewFinish(void *dt, Evas_Object *obj,
90 const char *emission, const char *source);
92 static Eina_Bool sm_CbTimerSlideshow(void *dt);
95 bool m_DrawContentArea(CMediaInfo *minfo);
96 bool m_DrawTopArea(CMediaInfo *minfo);
97 bool m_DrawPreviewBar(void);
98 bool m_DrawPreviewBarItem(void);
99 bool m_DrawPreviewBarBorder(void);
100 bool m_UpdatePreviewBar(int direction);
101 Evas_Object *m_MovePreviewBar(int new_x,
102 int unpack_item_idx, int new_item_idx);
103 bool m_DrawBottomArea(void);
104 bool m_DrawItems(void);
105 void m_HandleZoomFunction(const char *btn_id);
106 void m_HandleSpeedFunction(const char *btn_id);
108 void m_ShowMenuView();
109 void m_HideMenuView();
112 CPhotoViewerView(const char *szViewId) : CBaseView(szViewId),
113 IMouseClickedListener(this),
114 IMouseMoveListener(this), IFocusedListener(this), m(0) {}
115 virtual ~CPhotoViewerView() {}
117 virtual bool Create(void *data, Evas_Object *eoBase);
118 virtual void Destroy(void);
120 virtual void OnTimeout(void);
121 virtual Eina_Bool OnEvent(int type, void *event_info);
124 virtual void OnSKeyDown(int id, Evas *e, Evas_Object *obj, Evas_Event_SKey_Down *ev);
125 virtual void OnMouseClicked(int id, Evas_Object *obj);
126 virtual void OnMouseMove(int id, Evas *e, Evas_Object *obj, Evas_Event_Mouse_Move *ev);
127 virtual void OnFocused(int id, Evas_Object *obj, Elm_Object_Item *item);