1 /*
2 * Copyright (c) 2025 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 #include "toolbar_manager.h"
16
17 namespace OHOS::Ace::NG {
SetSideBarInfo(const ToolbarInfo & info)18 void ToolbarManager::SetSideBarInfo(const ToolbarInfo& info)
19 {
20 sideBarInfo_ = info;
21 OnChange();
22 }
23
SetSideBarDividerInfo(const ToolbarInfo & info)24 void ToolbarManager::SetSideBarDividerInfo(const ToolbarInfo& info)
25 {
26 sideBarDividerInfo_ = info;
27 OnChange();
28 }
29
SetNavBarInfo(const ToolbarInfo & info)30 void ToolbarManager::SetNavBarInfo(const ToolbarInfo& info)
31 {
32 navBarInfo_ = info;
33 OnChange();
34 }
35
SetNavBarDividerInfo(const ToolbarInfo & info)36 void ToolbarManager::SetNavBarDividerInfo(const ToolbarInfo& info)
37 {
38 navBarDividerInfo_ = info;
39 OnChange();
40 }
41
SetNavDestInfo(const ToolbarInfo & info)42 void ToolbarManager::SetNavDestInfo(const ToolbarInfo& info)
43 {
44 navDestInfo_ = info;
45 OnChange();
46 }
47
SetToolBarChangeCallback(const std::function<void ()> && callback)48 void ToolbarManager::SetToolBarChangeCallback(const std::function<void()>&& callback)
49 {
50 onChangeCallbackFuncs_.emplace_back(std::move(callback));
51 }
52
OnChange()53 void ToolbarManager::OnChange()
54 {
55 for (auto onChangeCallbackFuncCopy : onChangeCallbackFuncs_) {
56 if (onChangeCallbackFuncCopy) {
57 onChangeCallbackFuncCopy();
58 }
59 }
60 }
61
SetModifyDoneCallback(const std::function<void ()> && callback)62 void ToolbarManager::SetModifyDoneCallback(const std::function<void()>&& callback)
63 {
64 modifyDoneCallbackFuncs_.emplace_back(std::move(callback));
65 }
66
OnToolBarManagerModifyDone()67 void ToolbarManager::OnToolBarManagerModifyDone()
68 {
69 for (auto modifyDoneCallbackFuncCopy : modifyDoneCallbackFuncs_) {
70 if (modifyDoneCallbackFuncCopy) {
71 modifyDoneCallbackFuncCopy();
72 }
73 }
74 }
75
SetSideBarColorChangeCallback(const std::function<void (const Color &,const Color &,const BlurStyle &)> && callback)76 void ToolbarManager::SetSideBarColorChangeCallback(
77 const std::function<void(const Color&, const Color&, const BlurStyle&)>&& callback)
78 {
79 sideBarColorChangeCallbackFunc_ = std::move(callback);
80 }
81
OnChangeSideBarColor()82 void ToolbarManager::OnChangeSideBarColor()
83 {
84 auto sideBarColorChangeCallbackFuncCopy = sideBarColorChangeCallbackFunc_;
85 if (sideBarColorChangeCallbackFuncCopy) {
86 sideBarColorChangeCallbackFuncCopy(sideBarBgColor_, sideBarContainerBgColor_, sideBarBlurStyle_);
87 }
88 }
89
SetNavigationModeChangeCallback(const std::function<void ()> && callback)90 void ToolbarManager::SetNavigationModeChangeCallback(const std::function<void()>&& callback)
91 {
92 navigationModeChangeCallbackFuncs_.emplace_back(std::move(callback));
93 }
94
OnNavigationModeChange()95 void ToolbarManager::OnNavigationModeChange()
96 {
97 for (auto navigationModeChangeCallbackFuncCopy : navigationModeChangeCallbackFuncs_) {
98 if (navigationModeChangeCallbackFuncCopy) {
99 navigationModeChangeCallbackFuncCopy();
100 }
101 }
102 }
103 } // namespace OHOS::Ace::NG