summaryrefslogtreecommitdiff
path: root/amiga/system_colour.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-07-03 18:20:18 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-07-03 18:20:18 +0000
commitb1e425a967c6d28bdb7fcc384c82355250fbe02c (patch)
treeec5d11a3cb44b8a21cf8779fbcfc7c0b77a7d8ef /amiga/system_colour.c
parentd253daa0202393ca27a6d21d3808332d2f889e28 (diff)
downloadnetsurf-b1e425a967c6d28bdb7fcc384c82355250fbe02c.tar.gz
netsurf-b1e425a967c6d28bdb7fcc384c82355250fbe02c.tar.bz2
Correctly select FILLPEN or FOREGROUNDPEN for scroller knob colour
svn path=/trunk/netsurf/; revision=12569
Diffstat (limited to 'amiga/system_colour.c')
-rw-r--r--amiga/system_colour.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/amiga/system_colour.c b/amiga/system_colour.c
index 8ac763eff..e5dace808 100644
--- a/amiga/system_colour.c
+++ b/amiga/system_colour.c
@@ -30,8 +30,11 @@
#include <proto/graphics.h>
#include <proto/intuition.h>
#include <proto/Picasso96API.h>
+#include <intuition/gui.h>
#include <intuition/screens.h>
+#define AMINS_SCROLLERPEN NUMDRIPENS
+
struct gui_system_colour_ctx {
const char *name;
int length;
@@ -180,7 +183,7 @@ static struct gui_system_colour_ctx colour_list[] = {
SLEN("Scrollbar"),
0xffaaaaaa,
&option_sys_colour_Scrollbar,
- FOREGROUNDPEN, /* or FILLPEN, see GetGUIAttrs() */
+ AMINS_SCROLLERPEN,
NULL
}, {
"ThreeDDarkShadow",
@@ -253,13 +256,26 @@ extern colour scrollbar_widget_arrow_colour;
css_color ami_css_colour_from_pen(struct Screen *screen, UWORD pen);
+UWORD ami_system_colour_scrollbar_fgpen(struct DrawInfo *drinfo)
+{
+ LONG scrollerfillpen = FALSE;
+
+ GetGUIAttrs(NULL, drinfo, GUIA_PropKnobColor, &scrollerfillpen, TAG_DONE);
+
+ if(scrollerfillpen) return FILLPEN;
+ else return FOREGROUNDPEN;
+}
+
void ami_system_colour_scrollbar_widget(void)
{
if(scrn == NULL) return;
- scrollbar_widget_fg_colour = p96EncodeColor(RGBFB_A8B8G8R8, ami_css_colour_from_pen(scrn, FOREGROUNDPEN)); /* or FILLPEN */
- scrollbar_widget_bg_colour = p96EncodeColor(RGBFB_A8B8G8R8, ami_css_colour_from_pen(scrn, FILLSHADOWPEN));
- scrollbar_widget_arrow_colour = p96EncodeColor(RGBFB_A8B8G8R8, ami_css_colour_from_pen(scrn, SHINEPEN));
+ scrollbar_widget_fg_colour = p96EncodeColor(RGBFB_A8B8G8R8,
+ ami_css_colour_from_pen(scrn, AMINS_SCROLLERPEN));
+ scrollbar_widget_bg_colour = p96EncodeColor(RGBFB_A8B8G8R8,
+ ami_css_colour_from_pen(scrn, FILLSHADOWPEN));
+ scrollbar_widget_arrow_colour = p96EncodeColor(RGBFB_A8B8G8R8,
+ ami_css_colour_from_pen(scrn, SHINEPEN));
}
bool gui_system_colour_init(void)
@@ -348,6 +364,8 @@ css_color ami_css_colour_from_pen(struct Screen *screen, UWORD pen)
if(drinfo == NULL) return 0x00000000;
+ if(pen == AMINS_SCROLLERPEN) pen = ami_system_colour_scrollbar_fgpen(drinfo);
+
/* Get the colour of the pen being used for "pen" */
GetRGB32(screen->ViewPort.ColorMap, drinfo->dri_Pens[pen], 1, (ULONG *)&colour);