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
|
||||
// Purpose: wxProgressDialog class
|
||||
// Author: Karsten Ballueder
|
||||
// Modified by:
|
||||
// Modified by: Francesco Montorsi
|
||||
// Created: 09.05.1999
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Karsten Ballueder
|
||||
// Licence: wxWindows licence
|
||||
////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __PROGDLGH_G__
|
||||
#define __PROGDLGH_G__
|
||||
@@ -23,56 +23,36 @@ class WXDLLIMPEXP_FWD_CORE wxButton;
|
||||
class WXDLLIMPEXP_FWD_CORE wxGauge;
|
||||
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
|
||||
{
|
||||
DECLARE_DYNAMIC_CLASS(wxProgressDialog)
|
||||
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,
|
||||
int maximum = 100,
|
||||
wxWindow *parent = NULL,
|
||||
int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE);
|
||||
/* Destructor.
|
||||
Re-enables event handling for other windows.
|
||||
*/
|
||||
|
||||
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);
|
||||
|
||||
/* 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);
|
||||
|
||||
// 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();
|
||||
|
||||
int GetValue() const;
|
||||
int GetRange() 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:
|
||||
// callback for optional abort button
|
||||
void OnCancel(wxCommandEvent&);
|
||||
@@ -168,6 +148,7 @@ private:
|
||||
class WXDLLIMPEXP_FWD_CORE wxWindowDisabler *m_winDisabler;
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
DECLARE_DYNAMIC_CLASS(wxProgressDialog)
|
||||
wxDECLARE_NO_COPY_CLASS(wxProgressDialog);
|
||||
};
|
||||
|
||||
|
@@ -128,6 +128,15 @@ public:
|
||||
*/
|
||||
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
|
||||
updating the message if new one is specified.
|
||||
|
@@ -522,6 +522,22 @@ wxString wxProgressDialog::GetMessage() const
|
||||
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
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user