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_PIPELINE_CONTAINER_WINDOW_MANAGER_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_PIPELINE_CONTAINER_WINDOW_MANAGER_H 18 19 #include <functional> 20 21 #include "base/memory/ace_type.h" 22 #include "core/components/common/layout/constants.h" 23 24 namespace OHOS::Ace { 25 26 using WindowCallback = std::function<void(void)>; 27 using WindowModeCallback = std::function<WindowMode(void)>; 28 29 class WindowManager : public virtual AceType { 30 DECLARE_ACE_TYPE(WindowManager, AceType); 31 32 public: 33 WindowManager() = default; 34 ~WindowManager() override = default; 35 SetAppIconId(int32_t id)36 void SetAppIconId(int32_t id) 37 { 38 appIconId_ = id; 39 } 40 GetAppIconId()41 int32_t GetAppIconId() const 42 { 43 return appIconId_; 44 } 45 SetAppLabelId(int32_t id)46 void SetAppLabelId(int32_t id) 47 { 48 appLabelId_ = id; 49 } 50 GetAppLabelId()51 int32_t GetAppLabelId() const 52 { 53 return appLabelId_; 54 } 55 SetWindowMinimizeCallBack(WindowCallback && callback)56 void SetWindowMinimizeCallBack(WindowCallback&& callback) 57 { 58 windowMinimizeCallback_ = std::move(callback); 59 } 60 SetWindowMaximizeCallBack(WindowCallback && callback)61 void SetWindowMaximizeCallBack(WindowCallback&& callback) 62 { 63 windowMaximizeCallback_ = std::move(callback); 64 } 65 SetWindowRecoverCallBack(WindowCallback && callback)66 void SetWindowRecoverCallBack(WindowCallback&& callback) 67 { 68 windowRecoverCallback_ = std::move(callback); 69 } 70 SetWindowCloseCallBack(WindowCallback && callback)71 void SetWindowCloseCallBack(WindowCallback&& callback) 72 { 73 windowCloseCallback_ = std::move(callback); 74 } 75 SetWindowSplitCallBack(WindowCallback && callback)76 void SetWindowSplitCallBack(WindowCallback&& callback) 77 { 78 windowSplitCallback_ = std::move(callback); 79 } 80 SetWindowGetModeCallBack(WindowModeCallback && callback)81 void SetWindowGetModeCallBack(WindowModeCallback&& callback) 82 { 83 windowGetModeCallback_ = std::move(callback); 84 } 85 SetWindowStartMoveCallBack(WindowCallback && callback)86 void SetWindowStartMoveCallBack(WindowCallback&& callback) 87 { 88 windowStartMoveCallback_ = std::move(callback); 89 } 90 WindowMinimize()91 void WindowMinimize() const 92 { 93 if (windowMinimizeCallback_) { 94 windowMinimizeCallback_(); 95 } 96 } 97 WindowMaximize()98 void WindowMaximize() const 99 { 100 if (windowMaximizeCallback_) { 101 windowMaximizeCallback_(); 102 } 103 } 104 WindowRecover()105 void WindowRecover() const 106 { 107 if (windowRecoverCallback_) { 108 windowRecoverCallback_(); 109 } 110 } 111 FireWindowSplitCallBack()112 void FireWindowSplitCallBack() const 113 { 114 if (windowSplitCallback_) { 115 windowSplitCallback_(); 116 } 117 } 118 WindowClose()119 void WindowClose() const 120 { 121 if (windowCloseCallback_) { 122 windowCloseCallback_(); 123 } 124 } 125 WindowStartMove()126 void WindowStartMove() const 127 { 128 if (windowStartMoveCallback_) { 129 windowStartMoveCallback_(); 130 } 131 } 132 GetWindowMode()133 WindowMode GetWindowMode() const 134 { 135 if (windowGetModeCallback_) { 136 return windowGetModeCallback_(); 137 } 138 return WindowMode::WINDOW_MODE_UNDEFINED; 139 } 140 141 private: 142 int32_t appLabelId_ = 0; 143 int32_t appIconId_ = 0; 144 145 WindowCallback windowMinimizeCallback_; 146 WindowCallback windowMaximizeCallback_; 147 WindowCallback windowRecoverCallback_; 148 WindowCallback windowCloseCallback_; 149 WindowCallback windowSplitCallback_; 150 WindowCallback windowStartMoveCallback_; 151 WindowModeCallback windowGetModeCallback_; 152 }; 153 154 } // namespace OHOS::Ace 155 156 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_PIPELINE_CONTAINER_WINDOW_MANAGER_H