2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
17 #ifndef _FUI_CTRL_INTERNAL_GALLERY_CANVAS_H_
18 #define _FUI_CTRL_INTERNAL_GALLERY_CANVAS_H_
20 #include <FBaseObject.h>
21 #include <FUiAnimVisualElementAnimationProvider.h>
22 #include "FUi_Control.h"
23 #include "FUiCtrl_GalleryTypes.h"
25 namespace Tizen { namespace Graphics {
31 namespace Tizen { namespace Ui { namespace Animations {
33 class VisualElementPropertyAnimation;
34 class IVisualElementAnimationStatusEventListener;
35 class IVisualElementAnimationTimingFunction;
38 }}} // Tizen::Ui::Animations
40 namespace Tizen { namespace Ui { namespace Controls {
43 class _GalleryRootCanvas;
45 class _GalleryAnimationProvider
46 : virtual public Tizen::Ui::Animations::VisualElementAnimationProvider
49 _GalleryAnimationProvider(void);
50 virtual ~_GalleryAnimationProvider(void);
51 virtual Tizen::Ui::Animations::VisualElementAnimation* CreateAnimationForProperty(Tizen::Ui::Animations::VisualElement& source, const Tizen::Base::String& property);
53 void SetAnimationDelegator(Tizen::Ui::Animations::IVisualElementAnimationStatusEventListener* animationDelegator);
54 void SetGalleryAnimationTiming(_GalleryAnimationTiming animationTiming);
56 const Tizen::Ui::Animations::IVisualElementAnimationTimingFunction* GetTimingFunc(_GalleryAnimationTimingFunction timingFunction) const;
59 Tizen::Ui::Animations::IVisualElementAnimationStatusEventListener* __pAnimationDelegator;
60 _GalleryAnimationTiming __animationTiming;
61 }; // _GalleryAnimationProvider
64 : public Tizen::Base::Object
67 virtual ~_GalleryCanvas(void);
68 static _GalleryCanvas* CreateGalleryCanvasN(Tizen::Graphics::Rectangle& canvasBounds);
70 result SetImage(const _GalleryBitmap* pImage, const Tizen::Graphics::Rectangle& viewBounds, _GalleryFittingType fittingType = GALLERY_FITTING_TYPE_FIT);
71 _GalleryBitmap* GetImage(void) const;
72 result SetBounds(const Tizen::Graphics::Rectangle& bounds);
73 const Tizen::Graphics::Rectangle& GetBounds(void) const;
74 Tizen::Ui::Animations::_VisualElement& GetImageVisualElement(void) const;
75 Tizen::Ui::Animations::_VisualElement& GetFrameVisualElement(void) const;
76 Tizen::Ui::Animations::VisualElementPropertyAnimation& GetAnimation(void) const;
77 result SetVisibility(bool visibility);
78 bool IsVisibility(void) const;
79 result RefreshCanvas(void);
80 result LoadImage(void);
82 result SetVisualElementBounds(const Tizen::Graphics::Rectangle& bounds);
83 Tizen::Graphics::Rectangle GetImageVisualElementBounds(void) const;
85 void SetImageBounds(const Tizen::Graphics::Rectangle& bounds);
86 Tizen::Graphics::Rectangle GetImageBounds(void) const;
87 Tizen::Graphics::Rectangle GetOriginalImageBounds(void) const;
89 result SetAnimationDelegator(_GalleryAnimationProvider* pVEDelegator);
90 void SetRootCanvas(_GalleryRootCanvas& rootCanvas);
92 void SetNeedUpdateImage(bool needUpdate);
93 bool IsNeedUpdateImage(void) const;
95 void SetCanvasFactor(float factor);
96 float GetCanvasFactor(void) const;
98 void SetImageAnchor(Tizen::Graphics::FloatPoint);
99 Tizen::Graphics::FloatPoint GetImageAnchor(void) const;
101 Tizen::Graphics::Rectangle GetAlignBoundary(void) const;
103 void SetClippingOfFrameVisualElement(bool clipping);
105 void SetImageAlignment(_GalleryVerticalAlignment imageVerticalAlignment
106 , _GalleryHorizontalAlignment imageHorizontalAlignment);
107 void GetImageAlignment(_GalleryVerticalAlignment& imageVerticalAlignment
108 , _GalleryHorizontalAlignment& imageHorizontalAlignment) const;
111 _GalleryCanvas(_GalleryCanvas& rhs);
112 _GalleryCanvas& operator=(const _GalleryCanvas& rhs);
114 _GalleryCanvas(void);
115 result Construct(Tizen::Graphics::Rectangle& canvasBounds);
117 void SetImageVisualElement(Tizen::Ui::Animations::_VisualElement& visualElement);
118 void SetFrameVisualElement(Tizen::Ui::Animations::_VisualElement& visualElement);
119 void SetAnimation(Tizen::Ui::Animations::VisualElementPropertyAnimation& animation);
122 Tizen::Ui::Animations::_VisualElement* __pImageVisualElement;
123 Tizen::Ui::Animations::_VisualElement* __pFrameVisualElement;
124 Tizen::Ui::Animations::VisualElementPropertyAnimation* __pAnimation;
125 Tizen::Graphics::Rectangle __bounds;
126 _GalleryBitmap* __pImage;
127 Tizen::Graphics::Rectangle __visableRegionOfImage;
128 bool __needUpdateImage;
129 bool __visualElementBoundsChanged;
130 Tizen::Graphics::Rectangle __imageBounds;
131 Tizen::Graphics::Rectangle __originalImageBounds;
132 _GalleryRootCanvas* __pRootCanvas;
134 Tizen::Graphics::FloatPoint __imageAnchor;
135 _GalleryVerticalAlignment __imageVerticalAlignment;
136 _GalleryHorizontalAlignment __imageHorizontalAlignment;
140 class _GalleryRootCanvas
141 : public Tizen::Base::Object
145 virtual ~_GalleryRootCanvas(void);
146 static _GalleryRootCanvas* CreateGalleryRootCanvasN(Tizen::Ui::_Control& control);
148 result SetBackgroundImage(const _GalleryBitmap* pImage);
149 _GalleryBitmap* GetBackgroundImage(void) const;
150 Tizen::Graphics::Color GetBackgroundColor(void) const;
151 result SetBounds(const Tizen::Graphics::Rectangle& bounds);
152 Tizen::Graphics::Rectangle GetBounds(void) const;
153 Tizen::Graphics::Dimension GetControlSize(void) const;
154 Tizen::Ui::Animations::_VisualElement* GetImageVisualElement(void) const;
155 result SetVisibility(bool visibility);
156 bool IsVisibility(void) const;
157 result AddChildCanvas(_GalleryCanvas& canvas);
158 result RemoveChildCanvas(_GalleryCanvas& canvas);
159 result RefreshCanvas(void);
162 _GalleryRootCanvas(_Control& control);
164 void SetControl(Tizen::Ui::_Control& control);
165 Tizen::Ui::_Control& GetControl(void) const;
168 Tizen::Ui::_Control* __pControl;
169 Tizen::Graphics::Rectangle __bounds;
170 _GalleryBitmap* __pBackgroundImage;
171 bool __needUpdateBackgroundImage;
172 }; // _GalleryRootCanvas
174 }}} // Tizen::Ui::Controls
176 #endif //_FUI_CTRL_INTERNAL_GALLERY_CANVAS_H_