Fork for IVI: mesa fixing
[profile/ivi/uifw.git] / src / ui / FUi_CardLayoutImpl.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        FUi_CardLayoutImpl.h
19  * @brief       This is the header file for _CardLayoutImpl class.
20  *
21  * This header file contains the declaration of _CardLayoutImpl class.
22  */
23
24 #ifndef _FUI_INTERNAL_CARD_LAYOUT_IMPL_H
25 #define _FUI_INTERNAL_CARD_LAYOUT_IMPL_H
26
27 #include <FUiCardLayout.h>
28 #include "FUi_LayoutImpl.h"
29 #include "FUi_LayoutAbsoluteLayout.h"
30
31 namespace Tizen { namespace Ui
32 {
33
34 class CardLayout;
35
36 class _CardLayoutImpl
37         : public _LayoutImpl
38 {
39 public:
40         /**
41          * This is the destructor for this class.
42          *
43          * @since 2.0
44          */
45         virtual ~_CardLayoutImpl(void);
46
47         /**
48          * Creates the instance of _CardLayoutImpl.
49          *
50          * @since 2.0
51          * @return              The instance of _CardLayoutImpl.
52          * @param[in]   pPublicLayout   The public class of relative layout.
53          * @exception   E_SUCCESS               The method was successful.
54          * @exception   E_OUT_OF_MEMORY Insufficient memory.
55          */
56         static _CardLayoutImpl* CreateCardLayoutImplN(CardLayout* pPublicLayout);
57
58         /**
59          * Gets the name of public class.
60          *
61          * @since 2.0
62          * @return              The name of public class.
63          */
64         virtual const char* GetPublicClassName(void) const;
65
66         /**
67          * Gets the public class.
68          *
69          * @since 2.0
70          * @return              The public class.
71          */
72         virtual const CardLayout& GetPublic(void) const;
73
74         /**
75          * Gets the public class.
76          *
77          * @since 2.0
78          * @return              The public class.
79          */
80         virtual CardLayout& GetPublic(void);
81
82         /**
83          * Gets the core class.
84          *
85          * @since 2.0
86          * @return              The core class.
87          */
88         virtual const _Layout::AbsoluteLayout& GetCore(void) const;
89
90         /**
91          * Gets the core class.
92          *
93          * @since 2.0
94          * @return              The core class.
95          */
96         virtual _Layout::AbsoluteLayout& GetCore(void);
97
98         /**
99          * Gets the _CardLayoutImpl instance for the CardLayout.
100          *
101          * @since 2.0
102          * @return              The _CardLayoutImpl instance.
103          * @param[in]   pLayout         The CardLayout instance.
104          */
105         static const _CardLayoutImpl* GetInstance(const CardLayout& layout);
106
107         /**
108          * Gets the _CardLayoutImpl instance for the CardLayout.
109          *
110          * @since 2.0
111          * @return              The _CardLayoutImpl instance.
112          * @param[in]   pLayout         The CardLayout instance.
113          */
114         static _CardLayoutImpl* GetInstance(CardLayout& layout);
115
116         /**
117          * Gets the type of the layout.
118          *
119          * @since 2.0
120          * @return      The layout type
121          */
122         virtual LayoutType GetLayoutType(void) const;
123
124 protected:
125         /**
126          * This is the default constructor for this class.
127          *
128          * @since 2.0
129          */
130         _CardLayoutImpl(CardLayout* pPublicLayout, _Layout::AbsoluteLayout* pCoreLayout);
131 }; // _CardLayoutImpl
132
133 }} // Tizen::Ui
134
135 #endif // _FUI_INTERNAL_CARD_LAYOUT_IMPL_H