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