• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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