diff options
author | corvid <corvid@lavabit.com> | 2013-01-02 23:41:10 +0000 |
---|---|---|
committer | corvid <corvid@lavabit.com> | 2013-01-02 23:41:10 +0000 |
commit | 93e772ac635f029405443cfc1eab60a111ff83f9 (patch) | |
tree | 77ca1f456f9562339009351dd7d9c00a375adeda /src | |
parent | 1474914cb55657253ffbbe8737bff7086dd2ed05 (diff) |
throw in some more UI colors to play with
Diffstat (limited to 'src')
-rw-r--r-- | src/dillo.cc | 44 | ||||
-rw-r--r-- | src/prefs.c | 6 | ||||
-rw-r--r-- | src/prefs.h | 6 | ||||
-rw-r--r-- | src/prefsparser.cc | 7 | ||||
-rw-r--r-- | src/tipwin.cc | 2 | ||||
-rw-r--r-- | src/uicmd.cc | 12 |
6 files changed, 61 insertions, 16 deletions
diff --git a/src/dillo.cc b/src/dillo.cc index faad050f..80d0c949 100644 --- a/src/dillo.cc +++ b/src/dillo.cc @@ -237,12 +237,45 @@ static void checkPreferredFonts() checkFont(prefs.font_fantasy, "fantasy"); } -static void setColor(int32_t color, void (*fn) (uchar, uchar, uchar)) +static void setColorFLTK(int32_t color, void (*fn) (uchar, uchar, uchar)) { if (color != -1) fn(color >> 16, (color >> 8) & 0xff, color & 0xff); } +static void setColorPrefWdef(int32_t &color, int32_t default_val) +{ + if (color == -1) + color = default_val; + else if (color == 0) + color = FL_BLACK; + else + color <<= 8; +} + +static void setColors() +{ + unsigned rgb; + + setColorFLTK(prefs.ui_main_bg_color, Fl::background); + setColorFLTK(prefs.ui_text_bg_color, Fl::background2); + setColorFLTK(prefs.ui_fg_color, Fl::foreground); + + if (prefs.ui_selection_color == -1) + rgb = Fl::get_color(fl_contrast(FL_SELECTION_COLOR, + FL_BACKGROUND2_COLOR)); + else + rgb = prefs.ui_selection_color << 8; + Fl::set_color(FL_SELECTION_COLOR, rgb); + + setColorPrefWdef(prefs.ui_button_highlight_color, + fl_lighter(FL_BACKGROUND_COLOR)); + setColorPrefWdef(prefs.ui_tab_active_bg_color, FL_BACKGROUND2_COLOR); + setColorPrefWdef(prefs.ui_tab_bg_color, FL_BACKGROUND_COLOR); + setColorPrefWdef(prefs.ui_tab_active_fg_color, prefs.ui_fg_color); + setColorPrefWdef(prefs.ui_tab_fg_color, prefs.ui_fg_color); +} + /* * Given a command line argument, build a DilloUrl for it. */ @@ -388,14 +421,7 @@ int main(int argc, char **argv) Fl_Window::default_xclass("dillo"); Fl::scheme(prefs.theme); - - setColor(prefs.ui_main_bg_color, Fl::background); - setColor(prefs.ui_text_bg_color, Fl::background2); - setColor(prefs.ui_fg_color, Fl::foreground); - - unsigned rgb = Fl::get_color(fl_contrast(FL_SELECTION_COLOR, - FL_BACKGROUND2_COLOR)); - Fl::set_color(FL_SELECTION_COLOR, rgb); + setColors(); if (!prefs.show_tooltip) { // turn off UI tooltips diff --git a/src/prefs.c b/src/prefs.c index 3ad65832..9295d87e 100644 --- a/src/prefs.c +++ b/src/prefs.c @@ -99,8 +99,14 @@ void a_Prefs_init(void) prefs.small_icons = FALSE; prefs.start_page = a_Url_new(PREFS_START_PAGE, NULL); prefs.theme = dStrdup(PREFS_THEME); + prefs.ui_button_highlight_color = -1; prefs.ui_fg_color = -1; prefs.ui_main_bg_color = -1; + prefs.ui_selection_color = -1; + prefs.ui_tab_active_bg_color = -1; + prefs.ui_tab_bg_color = -1; + prefs.ui_tab_active_fg_color = -1; + prefs.ui_tab_fg_color = -1; prefs.ui_text_bg_color = -1; prefs.w3c_plus_heuristics = TRUE; diff --git a/src/prefs.h b/src/prefs.h index 22af91fd..68bf773a 100644 --- a/src/prefs.h +++ b/src/prefs.h @@ -44,8 +44,14 @@ struct _DilloPrefs { DilloUrl *home; bool_t allow_white_bg; int32_t bg_color; + int32_t ui_button_highlight_color; int32_t ui_fg_color; int32_t ui_main_bg_color; + int32_t ui_selection_color; + int32_t ui_tab_active_bg_color; + int32_t ui_tab_active_fg_color; + int32_t ui_tab_bg_color; + int32_t ui_tab_fg_color; int32_t ui_text_bg_color; bool_t contrast_visited_color; bool_t show_tooltip; diff --git a/src/prefsparser.cc b/src/prefsparser.cc index eef93ea1..55c5b5e4 100644 --- a/src/prefsparser.cc +++ b/src/prefsparser.cc @@ -109,8 +109,15 @@ int PrefsParser::parseOption(char *name, char *value) { "small_icons", &prefs.small_icons, PREFS_BOOL }, { "start_page", &prefs.start_page, PREFS_URL }, { "theme", &prefs.theme, PREFS_STRING }, + { "ui_button_highlight_color", &prefs.ui_button_highlight_color, + PREFS_COLOR }, { "ui_fg_color", &prefs.ui_fg_color, PREFS_COLOR }, { "ui_main_bg_color", &prefs.ui_main_bg_color, PREFS_COLOR }, + { "ui_selection_color", &prefs.ui_selection_color, PREFS_COLOR }, + { "ui_tab_active_bg_color", &prefs.ui_tab_active_bg_color, PREFS_COLOR }, + { "ui_tab_bg_color", &prefs.ui_tab_bg_color, PREFS_COLOR }, + { "ui_tab_active_fg_color", &prefs.ui_tab_active_fg_color, PREFS_COLOR }, + { "ui_tab_fg_color", &prefs.ui_tab_fg_color, PREFS_COLOR }, { "ui_text_bg_color", &prefs.ui_text_bg_color, PREFS_COLOR }, { "w3c_plus_heuristics", &prefs.w3c_plus_heuristics, PREFS_BOOL }, { "penalty_hyphen", &prefs.penalty_hyphen, PREFS_FRACTION_100 }, diff --git a/src/tipwin.cc b/src/tipwin.cc index 960571a1..b3d18f27 100644 --- a/src/tipwin.cc +++ b/src/tipwin.cc @@ -174,7 +174,7 @@ CustButton::CustButton(int x, int y, int w, int h, const char *l) : TipWinButton(x,y,w,h,l) { norm_color = color(); - light_color = fl_lighter(norm_color); + light_color = prefs.ui_button_highlight_color; } int CustButton::handle(int e) diff --git a/src/uicmd.cc b/src/uicmd.cc index ea813425..54efa7a4 100644 --- a/src/uicmd.cc +++ b/src/uicmd.cc @@ -137,8 +137,8 @@ public: Pack = NULL; focus_counter = 0; tab_w = 50, tab_h = th, ctab_h = 1, btn_w = 20, ctl_w = 1*btn_w+2; - tabcolor_active = fl_lighter(FL_BACKGROUND_COLOR); - tabcolor_inactive = fl_darker(FL_BACKGROUND_COLOR); + tabcolor_active = prefs.ui_tab_active_bg_color; + tabcolor_inactive = prefs.ui_tab_bg_color; resize(0,0,ww,ctab_h); /* tab buttons go inside a pack within a scroll */ Scroll = new Fl_Scroll(0,0,ww-ctl_w,ctab_h); @@ -283,8 +283,8 @@ UI *CustTabs::add_new_tab(UI *old_ui, int focus) btn->clear_visible_focus(); btn->box(FL_GTK_THIN_UP_BOX); btn->color(focus ? tabcolor_active : tabcolor_inactive); - btn->labelcolor(fl_contrast(FL_FOREGROUND_COLOR, - focus ? tabcolor_active : tabcolor_inactive)); + btn->labelcolor(focus ? prefs.ui_tab_active_fg_color : + prefs.ui_tab_fg_color); btn->ui(new_ui); btn->callback(tab_btn_cb, this); Pack->add(btn); // append @@ -413,7 +413,7 @@ void CustTabs::switch_tab(CustTabButton *cbtn) if ((idx = get_btn_idx(old_ui)) != -1) { btn = (CustTabButton*)Pack->child(idx); btn->color(tabcolor_inactive); - btn->labelcolor(fl_contrast(FL_FOREGROUND_COLOR, tabcolor_inactive)); + btn->labelcolor(prefs.ui_tab_fg_color); btn->redraw(); } /* We make a point of calling show() before value() is changed because @@ -428,7 +428,7 @@ void CustTabs::switch_tab(CustTabButton *cbtn) cbtn->ui()->show(); Wizard->value(cbtn->ui()); cbtn->color(tabcolor_active); - cbtn->labelcolor(fl_contrast(FL_FOREGROUND_COLOR, tabcolor_active)); + cbtn->labelcolor(prefs.ui_tab_active_fg_color); cbtn->redraw(); update_pack_offset(); |