aren't mangled
Toolbar buttons are now centred if the bitmap size is smaller
than the specified default size
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25684
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- background colour of a wxComboBox may now be set
- fixed wxListCtrl::GetItemText/BackgroundColour()
- Esc can now be used to close menus in the dialogs (Hartmut Honisch)
- background colour of a wxComboBox may now be set
- fixed wxListCtrl::GetItemText/BackgroundColour()
- Esc can now be used to close menus in the dialogs (Hartmut Honisch)
+- Added no-remap system option so colourful toolbar buttons
+ aren't mangled
+- Toolbar buttons are now centred if the bitmap size is smaller
+ than the specified default size
#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI))
#include "wx/toolbar.h"
#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI))
#include "wx/toolbar.h"
#include "wx/msw/private.h"
#include "wx/msw/private.h"
MemoryHDC memoryDC2;
#endif // USE_BITMAP_MASKS/!USE_BITMAP_MASKS
MemoryHDC memoryDC2;
#endif // USE_BITMAP_MASKS/!USE_BITMAP_MASKS
+ if (wxSystemOptions::GetOptionInt(wxT("no-remap")) == 1)
+ {
+#if USE_BITMAP_MASKS
+ dcAllButtons.SelectObject(wxNullBitmap);
+#endif
+
+ // Even if we're not remapping the bitmap
+ // content, we still have to remap the background.
+ hBitmap = (HBITMAP)MapBitmap((WXHBITMAP) hBitmap,
+ totalBitmapWidth, totalBitmapHeight);
+
+#if USE_BITMAP_MASKS
+ dcAllButtons.SelectObject(bitmap);
+#endif
+ }
+
// the button position
wxCoord x = 0;
// the button position
wxCoord x = 0;
const wxBitmap& bmp = tool->GetNormalBitmap();
if ( bmp.Ok() )
{
const wxBitmap& bmp = tool->GetNormalBitmap();
if ( bmp.Ok() )
{
+ int xOffset = wxMax(0, (m_defaultWidth - bmp.GetWidth())/2);
+ int yOffset = wxMax(0, (m_defaultHeight - bmp.GetHeight())/2);
#if USE_BITMAP_MASKS
// notice the last parameter: do use mask
#if USE_BITMAP_MASKS
// notice the last parameter: do use mask
- dcAllButtons.DrawBitmap(bmp, x, 0, TRUE);
+ dcAllButtons.DrawBitmap(bmp, x+xOffset, yOffset, TRUE);
#else // !USE_BITMAP_MASKS
SelectInHDC hdcSelector2(memoryDC2, GetHbitmapOf(bmp));
if ( !BitBlt(memoryDC,
#else // !USE_BITMAP_MASKS
SelectInHDC hdcSelector2(memoryDC2, GetHbitmapOf(bmp));
if ( !BitBlt(memoryDC,
- x, 0, m_defaultWidth, m_defaultHeight,
+ x+xOffset, yOffset, m_defaultWidth, m_defaultHeight,
memoryDC2,
0, 0, SRCCOPY) )
{
memoryDC2,
0, 0, SRCCOPY) )
{
bitmap.SetHBITMAP(0);
#endif // USE_BITMAP_MASKS/!USE_BITMAP_MASKS
bitmap.SetHBITMAP(0);
#endif // USE_BITMAP_MASKS/!USE_BITMAP_MASKS
- // Map to system colours
- hBitmap = (HBITMAP)MapBitmap((WXHBITMAP) hBitmap,
- totalBitmapWidth, totalBitmapHeight);
+ if (!wxSystemOptions::HasOption(wxT("no-remap")) || wxSystemOptions::GetOptionInt(wxT("no-remap")) == 0)
+ {
+ // Map to system colours
+ hBitmap = (HBITMAP)MapBitmap((WXHBITMAP) hBitmap,
+ totalBitmapWidth, totalBitmapHeight);
+ }