fix a bug for bitmap changing in wxWizard (patch 474975)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
f80bf90194
commit
7cc5041d03
@ -264,9 +264,19 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward)
|
||||
// button or not (initially the label is "Next")
|
||||
bool btnLabelWasNext = TRUE;
|
||||
|
||||
// and this tells us whether we already had the default bitmap before
|
||||
int bmpWasDefault;
|
||||
// Modified 10-20-2001 Robert Cavanaugh.
|
||||
// Fixed bug for displaying a new bitmap
|
||||
// in each *consecutive* page
|
||||
|
||||
// flag to indicate if this page uses a new bitmap
|
||||
bool bmpIsDefault = TRUE;
|
||||
|
||||
// use these labels to determine if we need to change the bitmap
|
||||
// for this page
|
||||
wxBitmap PreviousBitmap = wxNullBitmap;
|
||||
wxBitmap ThisBitmap = wxNullBitmap;
|
||||
|
||||
// check for previous page
|
||||
if ( m_page )
|
||||
{
|
||||
// send the event to the old page
|
||||
@ -281,15 +291,15 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward)
|
||||
m_page->Hide();
|
||||
|
||||
btnLabelWasNext = m_page->GetNext() != (wxWizardPage *)NULL;
|
||||
bmpWasDefault = !m_page->GetBitmap().Ok();
|
||||
}
|
||||
else // no previous page
|
||||
|
||||
// Get the bitmap of the previous page (if it exists)
|
||||
if(m_page->GetBitmap().Ok())
|
||||
{
|
||||
// always set the bitmap
|
||||
bmpWasDefault = -1;
|
||||
PreviousBitmap = m_page->GetBitmap();
|
||||
}
|
||||
}
|
||||
|
||||
// set the new one
|
||||
// set the new page
|
||||
m_page = page;
|
||||
|
||||
// is this the end?
|
||||
@ -297,11 +307,10 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward)
|
||||
{
|
||||
// terminate successfully
|
||||
EndModal(wxID_OK);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// send the event to the new page now
|
||||
// send the change event to the new page now
|
||||
wxWizardEvent event(wxEVT_WIZARD_PAGE_CHANGED, GetId(), goingForward);
|
||||
(void)m_page->GetEventHandler()->ProcessEvent(event);
|
||||
|
||||
@ -310,9 +319,19 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward)
|
||||
m_page->SetSize(m_x, m_y, m_width, m_height);
|
||||
m_page->Show();
|
||||
|
||||
// change the bitmap if necessary (and if we have it at all)
|
||||
int bmpIsDefault = !m_page->GetBitmap().Ok();
|
||||
if ( m_statbmp && (bmpIsDefault != bmpWasDefault) )
|
||||
// check if bitmap needs to be updated
|
||||
// update default flag as well
|
||||
if(m_page->GetBitmap().Ok())
|
||||
{
|
||||
ThisBitmap = m_page->GetBitmap();
|
||||
bmpIsDefault = FALSE;
|
||||
}
|
||||
|
||||
// change the bitmap if:
|
||||
// 1) a default bitmap was selected in constructor
|
||||
// 2) this page was constructed with a bitmap
|
||||
// 3) this bitmap is not the previous bitmap
|
||||
if( m_statbmp && (ThisBitmap != PreviousBitmap) )
|
||||
{
|
||||
wxBitmap bmp;
|
||||
if ( bmpIsDefault )
|
||||
|
Loading…
Reference in New Issue
Block a user