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)19bool 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)25bool CheckNeedRequestMeasureAndLayout(PropertyChangeFlag propertyChangeFlag) 26 { 27 return CheckNeedMeasure(propertyChangeFlag) || CheckNeedLayout(propertyChangeFlag); 28 } 29 CheckNeedRequestParentMeasure(PropertyChangeFlag propertyChangeFlag)30bool CheckNeedRequestParentMeasure(PropertyChangeFlag propertyChangeFlag) 31 { 32 return CheckMeasureFlag(propertyChangeFlag) || CheckMeasureSelfAndParentFlag(propertyChangeFlag); 33 } 34 CheckNeedMeasure(PropertyChangeFlag propertyChangeFlag)35bool CheckNeedMeasure(PropertyChangeFlag propertyChangeFlag) 36 { 37 return CheckMeasureFlag(propertyChangeFlag) || CheckMeasureSelfAndParentFlag(propertyChangeFlag) || 38 CheckMeasureSelfFlag(propertyChangeFlag) || CheckMeasureSelfAndChildFlag(propertyChangeFlag); 39 } 40 CheckNeedLayout(PropertyChangeFlag propertyChangeFlag)41bool CheckNeedLayout(PropertyChangeFlag propertyChangeFlag) 42 { 43 return CheckLayoutFlag(propertyChangeFlag); 44 } 45 CheckMeasureFlag(PropertyChangeFlag propertyChangeFlag)46bool 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)52bool 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)58bool CheckLayoutFlag(PropertyChangeFlag propertyChangeFlag) 59 { 60 return ((propertyChangeFlag & PROPERTY_UPDATE_LAYOUT) == PROPERTY_UPDATE_LAYOUT); 61 } 62 CheckMeasureSelfFlag(PropertyChangeFlag propertyChangeFlag)63bool CheckMeasureSelfFlag(PropertyChangeFlag propertyChangeFlag) 64 { 65 return ((propertyChangeFlag & PROPERTY_UPDATE_MEASURE_SELF) == PROPERTY_UPDATE_MEASURE_SELF); 66 } 67 CheckMeasureSelfAndParentFlag(PropertyChangeFlag propertyChangeFlag)68bool CheckMeasureSelfAndParentFlag(PropertyChangeFlag propertyChangeFlag) 69 { 70 return ((propertyChangeFlag & PROPERTY_UPDATE_MEASURE_SELF_AND_PARENT) == PROPERTY_UPDATE_MEASURE_SELF_AND_PARENT); 71 } 72 CheckMeasureSelfAndChildFlag(PropertyChangeFlag propertyChangeFlag)73bool CheckMeasureSelfAndChildFlag(PropertyChangeFlag propertyChangeFlag) 74 { 75 return ((propertyChangeFlag & PROPERTY_UPDATE_MEASURE_SELF_AND_CHILD) == PROPERTY_UPDATE_MEASURE_SELF_AND_CHILD); 76 } 77 CheckUpdateByChildRequest(PropertyChangeFlag propertyChangeFlag)78bool CheckUpdateByChildRequest(PropertyChangeFlag propertyChangeFlag) 79 { 80 return ((propertyChangeFlag & PROPERTY_UPDATE_BY_CHILD_REQUEST) == PROPERTY_UPDATE_BY_CHILD_REQUEST); 81 } 82 CheckNoChanged(PropertyChangeFlag propertyChangeFlag)83bool CheckNoChanged(PropertyChangeFlag propertyChangeFlag) 84 { 85 return (propertyChangeFlag == PROPERTY_UPDATE_NORMAL); 86 } 87 88 } // namespace OHOS::Ace::NG 89