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


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25684 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2004-02-09 16:02:28 +00:00
parent 7f0da36965
commit dfa5360916
2 changed files with 31 additions and 5 deletions

View File

@ -157,6 +157,10 @@ wxMSW:
- 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
wxGTK:

View File

@ -42,6 +42,7 @@
#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI))
#include "wx/toolbar.h"
#include "wx/sysopt.h"
#include "wx/msw/private.h"
@ -539,6 +540,22 @@ bool wxToolBar::Realize()
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;
@ -553,13 +570,15 @@ bool wxToolBar::Realize()
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
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,
x, 0, m_defaultWidth, m_defaultHeight,
x+xOffset, yOffset, m_defaultWidth, m_defaultHeight,
memoryDC2,
0, 0, SRCCOPY) )
{
@ -587,9 +606,12 @@ bool wxToolBar::Realize()
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);
}
bool addBitmap = TRUE;