NABI issues
[apps/osp/Internet.git] / inc / IntAddressbar.h
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.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
7 //
8 //     http://floralicense.org/license/
9 //
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.
15 //
16
17 //!Internet
18 /*@file:    IntAddressbar
19  *@brief:       This class defines common behaviour of Addressbar control.
20  *
21  */
22
23 #ifndef _INT_ADDRESSBAR_H_
24 #define _INT_ADDRESSBAR_H_
25
26 #include <FApp.h>
27 #include <FGraphics.h>
28 #include <FUi.h>
29 #include "IntIAddressbarEventListener.h"
30
31 /*enum AddressBarMode
32 {
33         ADDRESSBAR_MODE_INVALID = -1,
34         ADDRESSBAR_MODE_READER = 0,
35         ADDRESSBAR_MODE_LOADING,
36         ADDRESSBAR_MODE_LOADING_COMPLETE,
37         ADDRESSBAR_MODE_EDIT,
38 };*/
39
40 class Addressbar
41 : public Tizen::Ui::Controls::Panel
42   , public Tizen::Ui::IActionEventListener
43   , public Tizen::Ui::IKeypadEventListener
44   , public Tizen::Ui::IFocusEventListener
45   , public Tizen::Ui::ITextEventListener
46   {
47   public:
48         /**
49          * @brief        This is the default constructor for this class.
50          */
51         Addressbar(void);
52
53         /**
54          * @brief        This is the default destructor for this class.
55          */
56         virtual ~Addressbar(void);
57
58         // IActionEventListener
59         void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
60
61         //IKeypadActionEventListener
62         void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);
63         void OnKeypadClosed(Tizen::Ui::Control& source);
64         void OnKeypadOpened(Tizen::Ui::Control& source);
65         void OnKeypadWillOpen(Tizen::Ui::Control& source);
66
67         void OnFocusGained(const Tizen::Ui::Control& source);
68         void OnFocusLost(const Tizen::Ui::Control& source){}
69
70         virtual void OnTextValueChanged(const Tizen::Ui::Control& source);
71         virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source){}
72
73         /**
74          * @brief        Initializes this instance of Addressbar with the specified parameters.
75          */
76         result Initialize(const Tizen::Graphics::Rectangle& rect);
77
78         /**
79          * @brief        Gets the current addressbar Mode.
80          */
81         //AddressBarMode GetAddressbarMode(void);
82
83         /**
84          * brief         To remove the Http from the Url editfield
85          */
86         Tizen::Graphics::Bitmap* GetLockedImageN(void);
87
88         /**
89          * @brief        Gets the current progress value  Addressbar control in percentage
90          */
91         int GetProgress(void);
92
93         /**
94          * @brief        Gets the currently displayed Url for the Addressbar control.
95          */
96         Tizen::Base::String GetUrl(void);
97
98         /**
99          * @brief        Event when orientationChanged
100          */
101         void OrientationChanged(void);
102
103         /**
104          * brief         To remove the Http from the Url editfield
105          */
106         Tizen::Base::String RemoveHttpTextFromDisplayURL(void);
107
108         /**
109          * @brief        Save the text of address bar
110          */
111         void SaveAddressbarEditText();
112
113         /**
114          * @brief        Sets the specified Url for the Addressbar control.
115          *
116          */
117         void SetUrl(const Tizen::Base::String& url);
118
119         /**
120          * @brief        Sets the event listener for the Addressbar control.
121          *
122          */
123         void SetAddressbarEventListener(IAddressbarEventListener* pListener);
124
125         /**
126          * @brief        Sets the current addressbar Mode.
127          */
128         //void SetAddressbarMode(AddressBarMode addMode);
129
130         /**
131          * brief         Sets the backward Button enable or disable as per the input parameter isEnabled.
132          */
133         void SetBackButtonEnabled(bool isEnabled);
134
135         /**
136          * @brief        Sets the favicon bitmap.
137          */
138         void SetFaviconBitmap(const Tizen::Graphics::Bitmap& favicon);
139
140         /**
141          * @brief        Sets the Forward Button enable or disable as per the input parameter isEnabled.
142          */
143         void SetForwardButtonEnabled(bool isEnabled);
144
145         /**
146          * @brief        Updates the favicon bitmap/image depending on browsing mode.
147          */
148         void UpdateFaviconBitmap(bool isPrivateOn);
149
150         /**
151          * @brief        Updates the progressbar Value.
152          */
153         void UpdateProgress(const int percentage);
154
155         void SetAddressbarURLFocus();
156
157         Tizen::Base::String GetAddressbarURL();
158   private:
159         /**
160          * @brief        Updates the progressbar Value.
161          */
162         void UpdateProgressBitmap(void);
163
164         //Action IDs
165         static const int IDA_REFRESH_BTN_CLICKED;
166         static const int IDA_READER_BTN_CLICKED;
167         static const int IDA_STOP_BTN_CLICKED;
168         static const int IDA_GO_BACK;
169         static const int IDA_GO_FORWARD;
170         static const int IDA_CANCEL;
171         static const int IDA_CLEAR_URL;
172
173   private:
174         //AddressBarMode __currentAddMode;
175         Tizen::Base::String __displayUrl;
176         Tizen::Base::String __editTextUrl;
177
178         bool __isLoadingData;
179         bool __isLoadingCompleted;
180         int __progressPercentage;
181
182         Tizen::Ui::Controls::Label* __pAddressbarBg;
183         Tizen::Ui::Controls::Panel* __pBgPanel;
184         //Tizen::Ui::Controls::Button* __pCancelBtn;
185         Tizen::Ui::Controls::Button* __pClearBtn;
186         Tizen::Graphics::Bitmap* __pFavIcon;
187         Tizen::Ui::Controls::Label* __pFaviconLabel;
188         //Tizen::Ui::Controls::Button* __pGoBackBtn;
189 //      Tizen::Ui::Controls::Button* __pGoForwardBtn;
190         Tizen::Ui::Controls::Label* __pLabelPrivateOn;
191         IAddressbarEventListener* __pListener;
192         Tizen::Ui::Controls::Label* __pPrivateIconLabel;
193         Tizen::Ui::Controls::Label* __pProgressbarLabel;
194 //      Tizen::Ui::Controls::Button* __pReaderBtn;
195 //      Tizen::Ui::Controls::Button* __pRefreshBtn;
196         Tizen::Ui::Controls::Button* __pStopBtn;
197         Tizen::Ui::Controls::Label* __pSearchLabel;
198         Tizen::Ui::Controls::EditField* __pAddressbarUrlField;
199         Tizen::Ui::Controls::Label* __pToolBarLabel;
200         Tizen::Ui::Controls::Label* __pAddressbarURLLabel;
201         Tizen::Ui::Controls::Button* __pAddressBackBtn;
202   };
203
204 #endif /* _INT_ADDRESSBAR_H_ */