diff --git a/data/skins/default_skin/sheet.png b/data/skins/default_skin/sheet.png index 4a3fdc6aa..599d4638e 100644 Binary files a/data/skins/default_skin/sheet.png and b/data/skins/default_skin/sheet.png differ diff --git a/data/skins/default_skin/skin.xml b/data/skins/default_skin/skin.xml index 4d96e1c47..bce14d0b3 100644 --- a/data/skins/default_skin/skin.xml +++ b/data/skins/default_skin/skin.xml @@ -107,6 +107,8 @@ + + diff --git a/src/modules/skinneable_theme.cpp b/src/modules/skinneable_theme.cpp index 8f69f7643..ea10600dc 100644 --- a/src/modules/skinneable_theme.cpp +++ b/src/modules/skinneable_theme.cpp @@ -130,6 +130,8 @@ SkinneableTheme::SkinneableTheme() sheet_mapping["colorbar_border_fg"] = PART_COLORBAR_BORDER_FG_NW; sheet_mapping["colorbar_border_bg"] = PART_COLORBAR_BORDER_BG_NW; sheet_mapping["colorbar_border_hotfg"] = PART_COLORBAR_BORDER_HOTFG_NW; + sheet_mapping["scrollbar_bg"] = PART_SCROLLBAR_BG_NW; + sheet_mapping["scrollbar_thumb"] = PART_SCROLLBAR_THUMB_NW; reload_skin(); } @@ -1324,20 +1326,19 @@ void SkinneableTheme::draw_view_scrollbar(JWidget widget, JRect clip) x2 = widget->rc->x2-1; y2 = widget->rc->y2-1; - /* border */ - rect(ji_screen, x1, y1, x2, y2, BGCOLOR); + draw_bounds_nw(ji_screen, + x1, y1, x2, y2, + PART_SCROLLBAR_BG_NW, + get_scrollbar_bg_face_color()); - /* draw the content */ - x1++, y1++, x2--, y2--; - - /* horizontal bar */ + // Horizontal bar if (widget->getAlign() & JI_HORIZONTAL) { u1 = x1+pos; v1 = y1; u2 = x1+pos+len-1; v2 = y2; } - /* vertical bar */ + // Vertical bar else { u1 = x1; v1 = y1+pos; @@ -1345,25 +1346,10 @@ void SkinneableTheme::draw_view_scrollbar(JWidget widget, JRect clip) v2 = y1+pos+len-1; } - /* background */ - jrectexclude(ji_screen, - x1, y1, x2, y2, - u1, v1, u2, v2, BGCOLOR); - - /* 1st border */ - if (jwidget_is_selected(widget)) - jrectedge(ji_screen, u1, v1, u2, v2, - COLOR_DISABLED, COLOR_BACKGROUND); - else - jrectedge(ji_screen, u1, v1, u2, v2, - COLOR_BACKGROUND, COLOR_DISABLED); - - /* bar-block background */ - u1++, v1++, u2--, v2--; - if (jwidget_is_enabled(widget) && widget->hasMouseOver()) - rectfill(ji_screen, u1, v1, u2, v2, COLOR_HOTFACE); - else - rectfill(ji_screen, u1, v1, u2, v2, BGCOLOR); + draw_bounds_nw(ji_screen, + u1, v1, u2, v2, + PART_SCROLLBAR_THUMB_NW, + get_scrollbar_thumb_face_color()); } void SkinneableTheme::draw_view_viewport(JWidget widget, JRect clip) diff --git a/src/modules/skinneable_theme.h b/src/modules/skinneable_theme.h index 81e8bd650..5720c2efd 100644 --- a/src/modules/skinneable_theme.h +++ b/src/modules/skinneable_theme.h @@ -382,6 +382,24 @@ enum { PART_COLORBAR_BORDER_HOTFG_SW, PART_COLORBAR_BORDER_HOTFG_W, + PART_SCROLLBAR_BG_NW, + PART_SCROLLBAR_BG_N, + PART_SCROLLBAR_BG_NE, + PART_SCROLLBAR_BG_E, + PART_SCROLLBAR_BG_SE, + PART_SCROLLBAR_BG_S, + PART_SCROLLBAR_BG_SW, + PART_SCROLLBAR_BG_W, + + PART_SCROLLBAR_THUMB_NW, + PART_SCROLLBAR_THUMB_N, + PART_SCROLLBAR_THUMB_NE, + PART_SCROLLBAR_THUMB_E, + PART_SCROLLBAR_THUMB_SE, + PART_SCROLLBAR_THUMB_S, + PART_SCROLLBAR_THUMB_SW, + PART_SCROLLBAR_THUMB_W, + PARTS }; @@ -483,6 +501,9 @@ public: int get_panel_face_color() const { return makecol(125, 146, 158); } + int get_scrollbar_bg_face_color() const { return makecol(125, 146, 158); } + int get_scrollbar_thumb_face_color() const { return makecol(199, 199, 199); } + BITMAP* get_part(int part_i) const { return m_part[part_i]; } BITMAP* get_toolicon(const char* tool_id) const;