1 /* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_OPTION_OPTION_EVENT_HUB_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_OPTION_OPTION_EVENT_HUB_H 18 19 #include <cstdint> 20 21 #include "core/components_ng/event/event_hub.h" 22 23 namespace OHOS::Ace::NG { 24 25 using MenuJSCallback = std::function<void()>; 26 using OnSelectEvent = std::function<void(int32_t)>; 27 28 class OptionEventHub : public EventHub { 29 DECLARE_ACE_TYPE(OptionEventHub, EventHub) 30 31 public: 32 OptionEventHub() = default; 33 ~OptionEventHub() override = default; 34 SetMenuOnClick(const std::function<void ()> & onClickFunc)35 void SetMenuOnClick(const std::function<void()>& onClickFunc) 36 { 37 menuOnClick_ = onClickFunc; 38 } 39 GetJsCallback()40 MenuJSCallback GetJsCallback() 41 { 42 return menuOnClick_; 43 } 44 SetOnSelect(const OnSelectEvent & onSelect)45 void SetOnSelect(const OnSelectEvent& onSelect) 46 { 47 onSelect_ = onSelect; 48 } 49 GetOnSelect()50 OnSelectEvent GetOnSelect() 51 { 52 return onSelect_; 53 } 54 55 private: 56 MenuJSCallback menuOnClick_; 57 58 // callback of select component 59 OnSelectEvent onSelect_; 60 61 ACE_DISALLOW_COPY_AND_MOVE(OptionEventHub); 62 }; 63 } // namespace OHOS::Ace::NG 64 65 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERNS_OPTION_OPTION_EVENT_HUB_H