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 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_CALENDAR_CALENDAR_PAINT_PROPERTY_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_CALENDAR_CALENDAR_PAINT_PROPERTY_H 18 19 #include <cstdint> 20 #include <string> 21 #include <vector> 22 23 #include "base/geometry/dimension.h" 24 #include "base/utils/macros.h" 25 #include "core/components/common/properties/color.h" 26 #include "core/components_ng/base/inspector_filter.h" 27 #include "core/components_ng/render/paint_property.h" 28 29 namespace OHOS::Ace::NG { 30 31 struct CurrentDayStyle { 32 ACE_DEFINE_PROPERTY_GROUP_ITEM(DayColor, Color); 33 ACE_DEFINE_PROPERTY_GROUP_ITEM(LunarColor, Color); 34 ACE_DEFINE_PROPERTY_GROUP_ITEM(MarkLunarColor, Color); 35 ACE_DEFINE_PROPERTY_GROUP_ITEM(DayFontSize, Dimension); 36 ACE_DEFINE_PROPERTY_GROUP_ITEM(LunarDayFontSize, Dimension); 37 ACE_DEFINE_PROPERTY_GROUP_ITEM(DayHeight, Dimension); 38 ACE_DEFINE_PROPERTY_GROUP_ITEM(DayWidth, Dimension); 39 ACE_DEFINE_PROPERTY_GROUP_ITEM(GregorianCalendarHeight, Dimension); 40 ACE_DEFINE_PROPERTY_GROUP_ITEM(DayYAxisOffset, Dimension); 41 ACE_DEFINE_PROPERTY_GROUP_ITEM(LunarDayYAxisOffset, Dimension); 42 ACE_DEFINE_PROPERTY_GROUP_ITEM(UnderscoreXAxisOffset, Dimension); 43 ACE_DEFINE_PROPERTY_GROUP_ITEM(UnderscoreYAxisOffset, Dimension); 44 ACE_DEFINE_PROPERTY_GROUP_ITEM(ScheduleMarkerXAxisOffset, Dimension); 45 ACE_DEFINE_PROPERTY_GROUP_ITEM(ScheduleMarkerYAxisOffset, Dimension); 46 ACE_DEFINE_PROPERTY_GROUP_ITEM(ColSpace, Dimension); 47 ACE_DEFINE_PROPERTY_GROUP_ITEM(DailyFourRowSpace, Dimension); 48 ACE_DEFINE_PROPERTY_GROUP_ITEM(DailyFiveRowSpace, Dimension); 49 ACE_DEFINE_PROPERTY_GROUP_ITEM(DailySixRowSpace, Dimension); 50 ACE_DEFINE_PROPERTY_GROUP_ITEM(LunarHeight, Dimension); 51 ACE_DEFINE_PROPERTY_GROUP_ITEM(UnderscoreWidth, Dimension); 52 ACE_DEFINE_PROPERTY_GROUP_ITEM(UnderscoreLength, Dimension); 53 ACE_DEFINE_PROPERTY_GROUP_ITEM(ScheduleMarkerRadius, Dimension); 54 ACE_DEFINE_PROPERTY_GROUP_ITEM(BoundaryRowOffset, Dimension); 55 ACE_DEFINE_PROPERTY_GROUP_ITEM(BoundaryColOffset, Dimension); 56 ToJsonValueCurrentDayStyle57 void ToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const 58 { 59 /* no fixed attr below, just return */ 60 if (filter.IsFastFilter()) { 61 return; 62 } 63 json->PutExtAttr("dayColor", propDayColor.value_or(Color()).ColorToString().c_str(), filter); 64 json->PutExtAttr("lunarColor", propLunarColor.value_or(Color()).ColorToString().c_str(), filter); 65 json->PutExtAttr("markLunarColor", propMarkLunarColor.value_or(Color()).ColorToString().c_str(), filter); 66 json->PutExtAttr("dayFontSize", 67 propDayFontSize.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 68 json->PutExtAttr("lunarDayFontSize", 69 propLunarDayFontSize.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 70 json->PutExtAttr("dayHeight", 71 propDayHeight.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 72 json->PutExtAttr("dayWidth", 73 propDayWidth.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 74 json->PutExtAttr("gregorianCalendarHeight", 75 propGregorianCalendarHeight.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 76 json->PutExtAttr("dayYAxisOffset", 77 propDayYAxisOffset.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 78 json->PutExtAttr("lunarDayYAxisOffset", 79 propLunarDayYAxisOffset.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 80 json->PutExtAttr("underscoreXAxisOffset", 81 propUnderscoreXAxisOffset.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 82 json->PutExtAttr("underscoreYAxisOffset", 83 propUnderscoreYAxisOffset.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 84 json->PutExtAttr("scheduleMarkerXAxisOffset", 85 propScheduleMarkerXAxisOffset.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 86 json->PutExtAttr("scheduleMarkerYAxisOffset", 87 propScheduleMarkerYAxisOffset.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 88 json->PutExtAttr("colSpace", 89 propColSpace.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 90 json->PutExtAttr("dailyFiveRowSpace", 91 propDailyFiveRowSpace.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 92 json->PutExtAttr("dailySixRowSpace", 93 propDailySixRowSpace.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 94 json->PutExtAttr("lunarHeight", 95 propLunarHeight.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 96 json->PutExtAttr("underscoreWidth", 97 propUnderscoreWidth.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 98 json->PutExtAttr("underscoreLength", 99 propUnderscoreLength.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 100 json->PutExtAttr("scheduleMarkerRadius", 101 propScheduleMarkerRadius.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 102 json->PutExtAttr("boundaryRowOffset", 103 propBoundaryRowOffset.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 104 json->PutExtAttr("boundaryColOffset", 105 propBoundaryColOffset.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 106 } 107 }; 108 109 struct NonCurrentDayStyle { 110 ACE_DEFINE_PROPERTY_GROUP_ITEM(NonCurrentMonthDayColor, Color); 111 ACE_DEFINE_PROPERTY_GROUP_ITEM(NonCurrentMonthLunarColor, Color); 112 ACE_DEFINE_PROPERTY_GROUP_ITEM(NonCurrentMonthWorkDayMarkColor, Color); 113 ACE_DEFINE_PROPERTY_GROUP_ITEM(NonCurrentMonthOffDayMarkColor, Color); 114 ToJsonValueNonCurrentDayStyle115 void ToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const 116 { 117 /* no fixed attr below, just return */ 118 if (filter.IsFastFilter()) { 119 return; 120 } 121 json->PutExtAttr("nonCurrentMonthDayColor", 122 propNonCurrentMonthDayColor.value_or(Color()).ColorToString().c_str(), filter); 123 json->PutExtAttr("nonCurrentMonthLunarColor", 124 propNonCurrentMonthLunarColor.value_or(Color()).ColorToString().c_str(), filter); 125 json->PutExtAttr("nonCurrentMonthWorkDayMarkColor", 126 propNonCurrentMonthWorkDayMarkColor.value_or(Color()).ColorToString().c_str(), filter); 127 json->PutExtAttr("nonCurrentMonthOffDayMarkColor", 128 propNonCurrentMonthOffDayMarkColor.value_or(Color()).ColorToString().c_str(), filter); 129 } 130 }; 131 132 struct TodayStyle { 133 ACE_DEFINE_PROPERTY_GROUP_ITEM(FocusedDayColor, Color); 134 ACE_DEFINE_PROPERTY_GROUP_ITEM(FocusedLunarColor, Color); 135 ACE_DEFINE_PROPERTY_GROUP_ITEM(FocusedAreaBackgroundColor, Color); 136 ACE_DEFINE_PROPERTY_GROUP_ITEM(FocusedAreaRadius, Dimension); 137 ToJsonValueTodayStyle138 void ToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const 139 { 140 /* no fixed attr below, just return */ 141 if (filter.IsFastFilter()) { 142 return; 143 } 144 json->PutExtAttr("focusedDayColor", propFocusedDayColor.value_or(Color()).ColorToString().c_str(), filter); 145 json->PutExtAttr("focusedLunarColor", 146 propFocusedLunarColor.value_or(Color()).ColorToString().c_str(), filter); 147 json->PutExtAttr("focusedAreaBackgroundColor", 148 propFocusedAreaBackgroundColor.value_or(Color()).ColorToString().c_str(), filter); 149 json->PutExtAttr("focusedAreaRadius", 150 propFocusedAreaRadius.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 151 } 152 }; 153 154 struct WeekStyle { 155 ACE_DEFINE_PROPERTY_GROUP_ITEM(WeekColor, Color); 156 ACE_DEFINE_PROPERTY_GROUP_ITEM(WeekendDayColor, Color); 157 ACE_DEFINE_PROPERTY_GROUP_ITEM(WeekendLunarColor, Color); 158 ACE_DEFINE_PROPERTY_GROUP_ITEM(WeekFontSize, Dimension); 159 ACE_DEFINE_PROPERTY_GROUP_ITEM(WeekHeight, Dimension); 160 ACE_DEFINE_PROPERTY_GROUP_ITEM(WeekWidth, Dimension); 161 ACE_DEFINE_PROPERTY_GROUP_ITEM(WeekAndDayRowSpace, Dimension); 162 ToJsonValueWeekStyle163 void ToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const 164 { 165 /* no fixed attr below, just return */ 166 if (filter.IsFastFilter()) { 167 return; 168 } 169 json->PutExtAttr("weekColor", propWeekColor.value_or(Color()).ColorToString().c_str(), filter); 170 json->PutExtAttr("weekendDayColor", propWeekendDayColor.value_or(Color()).ColorToString().c_str(), filter); 171 json->PutExtAttr("weekendLunarColor", 172 propWeekendLunarColor.value_or(Color()).ColorToString().c_str(), filter); 173 json->PutExtAttr("weekFontSize", 174 propWeekFontSize.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 175 json->PutExtAttr("weekHeight", 176 propWeekHeight.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 177 json->PutExtAttr("weekWidth", 178 propWeekWidth.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 179 json->PutExtAttr("weekAndDayRowSpace", 180 propWeekAndDayRowSpace.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 181 } 182 }; 183 184 struct WorkStateStyle { 185 ACE_DEFINE_PROPERTY_GROUP_ITEM(WorkDayMarkColor, Color); 186 ACE_DEFINE_PROPERTY_GROUP_ITEM(OffDayMarkColor, Color); 187 ACE_DEFINE_PROPERTY_GROUP_ITEM(WorkDayMarkSize, Dimension); 188 ACE_DEFINE_PROPERTY_GROUP_ITEM(OffDayMarkSize, Dimension); 189 ACE_DEFINE_PROPERTY_GROUP_ITEM(WorkStateWidth, Dimension); 190 ACE_DEFINE_PROPERTY_GROUP_ITEM(WorkStateHorizontalMovingDistance, Dimension); 191 ACE_DEFINE_PROPERTY_GROUP_ITEM(WorkStateVerticalMovingDistance, Dimension); 192 ToJsonValueWorkStateStyle193 void ToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const 194 { 195 /* no fixed attr below, just return */ 196 if (filter.IsFastFilter()) { 197 return; 198 } 199 json->PutExtAttr("workDayMarkColor", 200 propWorkDayMarkColor.value_or(Color()).ColorToString().c_str(), filter); 201 json->PutExtAttr("offDayMarkColor", propOffDayMarkColor.value_or(Color()).ColorToString().c_str(), filter); 202 json->PutExtAttr("workDayMarkSize", 203 propWorkDayMarkSize.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 204 json->PutExtAttr("offDayMarkSize", 205 propOffDayMarkSize.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 206 json->PutExtAttr("workStateWidth", 207 propWorkStateWidth.value_or(Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 208 json->PutExtAttr("workStateHorizontalMovingDistance", propWorkStateHorizontalMovingDistance.value_or( 209 Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 210 json->PutExtAttr("workStateVerticalMovingDistance", propWorkStateVerticalMovingDistance.value_or( 211 Dimension(0, DimensionUnit::VP)).ToString().c_str(), filter); 212 } 213 }; 214 215 enum class Week { 216 Mon = 0, 217 Tue, 218 Wed, 219 Thur, 220 Fri, 221 Sat, 222 Sun, 223 }; 224 225 class ACE_EXPORT CalendarPaintProperty : public PaintProperty { 226 DECLARE_ACE_TYPE(CalendarPaintProperty, PaintProperty); 227 228 public: 229 CalendarPaintProperty() = default; 230 231 ~CalendarPaintProperty() override = default; 232 Clone()233 RefPtr<PaintProperty> Clone() const override 234 { 235 auto value = MakeRefPtr<CalendarPaintProperty>(); 236 value->PaintProperty::UpdatePaintProperty(DynamicCast<PaintProperty>(this)); 237 value->propCurrentDayStyle_ = CloneCurrentDayStyle(); 238 value->propNonCurrentDayStyle_ = CloneNonCurrentDayStyle(); 239 value->propTodayStyle_ = CloneTodayStyle(); 240 value->propWeekStyle_ = CloneWeekStyle(); 241 value->propWorkStateStyle_ = CloneWorkStateStyle(); 242 value->propShowLunar_ = CloneShowLunar(); 243 value->propShowHoliday_ = CloneShowHoliday(); 244 value->propStartOfWeek_ = CloneStartOfWeek(); 245 value->propOffDays_ = CloneOffDays(); 246 value->propDayRadius_ = CloneDayRadius(); 247 return value; 248 } 249 Reset()250 void Reset() override 251 { 252 PaintProperty::Reset(); 253 ResetCurrentDayStyle(); 254 ResetNonCurrentDayStyle(); 255 ResetTodayStyle(); 256 ResetWeekStyle(); 257 ResetWorkStateStyle(); 258 ResetShowLunar(); 259 ResetShowHoliday(); 260 ResetStartOfWeek(); 261 ResetOffDays(); 262 ResetDayRadius(); 263 } 264 ToJsonValue(std::unique_ptr<JsonValue> & json,const InspectorFilter & filter)265 void ToJsonValue(std::unique_ptr<JsonValue>& json, const InspectorFilter& filter) const override 266 { 267 ACE_PROPERTY_TO_JSON_VALUE(propCurrentDayStyle_, CurrentDayStyle); 268 ACE_PROPERTY_TO_JSON_VALUE(propNonCurrentDayStyle_, NonCurrentDayStyle); 269 ACE_PROPERTY_TO_JSON_VALUE(propTodayStyle_, TodayStyle); 270 ACE_PROPERTY_TO_JSON_VALUE(propWeekStyle_, WeekStyle); 271 ACE_PROPERTY_TO_JSON_VALUE(propWorkStateStyle_, WorkStateStyle); 272 /* no fixed attr below, just return */ 273 if (filter.IsFastFilter()) { 274 return; 275 } 276 json->PutExtAttr("showLunar", propShowLunar_.value_or(false) ? "true" : "false", filter); 277 json->PutExtAttr("showHoliday", propShowHoliday_.value_or(false) ? "true" : "false", filter); 278 static const char* WEEK[] = { "Week.Mon", "Week.Tue", "Week.Wed", "Week.Tur", "Week.Fri", "Week.Sat", 279 "Week.Sun" }; 280 json->PutExtAttr("startOfWeek", WEEK[static_cast<int32_t>(GetStartOfWeek().value_or(Week::Mon))], filter); 281 const std::string DEFAULT_OFFDAYS = "5,6"; 282 json->PutExtAttr("offDays", propOffDays_.value_or(DEFAULT_OFFDAYS).c_str(), filter); 283 } 284 285 ACE_DEFINE_PROPERTY_GROUP(CurrentDayStyle, CurrentDayStyle); 286 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, DayColor, Color, PROPERTY_UPDATE_RENDER); 287 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, LunarColor, Color, PROPERTY_UPDATE_RENDER); 288 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, MarkLunarColor, Color, PROPERTY_UPDATE_RENDER); 289 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, DayFontSize, Dimension, PROPERTY_UPDATE_RENDER); 290 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, LunarDayFontSize, Dimension, PROPERTY_UPDATE_RENDER); 291 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, DayHeight, Dimension, PROPERTY_UPDATE_RENDER); 292 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, DayWidth, Dimension, PROPERTY_UPDATE_RENDER); 293 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, GregorianCalendarHeight, Dimension, PROPERTY_UPDATE_RENDER); 294 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, DayYAxisOffset, Dimension, PROPERTY_UPDATE_RENDER); 295 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, LunarDayYAxisOffset, Dimension, PROPERTY_UPDATE_RENDER); 296 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, UnderscoreXAxisOffset, Dimension, PROPERTY_UPDATE_RENDER); 297 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, UnderscoreYAxisOffset, Dimension, PROPERTY_UPDATE_RENDER); 298 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, ScheduleMarkerXAxisOffset, Dimension, PROPERTY_UPDATE_RENDER); 299 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, ScheduleMarkerYAxisOffset, Dimension, PROPERTY_UPDATE_RENDER); 300 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, ColSpace, Dimension, PROPERTY_UPDATE_RENDER); 301 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, DailyFourRowSpace, Dimension, PROPERTY_UPDATE_RENDER); 302 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, DailyFiveRowSpace, Dimension, PROPERTY_UPDATE_RENDER); 303 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, DailySixRowSpace, Dimension, PROPERTY_UPDATE_RENDER); 304 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, LunarHeight, Dimension, PROPERTY_UPDATE_RENDER); 305 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, UnderscoreWidth, Dimension, PROPERTY_UPDATE_RENDER); 306 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, UnderscoreLength, Dimension, PROPERTY_UPDATE_RENDER); 307 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, ScheduleMarkerRadius, Dimension, PROPERTY_UPDATE_RENDER); 308 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, BoundaryRowOffset, Dimension, PROPERTY_UPDATE_RENDER); 309 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(CurrentDayStyle, BoundaryColOffset, Dimension, PROPERTY_UPDATE_RENDER); 310 311 ACE_DEFINE_PROPERTY_GROUP(NonCurrentDayStyle, NonCurrentDayStyle); 312 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(NonCurrentDayStyle, NonCurrentMonthDayColor, Color, PROPERTY_UPDATE_RENDER); 313 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(NonCurrentDayStyle, NonCurrentMonthLunarColor, Color, PROPERTY_UPDATE_RENDER); 314 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP( 315 NonCurrentDayStyle, NonCurrentMonthWorkDayMarkColor, Color, PROPERTY_UPDATE_RENDER); 316 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP( 317 NonCurrentDayStyle, NonCurrentMonthOffDayMarkColor, Color, PROPERTY_UPDATE_RENDER); 318 319 ACE_DEFINE_PROPERTY_GROUP(TodayStyle, TodayStyle); 320 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(TodayStyle, FocusedDayColor, Color, PROPERTY_UPDATE_RENDER); 321 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(TodayStyle, FocusedLunarColor, Color, PROPERTY_UPDATE_RENDER); 322 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(TodayStyle, FocusedAreaBackgroundColor, Color, PROPERTY_UPDATE_RENDER); 323 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(TodayStyle, FocusedAreaRadius, Dimension, PROPERTY_UPDATE_RENDER); 324 325 ACE_DEFINE_PROPERTY_GROUP(WeekStyle, WeekStyle); 326 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WeekStyle, WeekColor, Color, PROPERTY_UPDATE_RENDER); 327 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WeekStyle, WeekendDayColor, Color, PROPERTY_UPDATE_RENDER); 328 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WeekStyle, WeekendLunarColor, Color, PROPERTY_UPDATE_RENDER); 329 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WeekStyle, WeekFontSize, Dimension, PROPERTY_UPDATE_RENDER); 330 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WeekStyle, WeekHeight, Dimension, PROPERTY_UPDATE_RENDER); 331 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WeekStyle, WeekWidth, Dimension, PROPERTY_UPDATE_RENDER); 332 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WeekStyle, WeekAndDayRowSpace, Dimension, PROPERTY_UPDATE_RENDER); 333 334 ACE_DEFINE_PROPERTY_GROUP(WorkStateStyle, WorkStateStyle); 335 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WorkStateStyle, WorkDayMarkColor, Color, PROPERTY_UPDATE_RENDER); 336 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WorkStateStyle, OffDayMarkColor, Color, PROPERTY_UPDATE_RENDER); 337 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WorkStateStyle, WorkDayMarkSize, Dimension, PROPERTY_UPDATE_RENDER); 338 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WorkStateStyle, OffDayMarkSize, Dimension, PROPERTY_UPDATE_RENDER); 339 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP(WorkStateStyle, WorkStateWidth, Dimension, PROPERTY_UPDATE_RENDER); 340 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP( 341 WorkStateStyle, WorkStateHorizontalMovingDistance, Dimension, PROPERTY_UPDATE_RENDER); 342 ACE_DEFINE_PROPERTY_ITEM_WITH_GROUP( 343 WorkStateStyle, WorkStateVerticalMovingDistance, Dimension, PROPERTY_UPDATE_RENDER); 344 345 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(ShowLunar, bool, PROPERTY_UPDATE_RENDER); 346 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(ShowHoliday, bool, PROPERTY_UPDATE_RENDER); 347 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(StartOfWeek, Week, PROPERTY_UPDATE_RENDER); 348 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(OffDays, std::string, PROPERTY_UPDATE_RENDER); 349 ACE_DEFINE_PROPERTY_ITEM_WITHOUT_GROUP(DayRadius, Dimension, PROPERTY_UPDATE_RENDER); 350 351 ACE_DISALLOW_COPY_AND_MOVE(CalendarPaintProperty); 352 }; 353 } // namespace OHOS::Ace::NG 354 355 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_PATTERN_CALENDAR_CALENDAR_PAINT_PROPERTY_H 356