From 03e7fc057fc0bf3950d61692b443a88c761605a5 Mon Sep 17 00:00:00 2001 From: "hyatt%netscape.com" Date: Sun, 6 Jan 2002 00:22:24 +0000 Subject: [PATCH] Fixing 115750, support for tabpanels and tabs in WinXP, r=bryner, sr=blake --- content/shared/public/nsCSSKeywordList.h | 1 + content/shared/src/nsCSSProps.cpp | 1 + gfx/public/nsThemeConstants.h | 5 ++++- gfx/src/windows/nsNativeThemeWin.cpp | 27 ++++++++++++++++++------ layout/style/nsCSSKeywordList.h | 1 + layout/style/nsCSSProps.cpp | 1 + themes/classic/global/win/browser.css | 4 ++++ themes/classic/global/win/tabbox.css | 1 + 8 files changed, 33 insertions(+), 8 deletions(-) diff --git a/content/shared/public/nsCSSKeywordList.h b/content/shared/public/nsCSSKeywordList.h index cc2d7c730f53..c16ff1bcb3c7 100644 --- a/content/shared/public/nsCSSKeywordList.h +++ b/content/shared/public/nsCSSKeywordList.h @@ -440,6 +440,7 @@ CSS_KEY(progresschunk-vertical, progresschunk_vertical) CSS_KEY(tab, tab) CSS_KEY(tab-left-edge, tab_left_edge) CSS_KEY(tab-right-edge, tab_right_edge) +CSS_KEY(tabpanels, tabpanels) CSS_KEY(tabpanel, tabpanel) CSS_KEY(tooltip, tooltip) CSS_KEY(spinner, spinner) diff --git a/content/shared/src/nsCSSProps.cpp b/content/shared/src/nsCSSProps.cpp index ac8106367c35..38b57d125c36 100644 --- a/content/shared/src/nsCSSProps.cpp +++ b/content/shared/src/nsCSSProps.cpp @@ -156,6 +156,7 @@ const PRInt32 nsCSSProps::kAppearanceKTable[] = { eCSSKeyword_tab, NS_THEME_TAB, eCSSKeyword_tab_left_edge, NS_THEME_TAB_LEFT_EDGE, eCSSKeyword_tab_right_edge, NS_THEME_TAB_RIGHT_EDGE, + eCSSKeyword_tabpanels, NS_THEME_TAB_PANELS, eCSSKeyword_tabpanel, NS_THEME_TAB_PANEL, eCSSKeyword_tooltip, NS_THEME_TOOLTIP, eCSSKeyword_spinner, NS_THEME_SPINNER, diff --git a/gfx/public/nsThemeConstants.h b/gfx/public/nsThemeConstants.h index aad6eb4d8081..a9ed7cefbf6c 100644 --- a/gfx/public/nsThemeConstants.h +++ b/gfx/public/nsThemeConstants.h @@ -86,7 +86,7 @@ // A single tab in a tab widget. #define NS_THEME_TAB 61 -// The tab panel +// A single pane (inside the tabpanels container) #define NS_THEME_TAB_PANEL 62 // The tab just before the selection @@ -95,6 +95,9 @@ // The tab just after the selection #define NS_THEME_TAB_RIGHT_EDGE 64 +// The tab panels container. +#define NS_THEME_TAB_PANELS 65 + // A tooltip #define NS_THEME_TOOLTIP 71 diff --git a/gfx/src/windows/nsNativeThemeWin.cpp b/gfx/src/windows/nsNativeThemeWin.cpp index b8728f889220..c68be4e11ace 100644 --- a/gfx/src/windows/nsNativeThemeWin.cpp +++ b/gfx/src/windows/nsNativeThemeWin.cpp @@ -89,11 +89,10 @@ #define PP_CHUNKVERT 4 // Tab constants -#define TABP_TAB_SELAFTER 2 -#define TABP_TAB_SELBEFORE 3 #define TABP_TAB 4 #define TABP_TAB_SELECTED 5 -#define TABP_TAB_PANE 9 +#define TABP_PANELS 9 +#define TABP_PANEL 10 // Tooltip constants #define TTP_STANDARD 1 @@ -220,7 +219,8 @@ nsNativeThemeWin::GetTheme(PRUint8 aWidgetType) case NS_THEME_TAB: case NS_THEME_TAB_LEFT_EDGE: case NS_THEME_TAB_RIGHT_EDGE: - case NS_THEME_TAB_PANEL: { + case NS_THEME_TAB_PANEL: + case NS_THEME_TAB_PANELS: { if (!mTabTheme) mTabTheme = openTheme(NULL, L"Tab"); return mTabTheme; @@ -519,6 +519,16 @@ nsNativeThemeWin::GetThemePartAndState(nsIFrame* aFrame, PRUint8 aWidgetType, aState = TS_NORMAL; return NS_OK; } + case NS_THEME_TAB_PANELS: { + aPart = TABP_PANELS; + aState = TS_NORMAL; + return NS_OK; + } + case NS_THEME_TAB_PANEL: { + aPart = TABP_PANEL; + aState = TS_NORMAL; + return NS_OK; + } case NS_THEME_TAB: case NS_THEME_TAB_LEFT_EDGE: case NS_THEME_TAB_RIGHT_EDGE: { @@ -655,7 +665,7 @@ nsNativeThemeWin::GetWidgetBorder(nsIDeviceContext* aContext, if (aWidgetType == NS_THEME_TOOLBOX || aWidgetType == NS_THEME_TOOLBAR || aWidgetType == NS_THEME_STATUSBAR || - aWidgetType == NS_THEME_RESIZER) + aWidgetType == NS_THEME_RESIZER || aWidgetType == NS_THEME_TAB_PANEL) return NS_OK; // Don't worry about it. HANDLE theme = GetTheme(aWidgetType); @@ -707,7 +717,8 @@ nsNativeThemeWin::GetMinimumWidgetSize(nsIRenderingContext* aContext, nsIFrame* if (aWidgetType == NS_THEME_TOOLBOX || aWidgetType == NS_THEME_TOOLBAR || aWidgetType == NS_THEME_STATUSBAR || aWidgetType == NS_THEME_PROGRESSBAR_CHUNK || - aWidgetType == NS_THEME_PROGRESSBAR_CHUNK_VERTICAL) + aWidgetType == NS_THEME_PROGRESSBAR_CHUNK_VERTICAL || + aWidgetType == NS_THEME_TAB_PANELS || aWidgetType == NS_THEME_TAB_PANEL) return NS_OK; // Don't worry about it. HANDLE theme = GetTheme(aWidgetType); @@ -753,7 +764,9 @@ nsNativeThemeWin::WidgetStateChanged(nsIFrame* aFrame, PRUint8 aWidgetType, aWidgetType == NS_THEME_PROGRESSBAR_CHUNK_VERTICAL || aWidgetType == NS_THEME_PROGRESSBAR || aWidgetType == NS_THEME_PROGRESSBAR_VERTICAL || - aWidgetType == NS_THEME_TOOLTIP) { + aWidgetType == NS_THEME_TOOLTIP || + aWidgetType == NS_THEME_TAB_PANELS || + aWidgetType == NS_THEME_TAB_PANEL) { *aShouldRepaint = PR_FALSE; return NS_OK; } diff --git a/layout/style/nsCSSKeywordList.h b/layout/style/nsCSSKeywordList.h index cc2d7c730f53..c16ff1bcb3c7 100644 --- a/layout/style/nsCSSKeywordList.h +++ b/layout/style/nsCSSKeywordList.h @@ -440,6 +440,7 @@ CSS_KEY(progresschunk-vertical, progresschunk_vertical) CSS_KEY(tab, tab) CSS_KEY(tab-left-edge, tab_left_edge) CSS_KEY(tab-right-edge, tab_right_edge) +CSS_KEY(tabpanels, tabpanels) CSS_KEY(tabpanel, tabpanel) CSS_KEY(tooltip, tooltip) CSS_KEY(spinner, spinner) diff --git a/layout/style/nsCSSProps.cpp b/layout/style/nsCSSProps.cpp index ac8106367c35..38b57d125c36 100644 --- a/layout/style/nsCSSProps.cpp +++ b/layout/style/nsCSSProps.cpp @@ -156,6 +156,7 @@ const PRInt32 nsCSSProps::kAppearanceKTable[] = { eCSSKeyword_tab, NS_THEME_TAB, eCSSKeyword_tab_left_edge, NS_THEME_TAB_LEFT_EDGE, eCSSKeyword_tab_right_edge, NS_THEME_TAB_RIGHT_EDGE, + eCSSKeyword_tabpanels, NS_THEME_TAB_PANELS, eCSSKeyword_tabpanel, NS_THEME_TAB_PANEL, eCSSKeyword_tooltip, NS_THEME_TOOLTIP, eCSSKeyword_spinner, NS_THEME_SPINNER, diff --git a/themes/classic/global/win/browser.css b/themes/classic/global/win/browser.css index 874c1df0c579..c71ce616c6a1 100644 --- a/themes/classic/global/win/browser.css +++ b/themes/classic/global/win/browser.css @@ -7,6 +7,10 @@ -moz-border-bottom-colors: ThreeDDarkShadow ThreeDShadow; } +tabpanels { + -moz-appearance: none; +} + .tabbrowser-tabs { padding-top: 1px; } diff --git a/themes/classic/global/win/tabbox.css b/themes/classic/global/win/tabbox.css index 830854cbfd5a..4db64b55aabb 100644 --- a/themes/classic/global/win/tabbox.css +++ b/themes/classic/global/win/tabbox.css @@ -38,6 +38,7 @@ /* ::::: tabpanels ::::: */ tabpanels { + -moz-appearance: tabpanels; border-right: 2px solid; border-bottom: 2px solid; border-left: 2px solid;