Fix for 115753, windows xp tooltip support, r=bryner, sr=sspitzer

This commit is contained in:
hyatt%netscape.com 2005-08-20 07:12:00 +00:00
Родитель 8972ab6527
Коммит f039e28dba
2 изменённых файлов: 22 добавлений и 2 удалений

Просмотреть файл

@ -94,7 +94,10 @@
#define TABP_TAB 4
#define TABP_TAB_SELECTED 5
#define TABP_TAB_PANE 9
// Tooltip constants
#define TTP_STANDARD 1
NS_IMPL_ISUPPORTS1(nsNativeThemeWin, nsITheme)
typedef HANDLE (WINAPI*OpenThemeDataPtr)(HWND hwnd, LPCWSTR pszClassList);
@ -132,6 +135,7 @@ nsNativeThemeWin::nsNativeThemeWin() {
NS_INIT_ISUPPORTS();
mThemeDLL = NULL;
mButtonTheme = NULL;
mTooltipTheme = NULL;
mToolbarTheme = NULL;
mRebarTheme = NULL;
mProgressTheme = NULL;
@ -189,6 +193,11 @@ nsNativeThemeWin::GetTheme(PRUint8 aWidgetType)
mButtonTheme = openTheme(NULL, L"Button");
return mButtonTheme;
}
case NS_THEME_TOOLTIP: {
if (!mTooltipTheme)
mTooltipTheme = openTheme(NULL, L"Tooltip");
return mTooltipTheme;
}
case NS_THEME_TOOLBOX: {
if (!mRebarTheme)
mRebarTheme = openTheme(NULL, L"Rebar");
@ -377,6 +386,11 @@ nsNativeThemeWin::GetThemePartAndState(nsIFrame* aFrame, PRUint8 aWidgetType,
aState += 4; // 4 unchecked states, 4 checked states.
return NS_OK;
}
case NS_THEME_TOOLTIP: {
aPart = TTP_STANDARD;
aState = TS_NORMAL;
return NS_OK;
}
case NS_THEME_PROGRESSBAR: {
aPart = PP_BAR;
aState = TS_NORMAL;
@ -703,7 +717,8 @@ nsNativeThemeWin::WidgetStateChanged(nsIFrame* aFrame, PRUint8 aWidgetType,
aWidgetType == NS_THEME_PROGRESSBAR_CHUNK ||
aWidgetType == NS_THEME_PROGRESSBAR_CHUNK_VERTICAL ||
aWidgetType == NS_THEME_PROGRESSBAR ||
aWidgetType == NS_THEME_PROGRESSBAR_VERTICAL) {
aWidgetType == NS_THEME_PROGRESSBAR_VERTICAL ||
aWidgetType == NS_THEME_TOOLTIP) {
*aShouldRepaint = PR_FALSE;
return NS_OK;
}
@ -750,6 +765,10 @@ nsNativeThemeWin::CloseData()
closeTheme(mButtonTheme);
mButtonTheme = NULL;
}
if (mTooltipTheme) {
closeTheme(mTooltipTheme);
mTooltipTheme = NULL;
}
if (mStatusbarTheme) {
closeTheme(mStatusbarTheme);
mStatusbarTheme = NULL;

Просмотреть файл

@ -70,6 +70,7 @@ protected:
private:
HMODULE mThemeDLL;
HANDLE mButtonTheme;
HANDLE mTooltipTheme;
HANDLE mToolbarTheme;
HANDLE mRebarTheme;
HANDLE mProgressTheme;