From 1feb5443ff11ea45e9f21b1ea9a6f58caf2b6b4f Mon Sep 17 00:00:00 2001 From: Jamie Gadd Date: Sun, 8 Jan 2006 15:33:30 +0000 Subject: [PATCH] Return correct values for GetFieldRect() when using themes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36779 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 1 + src/msw/statbr95.cpp | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/docs/changes.txt b/docs/changes.txt index 81898ce7fc..61cae2c555 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -68,6 +68,7 @@ wxMSW: - New TARGET_CPU=amd64 (or 'ia64') option for the makefile.vc files which puts 64-bit builds in their own directory and adds /machine:amd64 or ia64 to the link command. +- wxStatusBar::GetFieldRect now returns correct values under XP. wxGTK: diff --git a/src/msw/statbr95.cpp b/src/msw/statbr95.cpp index 64078bf0db..21dd058290 100644 --- a/src/msw/statbr95.cpp +++ b/src/msw/statbr95.cpp @@ -35,6 +35,10 @@ // include "properly" #include "wx/msw/wrapcctl.h" +#if wxUSE_UXTHEME + #include "wx/msw/uxtheme.h" +#endif + // ---------------------------------------------------------------------------- // macros // ---------------------------------------------------------------------------- @@ -267,6 +271,23 @@ bool wxStatusBar95::GetFieldRect(int i, wxRect& rect) const wxLogLastError(wxT("SendMessage(SB_GETRECT)")); } +#if wxUSE_UXTHEME + wxUxThemeHandle theme((wxStatusBar95 *)this, L"Status"); // const_cast + if ( theme ) + { + // by default Windows has a 2 pixel border to the right of the left + // divider (or it could be a bug) but it looks wrong so remove it + if ( i != 0 ) + { + r.left -= 2; + } + + wxUxThemeEngine::Get()->GetThemeBackgroundContentRect(theme, NULL, + 1 /* SP_PANE */, 0, + &r, &r); + } +#endif + wxCopyRECTToRect(r, rect); return true;