mirror of
https://github.com/marcusDenslow/FERRUM.git
synced 2026-10-25 13:28:51 +01:00
92 lines
2.7 KiB
C
92 lines
2.7 KiB
C
#ifndef THEMES_H
|
|
#define THEMES_H
|
|
|
|
#include "common.h"
|
|
|
|
typedef struct {
|
|
// Standard console colors
|
|
WORD PRIMARY_COLOR; // Main text color
|
|
WORD SECONDARY_COLOR; // Secondary text color
|
|
WORD ACCENT_COLOR; // Color for highlights/important elements
|
|
WORD SUCCESS_COLOR; // Success messages
|
|
WORD ERROR_COLOR; // Error messages
|
|
WORD WARNING_COLOR; // Warning messages
|
|
|
|
WORD INVALID_COMMAND_COLOR; // unrecognized command
|
|
|
|
// UI element colors
|
|
WORD HEADER_COLOR; // Headers and titles
|
|
WORD STATUS_BAR_COLOR; // Status bar background
|
|
WORD STATUS_TEXT_COLOR; // Status bar text
|
|
WORD PROMPT_COLOR; // Command prompt
|
|
|
|
// File system colors
|
|
WORD DIRECTORY_COLOR; // Directory names
|
|
WORD EXECUTABLE_COLOR; // Executable files
|
|
WORD TEXT_FILE_COLOR; // Text files
|
|
WORD IMAGE_FILE_COLOR; // Image files
|
|
WORD CODE_FILE_COLOR; // Code files (non-executable)
|
|
WORD ARCHIVE_FILE_COLOR; // Archive files
|
|
|
|
// Syntax highlighting colors
|
|
WORD SYNTAX_KEYWORD; // Keywords in syntax highlighting
|
|
WORD SYNTAX_STRING; // Strings in syntax highlighting
|
|
WORD SYNTAX_COMMENT; // Comments in syntax highlighting
|
|
WORD SYNTAX_NUMBER; // Numbers in syntax highlighting
|
|
WORD SYNTAX_PREPROCESSOR; // Preprocessor in syntax highlighting
|
|
|
|
// ANSI true color definitions (for modern terminals)
|
|
char ANSI_BASE[20]; // Base color
|
|
char ANSI_SURFACE[20]; // Surface color
|
|
char ANSI_OVERLAY[20]; // Overlay color
|
|
char ANSI_MUTED[20]; // Muted color
|
|
char ANSI_SUBTLE[20]; // Subtle color
|
|
char ANSI_TEXT[20]; // Text color
|
|
char ANSI_LOVE[20]; // Love/Red color
|
|
char ANSI_GOLD[20]; // Gold color
|
|
char ANSI_ROSE[20]; // Rose/pink color
|
|
char ANSI_PINE[20]; // Pine color
|
|
char ANSI_FOAM[20]; // Foam color
|
|
char ANSI_IRIS[20]; // Iris color
|
|
char ANSI_HIGHLIGHT[20]; // Highlight color
|
|
|
|
char ANSI_INVALID_COMMAND[20];
|
|
|
|
// Flag to indicate if ANSI colors should be used
|
|
BOOL use_ansi_colors;
|
|
|
|
// Name of the theme
|
|
char name[32];
|
|
} ShellTheme;
|
|
|
|
// Initialize theme system
|
|
void init_theme_system(void);
|
|
|
|
// Shutdown theme system
|
|
void shutdown_themes(void);
|
|
|
|
// Initialize themes for shell startup
|
|
void init_themes(void);
|
|
|
|
// Load a theme by name
|
|
int load_theme(const char *theme_name);
|
|
|
|
// Apply current theme settings
|
|
void apply_current_theme(void);
|
|
|
|
// Get current theme
|
|
const ShellTheme *get_current_theme(void);
|
|
|
|
// List available themes
|
|
void list_available_themes(void);
|
|
|
|
// Get theme names for tab completion
|
|
char **get_theme_names(int *theme_count);
|
|
|
|
// Command handler for "theme" command
|
|
int lsh_theme(char **args);
|
|
|
|
// Current active theme
|
|
extern ShellTheme current_theme;
|
|
|
|
#endif // THEMES_H
|