gadamopoulos in reactos

[EXPLORER] -Make the taskbar grip get its size from the theme. This fixes one of the last theme related problems in explorer itself. Also simplify some theme drawing code.
    • -40
    • +32
    /trunk/reactos/base/shell/explorer/traywnd.cpp
[EXPLORER] -Reload the theme data only when the orientation changes (we ended up reloading it every few seconds).
    • -15
    • +18
    /trunk/reactos/base/shell/explorer/trayntfy.cpp
[WIN32l:NTGDI] -Check the return value IntGetOutlineTextMetrics and stop using garbage from the pool in case of error. CORE-13089, CORE-12752
    • -5
    • +21
    /trunk/reactos/win32ss/gdi/ntgdi/freetype.c
[WIN32K] -Simplify the parameters passed to GetFontPenalty and FindBestFontFromList. Make SubstituteFontRecurse update a LOGFONT and get rid of some needless allocations.
    • -60
    • +42
    /trunk/reactos/win32ss/gdi/ntgdi/freetype.c
[WIN32K] -Reduce the ridiculous number of string allocations done by FindBestFontFromList and GetFontPenalty. CORE-13274
    • -125
    • +30
    /trunk/reactos/win32ss/gdi/ntgdi/freetype.c
[UXTHEME] -Use and RTL handle table for HTHEME handles. In this way we can ensure that a value we take is valid even if it is non NULL. We can also detect leaks.
    • -8
    • +18
    /trunk/reactos/dll/win32/uxtheme/draw.c
    • -14
    • +12
    /trunk/reactos/dll/win32/uxtheme/metric.c
    • -26
    • +41
    /trunk/reactos/dll/win32/uxtheme/property.c
    • -13
    • +91
    /trunk/reactos/dll/win32/uxtheme/system.c
    • -0
    • +12
    /trunk/reactos/dll/win32/uxtheme/uxthemep.h
[UXTHEME] Greatly reduce the number of times we open the theme data for the non client area.

- Implement OTD_NONCLIENT for OpenThemeDataEx and OpenThemeDataFromFile.

- Open the WINDOW or the SCROLLBAR theme classes only when needed. Use OpenThemeDataEx instead of the internal MSSTYLES_OpenThemeClass. Cache the open theme in the WND_DATA for later use.

    • -5
    • +5
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
    • -4
    • +4
    /trunk/reactos/dll/win32/uxtheme/system.c
    • -5
    • +68
    /trunk/reactos/dll/win32/uxtheme/themehooks.c
[UXTHEME] -Rename WND_CONTEXT to WND_DATA to avoid confusion with the DRAW_CONTEXT. The WND_DATA is information valid throughout the life of a window and DRAW_CONTEXT is information throughout a draw operation in the non client area of the window.
    • -66
    • +66
    /trunk/reactos/dll/win32/uxtheme/themehooks.c
    • -21
    • +21
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
    • -45
    • +45
    /trunk/reactos/dll/win32/uxtheme/ncscrollbar.c
[UXTHEME] -Remove a debug print that was never meant to be committed.
    • -2
    • +0
    /trunk/reactos/dll/win32/uxtheme/draw.c
[UXTHEME] -Apply some suggestions by Thomas.
    • -3
    • +3
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
[UXTHEME] -ThemeDrawCaptionText: Try to avoid a heap allocation when getting the window caption.
    • -20
    • +27
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
[UXTHEME] -Simplify ThemeDrawCaptionText.
    • -33
    • +22
    /trunk/reactos/dll/win32/uxtheme/nonclient.c
[UXTHEME] -Fix the tab background pattern hack when the background pattern is smaller than the window that we are trying to paint. CORE-13147, CORE-13192.

There is still a bug where the pattern doesn't change after a theme change.

    • -5
    • +4
    /trunk/reactos/dll/win32/uxtheme/themehooks.c
[SHELL32_APITEST] -Add tests for Control_RunDLLW.
    • -0
    • +160
    /trunk/rostests/apitests/shell32/Control_RunDLLW.cpp
    • -0
    • +1
    /trunk/rostests/apitests/shell32/shell32_apitest.spec
[DESK.CPL] -Addendum to 74506 which was a bit rushed. Make it possible to apply a theme that was opened by double click. Also add the active theme in the list of themes if it was not enumerated in the themes directory.
    • -0
    • +1
    /trunk/reactos/dll/cpl/desk/appearance.h
    • -21
    • +56
    /trunk/reactos/dll/cpl/desk/theme.c
    • -27
    • +14
    /trunk/reactos/dll/cpl/desk/appearance.c
More build fixes.
Fix build.
[DESK.CPL] -Implement opening msstyles files.
    • -0
    • +1
    /trunk/reactos/dll/cpl/desk/appearance.h
    • -10
    • +57
    /trunk/reactos/dll/cpl/desk/desk.c
    • -10
    • +18
    /trunk/reactos/dll/cpl/desk/theme.c
    • -2
    • +42
    /trunk/reactos/dll/cpl/desk/appearance.c
[COMCTL32] Toolbar: Use DrawThemeText when themes are enabled. CORE-12789
    • -0
    • +22
    /trunk/reactos/dll/win32/comctl32/toolbar.c
[SHELL32] -CMenuDeskBar: Handle WM_NCPAINT and paint the border with the correct color when it has the flat style.
[BROWSEUI_APITEST] -Add tests for SHExplorerParseCmdLine for CORE-12882.
[SHELL32_APITEST] -Add some tests for SHParseDisplayName for CORE-12882.
[SHELL32] -CMenuBand: Correctly get the setting for flat menus. CORE-8925
[UXTHEME] -Use GdiDrawStream in UXTHEME_DrawImageGlyph and UXTHEME_DrawImageBackground.
    • -348
    • +69
    /trunk/reactos/dll/win32/uxtheme/draw.c
[GDI32] -Add a public undocgdi.h file to keep the definitions for undocumented exports. For now it only contains GdiDrawStream.
    • -24
    • +4
    /trunk/reactos/win32ss/gdi/gdi32/misc/misc.c
    • -0
    • +33
    /trunk/reactos/sdk/include/reactos/undocgdi.h
[SHELL32] -CDefView: Hide the drag image at drop.
    • -0
    • +1
    /trunk/reactos/dll/win32/shell32/CDefView.cpp
[COMCTL32] Fix use of uninitialized variable.
    • -1
    • +1
    /trunk/reactos/dll/win32/comctl32/imagelist.c
[BROWSEUI] Don't leak the image lists created by CAddressBand and CToolsBand.
    • -0
    • +3
    /trunk/reactos/dll/win32/browseui/addressband.h
    • -28
    • +16
    /trunk/reactos/dll/win32/browseui/toolsband.cpp
[COMCTL32] -ImageList: Don't leak the DC returned by saturate_image.
    • -1
    • +9
    /trunk/reactos/dll/win32/comctl32/imagelist.c
[COMCTL32] -Rebar: Fix a region handle leak when themes are enabled.
    • -1
    • +1
    /trunk/reactos/dll/win32/comctl32/rebar.c