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 #include "core/components_ng/property/property.h"
17 
18 namespace OHOS::Ace::NG {
CheckNeedRender(PropertyChangeFlag propertyChangeFlag)19 bool CheckNeedRender(PropertyChangeFlag propertyChangeFlag)
20 {
21     return ((propertyChangeFlag & PROPERTY_UPDATE_RENDER) == PROPERTY_UPDATE_RENDER) ||
22            ((propertyChangeFlag & PROPERTY_UPDATE_RENDER_BY_CHILD_REQUEST) == PROPERTY_UPDATE_RENDER_BY_CHILD_REQUEST);
23 }
24 
CheckNeedRequestMeasureAndLayout(PropertyChangeFlag propertyChangeFlag)25 bool CheckNeedRequestMeasureAndLayout(PropertyChangeFlag propertyChangeFlag)
26 {
27     return CheckNeedMeasure(propertyChangeFlag) || CheckNeedLayout(propertyChangeFlag);
28 }
29 
CheckNeedRequestParentMeasure(PropertyChangeFlag propertyChangeFlag)30 bool CheckNeedRequestParentMeasure(PropertyChangeFlag propertyChangeFlag)
31 {
32     return CheckMeasureFlag(propertyChangeFlag) || CheckMeasureSelfAndParentFlag(propertyChangeFlag);
33 }
34 
CheckNeedMeasure(PropertyChangeFlag propertyChangeFlag)35 bool CheckNeedMeasure(PropertyChangeFlag propertyChangeFlag)
36 {
37     return CheckMeasureFlag(propertyChangeFlag) || CheckMeasureSelfAndParentFlag(propertyChangeFlag) ||
38            CheckMeasureSelfFlag(propertyChangeFlag) || CheckMeasureSelfAndChildFlag(propertyChangeFlag);
39 }
40 
CheckNeedLayout(PropertyChangeFlag propertyChangeFlag)41 bool CheckNeedLayout(PropertyChangeFlag propertyChangeFlag)
42 {
43     return CheckLayoutFlag(propertyChangeFlag);
44 }
45 
CheckMeasureFlag(PropertyChangeFlag propertyChangeFlag)46 bool CheckMeasureFlag(PropertyChangeFlag propertyChangeFlag)
47 {
48     return ((propertyChangeFlag & PROPERTY_UPDATE_MEASURE) == PROPERTY_UPDATE_MEASURE) ||
49            ((propertyChangeFlag & PROPERTY_UPDATE_BY_CHILD_REQUEST) == PROPERTY_UPDATE_BY_CHILD_REQUEST);
50 }
51 
CheckForceParentMeasureFlag(PropertyChangeFlag propertyChangeFlag)52 bool CheckForceParentMeasureFlag(PropertyChangeFlag propertyChangeFlag)
53 {
54     return ((propertyChangeFlag & PROPERTY_UPDATE_MEASURE) == PROPERTY_UPDATE_MEASURE) ||
55            ((propertyChangeFlag & PROPERTY_UPDATE_MEASURE_SELF_AND_PARENT) == PROPERTY_UPDATE_MEASURE_SELF_AND_PARENT);
56 }
57 
CheckLayoutFlag(PropertyChangeFlag propertyChangeFlag)58 bool CheckLayoutFlag(PropertyChangeFlag propertyChangeFlag)
59 {
60     return ((propertyChangeFlag & PROPERTY_UPDATE_LAYOUT) == PROPERTY_UPDATE_LAYOUT);
61 }
62 
CheckMeasureSelfFlag(PropertyChangeFlag propertyChangeFlag)63 bool CheckMeasureSelfFlag(PropertyChangeFlag propertyChangeFlag)
64 {
65     return ((propertyChangeFlag & PROPERTY_UPDATE_MEASURE_SELF) == PROPERTY_UPDATE_MEASURE_SELF);
66 }
67 
CheckMeasureSelfAndParentFlag(PropertyChangeFlag propertyChangeFlag)68 bool CheckMeasureSelfAndParentFlag(PropertyChangeFlag propertyChangeFlag)
69 {
70     return ((propertyChangeFlag & PROPERTY_UPDATE_MEASURE_SELF_AND_PARENT) == PROPERTY_UPDATE_MEASURE_SELF_AND_PARENT);
71 }
72 
CheckMeasureSelfAndChildFlag(PropertyChangeFlag propertyChangeFlag)73 bool CheckMeasureSelfAndChildFlag(PropertyChangeFlag propertyChangeFlag)
74 {
75     return ((propertyChangeFlag & PROPERTY_UPDATE_MEASURE_SELF_AND_CHILD) == PROPERTY_UPDATE_MEASURE_SELF_AND_CHILD);
76 }
77 
CheckUpdateByChildRequest(PropertyChangeFlag propertyChangeFlag)78 bool CheckUpdateByChildRequest(PropertyChangeFlag propertyChangeFlag)
79 {
80     return ((propertyChangeFlag & PROPERTY_UPDATE_BY_CHILD_REQUEST) == PROPERTY_UPDATE_BY_CHILD_REQUEST);
81 }
82 
CheckNoChanged(PropertyChangeFlag propertyChangeFlag)83 bool CheckNoChanged(PropertyChangeFlag propertyChangeFlag)
84 {
85     return (propertyChangeFlag == PROPERTY_UPDATE_NORMAL);
86 }
87 
88 } // namespace OHOS::Ace::NG
89