add wxProgressDialog::SetRange() function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,13 +1,13 @@
|
|||||||
////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: progdlgg.h
|
// Name: progdlgg.h
|
||||||
// Purpose: wxProgressDialog class
|
// Purpose: wxProgressDialog class
|
||||||
// Author: Karsten Ballueder
|
// Author: Karsten Ballueder
|
||||||
// Modified by:
|
// Modified by: Francesco Montorsi
|
||||||
// Created: 09.05.1999
|
// Created: 09.05.1999
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
// Copyright: (c) Karsten Ballueder
|
// Copyright: (c) Karsten Ballueder
|
||||||
// Licence: wxWindows licence
|
// Licence: wxWindows licence
|
||||||
////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef __PROGDLGH_G__
|
#ifndef __PROGDLGH_G__
|
||||||
#define __PROGDLGH_G__
|
#define __PROGDLGH_G__
|
||||||
@@ -23,56 +23,36 @@ class WXDLLIMPEXP_FWD_CORE wxButton;
|
|||||||
class WXDLLIMPEXP_FWD_CORE wxGauge;
|
class WXDLLIMPEXP_FWD_CORE wxGauge;
|
||||||
class WXDLLIMPEXP_FWD_CORE wxStaticText;
|
class WXDLLIMPEXP_FWD_CORE wxStaticText;
|
||||||
|
|
||||||
/* Progress dialog which shows a moving progress bar.
|
/*
|
||||||
Taken from the Mahogany project.*/
|
Progress dialog which shows a moving progress bar.
|
||||||
|
Taken from the Mahogany project.
|
||||||
|
*/
|
||||||
class WXDLLIMPEXP_CORE wxProgressDialog : public wxDialog
|
class WXDLLIMPEXP_CORE wxProgressDialog : public wxDialog
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxProgressDialog)
|
|
||||||
public:
|
public:
|
||||||
/* Creates and displays dialog, disables event handling for other
|
|
||||||
frames or parent frame to avoid recursion problems.
|
|
||||||
@param title title for window
|
|
||||||
@param message message to display in window
|
|
||||||
@param maximum value for status bar, if <= 0, no bar is shown
|
|
||||||
@param parent window or NULL
|
|
||||||
@param style is the bit mask of wxPD_XXX constants from wx/defs.h
|
|
||||||
*/
|
|
||||||
wxProgressDialog(const wxString& title, const wxString& message,
|
wxProgressDialog(const wxString& title, const wxString& message,
|
||||||
int maximum = 100,
|
int maximum = 100,
|
||||||
wxWindow *parent = NULL,
|
wxWindow *parent = NULL,
|
||||||
int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE);
|
int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE);
|
||||||
/* Destructor.
|
|
||||||
Re-enables event handling for other windows.
|
|
||||||
*/
|
|
||||||
virtual ~wxProgressDialog();
|
virtual ~wxProgressDialog();
|
||||||
|
|
||||||
/* Update the status bar to the new value.
|
|
||||||
@param value new value
|
|
||||||
@param newmsg if used, new message to display
|
|
||||||
@return true if ABORT button has not been pressed
|
|
||||||
*/
|
|
||||||
virtual bool Update(int value, const wxString& newmsg = wxEmptyString, bool *skip = NULL);
|
virtual bool Update(int value, const wxString& newmsg = wxEmptyString, bool *skip = NULL);
|
||||||
|
|
||||||
/* Switches the dialog to use a gauge in indeterminate mode and calls
|
|
||||||
wxGauge::Pulse() to show to the user a bit of progress */
|
|
||||||
virtual bool Pulse(const wxString& newmsg = wxEmptyString, bool *skip = NULL);
|
virtual bool Pulse(const wxString& newmsg = wxEmptyString, bool *skip = NULL);
|
||||||
|
|
||||||
// Must provide overload to avoid hiding it (and warnings about it)
|
|
||||||
virtual void Update() { wxDialog::Update(); }
|
|
||||||
|
|
||||||
virtual bool Show( bool show = true );
|
|
||||||
|
|
||||||
/* Can be called to continue after the cancel button has been pressed, but
|
|
||||||
the program decided to continue the operation (e.g., user didn't
|
|
||||||
confirm it)
|
|
||||||
*/
|
|
||||||
void Resume();
|
void Resume();
|
||||||
|
|
||||||
int GetValue() const;
|
int GetValue() const;
|
||||||
int GetRange() const;
|
int GetRange() const;
|
||||||
wxString GetMessage() const;
|
wxString GetMessage() const;
|
||||||
|
|
||||||
|
void SetRange(int maximum);
|
||||||
|
|
||||||
|
// Must provide overload to avoid hiding it (and warnings about it)
|
||||||
|
virtual void Update() { wxDialog::Update(); }
|
||||||
|
|
||||||
|
virtual bool Show( bool show = true );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// callback for optional abort button
|
// callback for optional abort button
|
||||||
void OnCancel(wxCommandEvent&);
|
void OnCancel(wxCommandEvent&);
|
||||||
@@ -168,6 +148,7 @@ private:
|
|||||||
class WXDLLIMPEXP_FWD_CORE wxWindowDisabler *m_winDisabler;
|
class WXDLLIMPEXP_FWD_CORE wxWindowDisabler *m_winDisabler;
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxProgressDialog)
|
||||||
wxDECLARE_NO_COPY_CLASS(wxProgressDialog);
|
wxDECLARE_NO_COPY_CLASS(wxProgressDialog);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -128,6 +128,15 @@ public:
|
|||||||
*/
|
*/
|
||||||
void Resume();
|
void Resume();
|
||||||
|
|
||||||
|
/**
|
||||||
|
Changes the maximum value of the progress meter given in the constructor.
|
||||||
|
This function can only be called (with a positive value) if the value passed
|
||||||
|
in the constructor was positive.
|
||||||
|
|
||||||
|
@since 2.9.1
|
||||||
|
*/
|
||||||
|
void SetRange(int maximum);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Updates the dialog, setting the progress bar to the new value and
|
Updates the dialog, setting the progress bar to the new value and
|
||||||
updating the message if new one is specified.
|
updating the message if new one is specified.
|
||||||
|
@@ -522,6 +522,22 @@ wxString wxProgressDialog::GetMessage() const
|
|||||||
return m_msg->GetLabel();
|
return m_msg->GetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxProgressDialog::SetRange(int maximum)
|
||||||
|
{
|
||||||
|
wxASSERT_MSG(m_gauge, "The dialog should have been constructed with a range > 0");
|
||||||
|
wxASSERT_MSG(maximum > 0, "Invalid range");
|
||||||
|
|
||||||
|
m_gauge->SetRange(maximum);
|
||||||
|
m_maximum = maximum;
|
||||||
|
|
||||||
|
#if defined(__WXMSW__) || defined(__WXPM__)
|
||||||
|
// we can't have values > 65,536 in the progress control under Windows, so
|
||||||
|
// scale everything down
|
||||||
|
m_factor = m_maximum / 65536 + 1;
|
||||||
|
m_maximum /= m_factor;
|
||||||
|
#endif // __WXMSW__
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// event handlers
|
// event handlers
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user