1 /*
2 * Copyright (c) 2022-2023 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 #include "core/components_ng/pattern/slider/slider_model_ng.h"
17
18 #include "core/components/slider/slider_theme.h"
19 #include "core/components_ng/base/view_stack_processor.h"
20 #include "core/components_ng/pattern/slider/slider_layout_property.h"
21 #include "core/components_ng/pattern/slider/slider_paint_property.h"
22 #include "core/components_ng/pattern/slider/slider_pattern.h"
23 #include "core/components_v2/inspector/inspector_constants.h"
24 #include "core/pipeline/pipeline_base.h"
25 #include "core/pipeline_ng/pipeline_context.h"
26
27 namespace OHOS::Ace::NG {
Create(float value,float step,float min,float max)28 void SliderModelNG::Create(float value, float step, float min, float max)
29 {
30 auto* stack = ViewStackProcessor::GetInstance();
31 auto nodeId = stack->ClaimNodeId();
32 ACE_LAYOUT_SCOPED_TRACE("Create[%s][self:%d]", V2::SLIDER_ETS_TAG, nodeId);
33 auto frameNode = FrameNode::GetOrCreateFrameNode(
34 V2::SLIDER_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr<SliderPattern>(); });
35 stack->Push(frameNode);
36 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, Step, step);
37 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, Min, min);
38 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, Max, max);
39 SetSliderValue(value);
40 }
SetSliderValue(float value)41 void SliderModelNG::SetSliderValue(float value)
42 {
43 auto frameNode = ViewStackProcessor::GetInstance()->GetMainFrameNode();
44 CHECK_NULL_VOID(frameNode);
45 auto pattern = frameNode->GetPattern<SliderPattern>();
46 CHECK_NULL_VOID(pattern);
47 pattern->UpdateValue(value);
48 }
SetSliderMode(const SliderMode & value)49 void SliderModelNG::SetSliderMode(const SliderMode& value)
50 {
51 ACE_UPDATE_LAYOUT_PROPERTY(SliderLayoutProperty, SliderMode, value);
52 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, SliderMode, value);
53 }
SetDirection(Axis value)54 void SliderModelNG::SetDirection(Axis value)
55 {
56 ACE_UPDATE_LAYOUT_PROPERTY(SliderLayoutProperty, Direction, value);
57 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, Direction, value);
58 }
SetReverse(bool value)59 void SliderModelNG::SetReverse(bool value)
60 {
61 ACE_UPDATE_LAYOUT_PROPERTY(SliderLayoutProperty, Reverse, value);
62 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, Reverse, value);
63 }
SetBlockColor(const Color & value)64 void SliderModelNG::SetBlockColor(const Color& value)
65 {
66 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, BlockColor, value);
67 }
SetTrackBackgroundColor(const Color & value)68 void SliderModelNG::SetTrackBackgroundColor(const Color& value)
69 {
70 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, TrackBackgroundColor, value);
71 }
SetSelectColor(const Color & value)72 void SliderModelNG::SetSelectColor(const Color& value)
73 {
74 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, SelectColor, value);
75 }
SetMinLabel(float value)76 void SliderModelNG::SetMinLabel(float value)
77 {
78 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, Min, value);
79 }
SetMaxLabel(float value)80 void SliderModelNG::SetMaxLabel(float value)
81 {
82 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, Max, value);
83 }
SetShowSteps(bool value)84 void SliderModelNG::SetShowSteps(bool value)
85 {
86 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, ShowSteps, value);
87 }
SetShowTips(bool value,const std::optional<std::string> & content)88 void SliderModelNG::SetShowTips(bool value, const std::optional<std::string>& content)
89 {
90 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, ShowTips, value);
91 if (content.has_value()) {
92 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, CustomContent, content.value());
93 } else {
94 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, CustomContent, PROPERTY_UPDATE_RENDER);
95 }
96 }
SetThickness(const Dimension & value)97 void SliderModelNG::SetThickness(const Dimension& value)
98 {
99 if (value.IsNonPositive()) {
100 auto frameNode = ViewStackProcessor::GetInstance()->GetMainFrameNode();
101 CHECK_NULL_VOID(frameNode);
102 auto layoutProperty = frameNode->GetLayoutProperty<SliderLayoutProperty>();
103 CHECK_NULL_VOID(layoutProperty);
104 auto pipeline = PipelineBase::GetCurrentContext();
105 CHECK_NULL_VOID(pipeline);
106 auto theme = pipeline->GetTheme<SliderTheme>();
107 CHECK_NULL_VOID(theme);
108 auto sliderMode = layoutProperty->GetSliderModeValue(SliderModel::SliderMode::OUTSET);
109 auto themeTrackThickness = sliderMode == SliderModel::SliderMode::OUTSET ? theme->GetOutsetTrackThickness()
110 : theme->GetInsetTrackThickness();
111 ACE_UPDATE_LAYOUT_PROPERTY(SliderLayoutProperty, Thickness, themeTrackThickness);
112 } else {
113 ACE_UPDATE_LAYOUT_PROPERTY(SliderLayoutProperty, Thickness, value);
114 }
115 }
SetBlockBorderColor(const Color & value)116 void SliderModelNG::SetBlockBorderColor(const Color& value)
117 {
118 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, BlockBorderColor, value);
119 }
SetBlockBorderWidth(const Dimension & value)120 void SliderModelNG::SetBlockBorderWidth(const Dimension& value)
121 {
122 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, BlockBorderWidth, value);
123 }
SetStepColor(const Color & value)124 void SliderModelNG::SetStepColor(const Color& value)
125 {
126 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, StepColor, value);
127 }
SetTrackBorderRadius(const Dimension & value)128 void SliderModelNG::SetTrackBorderRadius(const Dimension& value)
129 {
130 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, TrackBorderRadius, value);
131 }
SetBlockSize(const Dimension & width,const Dimension & height)132 void SliderModelNG::SetBlockSize(const Dimension& width, const Dimension& height)
133 {
134 auto frameNode = ViewStackProcessor::GetInstance()->GetMainFrameNode();
135 CHECK_NULL_VOID(frameNode);
136 auto layoutProperty = frameNode->GetLayoutProperty<SliderLayoutProperty>();
137 CHECK_NULL_VOID(layoutProperty);
138 auto pipeline = PipelineBase::GetCurrentContext();
139 CHECK_NULL_VOID(pipeline);
140 SizeT<Dimension> blockSize;
141 auto theme = pipeline->GetTheme<SliderTheme>();
142 if (theme != nullptr) {
143 auto mode = layoutProperty->GetSliderModeValue(SliderMode::OUTSET);
144 auto themeBlockSize = mode == SliderMode::OUTSET ? theme->GetOutsetBlockSize() : theme->GetInsetBlockSize();
145 blockSize = layoutProperty->GetBlockSizeValue(SizeT<Dimension>(themeBlockSize, themeBlockSize));
146 }
147
148 if (LessOrEqual(width.Value(), 0.0) || LessOrEqual(height.Value(), 0.0)) {
149 ResetBlockSize();
150 } else {
151 blockSize.SetWidth(width);
152 blockSize.SetHeight(height);
153 ACE_UPDATE_LAYOUT_PROPERTY(SliderLayoutProperty, BlockSize, blockSize);
154 }
155 }
SetBlockType(BlockStyleType value)156 void SliderModelNG::SetBlockType(BlockStyleType value)
157 {
158 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, BlockType, value);
159 }
SetBlockImage(const std::string & value,const std::string & bundleName,const std::string & moduleName)160 void SliderModelNG::SetBlockImage(
161 const std::string& value, const std::string& bundleName, const std::string& moduleName)
162 {
163 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, BlockImage, value);
164 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, BlockImageBundleName, bundleName);
165 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, BlockImageModuleName, moduleName);
166 }
SetBlockShape(const RefPtr<BasicShape> & value)167 void SliderModelNG::SetBlockShape(const RefPtr<BasicShape>& value)
168 {
169 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, BlockShape, value);
170 }
SetStepSize(const Dimension & value)171 void SliderModelNG::SetStepSize(const Dimension& value)
172 {
173 ACE_UPDATE_PAINT_PROPERTY(SliderPaintProperty, StepSize, value);
174 }
SetOnChange(SliderOnChangeEvent && eventOnChange)175 void SliderModelNG::SetOnChange(SliderOnChangeEvent&& eventOnChange)
176 {
177 auto frameNode = ViewStackProcessor::GetInstance()->GetMainFrameNode();
178 CHECK_NULL_VOID(frameNode);
179 auto eventHub = frameNode->GetEventHub<SliderEventHub>();
180 CHECK_NULL_VOID(eventHub);
181 eventHub->SetOnChange(std::move(eventOnChange));
182 }
183
SetOnChangeEvent(SliderOnValueChangeEvent && onChangeEvent)184 void SliderModelNG::SetOnChangeEvent(SliderOnValueChangeEvent&& onChangeEvent)
185 {
186 auto frameNode = ViewStackProcessor::GetInstance()->GetMainFrameNode();
187 CHECK_NULL_VOID(frameNode);
188 auto eventHub = frameNode->GetEventHub<SliderEventHub>();
189 CHECK_NULL_VOID(eventHub);
190 eventHub->SetOnChangeEvent(std::move(onChangeEvent));
191 }
192
ResetBlockBorderColor()193 void SliderModelNG::ResetBlockBorderColor()
194 {
195 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockBorderColor, PROPERTY_UPDATE_RENDER);
196 }
197
ResetBlockBorderWidth()198 void SliderModelNG::ResetBlockBorderWidth()
199 {
200 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockBorderWidth, PROPERTY_UPDATE_RENDER);
201 }
202
ResetStepColor()203 void SliderModelNG::ResetStepColor()
204 {
205 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, StepColor, PROPERTY_UPDATE_RENDER);
206 }
207
ResetTrackBorderRadius()208 void SliderModelNG::ResetTrackBorderRadius()
209 {
210 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, TrackBorderRadius, PROPERTY_UPDATE_RENDER);
211 }
212
ResetBlockSize()213 void SliderModelNG::ResetBlockSize()
214 {
215 ACE_RESET_LAYOUT_PROPERTY_WITH_FLAG(SliderLayoutProperty, BlockSize, PROPERTY_UPDATE_MEASURE);
216 }
217
ResetBlockType()218 void SliderModelNG::ResetBlockType()
219 {
220 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockType, PROPERTY_UPDATE_RENDER);
221 }
222
ResetBlockImage()223 void SliderModelNG::ResetBlockImage()
224 {
225 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockImage, PROPERTY_UPDATE_RENDER);
226 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockImageBundleName, PROPERTY_UPDATE_RENDER);
227 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockImageModuleName, PROPERTY_UPDATE_RENDER);
228 }
229
ResetBlockShape()230 void SliderModelNG::ResetBlockShape()
231 {
232 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockShape, PROPERTY_UPDATE_RENDER);
233 }
234
ResetStepSize()235 void SliderModelNG::ResetStepSize()
236 {
237 ACE_RESET_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, StepSize, PROPERTY_UPDATE_RENDER);
238 }
239
SetShowTips(FrameNode * frameNode,bool value,const std::optional<std::string> & content)240 void SliderModelNG::SetShowTips(FrameNode* frameNode, bool value, const std::optional<std::string>& content)
241 {
242 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, ShowTips, value, frameNode);
243 if (content.has_value()) {
244 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, CustomContent, content.value(), frameNode);
245 } else {
246 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, CustomContent, PROPERTY_UPDATE_RENDER, frameNode);
247 }
248 }
249
SetThickness(FrameNode * frameNode,const Dimension & value)250 void SliderModelNG::SetThickness(FrameNode* frameNode, const Dimension& value)
251 {
252 if (value.IsNonPositive()) {
253 CHECK_NULL_VOID(frameNode);
254 auto layoutProperty = frameNode->GetLayoutProperty<SliderLayoutProperty>();
255 CHECK_NULL_VOID(layoutProperty);
256 auto pipeline = PipelineBase::GetCurrentContext();
257 CHECK_NULL_VOID(pipeline);
258 auto theme = pipeline->GetTheme<SliderTheme>();
259 CHECK_NULL_VOID(theme);
260 auto sliderMode = layoutProperty->GetSliderModeValue(SliderModel::SliderMode::OUTSET);
261 auto themeTrackThickness = sliderMode == SliderModel::SliderMode::OUTSET ? theme->GetOutsetTrackThickness()
262 : theme->GetInsetTrackThickness();
263 ACE_UPDATE_NODE_LAYOUT_PROPERTY(SliderLayoutProperty, Thickness, themeTrackThickness, frameNode);
264 } else {
265 ACE_UPDATE_NODE_LAYOUT_PROPERTY(SliderLayoutProperty, Thickness, value, frameNode);
266 }
267 }
SetStepSize(FrameNode * frameNode,const Dimension & value)268 void SliderModelNG::SetStepSize(FrameNode* frameNode, const Dimension& value)
269 {
270 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, StepSize, value, frameNode);
271 }
SetBlockType(FrameNode * frameNode,BlockStyleType value)272 void SliderModelNG::SetBlockType(FrameNode* frameNode, BlockStyleType value)
273 {
274 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, BlockType, value, frameNode);
275 }
SetBlockShape(FrameNode * frameNode,const RefPtr<BasicShape> & value)276 void SliderModelNG::SetBlockShape(FrameNode* frameNode, const RefPtr<BasicShape>& value)
277 {
278 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, BlockShape, value, frameNode);
279 }
SetBlockSize(FrameNode * frameNode,const Dimension & width,const Dimension & height)280 void SliderModelNG::SetBlockSize(FrameNode* frameNode, const Dimension& width, const Dimension& height)
281 {
282 CHECK_NULL_VOID(frameNode);
283 auto layoutProperty = frameNode->GetLayoutProperty<SliderLayoutProperty>();
284 CHECK_NULL_VOID(layoutProperty);
285 auto pipeline = PipelineBase::GetCurrentContext();
286 CHECK_NULL_VOID(pipeline);
287 SizeT<Dimension> blockSize;
288 auto theme = pipeline->GetTheme<SliderTheme>();
289 if (theme != nullptr) {
290 auto mode = layoutProperty->GetSliderModeValue(SliderMode::OUTSET);
291 auto themeBlockSize = mode == SliderMode::OUTSET ? theme->GetOutsetBlockSize() : theme->GetInsetBlockSize();
292 blockSize = layoutProperty->GetBlockSizeValue(SizeT<Dimension>(themeBlockSize, themeBlockSize));
293 }
294
295 if (LessOrEqual(width.Value(), 0.0) || LessOrEqual(height.Value(), 0.0)) {
296 ResetBlockSize(frameNode);
297 } else {
298 blockSize.SetWidth(width);
299 blockSize.SetHeight(height);
300 ACE_UPDATE_NODE_LAYOUT_PROPERTY(SliderLayoutProperty, BlockSize, blockSize, frameNode);
301 }
302 }
SetTrackBorderRadius(FrameNode * frameNode,const Dimension & value)303 void SliderModelNG::SetTrackBorderRadius(FrameNode* frameNode, const Dimension& value)
304 {
305 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, TrackBorderRadius, value, frameNode);
306 }
SetStepColor(FrameNode * frameNode,const Color & value)307 void SliderModelNG::SetStepColor(FrameNode* frameNode, const Color& value)
308 {
309 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, StepColor, value, frameNode);
310 }
SetBlockBorderColor(FrameNode * frameNode,const Color & value)311 void SliderModelNG::SetBlockBorderColor(FrameNode* frameNode, const Color& value)
312 {
313 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, BlockBorderColor, value, frameNode);
314 }
SetBlockBorderWidth(FrameNode * frameNode,const Dimension & value)315 void SliderModelNG::SetBlockBorderWidth(FrameNode* frameNode, const Dimension& value)
316 {
317 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, BlockBorderWidth, value, frameNode);
318 }
SetBlockColor(FrameNode * frameNode,const Color & value)319 void SliderModelNG::SetBlockColor(FrameNode* frameNode, const Color& value)
320 {
321 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, BlockColor, value, frameNode);
322 }
SetTrackBackgroundColor(FrameNode * frameNode,const Color & value)323 void SliderModelNG::SetTrackBackgroundColor(FrameNode* frameNode, const Color& value)
324 {
325 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, TrackBackgroundColor, value, frameNode);
326 }
SetSelectColor(FrameNode * frameNode,const Color & value)327 void SliderModelNG::SetSelectColor(FrameNode* frameNode, const Color& value)
328 {
329 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, SelectColor, value, frameNode);
330 }
SetShowSteps(FrameNode * frameNode,bool value)331 void SliderModelNG::SetShowSteps(FrameNode* frameNode, bool value)
332 {
333 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, ShowSteps, value, frameNode);
334 }
SetBlockImage(FrameNode * frameNode,const std::string & value,const std::string & bundleName,const std::string & moduleName)335 void SliderModelNG::SetBlockImage(
336 FrameNode* frameNode, const std::string& value, const std::string& bundleName, const std::string& moduleName)
337 {
338 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, BlockImage, value, frameNode);
339 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, BlockImageBundleName, bundleName, frameNode);
340 ACE_UPDATE_NODE_PAINT_PROPERTY(SliderPaintProperty, BlockImageModuleName, moduleName, frameNode);
341 }
342
ResetStepSize(FrameNode * frameNode)343 void SliderModelNG::ResetStepSize(FrameNode* frameNode)
344 {
345 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, StepSize, PROPERTY_UPDATE_RENDER, frameNode);
346 }
347
ResetBlockType(FrameNode * frameNode)348 void SliderModelNG::ResetBlockType(FrameNode* frameNode)
349 {
350 ACE_RESET_NODE_PAINT_PROPERTY(SliderPaintProperty, BlockType, frameNode);
351 }
352
ResetBlockShape(FrameNode * frameNode)353 void SliderModelNG::ResetBlockShape(FrameNode* frameNode)
354 {
355 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockShape, PROPERTY_UPDATE_RENDER, frameNode);
356 }
357
ResetBlockSize(FrameNode * frameNode)358 void SliderModelNG::ResetBlockSize(FrameNode* frameNode)
359 {
360 ACE_RESET_NODE_LAYOUT_PROPERTY_WITH_FLAG(SliderLayoutProperty, BlockSize, PROPERTY_UPDATE_MEASURE, frameNode);
361 }
362
ResetTrackBorderRadius(FrameNode * frameNode)363 void SliderModelNG::ResetTrackBorderRadius(FrameNode* frameNode)
364 {
365 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, TrackBorderRadius, PROPERTY_UPDATE_RENDER, frameNode);
366 }
367
ResetStepColor(FrameNode * frameNode)368 void SliderModelNG::ResetStepColor(FrameNode* frameNode)
369 {
370 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, StepColor, PROPERTY_UPDATE_RENDER, frameNode);
371 }
372
ResetBlockBorderColor(FrameNode * frameNode)373 void SliderModelNG::ResetBlockBorderColor(FrameNode* frameNode)
374 {
375 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockBorderColor, PROPERTY_UPDATE_RENDER, frameNode);
376 }
377
ResetBlockBorderWidth(FrameNode * frameNode)378 void SliderModelNG::ResetBlockBorderWidth(FrameNode* frameNode)
379 {
380 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockBorderWidth, PROPERTY_UPDATE_RENDER, frameNode);
381 }
382
ResetBlockColor(FrameNode * frameNode)383 void SliderModelNG::ResetBlockColor(FrameNode* frameNode)
384 {
385 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(SliderPaintProperty, BlockColor, PROPERTY_UPDATE_RENDER, frameNode);
386 }
387
ResetBlockImage(FrameNode * frameNode)388 void SliderModelNG::ResetBlockImage(FrameNode* frameNode)
389 {
390 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(
391 SliderPaintProperty, BlockImage, PROPERTY_UPDATE_RENDER, frameNode);
392 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(
393 SliderPaintProperty, BlockImageBundleName, PROPERTY_UPDATE_RENDER, frameNode);
394 ACE_RESET_NODE_PAINT_PROPERTY_WITH_FLAG(
395 SliderPaintProperty, BlockImageModuleName, PROPERTY_UPDATE_RENDER, frameNode);
396 }
397 } // namespace OHOS::Ace::NG
398