Allow initialising wxStaticBitamp with wxNullBitmap/wxNullIcon,
automatically resize the control to match the bitmap (as wxMSW does). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -69,9 +69,9 @@ bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id,
|
|||||||
wxSize actualSize(size);
|
wxSize actualSize(size);
|
||||||
// work around the cases where the bitmap is a wxNull(Icon/Bitmap)
|
// work around the cases where the bitmap is a wxNull(Icon/Bitmap)
|
||||||
if (actualSize.x == -1)
|
if (actualSize.x == -1)
|
||||||
actualSize.x = bitmap.GetWidth() ? bitmap.GetWidth() : 1;
|
actualSize.x = bitmap.Ok() ? bitmap.GetWidth() : 1;
|
||||||
if (actualSize.y == -1)
|
if (actualSize.y == -1)
|
||||||
actualSize.y = bitmap.GetHeight() ? bitmap.GetHeight() : 1;
|
actualSize.y = bitmap.Ok() ? bitmap.GetHeight() : 1;
|
||||||
AttachWidget (parent, m_mainWidget, (WXWidget) NULL,
|
AttachWidget (parent, m_mainWidget, (WXWidget) NULL,
|
||||||
pos.x, pos.y, actualSize.x, actualSize.y);
|
pos.x, pos.y, actualSize.x, actualSize.y);
|
||||||
|
|
||||||
@@ -86,9 +86,7 @@ wxStaticBitmap::~wxStaticBitmap()
|
|||||||
void wxStaticBitmap::DoSetBitmap()
|
void wxStaticBitmap::DoSetBitmap()
|
||||||
{
|
{
|
||||||
Widget widget = (Widget) m_mainWidget;
|
Widget widget = (Widget) m_mainWidget;
|
||||||
int x, y, w1, h1, w2, h2;
|
int w2, h2;
|
||||||
|
|
||||||
GetPosition(&x, &y);
|
|
||||||
|
|
||||||
if (m_messageBitmapOriginal.Ok())
|
if (m_messageBitmapOriginal.Ok())
|
||||||
{
|
{
|
||||||
@@ -123,10 +121,8 @@ void wxStaticBitmap::DoSetBitmap()
|
|||||||
XmNlabelPixmap, pixmap,
|
XmNlabelPixmap, pixmap,
|
||||||
XmNlabelType, XmPIXMAP,
|
XmNlabelType, XmPIXMAP,
|
||||||
NULL);
|
NULL);
|
||||||
GetSize(&w1, &h1);
|
|
||||||
|
|
||||||
if (! (w1 == w2) && (h1 == h2))
|
SetSize(w2, h2);
|
||||||
SetSize(x, y, w2, h2);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user