#pragma once #include #include #include #include #include #include namespace gui { class Rect; class Label; }; // namespace gui /// one place to gather all common magical numbers from design namespace style { const inline uint32_t window_height = 600; const inline uint32_t window_width = 480; namespace header { const inline uint32_t height = 105; namespace font { const inline std::string time = "gt_pressura_regular_24"; const inline std::string title = "gt_pressura_bold_32"; }; // namespace font }; // namespace header namespace footer { const inline uint32_t height = 54; namespace font { const inline std::string bold = "gt_pressura_bold_24"; const inline std::string medium = "gt_pressura_regular_24"; }; // namespace font }; // namespace footer namespace window { const inline uint32_t default_left_margin = 20; const inline uint32_t default_right_margin = 20; const inline uint32_t default_body_width = style::window_width - style::window::default_right_margin - style::window::default_left_margin; const inline uint32_t default_body_height = style::window_height - style::header::height - style::footer::height; const inline uint32_t default_border_focus_w = 2; const inline uint32_t default_border_rect_no_focus = 1; const inline uint32_t default_border_no_focus_w = 0; namespace font { const inline std::string supersizemelight = "gt_pressura_light_90"; const inline std::string largelight = "gt_pressura_light_46"; const inline std::string verybigbold = "gt_pressura_bold_32"; const inline std::string bigbold = "gt_pressura_bold_30"; const inline std::string big = "gt_pressura_regular_30"; const inline std::string biglight = "gt_pressura_light_30"; const inline std::string mediumbold = "gt_pressura_bold_27"; const inline std::string medium = "gt_pressura_regular_27"; const inline std::string mediumlight = "gt_pressura_light_27"; const inline std::string smallbold = "gt_pressura_bold_24"; const inline std::string small = "gt_pressura_regular_24"; const inline std::string verysmallbold = "gt_pressura_bold_20"; const inline std::string verysmall = "gt_pressura_regular_20"; }; // namespace font const inline uint32_t list_offset_default = 12; namespace label { const inline uint32_t small_h = 33; const inline uint32_t default_h = 50; const inline uint32_t big_h = 55; }; // namespace label /// minimal label decoration - edges, focus & alignment void decorate(gui::Rect *el); void decorate(gui::Label *el); /// minimal label decoration for Option void decorateOption(gui::Label *el); namespace messages { inline const uint32_t sms_radius = 7; inline const uint32_t sms_border_no_focus = 1; inline const uint32_t sms_thread_item_h = 100; const inline unsigned short yaps_size_default = 10; const inline gui::Length sms_max_width = 320; const inline unsigned short sms_h_padding = 15; const inline unsigned short sms_h_left_padding = 25; const inline unsigned short sms_v_padding = 10; const inline unsigned short sms_vertical_spacer = 10; const inline unsigned short new_sms_vertical_spacer = 25; const inline unsigned short sms_failed_offset = 39; const inline unsigned short sms_error_icon_offset = 2; const inline gui::Padding sms_left_bubble_padding = gui::Padding(style::window::messages::sms_h_left_padding, style::window::messages::sms_v_padding, style::window::messages::sms_h_padding, style::window::messages::sms_v_padding); const inline gui::Padding sms_right_bubble_padding = gui::Padding(style::window::messages::sms_h_padding, style::window::messages::sms_v_padding, style::window::messages::sms_h_padding, style::window::messages::sms_v_padding); } // namespace messages }; // namespace window namespace settings { namespace date { const inline uint32_t date_time_item_height = 107; const inline uint32_t date_time_item_width = 120; const inline uint32_t date_time_item_title_height = 30; const inline uint32_t date_time_spacer_width = 20; const inline uint32_t date_time_x_offset = 30; const inline uint32_t date_time_box_h = 107; const inline uint32_t date_box_y_pos = 123; const inline uint32_t time_box_y_pos = 285; } // namespace date namespace ussd { constexpr uint32_t commonXPos = 40; constexpr uint32_t commonYPos = 110; constexpr uint32_t commonW = 420; constexpr uint32_t commonLabelH = 33; constexpr uint32_t commonTextH = 99; } // namespace ussd } // namespace settings namespace color { const inline gui::Color lightgrey = gui::Color(3, 0); }; // namespace color namespace text { const inline gui::Alignment defaultTextAlignment = gui::Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Bottom); const inline unsigned int maxTextLines = 10; }; // namespace text namespace strings { namespace common { const inline std::string open = "common_open"; const inline std::string call = "common_call"; const inline std::string send = "common_send"; const inline std::string save = "common_save"; const inline std::string confirm = "common_confirm"; const inline std::string select = "common_select"; const inline std::string use = "common_use"; const inline std::string ok = "common_ok"; const inline std::string back = "common_back"; const inline std::string set = "common_set"; const inline std::string yes = "common_yes"; const inline std::string no = "common_no"; const inline std::string Switch = "common_switch"; const inline std::string options = "common_options"; const inline std::string information = "common_information"; const inline std::string search = "common_search"; const inline std::string search_results = "common_search_results"; const inline std::string emoji = "common_emoji"; const inline std::string special_chars = "common_special_characters"; // days const inline std::string Monday = "common_monday"; const inline std::string Tuesday = "common_tuesday"; const inline std::string Wednesday = "common_wednesday"; const inline std::string Thursday = "common_thursday"; const inline std::string Friday = "common_friday"; const inline std::string Saturday = "common_saturday"; const inline std::string Sunday = "common_sunday"; // months const inline std::string January = "common_january"; const inline std::string February = "common_february"; const inline std::string March = "common_march"; const inline std::string April = "common_april"; const inline std::string May = "common_may"; const inline std::string June = "common_june"; const inline std::string July = "common_july"; const inline std::string August = "common_august"; const inline std::string September = "common_september"; const inline std::string October = "common_october"; const inline std::string November = "common_november"; const inline std::string December = "common_december"; const inline std::string Yesterday = "common_yesterday"; } // namespace common } // namespace strings namespace listview { /// Possible List boundaries handling types enum class Boundaries { Fixed, ///< Fixed - list will stop scrolling on first or last elements on appropriate top or bottom ///< directions. Continuous ///< Continuous - list will continue to beginning or end on first or last elements on ///< appropriate top or bottom directions. }; /// Possible List scrolling directions enum class Direction { Top, Bottom }; /// Possible List rebuild types enum class RebuildType { Full, ///< Full rebuild - resets lists to all initial conditions and request data from beginning. InPlace, ///< InPlace rebuild - stores currently focused part of list and rebuild from that part. OnOffset ///< OnOffset rebuild - resets lists to all initial conditions and request data from provided ///< offset. }; namespace scroll { const inline uint32_t x = 0; const inline uint32_t y = 0; const inline uint32_t w = 5; const inline uint32_t h = 0; const inline uint32_t radius = 2; const inline gui::Color color = gui::Color{0, 0}; const inline uint32_t margin = 5; const inline uint32_t min_space = 10; const inline uint32_t item_margin = 10; } // namespace scroll const inline uint32_t item_width_with_scroll = style::window::default_body_width - style::listview::scroll::item_margin; const inline uint32_t body_width_with_scroll = style::window::default_body_width + style::listview::scroll::margin; const inline uint32_t right_margin = 15; const inline uint32_t top_margin_small = 5; const inline uint32_t top_margin_big = 8; const inline uint32_t top_margin_very_big = 12; const inline uint32_t item_span_small = 8; const inline uint32_t item_span_big = 12; } // namespace listview namespace margins { const inline uint32_t small = 6; const inline uint32_t big = 8; const inline uint32_t very_big = 12; const inline uint32_t huge = 24; } // namespace margins namespace padding { const inline uint32_t default_left_text_padding = 10; } // namespace padding }; // namespace style