Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_OverlayPanelImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17 /**
18  * @file        FUiCtrl_OverlayPanelImpl.h
19  * @brief       This is the header file for the _OverlayPanelImpl class.
20  *
21  * This header file contains the declarations of the _OverlayPanelImpl class.
22  *
23  */
24 #ifndef _FUI_CTRL_INTERNAL_OVERLAY_PANEL_IMPL_H_
25 #define _FUI_CTRL_INTERNAL_OVERLAY_PANEL_IMPL_H_
26
27 #include <FUiCtrlOverlayRegion.h>
28 #include <FUiCtrlOverlayPanel.h>
29 #include "FUi_ContainerImpl.h"
30 #include "FUiCtrl_OverlayPanel.h"
31
32 namespace Tizen { namespace Graphics
33 {
34 class Canvas;
35 class Rectangle;
36 class Dimension;
37 }} // Tizen::Graphics
38
39 namespace Tizen { namespace Ui { namespace Animations
40 {
41 class _VisualElement;
42 }}} // Tizen::Ui::Animations
43
44 namespace Tizen { namespace Ui { namespace Controls
45 {
46 class _OverlayPanelImpl
47         : public _ContainerImpl
48 {
49 public:
50         class OverlayPanelSizeInfo : public _ControlImpl::SizeInfo
51         {
52                 virtual Tizen::Graphics::Dimension GetDefaultMinimumSize(_ControlOrientation orientation) const;
53         };
54
55         static _OverlayPanelImpl* CreateOverlayPanelImplN(OverlayPanel* pPublic, const Tizen::Graphics::Rectangle& bounds);
56
57         virtual ~_OverlayPanelImpl(void);
58
59         result SetInputBuffer(const Tizen::Graphics::Dimension& destDim, const Tizen::Base::ByteBuffer& srcBuffer, const Tizen::Graphics::Dimension& srcDim, OverlayPanel::BufferPixelFormat srcFormat);
60
61         void SetRendererRotation(OverlayPanel::Rotation rotation);
62         void SetRendererAspectRatio(bool fix);
63         void SetRendererSize(const Tizen::Graphics::Dimension& dimension);
64
65         result GetBackgroundBufferInfo(Tizen::Graphics::BufferInfo& bufferInfo) const;
66         Tizen::Graphics::Color GetMaskingColor(void) const;
67
68         virtual const char* GetPublicClassName(void) const;
69
70         virtual const _OverlayPanel& GetCore(void) const;
71         virtual _OverlayPanel& GetCore(void);
72         virtual const OverlayPanel& GetPublic(void) const;
73         virtual OverlayPanel& GetPublic(void);
74
75         static _OverlayPanelImpl* GetInstance(OverlayPanel& overlayPanel);
76         static const _OverlayPanelImpl* GetInstance(const OverlayPanel& overlayPanel);
77
78         static result SetPixelFormatList(void);
79
80 private:
81         static bool overlayPanelPixelFomatList[OVERLAY_REGION_BUFFER_PIXEL_FORMAT_MAX];
82
83 private:
84         _OverlayPanelImpl(OverlayPanel* pPublic, _OverlayPanel* pCore);
85
86         _OverlayPanelImpl(const _OverlayPanelImpl& rhs);
87         _OverlayPanelImpl& operator=(const _OverlayPanelImpl& rhs);
88 }; // _OverlayPanelImpl
89
90 }}} // Tizen::Ui::Controls
91
92 #endif  // _FUI_CTRL_INTERNAL_OVERLAY_PANEL_IMPL_H_
93