aboutsummaryrefslogtreecommitdiff
path: root/src/dillo.cc
diff options
context:
space:
mode:
authorcorvid <corvid@lavabit.com>2013-01-02 23:41:10 +0000
committercorvid <corvid@lavabit.com>2013-01-02 23:41:10 +0000
commit93e772ac635f029405443cfc1eab60a111ff83f9 (patch)
tree77ca1f456f9562339009351dd7d9c00a375adeda /src/dillo.cc
parent1474914cb55657253ffbbe8737bff7086dd2ed05 (diff)
throw in some more UI colors to play with
Diffstat (limited to 'src/dillo.cc')
-rw-r--r--src/dillo.cc44
1 files changed, 35 insertions, 9 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