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 - background colour of a wxComboBox may now be set
- fixed wxListCtrl::GetItemText/BackgroundColour() - fixed wxListCtrl::GetItemText/BackgroundColour()
- Esc can now be used to close menus in the dialogs (Hartmut Honisch) - 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: wxGTK:

View File

@@ -42,6 +42,7 @@
#if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI)) #if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE && (!defined(_WIN32_WCE) || (_WIN32_WCE >= 400 && !wxUSE_POCKETPC_UI))
#include "wx/toolbar.h" #include "wx/toolbar.h"
#include "wx/sysopt.h"
#include "wx/msw/private.h" #include "wx/msw/private.h"
@@ -539,6 +540,22 @@ bool wxToolBar::Realize()
MemoryHDC memoryDC2; MemoryHDC memoryDC2;
#endif // USE_BITMAP_MASKS/!USE_BITMAP_MASKS #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 // the button position
wxCoord x = 0; wxCoord x = 0;
@@ -553,13 +570,15 @@ bool wxToolBar::Realize()
const wxBitmap& bmp = tool->GetNormalBitmap(); const wxBitmap& bmp = tool->GetNormalBitmap();
if ( bmp.Ok() ) 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 #if USE_BITMAP_MASKS
// notice the last parameter: do use mask // notice the last parameter: do use mask
dcAllButtons.DrawBitmap(bmp, x, 0, TRUE); dcAllButtons.DrawBitmap(bmp, x+xOffset, yOffset, TRUE);
#else // !USE_BITMAP_MASKS #else // !USE_BITMAP_MASKS
SelectInHDC hdcSelector2(memoryDC2, GetHbitmapOf(bmp)); SelectInHDC hdcSelector2(memoryDC2, GetHbitmapOf(bmp));
if ( !BitBlt(memoryDC, if ( !BitBlt(memoryDC,
x, 0, m_defaultWidth, m_defaultHeight, x+xOffset, yOffset, m_defaultWidth, m_defaultHeight,
memoryDC2, memoryDC2,
0, 0, SRCCOPY) ) 0, 0, SRCCOPY) )
{ {
@@ -587,9 +606,12 @@ bool wxToolBar::Realize()
bitmap.SetHBITMAP(0); bitmap.SetHBITMAP(0);
#endif // USE_BITMAP_MASKS/!USE_BITMAP_MASKS #endif // USE_BITMAP_MASKS/!USE_BITMAP_MASKS
// Map to system colours if (!wxSystemOptions::HasOption(wxT("no-remap")) || wxSystemOptions::GetOptionInt(wxT("no-remap")) == 0)
hBitmap = (HBITMAP)MapBitmap((WXHBITMAP) hBitmap, {
totalBitmapWidth, totalBitmapHeight); // Map to system colours
hBitmap = (HBITMAP)MapBitmap((WXHBITMAP) hBitmap,
totalBitmapWidth, totalBitmapHeight);
}
bool addBitmap = TRUE; bool addBitmap = TRUE;