Fix invalid licenses
[platform/framework/web/crosswalk-tizen.git] / src / runtime / popup.h
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
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
18 #ifndef WRT_RUNTIME_POPUP_H_
19 #define WRT_RUNTIME_POPUP_H_
20
21 #include <Evas.h>
22 #include <Elementary.h>
23
24 #include <string>
25 #include <vector>
26 #include <functional>
27
28 namespace wrt {
29
30 class NativeWindow;
31
32 class Popup {
33  public:
34   enum class ButtonType {
35     OkButton,
36     OkCancelButton,
37     LoginCancelButton,
38     AllowDenyButton
39   };
40
41   enum class EntryType {
42     Edit,
43     PwEdit
44   };
45
46   static Popup* CreatePopup(NativeWindow* window);
47
48   // button
49   void SetButtonType(ButtonType type);
50   bool IsPositiveButton(Evas_Object* button);
51   bool GetButtonResult() const;  // yes/allow/ok: true, the others: false
52
53   void SetFirstEntry(const std::string& str_id, EntryType type);
54   void SetSecondEntry(const std::string& str_id, EntryType type);
55   std::string GetFirstEntryResult() const;
56   std::string GetSecondEntryResult() const;
57
58   // check box
59   void SetCheckBox(const std::string& str_id = std::string());
60   bool GetCheckBoxResult() const;
61
62   // etc.
63   void SetTitle(const std::string& str_id);
64   void SetBody(const std::string& str_id);
65   void SetResultHandler(std::function
66       <void(Popup* popup, void* user_data)> handler, void* user_data);
67
68   // Popup's actions
69   void Show();
70   void Hide();
71   void Result(bool is_positive);
72
73   // getter
74   Evas_Object* popup() { return popup_; }
75
76  private:
77   Popup(Evas_Object* popup, Evas_Object* grid, Evas_Object* box);
78   ~Popup();
79
80   Evas_Object* popup_;
81   Evas_Object* grid_;
82   Evas_Object* box_;
83   Evas_Object* button1_;
84   Evas_Object* button2_;
85   Evas_Object* entry1_;
86   Evas_Object* entry2_;
87   Evas_Object* check_box_;
88
89   std::function<void(Popup* popup, void* user_data)> handler_;
90   void* user_data_;
91
92   bool enable_button_;
93   bool result_button_;
94   bool enable_entry_;
95   std::string result_entry1_;
96   std::string result_entry2_;
97   bool enable_check_box_;
98   bool result_check_box_;
99 };
100
101 }  // namespace wrt
102
103 #endif  // WRT_RUNTIME_POPUP_H_