From b8a680b1758253a2c1df3818a644802200fc3fa5 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Thu, 8 Nov 2012 22:02:45 +0000 Subject: [PATCH] Use tint_color to build disabled toolbar icons that look nicer. --- .../netsurf/patches/netsurf-2.HEAD.patch | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/www-client/netsurf/patches/netsurf-2.HEAD.patch b/www-client/netsurf/patches/netsurf-2.HEAD.patch index 64c806765..51c73d1bb 100644 --- a/www-client/netsurf/patches/netsurf-2.HEAD.patch +++ b/www-client/netsurf/patches/netsurf-2.HEAD.patch @@ -404,7 +404,7 @@ index b047bd0..b41130a 100644 +}; + diff --git a/beos/scaffolding.cpp b/beos/scaffolding.cpp -index 4003b09..6389e75 100644 +index 4003b09..e0c6e6a 100644 --- a/beos/scaffolding.cpp +++ b/beos/scaffolding.cpp @@ -22,7 +22,9 @@ @@ -521,7 +521,7 @@ index 4003b09..6389e75 100644 } else { if (g->top_view->Looper()) g->top_view->UnlockLooper(); -@@ -1659,6 +1699,90 @@ static BMenuItem *make_menu_item(const char *name, BMessage *message) +@@ -1659,6 +1699,97 @@ static BMenuItem *make_menu_item(const char *name, BMessage *message) return item; } @@ -537,6 +537,7 @@ index 4003b09..6389e75 100644 + void SetBitmap(const char* attrName); + private: + BBitmap* fBitmap; ++ BBitmap* fDisabledBitmap; +}; + + @@ -551,6 +552,7 @@ index 4003b09..6389e75 100644 +BBitmapButton::~BBitmapButton() +{ + delete fBitmap; ++ delete fDisabledBitmap; +} + + @@ -566,20 +568,16 @@ index 4003b09..6389e75 100644 + rgb_color color = LowColor(); + + SetDrawingMode(B_OP_ALPHA); -+ if(Value() != 0) { -+ // button is clicked -+ DrawBitmap(fBitmap, BPoint(1, 1)); -+ } else { -+ // button is released -+ DrawBitmap(fBitmap, BPoint(0, 0)); -+ } -+ -+ if(!IsEnabled()) -+ { -+ color.alpha = 127; -+ SetLowColor(color); -+ FillRect(updateRect, B_SOLID_LOW); -+ } ++ if(IsEnabled()) { ++ if(Value() != 0) { ++ // button is clicked ++ DrawBitmap(fBitmap, BPoint(1, 1)); ++ } else { ++ // button is released ++ DrawBitmap(fBitmap, BPoint(0, 0)); ++ } ++ } else ++ DrawBitmap(fDisabledBitmap, BPoint(0, 0)); +} + + @@ -602,9 +600,18 @@ index 4003b09..6389e75 100644 + delete fBitmap; + fBitmap = NULL; + } ++ ++ fDisabledBitmap = new BBitmap(fBitmap); ++ rgb_color* pixel = (rgb_color*)fDisabledBitmap->Bits(); ++ for(int i = 0; i < fDisabledBitmap->BitsLength()/4; i++) ++ { ++ *pixel = tint_color(*pixel, B_DISABLED_MARK_TINT); ++ pixel++; ++ } +#else + // No vector icon support on BeOS. We could try to load a bitmap one + fBitmap = NULL; ++ fDisabledBitmap = NULL; +#endif +} + @@ -612,7 +619,7 @@ index 4003b09..6389e75 100644 nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) { struct beos_scaffolding *g = (struct beos_scaffolding *)malloc(sizeof(*g)); -@@ -1676,7 +1800,6 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) +@@ -1676,7 +1807,6 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) g->window = NULL; g->menu_bar = NULL; @@ -620,7 +627,7 @@ index 4003b09..6389e75 100644 if (replicated && !replicant_view) { warn_user("Error: No subwindow allowed when replicated.", NULL); -@@ -1685,7 +1808,6 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) +@@ -1685,7 +1815,6 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) if (!replicant_view) { @@ -628,7 +635,7 @@ index 4003b09..6389e75 100644 BRect frame(0, 0, 600-1, 500-1); if (nsoption_int(window_width) > 0) { frame.Set(0, 0, nsoption_int(window_width) - 1, nsoption_int(window_height) - 1); -@@ -1696,7 +1818,7 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) +@@ -1696,7 +1825,7 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) NSBrowserWindow *win = nsbeos_find_last_window(); if (win) { pos = win->Frame().LeftTop(); @@ -637,7 +644,7 @@ index 4003b09..6389e75 100644 } pos += BPoint(20, 20); BScreen screen; -@@ -2038,14 +2160,13 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) +@@ -2038,14 +2167,13 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) rect = g->top_view->Bounds(); rect.bottom = rect.top + TOOLBAR_HEIGHT - 1; rect.right = rect.right - DRAGGER_WIDTH; @@ -653,7 +660,7 @@ index 4003b09..6389e75 100644 rect = g->tool_bar->Bounds(); rect.right = TOOLBAR_HEIGHT; rect.InsetBySelf(5, 5); -@@ -2054,35 +2175,35 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) +@@ -2054,35 +2182,35 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel) message = new BMessage('back'); message->AddPointer("scaffolding", g); @@ -694,7 +701,7 @@ index 4003b09..6389e75 100644 g->tool_bar->AddChild(g->home_button); nButtons++; -@@ -2407,3 +2528,4 @@ void nsbeos_scaffolding_popup_menu(nsbeos_scaffolding *g, BPoint where) +@@ -2407,3 +2535,4 @@ void nsbeos_scaffolding_popup_menu(nsbeos_scaffolding *g, BPoint where) { g->popup_menu->Go(where); }