#pragma once #include #include #include #include #include #include #include "settings/objectnode.hpp" #include "anim.hpp" #include "common.hpp" #include "font.hpp" namespace ZShell::config { class AnimCurves : public settings::ObjectNode { CONFIG_NODE(AnimCurves, settings::ObjectNode) CONFIG_GLOBAL_PROPERTY( QList, emphasized, DEFAULT_ARG( {0.05, 0, 2.0 / 15.0, 0.06, 1.0 / 6.0, 0.4, 5.0 / 24.0, 0.82, 0.25, 1, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, emphasizedAccel, DEFAULT_ARG({0.3, 0, 0.8, 0.15, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, emphasizedDecel, DEFAULT_ARG({0.05, 0.7, 0.1, 1, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, standard, DEFAULT_ARG({0.2, 0, 0, 1, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, standardAccel, DEFAULT_ARG({0.3, 0, 1, 1, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, standardDecel, DEFAULT_ARG({0, 0, 0, 1, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, expressiveFastSpatial, DEFAULT_ARG({0.42, 1.67, 0.21, 0.9, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, expressiveDefaultSpatial, DEFAULT_ARG({0.38, 1.21, 0.22, 1, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, expressiveSlowSpatial, DEFAULT_ARG({0.39, 1.29, 0.35, 0.98, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, expressiveFastEffects, DEFAULT_ARG({0.31, 0.94, 0.34, 1, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, expressiveDefaultEffects, DEFAULT_ARG({0.34, 0.8, 0.34, 1, 1, 1})) CONFIG_GLOBAL_PROPERTY( QList, expressiveSlowEffects, DEFAULT_ARG({0.34, 0.88, 0.34, 1, 1, 1})) }; class RoundingTokens : public settings::ObjectNode { CONFIG_NODE(RoundingTokens, settings::ObjectNode) CONFIG_PROPERTY(int, extraSmall, 4) CONFIG_PROPERTY(int, small, 8) CONFIG_PROPERTY(int, medium, 12) CONFIG_PROPERTY(int, large, 16) CONFIG_PROPERTY(int, largeIncreased, 20) CONFIG_PROPERTY(int, extraLarge, 28) CONFIG_PROPERTY(int, extraLargeIncreased, 32) CONFIG_PROPERTY(int, extraExtraLarge, 48) CONFIG_PROPERTY(int, full, std::numeric_limits::max()) }; class SpacingTokens : public settings::ObjectNode { CONFIG_NODE(SpacingTokens, settings::ObjectNode) CONFIG_PROPERTY(int, extraSmall, 4) CONFIG_PROPERTY(int, small, 8) CONFIG_PROPERTY(int, medium, 12) CONFIG_PROPERTY(int, large, 16) CONFIG_PROPERTY(int, largeIncreased, 20) CONFIG_PROPERTY(int, extraLarge, 28) CONFIG_PROPERTY(int, extraLargeIncreased, 32) CONFIG_PROPERTY(int, extraExtraLarge, 48) }; class PaddingTokens : public settings::ObjectNode { CONFIG_NODE(PaddingTokens, settings::ObjectNode) CONFIG_PROPERTY(int, extraSmall, 4) CONFIG_PROPERTY(int, smaller, 5) CONFIG_PROPERTY(int, small, 8) CONFIG_PROPERTY(int, medium, 12) CONFIG_PROPERTY(int, large, 16) CONFIG_PROPERTY(int, largeIncreased, 20) CONFIG_PROPERTY(int, extraLarge, 28) CONFIG_PROPERTY(int, extraLargeIncreased, 32) CONFIG_PROPERTY(int, extraExtraLarge, 48) }; class AnimDurationTokens : public settings::ObjectNode { CONFIG_NODE(AnimDurationTokens, settings::ObjectNode) CONFIG_GLOBAL_PROPERTY(int, small, 200) CONFIG_GLOBAL_PROPERTY(int, normal, 400) CONFIG_GLOBAL_PROPERTY(int, large, 600) CONFIG_GLOBAL_PROPERTY(int, extraLarge, 1000) CONFIG_GLOBAL_PROPERTY(int, expressiveFastSpatial, 350) CONFIG_GLOBAL_PROPERTY(int, expressiveDefaultSpatial, 500) CONFIG_GLOBAL_PROPERTY(int, expressiveSlowSpatial, 650) CONFIG_GLOBAL_PROPERTY(int, expressiveFastEffects, 150) CONFIG_GLOBAL_PROPERTY(int, expressiveDefaultEffects, 200) CONFIG_GLOBAL_PROPERTY(int, expressiveSlowEffects, 300) }; class AppearanceTokens : public settings::ObjectNode { CONFIG_NODE(AppearanceTokens, settings::ObjectNode) CONFIG_SUBOBJECT(AnimCurves, curves) CONFIG_SUBOBJECT(RoundingTokens, rounding) CONFIG_SUBOBJECT(SpacingTokens, spacing) CONFIG_SUBOBJECT(PaddingTokens, padding) CONFIG_SUBOBJECT(AnimDurationTokens, animDurations) }; class BarTokens : public settings::ObjectNode { CONFIG_NODE(BarTokens, settings::ObjectNode) CONFIG_PROPERTY(int, innerSize, 28) }; class DashboardTokens : public settings::ObjectNode { CONFIG_NODE(DashboardTokens, settings::ObjectNode) CONFIG_PROPERTY(int, processesWidth, 1200) CONFIG_PROPERTY(int, processesHeight, 800) CONFIG_PROPERTY(int, processesHeaderHeight, 40) CONFIG_PROPERTY(int, processesRowHeight, 40) CONFIG_PROPERTY(int, dateTimeWidth, 110) CONFIG_PROPERTY(int, infoIconSize, 25) CONFIG_PROPERTY(int, infoWidth, 200) CONFIG_PROPERTY(int, mediaCoverArtSize, 150) CONFIG_PROPERTY(int, mediaProgressSweep, 180) CONFIG_PROPERTY(int, mediaProgressThickness, 8) CONFIG_PROPERTY(int, mediaVisualizerSize, 200) CONFIG_PROPERTY(int, mediaWidth, 200) CONFIG_PROPERTY(int, resourceProgessThickness, 10) CONFIG_PROPERTY(int, resourceSize, 200) CONFIG_PROPERTY(int, tabIndicatorHeight, 3) CONFIG_PROPERTY(int, tabIndicatorSpacing, 5) CONFIG_PROPERTY(int, weatherWidth, 250) }; class SizeTokens : public settings::ObjectNode { CONFIG_NODE(SizeTokens, settings::ObjectNode) CONFIG_SUBOBJECT(DashboardTokens, dashboard) CONFIG_SUBOBJECT(BarTokens, bar) }; } // namespace ZShell::config