Corrections to bitmap handling

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51144 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2008-01-10 10:30:51 +00:00
parent 7dea20f60a
commit 634bb98a30

View File

@@ -682,13 +682,13 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward)
DoWizardLayout(); DoWizardLayout();
} }
if (GetBitmapPlacement()) if (GetBitmapPlacement() && m_statbmp)
{ {
ResizeBitmap(bmp); ResizeBitmap(bmp);
if ( !bmp.IsSameAs(bmpPrev) ) if ( !bmp.IsSameAs(bmpPrev) )
m_statbmp->SetBitmap(bmp); m_statbmp->SetBitmap(bmp);
if (m_usingSizer) if (m_usingSizer)
m_sizerPage->RecalcSizes(); m_sizerPage->RecalcSizes();
} }
@@ -924,16 +924,16 @@ bool wxWizard::DoLayoutAdaptation()
// Create a scrolled window and reparent // Create a scrolled window and reparent
wxScrolledWindow* scrolledWindow = new wxScrolledWindow(page, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxVSCROLL|wxHSCROLL|wxBORDER_NONE); wxScrolledWindow* scrolledWindow = new wxScrolledWindow(page, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxVSCROLL|wxHSCROLL|wxBORDER_NONE);
wxSizer* oldSizer = page->GetSizer(); wxSizer* oldSizer = page->GetSizer();
wxSizer* newSizer = new wxBoxSizer(wxVERTICAL); wxSizer* newSizer = new wxBoxSizer(wxVERTICAL);
newSizer->Add(scrolledWindow,1, wxEXPAND, 0); newSizer->Add(scrolledWindow,1, wxEXPAND, 0);
page->SetSizer(newSizer, false /* don't delete the old sizer */); page->SetSizer(newSizer, false /* don't delete the old sizer */);
scrolledWindow->SetSizer(oldSizer); scrolledWindow->SetSizer(oldSizer);
wxStandardDialogLayoutAdapter::DoReparentControls(page, scrolledWindow); wxStandardDialogLayoutAdapter::DoReparentControls(page, scrolledWindow);
pages.Append(page); pages.Append(page);
windows.Append(scrolledWindow); windows.Append(scrolledWindow);
} }
@@ -961,7 +961,7 @@ bool wxWizard::ResizeBitmap(wxBitmap& bmp)
int bitmapWidth = wxMax(bmp.GetWidth(), GetMinimumBitmapWidth()); int bitmapWidth = wxMax(bmp.GetWidth(), GetMinimumBitmapWidth());
int bitmapHeight = pageSize.y; int bitmapHeight = pageSize.y;
if (bmp.GetHeight() != bitmapHeight) if (!m_statbmp->GetBitmap().Ok() || m_statbmp->GetBitmap().GetHeight() != bitmapHeight)
{ {
wxBitmap bitmap(bitmapWidth, bitmapHeight); wxBitmap bitmap(bitmapWidth, bitmapHeight);
{ {
@@ -981,16 +981,16 @@ bool wxWizard::ResizeBitmap(wxBitmap& bmp)
if (GetBitmapPlacement() & wxWIZARD_HALIGN_LEFT) if (GetBitmapPlacement() & wxWIZARD_HALIGN_LEFT)
x = 0; x = 0;
else if (GetBitmapPlacement() & wxWIZARD_HALIGN_RIGHT) else if (GetBitmapPlacement() & wxWIZARD_HALIGN_RIGHT)
x = bitmapWidth - GetBitmap().GetWidth(); x = bitmapWidth - bmp.GetWidth();
else else
x = (bitmapWidth - GetBitmap().GetWidth())/2; x = (bitmapWidth - bmp.GetWidth())/2;
if (GetBitmapPlacement() & wxWIZARD_VALIGN_TOP) if (GetBitmapPlacement() & wxWIZARD_VALIGN_TOP)
y = 0; y = 0;
else if (GetBitmapPlacement() & wxWIZARD_VALIGN_BOTTOM) else if (GetBitmapPlacement() & wxWIZARD_VALIGN_BOTTOM)
y = bitmapHeight - GetBitmap().GetHeight(); y = bitmapHeight - bmp.GetHeight();
else else
y = (bitmapHeight - GetBitmap().GetHeight())/2; y = (bitmapHeight - bmp.GetHeight())/2;
dc.DrawBitmap(bmp, x, y, true); dc.DrawBitmap(bmp, x, y, true);
dc.SelectObject(wxNullBitmap); dc.SelectObject(wxNullBitmap);