use small scrollbars in HTML select controls. b=365243 r=smorgan sr=roc

git-svn-id: svn://10.0.0.236/trunk@218663 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
joshmoz%gmail.com
2007-01-19 07:03:20 +00:00
parent 489e13f3ac
commit 11978a5e40
7 changed files with 47 additions and 2 deletions

View File

@@ -85,7 +85,7 @@
#define NS_THEME_TREEVIEW_HEADER_SORTARROW 47
// Open tree widget twisty
#define NS_THEME_TREEVIEW_TWISTY_OPEN 48
#define NS_THEME_TREEVIEW_TWISTY_OPEN 48
// A horizontal progress bar.
#define NS_THEME_PROGRESSBAR 51
@@ -127,7 +127,10 @@
#define NS_THEME_SPINNER_DOWN_BUTTON 74
// A scrollbar.
#define NS_THEME_SCROLLBAR 81
#define NS_THEME_SCROLLBAR 80
// A small scrollbar.
#define NS_THEME_SCROLLBAR_SMALL 81
// A scrollbar button (up/down/left/right)
#define NS_THEME_SCROLLBAR_BUTTON_UP 82

View File

@@ -380,6 +380,7 @@ CSS_KEY(s, s)
CSS_KEY(s-resize, s_resize)
CSS_KEY(scroll, scroll)
CSS_KEY(scrollbar, scrollbar)
CSS_KEY(scrollbar-small, scrollbar_small)
CSS_KEY(se-resize, se_resize)
CSS_KEY(select-after, select_after)
CSS_KEY(select-all, select_all)

View File

@@ -219,6 +219,7 @@ const PRInt32 nsCSSProps::kAppearanceKTable[] = {
eCSSKeyword_spinner_upbutton, NS_THEME_SPINNER_UP_BUTTON,
eCSSKeyword_spinner_downbutton, NS_THEME_SPINNER_DOWN_BUTTON,
eCSSKeyword_scrollbar, NS_THEME_SCROLLBAR,
eCSSKeyword_scrollbar_small, NS_THEME_SCROLLBAR_SMALL,
eCSSKeyword_scrollbarbutton_up, NS_THEME_SCROLLBAR_BUTTON_UP,
eCSSKeyword_scrollbarbutton_down, NS_THEME_SCROLLBAR_BUTTON_DOWN,
eCSSKeyword_scrollbarbutton_left, NS_THEME_SCROLLBAR_BUTTON_LEFT,

View File

@@ -52,6 +52,12 @@ scrollbar {
cursor: default;
}
html|select[size]:not([size="0"]):not([size="1"]) > scrollbar,
html|select[multiple] > scrollbar {
-moz-appearance: scrollbar-small;
min-width: 11px;
}
/* ::::: square at the corner of two scrollbars ::::: */
scrollcorner {

View File

@@ -53,6 +53,12 @@ scrollbar {
background-color: white;
}
html|select[size]:not([size="0"]):not([size="1"]) > scrollbar,
html|select[multiple] > scrollbar {
-moz-appearance: scrollbar-small;
min-width: 11px;
}
/* ::::: square at the corner of two scrollbars ::::: */
scrollcorner {

View File

@@ -22,6 +22,7 @@
* Contributor(s):
* Mark Mentovai <mark@moxienet.com>
* Stuart Morgan <stuart.morgan@alumni.case.edu>
* Josh Aas <josh@mozilla.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -551,6 +552,23 @@ nsNativeScrollbar::UpdateScroller()
}
- (void)setFrame:(NSRect)frameRect
{
// maybe make this a small scrollbar
SInt32 smallScrollbarWidth = 0;
::GetThemeMetric(kThemeMetricSmallScrollBarWidth, &smallScrollbarWidth);
if ((SInt32)frameRect.size.width == smallScrollbarWidth ||
(SInt32)frameRect.size.height == smallScrollbarWidth) {
[self setControlSize:NSSmallControlSize];
}
else {
[self setControlSize:NSRegularControlSize];
}
[super setFrame:frameRect];
}
- (NSWindow*)nativeWindow
{
NSWindow* currWin = [self window];

View File

@@ -808,6 +808,15 @@ nsNativeThemeCocoa::GetMinimumWidgetSize(nsIRenderingContext* aContext,
break;
}
case NS_THEME_SCROLLBAR_SMALL:
{
SInt32 scrollbarWidth = 0;
::GetThemeMetric(kThemeMetricSmallScrollBarWidth, &scrollbarWidth);
aResult->SizeTo(scrollbarWidth, scrollbarWidth);
*aIsOverridable = PR_FALSE;
break;
}
case NS_THEME_SCROLLBAR:
case NS_THEME_SCROLLBAR_BUTTON_UP:
case NS_THEME_SCROLLBAR_BUTTON_DOWN:
@@ -959,6 +968,7 @@ nsNativeThemeCocoa::ThemeSupportsWidget(nsPresContext* aPresContext, nsIFrame* a
case NS_THEME_SCALE_THUMB_VERTICAL:
case NS_THEME_SCROLLBAR:
case NS_THEME_SCROLLBAR_SMALL:
case NS_THEME_SCROLLBAR_BUTTON_UP:
case NS_THEME_SCROLLBAR_BUTTON_DOWN:
case NS_THEME_SCROLLBAR_BUTTON_LEFT: