- Added bunch of screens, fonts and images - Added script to read out frame buffer (function currently disabled in Firmware)
210 lines
7.8 KiB
C
210 lines
7.8 KiB
C
/*
|
|
* Display_Default_Configurations.c
|
|
*
|
|
* Created: Sun Jul 06 2025 15:52:12
|
|
* Author Chris
|
|
*/
|
|
#include "Display_Default_Configurations.h"
|
|
|
|
// ============================================================================================
|
|
// Defines
|
|
#define MODERN_PRIMARY_DARK DISPLAY_COLOR_FROM_RGB888(28, 28, 30) // Dark charcoal
|
|
#define MODERN_PRIMARY_LIGHT DISPLAY_COLOR_FROM_RGB888(242, 242, 247) // Light gray
|
|
#define MODERN_ACCENT_BLUE DISPLAY_COLOR_FROM_RGB888(0, 122, 255) // System blue
|
|
#define MODERN_ACCENT_GREEN DISPLAY_COLOR_FROM_RGB888(48, 209, 88) // System green
|
|
#define MODERN_ACCENT_ORANGE DISPLAY_COLOR_FROM_RGB888(255, 149, 0) // System orange
|
|
#define MODERN_ACCENT_RED DISPLAY_COLOR_FROM_RGB888(255, 69, 58) // System red
|
|
#define MODERN_SHADOW DISPLAY_COLOR_FROM_RGB888(0, 0, 0) // True black shadow
|
|
#define MODERN_GLASS_OVERLAY DISPLAY_COLOR_FROM_RGB888(255, 255, 255) // White overlay for glass effect
|
|
|
|
|
|
// ============================================================================================
|
|
// Variables
|
|
extern const unsigned char _Font_DejaVu_Sans_Mono_Bold_7x15[];
|
|
extern const unsigned char _Font_DejaVu_Sans_Mono_Bold_11x17[];
|
|
extern const unsigned char _Font_DejaVu_Sans_Mono_6x12[];
|
|
extern const unsigned char _Font_DejaVu_Sans_Mono_7x15[];
|
|
extern const unsigned char _Font_DejaVu_Sans_Mono_10x17[];
|
|
|
|
|
|
const Message_Box_Style _Message_Box_Style_Regular = {
|
|
.Font = _Font_DejaVu_Sans_Mono_10x17,
|
|
|
|
.Background_Color = MODERN_PRIMARY_DARK,
|
|
.Border_Color = DISPLAY_COLOR_FROM_RGB888(58, 58, 60),
|
|
.Text_Color = MODERN_PRIMARY_LIGHT,
|
|
.Accent_Color = MODERN_ACCENT_BLUE,
|
|
|
|
.Border_Radius = 15,
|
|
.Border_Thickness = 1,
|
|
|
|
.Padding[PADDING_LEFT] = 20,
|
|
.Padding[PADDING_TOP] = 20,
|
|
.Padding[PADDING_RIGHT] = 20,
|
|
.Padding[PADDING_BOTTOM] = 25
|
|
};
|
|
|
|
|
|
|
|
Configuration_Menu_Select _Configuration_Default_Select_Menu = {
|
|
.X_Offset = 70,
|
|
.X_Indent = -6,
|
|
.Font = { _Font_DejaVu_Sans_Mono_10x17, _Font_DejaVu_Sans_Mono_7x15, _Font_DejaVu_Sans_Mono_6x12 },
|
|
.Color = { DISPLAY_COLOR_WHITE, DISPLAY_COLOR_LIGHTGREY, DISPLAY_COLOR_DARKGREY }
|
|
};
|
|
|
|
Configuration_Menu_Hierarchical _Configuration_Menu_Hierarchical_Default = {
|
|
// Fonts
|
|
.Title_Font = _Font_DejaVu_Sans_Mono_Bold_11x17,
|
|
.Item_Font = _Font_DejaVu_Sans_Mono_7x15,
|
|
.Back_Font = _Font_DejaVu_Sans_Mono_6x12,
|
|
|
|
// Colors
|
|
.Title_Color = DISPLAY_COLOR_WHITE,
|
|
.Item_Selected_Color = DISPLAY_COLOR_CYAN,
|
|
.Item_Normal_Color = DISPLAY_COLOR_LIGHTGREY,
|
|
.Item_Back_Color = DISPLAY_COLOR_YELLOW,
|
|
.Background_Color = DISPLAY_COLOR_BLACK,
|
|
.Border_Color = DISPLAY_COLOR_DARKGREY,
|
|
.Indicator_Color = DISPLAY_COLOR_BLUE,
|
|
|
|
// Layout
|
|
.Title_Y_Offset = 25,
|
|
.Menu_Start_Y = 60,
|
|
.Item_Height = 20,
|
|
.Item_Spacing = 4,
|
|
.Item_Alignment = CENTER,
|
|
.Side_Padding = 30,
|
|
.Visible_Items = 6,
|
|
|
|
// Animation
|
|
.Animation_Speed = 8,
|
|
.Transition_Frames = 12,
|
|
|
|
// Visual indicators
|
|
.Show_Scroll_Indicators = true,
|
|
.Show_Item_Icons = false,
|
|
.Show_Sub_Menu_Indicators = true,
|
|
.Show_Selection_Box = true,
|
|
.Selection_Box_Padding = 4
|
|
};
|
|
|
|
// Configuration_Menu_Icon_Row
|
|
|
|
Configuration_Select_YesNo _Configuration_Default_Select_YesNo = {
|
|
.Title_Font = _Font_DejaVu_Sans_Mono_10x17,
|
|
.Title_Color = DISPLAY_COLOR_LIGHTGREY,
|
|
.Title_Y_Center = DISPLAY_Y_CENTER-20,
|
|
|
|
.Value_Font = _Font_DejaVu_Sans_Mono_10x17,
|
|
.Value_Center_X_Offset = 20,
|
|
.Value_Y_Center = DISPLAY_Y_CENTER+20,
|
|
.Animation_Speed = 20
|
|
};
|
|
|
|
Configuration_Select_List _Configuration_Default_Select_List = {
|
|
.Font = _Font_DejaVu_Sans_Mono_10x17,
|
|
.Color_Selected = DISPLAY_COLOR_WHITE,
|
|
.Color_Not_Selected = DISPLAY_COLOR_DARKGREY,
|
|
|
|
.Y_Top = 80,
|
|
.List_Entry_Y_Gap = 10,
|
|
.Visible_Items = 5, // Show 5 items on screen
|
|
|
|
.Show_Selection_Box = true,
|
|
.Selection_Box_Padding = 4,
|
|
.Selection_Box_Min_Width = 120,
|
|
.Selection_Box_Color = DISPLAY_COLOR_CYAN,
|
|
|
|
.Mark_Initial_Entry = true
|
|
};
|
|
|
|
Configuration_Select_Value _Configuration_Default_Select_Value = {
|
|
.Title_Font = _Font_DejaVu_Sans_Mono_Bold_7x15,
|
|
.Title_Color = DISPLAY_COLOR_WHITE,
|
|
.Title_Y_Center = DISPLAY_Y_CENTER-50,
|
|
|
|
.Value_Font = _Font_DejaVu_Sans_Mono_10x17,
|
|
.Value_Color = DISPLAY_COLOR_LIGHTGREY,
|
|
.Value_Y_Center = DISPLAY_Y_CENTER+20,
|
|
|
|
.Show_Arc = true,
|
|
.Arc_Color = DISPLAY_COLOR_WHITE
|
|
};
|
|
|
|
Configuration_Select_RGB _Configuration_Default_Select_RGB = {
|
|
// Ring colors for each RGB component - vibrant but not overwhelming
|
|
.Ring_Color_Red = DISPLAY_COLOR_FROM_RGB888(255, 68, 68), // Bright red #ff4444
|
|
.Ring_Color_Green = DISPLAY_COLOR_FROM_RGB888(68, 255, 68), // Bright green #44ff44
|
|
.Ring_Color_Blue = DISPLAY_COLOR_FROM_RGB888(68, 68, 255), // Bright blue #4444ff
|
|
|
|
// Geometry settings optimized for 240x240 circular display
|
|
.Center_Preview_Radius = 40, // 140px diameter color preview (leaves 50px margin)
|
|
.Progress_Ring_Radius = 100, // 200px diameter progress ring (20px from edge)
|
|
.Progress_Ring_Thickness = 8, // Substantial ring thickness for visibility
|
|
.Indicator_Radius = 8, // 16px diameter indicator dot
|
|
|
|
// Colors for UI elements - clean monochrome scheme
|
|
.Preview_Border_Color = DISPLAY_COLOR_WHITE, // White border for contrast
|
|
.Preview_Border_Thickness = 3, // Visible but not thick border
|
|
.Indicator_Core_Color = DISPLAY_COLOR_WHITE, // White indicator core
|
|
.Indicator_Glow_Color = DISPLAY_COLOR_FROM_RGB888(200, 200, 255), // Subtle blue glow
|
|
.Background_Ring_Color = DISPLAY_COLOR_FROM_RGB888(64, 64, 64), // Dark gray background ring
|
|
.Background_Ring_Thickness = 2, // Thin background ring
|
|
|
|
// Previous marker settings
|
|
.Previous_Marker_Color = DISPLAY_COLOR_WHITE,
|
|
.Previous_Marker_Radius = 3,
|
|
.Previous_Marker_Ring_Offset = 15, // 15 pixels inside the main ring
|
|
.Show_Previous_Markers = true,
|
|
|
|
// Text display settings - clear hierarchy
|
|
.Component_Font = _Font_DejaVu_Sans_Mono_Bold_11x17, // Bold for component labels (RED/GREEN/BLUE)
|
|
.Value_Font = _Font_DejaVu_Sans_Mono_10x17, // Large readable font for values
|
|
.Text_Color = DISPLAY_COLOR_WHITE, // High contrast white text
|
|
.Component_Text_Y_Offset = DISPLAY_Y_CENTER - 60,
|
|
.Value_Text_Y_Offset = DISPLAY_Y_CENTER + 60,
|
|
|
|
// Animation and interaction settings
|
|
.Smooth_Animation_Steps = 8, // Smooth but not too slow transitions
|
|
.Enable_Encoder_Acceleration = true, // Enable fast value changes
|
|
.Acceleration_Threshold = 3, // Trigger acceleration after 3 fast steps
|
|
.Acceleration_Multiplier = 5 // 5x speed during fast rotation
|
|
};
|
|
|
|
Configuration_Entry_Indicator _Configuration_Default_Entry_Indicator_Arc = {
|
|
.Type = INDICATOR_ARC,
|
|
|
|
.Color_Selected = DISPLAY_COLOR_WHITE,
|
|
.Color_Unselected = DISPLAY_COLOR_DARKGREY,
|
|
|
|
.Options.Arc.Angle_Span = 120,
|
|
.Options.Arc.Thickness = 4,
|
|
.Options.Arc.Radius = 100
|
|
};
|
|
|
|
Configuration_Entry_Indicator _Configuration_Default_Entry_Indicator_Dot = {
|
|
.Type = INDICATOR_DOT,
|
|
|
|
.Color_Selected = DISPLAY_COLOR_WHITE,
|
|
.Color_Unselected = DISPLAY_COLOR_DARKGREY,
|
|
|
|
.Options.Dot.Dot_Distance = 20,
|
|
.Options.Dot.Dot_Size = 5,
|
|
.Options.Dot.Y = 200,
|
|
.Options.Dot.Unselected_Frame_Only = true
|
|
};
|
|
|
|
|
|
// ============================================================================================
|
|
// Function Declarations
|
|
|
|
|
|
/*******************************************************************
|
|
Functions
|
|
*******************************************************************/
|
|
|
|
|
|
/*******************************************************************
|
|
Internal Functions
|
|
*******************************************************************/ |