diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java index 0bf70ee45d..86ead1fa35 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Display.java @@ -155,14 +155,17 @@ public class Display extends Device { } /* XP Themes */ - int /*long*/ hButtonTheme, hEditTheme, hExplorerBarTheme, hScrollBarTheme, hTabTheme; + int /*long*/ hButtonTheme, hCompositedWindowTheme, hControlPanelStyleTheme, hEditTheme, hExplorerBarTheme, hScrollBarTheme, hTabTheme, hToolbarTheme; static final char [] BUTTON = new char [] {'B', 'U', 'T', 'T', 'O', 'N', 0}; + static final char [] COMPOSITEDWINDOW = new char [] {'C', 'O', 'M', 'P', 'O', 'S', 'I', 'T', 'E', 'D', 'W', 'I', 'N', 'D', 'O', 'W', ':', ':', 'W', 'I', 'N', 'D', 'O', 'W', 0}; + static final char [] CONTROLPANELSTYLE = new char [] {'C', 'O', 'N', 'T', 'R', 'O', 'L', 'P', 'A', 'N', 'E', 'L', 'S', 'T', 'Y', 'L', 'E', 0}; static final char [] EDIT = new char [] {'E', 'D', 'I', 'T', 0}; static final char [] EXPLORER = new char [] {'E', 'X', 'P', 'L', 'O', 'R', 'E', 'R', 0}; static final char [] EXPLORERBAR = new char [] {'E', 'X', 'P', 'L', 'O', 'R', 'E', 'R', 'B', 'A', 'R', 0}; static final char [] SCROLLBAR = new char [] {'S', 'C', 'R', 'O', 'L', 'L', 'B', 'A', 'R', 0}; static final char [] LISTVIEW = new char [] {'L', 'I', 'S', 'T', 'V', 'I', 'E', 'W', 0}; static final char [] TAB = new char [] {'T', 'A', 'B', 0}; + static final char [] TOOLBAR = new char [] {'T', 'O', 'O', 'L', 'B', 'A', 'R', 0}; static final char [] TREEVIEW = new char [] {'T', 'R', 'E', 'E', 'V', 'I', 'E', 'W', 0}; /* Focus */ @@ -2625,6 +2628,16 @@ int /*long*/ hButtonTheme () { return hButtonTheme = OS.OpenThemeData (hwndMessage, BUTTON); } +int /*long*/ hControlPanelStyleTheme () { + if (hControlPanelStyleTheme != 0) return hControlPanelStyleTheme; + return hControlPanelStyleTheme = OS.OpenThemeData (hwndMessage, CONTROLPANELSTYLE); +} + +int /*long*/ hCompositedWindowTheme () { + if (hCompositedWindowTheme != 0) return hCompositedWindowTheme; + return hCompositedWindowTheme = OS.OpenThemeData (hwndMessage, COMPOSITEDWINDOW); +} + int /*long*/ hEditTheme () { if (hEditTheme != 0) return hEditTheme; return hEditTheme = OS.OpenThemeData (hwndMessage, EDIT); @@ -2645,6 +2658,11 @@ int /*long*/ hTabTheme () { return hTabTheme = OS.OpenThemeData (hwndMessage, TAB); } +int /*long*/ hToolbarTheme () { + if (hToolbarTheme != 0) return hToolbarTheme; + return hToolbarTheme = OS.OpenThemeData (hwndMessage, TOOLBAR); +} + /** * Invokes platform specific functionality to allocate a new GC handle. * <p> @@ -3336,11 +3354,14 @@ int /*long*/ messageProc (int /*long*/ hwnd, int /*long*/ msg, int /*long*/ wPar case OS.WM_THEMECHANGED: { if (OS.COMCTL32_MAJOR >= 6) { if (hButtonTheme != 0) OS.CloseThemeData (hButtonTheme); + if (hControlPanelStyleTheme != 0) OS.CloseThemeData (hControlPanelStyleTheme); + if (hCompositedWindowTheme != 0) OS.CloseThemeData (hCompositedWindowTheme); if (hEditTheme != 0) OS.CloseThemeData (hEditTheme); if (hExplorerBarTheme != 0) OS.CloseThemeData (hExplorerBarTheme); if (hScrollBarTheme != 0) OS.CloseThemeData (hScrollBarTheme); if (hTabTheme != 0) OS.CloseThemeData (hTabTheme); - hButtonTheme = hEditTheme = hExplorerBarTheme = hScrollBarTheme = hTabTheme = 0; + if (hToolbarTheme != 0) OS.CloseThemeData (hToolbarTheme); + hButtonTheme = hControlPanelStyleTheme = hCompositedWindowTheme = hEditTheme = hExplorerBarTheme = hScrollBarTheme = hTabTheme = hToolbarTheme = 0; } break; } @@ -3828,11 +3849,14 @@ void releaseDisplay () { /* Release XP Themes */ if (OS.COMCTL32_MAJOR >= 6) { if (hButtonTheme != 0) OS.CloseThemeData (hButtonTheme); + if (hControlPanelStyleTheme != 0) OS.CloseThemeData (hControlPanelStyleTheme); + if (hCompositedWindowTheme != 0) OS.CloseThemeData (hCompositedWindowTheme); if (hEditTheme != 0) OS.CloseThemeData (hEditTheme); if (hExplorerBarTheme != 0) OS.CloseThemeData (hExplorerBarTheme); if (hScrollBarTheme != 0) OS.CloseThemeData (hScrollBarTheme); if (hTabTheme != 0) OS.CloseThemeData (hTabTheme); - hButtonTheme = hEditTheme = hExplorerBarTheme = hScrollBarTheme = hTabTheme = 0; + if (hToolbarTheme != 0) OS.CloseThemeData (hToolbarTheme); + hButtonTheme = hControlPanelStyleTheme = hCompositedWindowTheme = hEditTheme = hExplorerBarTheme = hScrollBarTheme = hTabTheme = hToolbarTheme = 0; } /* Unhook the message hook */ |