summaryrefslogtreecommitdiff
path: root/old/test/choose_colors2.diff
diff options
context:
space:
mode:
Diffstat (limited to 'old/test/choose_colors2.diff')
-rw-r--r--old/test/choose_colors2.diff211
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();