Sync to Wine-20050830:
authorGé van Geldorp <ge@gse.nl>
Wed, 7 Sep 2005 16:22:51 +0000 (16:22 +0000)
committerGé van Geldorp <ge@gse.nl>
Wed, 7 Sep 2005 16:22:51 +0000 (16:22 +0000)
commit190de1fde5b1d911aa7c39958db8843e6344104c
tree165dd76747833157d75ef1a033d5ea498252e0f1
parent3a0cf7d6187babc777feaa6622293361054d72b5
Sync to Wine-20050830:
Kevin Koltzau <kevin@plop.org>
- Fix 'cast to pointer from integer of different size' warnings in
  64bit.
Frank Richter <frank.richter@gmail.com>
- Add support for the BT_NONE background type.
- Better computations to have uniformly sized parts scaled in both
  directions.
- Implement GetThemeBackgroundExtent().
- Implement DrawThemeEdge().
- Implement support for the ST_TILE background stretching mode.
- Implementation for GetThemePartSize() (not entirely equivalent to
  native uxtheme, but sensibly useable).
- Enhance uxtheme to store the themed system metrics in the registry and
  also backup the old metrics. That way, themed system colors are set
  even uxtheme was not loaded and initialized yet, and when a theme is
  deactivated, the colors prior to the activation are restored as well.
- Also, not having to set the system colors in uxtheme startup works
  around weird problems where SetSystemColors() ended up being called
  from inside window creation and this seemingly led to some creation
  message being sent twice.
- Make GetThemeMargins() return default values (0 margin) if the
  function does not succeed.
- More elaborate IsThemeBackgroundPartiallyTransparent() implementation;
  also returns TRUE for theme parts with 32bpp images.
- Since theme images are reused now it's not really a good idea to
  delete them in drawing functions.
- Pass around what kind of transparency an image actually needs. Use
  alpha-blending for 32bpp images.
- Set some default values for truesize sizing that seem closer to
  Windows.
- If a MINSIZEn property is not present, fall back to actual size of nth
  image to determine whether it is suitable.
- EnumThemeColors() and EnumThemeSizes() actually do not return a single
  string with the color/size name, but rather a struct containing three
  strings - name, display name and tooltip.
- The default image layout is HORIZONTAL, not VERTICAL.
- Take a common computation out of two if-branches in
  UXTHEME_LoadImage().
- Compare result of RegQueryValueExW() with ERROR_SUCCESS.
- Another fix to use magenta as the default transparent color.
- Implement "manual" image sharing(as opposed to using LoadImage() with
  LR_SHARED) by keeping the loaded images in a list. This is needed for
  proper alpha support later on since once-per-image preparations will
  be needed then.
- Add support for horizontal & vertical alignment when doing truesize
  sizing.
- Whatever TrueSizeStretchMark is for - it's not what Wine uxtheme used
  it for. Native uxtheme always stretches "truesize" parts when the
  destination is smaller than the part image size, but
  TrueSizeStretchMark doesn't seem to have an influence.

svn path=/trunk/; revision=17719
reactos/lib/uxtheme/Makefile.in [deleted file]
reactos/lib/uxtheme/draw.c
reactos/lib/uxtheme/msstyles.c
reactos/lib/uxtheme/msstyles.h
reactos/lib/uxtheme/property.c
reactos/lib/uxtheme/system.c
reactos/lib/uxtheme/uxtheme.spec
reactos/lib/uxtheme/uxthemedll.h