diff options
Diffstat (limited to 'old/test/choose_colors2.diff')
-rw-r--r-- | old/test/choose_colors2.diff | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/old/test/choose_colors2.diff b/old/test/choose_colors2.diff new file mode 100644 index 0000000..cabfdc7 --- /dev/null +++ b/old/test/choose_colors2.diff @@ -0,0 +1,211 @@ +diff -r 901072d419b3 src/dillo.cc +--- a/src/dillo.cc Wed Jan 02 23:41:10 2013 +0000 ++++ b/src/dillo.cc Thu Jan 03 06:25:22 2013 +0000 +@@ -219,6 +219,30 @@ + fl_measure(o->value, W, H, interpret_symbols); + } + ++static void colorMenuLabelDraw(const Fl_Label* o, int X, int Y, int W, int H, ++ Fl_Align align) ++{ ++ const int interpret_symbols = 1; ++ ++ fl_draw_shortcut = 0; ++ fl_font(o->font, o->size); ++ fl_color((Fl_Color)o->color); ++ fl_rectf(X+1, Y+1, 3*H/2 - 2, H-2); ++ fl_color(FL_FOREGROUND_COLOR); ++ fl_draw(o->value, X+3*H/2 + 2, Y, W-3*H/2-2, H, align, o->image, ++ interpret_symbols); ++} ++ ++static void colorMenuLabelMeasure(const Fl_Label* o, int& W, int& H) ++{ ++ const int interpret_symbols = 1; ++ ++ fl_draw_shortcut = 0; ++ fl_font(o->font, o->size); ++ fl_measure(o->value, W, H, interpret_symbols); ++ W += 3*H/2 + 2; ++} ++ + /* + * Tell the user if default/pref fonts can't be found. + */ +@@ -434,6 +458,8 @@ + // Use to permit '&' interpretation. + Fl::set_labeltype(FL_FREE_LABELTYPE,custMenuLabelDraw,custMenuLabelMeasure); + ++ Fl::set_labeltype((Fl_Labeltype)(FL_FREE_LABELTYPE+1),colorMenuLabelDraw, ++ colorMenuLabelMeasure); + checkPreferredFonts(); + + /* use preferred font for UI */ +diff -r 901072d419b3 src/menu.cc +--- a/src/menu.cc Wed Jan 02 23:41:10 2013 +0000 ++++ b/src/menu.cc Thu Jan 03 06:25:22 2013 +0000 +@@ -13,6 +13,7 @@ + + #include <FL/Fl.H> + #include <FL/Fl_Menu_Item.H> ++#include <FL/Fl_Color_Chooser.H> + + #include "lout/misc.hh" /* SimpleVector */ + #include "msg.h" +@@ -659,6 +660,57 @@ + ui->change_panel(VOIDP2INT(user_data), ui->get_smallicons()); + } + ++static Fl_Color get_label_color(int32_t pref_color) ++{ ++ if (!(pref_color & 0xffffff00)) ++ return (Fl_Color)pref_color; ++ ++ int r = (pref_color >> 24) & 0xff, g = (pref_color >> 16) & 0xff, ++ b = (pref_color >> 8) & 0xff; ++ ++ return fl_color_cube(r * (FL_NUM_RED - 1) / 255, ++ g * (FL_NUM_GREEN - 1) / 255, ++ b * (FL_NUM_BLUE - 1) / 255); ++} ++ ++static void Menu_base_color_change_cb(Fl_Widget*, void *user_data) ++{ ++ Fl_Color colornum = (Fl_Color)user_data; ++ int old_rgb = Fl::get_color(colornum); ++ uchar r = old_rgb >> 24, ++ g = (old_rgb >> 16) & 0xff, ++ b = (old_rgb >> 8) & 0xff; ++ ++ if (fl_color_chooser("Dillo: select color", r, g, b)) { ++ if (colornum == FL_BACKGROUND_COLOR) { ++ // have to update "gray ramp" ++ Fl::background(r, g, b); ++ } else { ++ Fl::set_color(colornum, r, g, b); ++ } ++ ((UI*)popup_bw->ui)->window()->redraw(); ++ } ++} ++ ++static void Menu_color_change_cb(Fl_Widget *w, void *user_data) ++{ ++ int32_t *prefp = (int32_t *)user_data; ++ uint rgb; ++ ++ if (*prefp & 0xffffff00) ++ rgb = *prefp; ++ else ++ rgb = Fl::get_color(*prefp); ++ rgb >>= 8; ++ ++ uchar r = rgb >> 16, g = (rgb >> 8) & 0xff, b = rgb & 0xff; ++ ++ if (fl_color_chooser("Dillo: select color", r, g, b)) { ++ *prefp = (r << 24) | (g << 16) | (b << 8); ++ ((UI*)popup_bw->ui)->window()->redraw(); ++ } ++} ++ + /* + * Toggle loading of images -- and load them if enabling. + */ +@@ -700,6 +752,27 @@ + {"small icons", 0,Menu_panel_change_cb,(void*)10, + FL_MENU_TOGGLE,0,0,0,0}, + {0,0,0,0,0,0,0,0,0}, ++ {"UI colors", 0, Menu_nop_cb, (void*)0, FL_SUBMENU,0,0,0,0}, ++ {"foreground", 0, Menu_base_color_change_cb, ++ (void*)FL_FOREGROUND_COLOR,0,FL_FREE_LABELTYPE+1,0,0, ++ FL_FOREGROUND_COLOR}, ++ {"main bg", 0, Menu_base_color_change_cb, (void*)FL_BACKGROUND_COLOR, ++ 0,FL_FREE_LABELTYPE+1,0,0,FL_BACKGROUND_COLOR}, ++ {"text bg", 0, Menu_base_color_change_cb, (void*)FL_BACKGROUND2_COLOR, ++ 0,FL_FREE_LABELTYPE+1,0,0,FL_BACKGROUND2_COLOR}, ++ {"selection", 0, Menu_base_color_change_cb, (void*)FL_SELECTION_COLOR, ++ 0,FL_FREE_LABELTYPE+1,0,0,FL_SELECTION_COLOR}, ++ {"button highlight", 0, Menu_color_change_cb, ++ &prefs.ui_button_highlight_color,0,FL_FREE_LABELTYPE+1,0,0,0}, ++ {"tab active bg", 0, Menu_color_change_cb, ++ &prefs.ui_tab_active_bg_color,0,FL_FREE_LABELTYPE+1,0,0,0}, ++ {"tab active fg", 0, Menu_color_change_cb, ++ &prefs.ui_tab_active_fg_color,0,FL_FREE_LABELTYPE+1,0,0,0}, ++ {"tab bg", 0, Menu_color_change_cb, &prefs.ui_tab_bg_color,0, ++ FL_FREE_LABELTYPE+1,0,0,0}, ++ {"tab fg", 0, Menu_color_change_cb, &prefs.ui_tab_fg_color,0, ++ FL_FREE_LABELTYPE+1,0,0,0}, ++ {0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0} + }; + +@@ -716,6 +789,11 @@ + pm[4+cur_panelsize].setonly(); + cur_smallicons ? pm[7].set() : pm[7].clear(); + ++ pm[14].labelcolor(get_label_color(prefs.ui_button_highlight_color)); ++ pm[15].labelcolor(get_label_color(prefs.ui_tab_active_bg_color)); ++ pm[16].labelcolor(get_label_color(prefs.ui_tab_active_fg_color)); ++ pm[17].labelcolor(get_label_color(prefs.ui_tab_bg_color)); ++ pm[18].labelcolor(get_label_color(prefs.ui_tab_fg_color)); + item = pm->popup(x, y); + if (item) { + ((Fl_Widget *)item)->do_callback(); +diff -r 901072d419b3 src/tipwin.cc +--- a/src/tipwin.cc Wed Jan 02 23:41:10 2013 +0000 ++++ b/src/tipwin.cc Thu Jan 03 06:25:22 2013 +0000 +@@ -181,7 +181,7 @@ + { + if (active()) { + if (e == FL_ENTER) { +- color(light_color); ++ color(prefs.ui_button_highlight_color); + redraw(); + } else if (e == FL_LEAVE || e == FL_RELEASE || e == FL_HIDE) { + color(norm_color); +diff -r 901072d419b3 src/uicmd.cc +--- a/src/uicmd.cc Wed Jan 02 23:41:10 2013 +0000 ++++ b/src/uicmd.cc Thu Jan 03 06:25:22 2013 +0000 +@@ -109,7 +109,6 @@ + Fl_Pack *Pack; + Fl_Group *Control; + CustButton *CloseBtn; +- int tabcolor_inactive, tabcolor_active; + + void update_pack_offset(void); + void resize(int x, int y, int w, int h) +@@ -137,8 +136,6 @@ + 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 = 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); +@@ -282,7 +279,7 @@ + btn->copy_label(DEFAULT_TAB_LABEL); + btn->clear_visible_focus(); + btn->box(FL_GTK_THIN_UP_BOX); +- btn->color(focus ? tabcolor_active : tabcolor_inactive); ++ btn->color(focus ? prefs.ui_tab_active_bg_color : prefs.ui_tab_bg_color); + btn->labelcolor(focus ? prefs.ui_tab_active_fg_color : + prefs.ui_tab_fg_color); + btn->ui(new_ui); +@@ -412,7 +409,7 @@ + // Set old tab label to normal color + if ((idx = get_btn_idx(old_ui)) != -1) { + btn = (CustTabButton*)Pack->child(idx); +- btn->color(tabcolor_inactive); ++ btn->color(prefs.ui_tab_bg_color); + btn->labelcolor(prefs.ui_tab_fg_color); + btn->redraw(); + } +@@ -427,7 +424,7 @@ + */ + cbtn->ui()->show(); + Wizard->value(cbtn->ui()); +- cbtn->color(tabcolor_active); ++ cbtn->color(prefs.ui_tab_active_bg_color); + cbtn->labelcolor(prefs.ui_tab_active_fg_color); + cbtn->redraw(); + update_pack_offset(); |