/* * Copyright (C) 2005-2007 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ #include "para.h" #include "gui.h" #include #define NUM_THEMES 2 static int current_theme_num; static void init_theme_simple(struct gui_theme *t) { struct stat_item_data *d = t->data; t->name = "simple"; t->author = "Andre Noll"; t->lines_min = 5; t->top_lines_min = 2; t->cols_min = 40; t->top_lines_default = 2; t->sb_bg = COLOR_CYAN; t->sb_fg = COLOR_BLACK; t->cmd_bg = COLOR_WHITE; t->cmd_fg = COLOR_BLACK; t->output_bg = COLOR_BLUE; t->output_fg = COLOR_WHITE; t->msg_bg = COLOR_BLUE; t->msg_fg = COLOR_YELLOW; t->err_msg_bg = COLOR_RED; t->err_msg_fg = COLOR_WHITE; t->welcome_bg = COLOR_BLUE; t->welcome_fg = COLOR_WHITE; t->sep_bg = COLOR_BLUE; t->sep_fg = COLOR_CYAN; t->default_fg = COLOR_WHITE; t->default_bg = COLOR_BLUE; t->sep_str = "*"; d[SI_STATUS_BAR].prefix = ""; d[SI_STATUS_BAR].postfix = ""; d[SI_STATUS_BAR].fg = COLOR_WHITE; d[SI_STATUS_BAR].bg = COLOR_BLUE; d[SI_STATUS_BAR].align = CENTER; d[SI_STATUS_BAR].x = 0; d[SI_STATUS_BAR].y = 7; d[SI_STATUS_BAR].len = 100; d[SI_STATUS].prefix = "para_server: "; d[SI_STATUS].postfix = ""; d[SI_STATUS].fg = COLOR_WHITE; d[SI_STATUS].bg = COLOR_BLUE; d[SI_STATUS].align = CENTER; d[SI_STATUS].x = 0; d[SI_STATUS].y = 60; d[SI_STATUS].len = 50; d[SI_AUDIOD_STATUS].prefix = "para_audiod: "; d[SI_AUDIOD_STATUS].postfix = ""; d[SI_AUDIOD_STATUS].fg = COLOR_WHITE; d[SI_AUDIOD_STATUS].bg = COLOR_BLUE; d[SI_AUDIOD_STATUS].align = CENTER; d[SI_AUDIOD_STATUS].x = 50; d[SI_AUDIOD_STATUS].y = 60; d[SI_AUDIOD_STATUS].len = 50; } static void init_theme_colorful_blackness(struct gui_theme *t) { struct stat_item_data *d = t->data; t->name = "colorful blackness"; t->author = "Andre Noll"; /* minimal number of lines that is needed to display all * information provided by this theme */ t->lines_min = 15; t->cols_min = 80; t->top_lines_min = 9; t->top_lines_default = 11; /* default number of lines */ t->sb_bg = COLOR_GREEN; /* status bar background */ t->sb_fg = COLOR_BLACK; /* status bar foreground */ t->cmd_bg = COLOR_BLACK; t->cmd_fg = COLOR_YELLOW; t->output_bg = COLOR_BLACK; t->output_fg = COLOR_CYAN; t->msg_bg = COLOR_BLACK; t->msg_fg = COLOR_WHITE; t->err_msg_bg = COLOR_RED; t->err_msg_fg = COLOR_WHITE; t->welcome_bg = COLOR_BLUE; t->welcome_fg = COLOR_WHITE; t->sep_bg = COLOR_BLACK; /* color of the separator */ t->sep_fg = COLOR_BLUE; t->sep_str = "-"; t->default_bg = COLOR_BLACK; t->default_fg = COLOR_MAGENTA; d[SI_PLAY_TIME].prefix = ""; d[SI_PLAY_TIME].postfix = ""; d[SI_PLAY_TIME].fg = COLOR_CYAN; d[SI_PLAY_TIME].bg = COLOR_BLACK; d[SI_PLAY_TIME].align = CENTER; d[SI_PLAY_TIME].x = 0; d[SI_PLAY_TIME].y = 7; d[SI_PLAY_TIME].len = 35; d[SI_STATUS_BAR].prefix = ""; d[SI_STATUS_BAR].postfix = ""; d[SI_STATUS_BAR].fg = COLOR_CYAN; d[SI_STATUS_BAR].bg = COLOR_BLACK; d[SI_STATUS_BAR].align = LEFT; d[SI_STATUS_BAR].x = 35; d[SI_STATUS_BAR].y = 7; d[SI_STATUS_BAR].len = 65; d[SI_STATUS].prefix = ""; d[SI_STATUS].postfix = " "; d[SI_STATUS].fg = COLOR_RED; d[SI_STATUS].bg = COLOR_BLACK; d[SI_STATUS].align = RIGHT; d[SI_STATUS].x = 0; d[SI_STATUS].y = 17; d[SI_STATUS].len = 11; d[SI_STATUS_FLAGS].prefix = "("; d[SI_STATUS_FLAGS].postfix = ")"; d[SI_STATUS_FLAGS].fg = COLOR_RED; d[SI_STATUS_FLAGS].bg = COLOR_BLACK; d[SI_STATUS_FLAGS].align = LEFT; d[SI_STATUS_FLAGS].x = 11; d[SI_STATUS_FLAGS].y = 17; d[SI_STATUS_FLAGS].len = 10; d[SI_SELECTOR].prefix = "selector: "; d[SI_SELECTOR].postfix = ""; d[SI_SELECTOR].fg = COLOR_RED; d[SI_SELECTOR].bg = COLOR_BLACK; d[SI_SELECTOR].align = CENTER; d[SI_SELECTOR].x = 21; d[SI_SELECTOR].y = 17; d[SI_SELECTOR].len = 21; d[SI_FORMAT].prefix = "format: "; d[SI_FORMAT].postfix = ""; d[SI_FORMAT].fg = COLOR_RED; d[SI_FORMAT].bg = COLOR_BLACK; d[SI_FORMAT].align = CENTER; d[SI_FORMAT].x = 42; d[SI_FORMAT].y = 17; d[SI_FORMAT].len = 18; d[SI_NUM_PLAYED].prefix = "#"; d[SI_NUM_PLAYED].postfix = ""; d[SI_NUM_PLAYED].fg = COLOR_RED; d[SI_NUM_PLAYED].bg = COLOR_BLACK; d[SI_NUM_PLAYED].align = CENTER; d[SI_NUM_PLAYED].x = 60; d[SI_NUM_PLAYED].y = 17; d[SI_NUM_PLAYED].len = 15; d[SI_UPTIME].prefix = "SUp: "; d[SI_UPTIME].postfix = ""; d[SI_UPTIME].fg = COLOR_RED; d[SI_UPTIME].bg = COLOR_BLACK; d[SI_UPTIME].align = CENTER; d[SI_UPTIME].x = 75; d[SI_UPTIME].y = 17; d[SI_UPTIME].len = 25; d[SI_AUDIOD_STATUS].prefix = "audiod: "; d[SI_AUDIOD_STATUS].postfix = ""; d[SI_AUDIOD_STATUS].fg = COLOR_MAGENTA; d[SI_AUDIOD_STATUS].bg = COLOR_BLACK; d[SI_AUDIOD_STATUS].align = RIGHT; d[SI_AUDIOD_STATUS].x = 0; d[SI_AUDIOD_STATUS].y = 27; d[SI_AUDIOD_STATUS].len = 14; d[SI_DECODER_FLAGS].prefix = "["; d[SI_DECODER_FLAGS].postfix = "]"; d[SI_DECODER_FLAGS].fg = COLOR_MAGENTA; d[SI_DECODER_FLAGS].bg = COLOR_BLACK; d[SI_DECODER_FLAGS].align = LEFT; d[SI_DECODER_FLAGS].x = 15; d[SI_DECODER_FLAGS].y = 27; d[SI_DECODER_FLAGS].len = 10; d[SI_MTIME].prefix = "Mtime: "; d[SI_MTIME].postfix = ""; d[SI_MTIME].fg = COLOR_MAGENTA; d[SI_MTIME].bg = COLOR_BLACK; d[SI_MTIME].align = CENTER; d[SI_MTIME].x = 25; d[SI_MTIME].y = 27; d[SI_MTIME].len = 29; d[SI_FILE_SIZE].prefix = "Size: "; d[SI_FILE_SIZE].postfix = " kb"; d[SI_FILE_SIZE].fg = COLOR_MAGENTA; d[SI_FILE_SIZE].bg = COLOR_BLACK; d[SI_FILE_SIZE].align = CENTER; d[SI_FILE_SIZE].x = 54; d[SI_FILE_SIZE].y = 27; d[SI_FILE_SIZE].len = 24; d[SI_AUDIOD_UPTIME].prefix = "AUp: "; d[SI_AUDIOD_UPTIME].postfix = ""; d[SI_AUDIOD_UPTIME].fg = COLOR_MAGENTA; d[SI_AUDIOD_UPTIME].bg = COLOR_BLACK; d[SI_AUDIOD_UPTIME].align = CENTER; d[SI_AUDIOD_UPTIME].x = 78; d[SI_AUDIOD_UPTIME].y = 27; d[SI_AUDIOD_UPTIME].len = 22; d[SI_AUDIO_INFO1].prefix = ""; d[SI_AUDIO_INFO1].postfix = ""; d[SI_AUDIO_INFO1].fg = COLOR_GREEN; d[SI_AUDIO_INFO1].bg = COLOR_BLACK; d[SI_AUDIO_INFO1].align = CENTER; d[SI_AUDIO_INFO1].x = 0; d[SI_AUDIO_INFO1].y = 43; d[SI_AUDIO_INFO1].len = 100; d[SI_AUDIO_INFO2].prefix = ""; d[SI_AUDIO_INFO2].postfix = ""; d[SI_AUDIO_INFO2].fg = COLOR_GREEN; d[SI_AUDIO_INFO2].bg = COLOR_BLACK; d[SI_AUDIO_INFO2].align = CENTER; d[SI_AUDIO_INFO2].x = 0; d[SI_AUDIO_INFO2].y = 53; d[SI_AUDIO_INFO2].len = 100; d[SI_AUDIO_INFO3].prefix = ""; d[SI_AUDIO_INFO3].postfix = ""; d[SI_AUDIO_INFO3].fg = COLOR_GREEN; d[SI_AUDIO_INFO3].bg = COLOR_BLACK; d[SI_AUDIO_INFO3].align = CENTER; d[SI_AUDIO_INFO3].x = 0; d[SI_AUDIO_INFO3].y = 63; d[SI_AUDIO_INFO3].len = 100; d[SI_DBINFO1].prefix = ""; d[SI_DBINFO1].postfix = ""; d[SI_DBINFO1].fg = COLOR_YELLOW; d[SI_DBINFO1].bg = COLOR_BLACK; d[SI_DBINFO1].align = CENTER; d[SI_DBINFO1].x = 0; d[SI_DBINFO1].y = 77; d[SI_DBINFO1].len = 100; d[SI_DBINFO2].prefix = ""; d[SI_DBINFO2].postfix = ""; d[SI_DBINFO2].fg = COLOR_YELLOW; d[SI_DBINFO2].bg = COLOR_BLACK; d[SI_DBINFO2].align = CENTER; d[SI_DBINFO2].x = 0; d[SI_DBINFO2].y = 87; d[SI_DBINFO2].len = 100; d[SI_DBINFO3].prefix = ""; d[SI_DBINFO3].postfix = ""; d[SI_DBINFO3].fg = COLOR_YELLOW; d[SI_DBINFO3].bg = COLOR_BLACK; d[SI_DBINFO3].align = CENTER; d[SI_DBINFO3].x = 0; d[SI_DBINFO3].y = 97; d[SI_DBINFO3].len = 100; } void init_theme(int num, struct gui_theme *t) { int i; for (i = 0; i < NUM_STAT_ITEMS; i++) t->data[i].len = 0; current_theme_num = num; return (num % NUM_THEMES)? init_theme_simple(t) : init_theme_colorful_blackness(t); } void prev_theme(struct gui_theme *t) { return init_theme(++current_theme_num, t); } void next_theme(struct gui_theme *t) { return init_theme(--current_theme_num, t); }