Change wxBitmap to wxBitmapBundle in wxBannerWindow
This commit is contained in:
parent
85becc9362
commit
2b94729a33
@ -14,11 +14,10 @@
|
|||||||
|
|
||||||
#if wxUSE_BANNERWINDOW
|
#if wxUSE_BANNERWINDOW
|
||||||
|
|
||||||
#include "wx/bitmap.h"
|
#include "wx/bmpbndl.h"
|
||||||
#include "wx/event.h"
|
#include "wx/event.h"
|
||||||
#include "wx/window.h"
|
#include "wx/window.h"
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxBitmap;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxColour;
|
class WXDLLIMPEXP_FWD_CORE wxColour;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxDC;
|
class WXDLLIMPEXP_FWD_CORE wxDC;
|
||||||
|
|
||||||
@ -75,7 +74,7 @@ public:
|
|||||||
// truncated from the top, for wxTOP and wxBOTTOM -- from the right and for
|
// truncated from the top, for wxTOP and wxBOTTOM -- from the right and for
|
||||||
// wxRIGHT -- from the bottom, so put the most important part of the bitmap
|
// wxRIGHT -- from the bottom, so put the most important part of the bitmap
|
||||||
// information in the opposite direction.
|
// information in the opposite direction.
|
||||||
void SetBitmap(const wxBitmap& bmp);
|
void SetBitmap(const wxBitmapBundle& bmp);
|
||||||
|
|
||||||
// Set the text to display. This is mutually exclusive with SetBitmap().
|
// Set the text to display. This is mutually exclusive with SetBitmap().
|
||||||
// Title is rendered in bold and should be single line, message can have
|
// Title is rendered in bold and should be single line, message can have
|
||||||
@ -120,7 +119,7 @@ private:
|
|||||||
wxDirection m_direction;
|
wxDirection m_direction;
|
||||||
|
|
||||||
// If valid, this bitmap is drawn as is.
|
// If valid, this bitmap is drawn as is.
|
||||||
wxBitmap m_bitmap;
|
wxBitmapBundle m_bitmapBundle;
|
||||||
|
|
||||||
// If bitmap is valid, this is the colour we use to extend it if the bitmap
|
// If bitmap is valid, this is the colour we use to extend it if the bitmap
|
||||||
// is smaller than this window. It is computed on demand by GetBitmapBg().
|
// is smaller than this window. It is computed on demand by GetBitmapBg().
|
||||||
|
@ -134,7 +134,7 @@ public:
|
|||||||
@param bmp Bitmap to use as background. May be invalid to indicate
|
@param bmp Bitmap to use as background. May be invalid to indicate
|
||||||
that no background bitmap should be used.
|
that no background bitmap should be used.
|
||||||
*/
|
*/
|
||||||
void SetBitmap(const wxBitmap& bmp);
|
void SetBitmap(const wxBitmapBundle& bmp);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Set the text to display.
|
Set the text to display.
|
||||||
|
@ -71,9 +71,9 @@ wxBannerWindow::Create(wxWindow* parent,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxBannerWindow::SetBitmap(const wxBitmap& bmp)
|
void wxBannerWindow::SetBitmap(const wxBitmapBundle& bmp)
|
||||||
{
|
{
|
||||||
m_bitmap = bmp;
|
m_bitmapBundle = bmp;
|
||||||
|
|
||||||
m_colBitmapBg = wxColour();
|
m_colBitmapBg = wxColour();
|
||||||
|
|
||||||
@ -109,9 +109,9 @@ wxFont wxBannerWindow::GetTitleFont() const
|
|||||||
|
|
||||||
wxSize wxBannerWindow::DoGetBestClientSize() const
|
wxSize wxBannerWindow::DoGetBestClientSize() const
|
||||||
{
|
{
|
||||||
if ( m_bitmap.IsOk() )
|
if ( m_bitmapBundle.IsOk() )
|
||||||
{
|
{
|
||||||
return m_bitmap.GetSize();
|
return m_bitmapBundle.GetPreferredLogicalSizeFor(this);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -143,7 +143,7 @@ void wxBannerWindow::OnSize(wxSizeEvent& event)
|
|||||||
|
|
||||||
void wxBannerWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
|
void wxBannerWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
if ( m_bitmap.IsOk() && m_title.empty() && m_message.empty() )
|
if ( m_bitmapBundle.IsOk() && m_title.empty() && m_message.empty() )
|
||||||
{
|
{
|
||||||
// No need for buffering in this case.
|
// No need for buffering in this case.
|
||||||
wxPaintDC dc(this);
|
wxPaintDC dc(this);
|
||||||
@ -155,7 +155,7 @@ void wxBannerWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
|
|||||||
wxAutoBufferedPaintDC dc(this);
|
wxAutoBufferedPaintDC dc(this);
|
||||||
|
|
||||||
// Deal with the background first.
|
// Deal with the background first.
|
||||||
if ( m_bitmap.IsOk() )
|
if ( m_bitmapBundle.IsOk() )
|
||||||
{
|
{
|
||||||
DrawBitmapBackground(dc);
|
DrawBitmapBackground(dc);
|
||||||
}
|
}
|
||||||
@ -207,7 +207,7 @@ wxColour wxBannerWindow::GetBitmapBg()
|
|||||||
|
|
||||||
// Determine the colour to use to extend the bitmap. It's the colour of the
|
// Determine the colour to use to extend the bitmap. It's the colour of the
|
||||||
// bitmap pixels at the edge closest to the area where it can be extended.
|
// bitmap pixels at the edge closest to the area where it can be extended.
|
||||||
wxImage image(m_bitmap.ConvertToImage());
|
wxImage image(m_bitmapBundle.GetBitmapFor(this).ConvertToImage());
|
||||||
|
|
||||||
// The point we get the colour from. The choice is arbitrary and in general
|
// The point we get the colour from. The choice is arbitrary and in general
|
||||||
// the bitmap should have the same colour on the entire edge of this point
|
// the bitmap should have the same colour on the entire edge of this point
|
||||||
@ -260,6 +260,7 @@ void wxBannerWindow::DrawBitmapBackground(wxDC& dc)
|
|||||||
wxRect rectSolid;
|
wxRect rectSolid;
|
||||||
|
|
||||||
const wxSize size = GetClientSize();
|
const wxSize size = GetClientSize();
|
||||||
|
const wxBitmap currentBitmap = m_bitmapBundle.GetBitmapFor(this);
|
||||||
|
|
||||||
switch ( m_direction )
|
switch ( m_direction )
|
||||||
{
|
{
|
||||||
@ -267,9 +268,9 @@ void wxBannerWindow::DrawBitmapBackground(wxDC& dc)
|
|||||||
case wxBOTTOM:
|
case wxBOTTOM:
|
||||||
// Draw the bitmap at the origin, its rightmost could be truncated,
|
// Draw the bitmap at the origin, its rightmost could be truncated,
|
||||||
// as it's meant to be.
|
// as it's meant to be.
|
||||||
dc.DrawBitmap(m_bitmap, 0, 0);
|
dc.DrawBitmap(currentBitmap, 0, 0);
|
||||||
|
|
||||||
rectSolid.x = m_bitmap.GetWidth();
|
rectSolid.x = currentBitmap.GetLogicalWidth();
|
||||||
rectSolid.width = size.x - rectSolid.x;
|
rectSolid.width = size.x - rectSolid.x;
|
||||||
rectSolid.height = size.y;
|
rectSolid.height = size.y;
|
||||||
break;
|
break;
|
||||||
@ -279,16 +280,16 @@ void wxBannerWindow::DrawBitmapBackground(wxDC& dc)
|
|||||||
// must be always visible so intentionally draw it possibly partly
|
// must be always visible so intentionally draw it possibly partly
|
||||||
// outside of the window.
|
// outside of the window.
|
||||||
rectSolid.width = size.x;
|
rectSolid.width = size.x;
|
||||||
rectSolid.height = size.y - m_bitmap.GetHeight();
|
rectSolid.height = size.y - currentBitmap.GetLogicalHeight();
|
||||||
dc.DrawBitmap(m_bitmap, 0, rectSolid.height);
|
dc.DrawBitmap(currentBitmap, 0, rectSolid.height);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case wxRIGHT:
|
case wxRIGHT:
|
||||||
// Draw the bitmap at the origin, possibly truncating its
|
// Draw the bitmap at the origin, possibly truncating its
|
||||||
// bottommost part.
|
// bottommost part.
|
||||||
dc.DrawBitmap(m_bitmap, 0, 0);
|
dc.DrawBitmap(currentBitmap, 0, 0);
|
||||||
|
|
||||||
rectSolid.y = m_bitmap.GetHeight();
|
rectSolid.y = currentBitmap.GetLogicalHeight();
|
||||||
rectSolid.height = size.y - rectSolid.y;
|
rectSolid.height = size.y - rectSolid.y;
|
||||||
rectSolid.width = size.x;
|
rectSolid.width = size.x;
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user