[Winmerge-svn] SF.net SVN: winmerge: [4280] branches/R2_6/Src
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <sdo...@us...> - 2007-05-13 01:21:00
|
Revision: 4280 http://svn.sourceforge.net/winmerge/?rev=4280&view=rev Author: sdottaka Date: 2007-05-12 18:20:53 -0700 (Sat, 12 May 2007) Log Message: ----------- BUG: [ 1717814 ] Fix header drawing issue on WinXP with Luna Theme Modified Paths: -------------- branches/R2_6/Src/Changes.txt branches/R2_6/Src/Common/SortHeaderCtrl.cpp Modified: branches/R2_6/Src/Changes.txt =================================================================== --- branches/R2_6/Src/Changes.txt 2007-05-13 01:19:50 UTC (rev 4279) +++ branches/R2_6/Src/Changes.txt 2007-05-13 01:20:53 UTC (rev 4280) @@ -2,6 +2,10 @@ Add new items to top. (This summarizes all changes to all files under Src, including Src\Languages.) +2007-05-13 Takashi + BUG: [ 1717814 ] Fix header drawing issue on WinXP with Luna Theme + Src/Common/SortHeaderCtrl.cpp + 2007-04-29 Kimmo PATCH: [ 1704904 ] Korean Translation 2.6.X Submitted by Sukjoon, Hwang Modified: branches/R2_6/Src/Common/SortHeaderCtrl.cpp =================================================================== --- branches/R2_6/Src/Common/SortHeaderCtrl.cpp 2007-05-13 01:19:50 UTC (rev 4279) +++ branches/R2_6/Src/Common/SortHeaderCtrl.cpp 2007-05-13 01:20:53 UTC (rev 4280) @@ -9,7 +9,13 @@ #include "stdafx.h" #include "SortHeaderCtrl.h" +#include "dllver.h" +#ifndef HDF_SORTUP +#define HDF_SORTUP 0x0400 +#define HDF_SORTDOWN 0x0200 +#endif + ///////////////////////////////////////////////////////////////////////////// // CSortHeaderCtrl @@ -37,12 +43,34 @@ m_nSortCol = nCol; m_bSortAsc = bAsc; - // Change the item to ownder drawn HD_ITEM hditem; hditem.mask = HDI_FORMAT; + + // Clear HDF_SORTDOWN and HDF_SORTUP flag in all columns. + int i; + for (i = 0; i < this->GetItemCount(); i++) + { + GetItem( i, &hditem ); + if (hditem.fmt & (HDF_SORTDOWN | HDF_SORTUP)) + { + hditem.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN); + SetItem( i, &hditem ); + } + } + GetItem( nCol, &hditem ); - hditem.fmt |= HDF_OWNERDRAW; + if (GetDllVersion(_T("comctl32.dll")) >= PACKVERSION(6,00)) + { + // We can use HDF_SORTUP and HDF_SORTDOWN flag to draw a sort arrow on the header. + hditem.fmt &= ~(HDF_SORTUP | HDF_SORTDOWN); + hditem.fmt |= bAsc ? HDF_SORTUP : HDF_SORTDOWN; + } + else + { + // Change the item to owner drawn + hditem.fmt |= HDF_OWNERDRAW; + } SetItem( nCol, &hditem ); // Invalidate header control so that it gets redrawn This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |