Add update of GenlistItem fields when text and description are changed
[profile/mobile/apps/native/accessibility-setting.git] / src / RemoveSwitchPage.hpp
1 /*
2  * Copyright 2018 Samsung Electronics Co., Ltd
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 #ifndef REMOVE_SWITCH_PAGE_HPP
18 #define REMOVE_SWITCH_PAGE_HPP
19
20 #include "AppContext.hpp"
21 #include "Button.hpp"
22 #include "Check.hpp"
23 #include "Popup.hpp"
24 #include "SetValuePage.hpp"
25
26 /**
27  * View allowing to remove existing configurations of switches.
28  *
29  * Removal of multiple switch configurations is supported.
30  *
31  * @param ad global context of application
32  *
33  * TODO:
34  *  replace classical callbacks with lambda expressions
35  */
36 class RemoveSwitchPage
37 {
38         public:
39         RemoveSwitchPage();
40         void attachCallback(UniversalSwitchCb cb, void *cbData);
41
42         private:
43         void createPopupForSwitchesRemoving();
44         static void onRemoveSelectedSwitches(void *data, Evas_Object *obj, void *event_info);
45         static void onRemovePopup(void *data, Evas_Object *obj, void *event_info);
46         void removeSwitch(size_t item_id);
47
48         AppContext &context_;
49         std::unique_ptr<SetValuePage> setValuePage_;
50         UniversalSwitchCb switch_removed_cb;
51         void *switch_removed_cb_data = nullptr;
52         Button *removeSwitchPopupBtn_ = nullptr;
53         Check *allCheckbox_ = nullptr;
54         Layout *layout_ = nullptr;
55         Genlist *genlist_ = nullptr;
56         size_t switchesToRemoveCounter_ = 0;
57 };
58
59 #endif