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:
@@ -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:
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user