ProgressDialog Class Reference

abstract

#include <c4d_gui.h>

Inheritance diagram for ProgressDialog:
Inheritance graph
[ legend ]

详细描述

This class is especially designed for progress dialogs.
Here is an implementation:

class MyProgressDialog : public ProgressDialog { public : virtual Bool CreateLayout ( void ); virtual Bool InitValues ( void );
virtual void Main ( C4DThread *bt); virtual String GetTitle ( void ) { return String ( "Progress" ); } }; Bool MyProgressDialog::CreateLayout() { return ProgressDialog::CreateLayout (); } Bool MyProgressDialog::InitValues() { return ProgressDialog::InitValues (); } void MyProgressDialog::Main( C4DThread *bt) { Int64 cnt = 100000000; SetPercent (0.f); for ( Int64 i=0; i<cnt; i++) { SetPercent (( Float )i/cnt); } SetPercent (1.f); }

// Calling code MyProgressDialog dlg; return dlg.Open();

Private Attributes

ProgressThread   thread
Float   percent
maxon::Spinlock   deprecatedCallback_lock
void *(*  deprectatedCallback )(void *context)
void *  deprectatedCallback_context
void *  deprectatedCallback_result

Modal Dialog

virtual Bool   CreateLayout (void)
virtual Bool   InitValues (void)
virtual void  Timer (const BaseContainer &msg)
virtual Int32   消息 (const BaseContainer &msg, BaseContainer &result)
virtual Bool   命令 ( Int32 id, const BaseContainer &msg)
virtual Bool   AskClose (void)

杂项

void  SetPercent ( Float p)
C4DThread GetThread (void)

Override

virtual void  Main ( C4DThread *bt)=0
virtual String   GetTitle (void)=0

Additional Inherited Members

-  Public Member Functions inherited from GeModalDialog
  GeModalDialog (void)
virtual  ~GeModalDialog (void)
Bool   Open ( Int32 xpos=-1, Int32 ypos=-1, Int32 defaultw=0, Int32 defaulth=0, Bool resizable=false)
Bool   关闭 ( Bool result)
Bool   GetResult (void)
void  CheckLong ( Int32 id, CHECKVALUERANGE type, Int32 val, Int32 x, Int32 y)
void  CheckReal ( Int32 id, CHECKVALUERANGE type, Float val, Float x, Float y, CHECKVALUEFORMAT format= CHECKVALUEFORMAT::NOTHING )
void  CheckMeter ( Int32 id, CHECKVALUERANGE type, Float val, Float x, Float y)
void  CheckPercent ( Int32 id, CHECKVALUERANGE type, Float val, Float x, Float y)
void  CheckDegree ( Int32 id, CHECKVALUERANGE type, Float val, Float x, Float y)
-  Public Member Functions inherited from GeDialog
Bool   SetColorField (const GadgetPtr &id, const TriState < 向量 > &tri, Float brightness, Float maxbrightness, Int32 flags)
  GeDialog (void)
virtual  ~GeDialog (void)
CDialog *  Get ()
virtual Bool   CoreMessage ( Int32 id, const BaseContainer &msg)
virtual void  DestroyWindow (void)
Bool   Open ( DLG_TYPE dlgtype, Int32 pluginid, Int32 xpos=-1, Int32 ypos=-1, Int32 defaultw=0, Int32 defaulth=0, Int32 subid=0)
Bool   关闭 (void)
Bool   关闭 ( Bool dummy)
GeData   SendMessage (const GadgetPtr &id, const BaseContainer &msg)
Bool   SendParentMessage (const BaseContainer &msg, Bool receiveSelf=false)
Int32   GetId (void)
Bool   IsOpen ()
Bool   IsVisible ()
void  SetTimer ( Int32 timer)
void  SetTitle (const maxon::String &title)
maxon::String   GetTitle ()
Bool   启用 (const GadgetPtr &id, Bool enabled)
Bool   IsEnabled (const GadgetPtr &id)
Bool   GetInputState ( Int32 askdevice, Int32 askchannel, BaseContainer &res)
Bool   GetInputEvent ( Int32 askdevice, BaseContainer &res)
void  KillEvents (void)
Bool   SetBool (const GadgetPtr &id, Int32 value, Int32 tristate=0)
Bool   SetInt32 (const GadgetPtr &id, Int32 value, Int32 min= LIMIT < Int32 >:: MIN , Int32 max= LIMIT < Int32 >:: MAX , Int32 step=1, Int32 tristate=0, Int32 min2= LIMIT < Int32 >:: MIN , Int32 max2= LIMIT < Int32 >:: MAX )
Bool   SetFloat (const GadgetPtr &id, Float value, Float min=(-1.0e18), Float max=(1.0e18), Float step=1.0, Int32 format= FORMAT_FLOAT , Float min2=0.0, Float max2=0.0, Bool quadscale=false, Int32 tristate=0)
Bool   SetMeter (const GadgetPtr &id, Float value, Float min=(-1.0e18), Float max=(1.0e18), Float step=1.0, Int32 tristate=0)
Bool   SetDegree (const GadgetPtr &id, Float radians_value, Float min=(-1.0e18), Float max=(1.0e18), Float step=1.0, Int32 tristate=0)
Bool   SetPercent (const GadgetPtr &id, Float value, Float min=0.0, Float max=100.0, Float step=1.0, Int32 tristate=0)
Bool   SetTime (const GadgetPtr &id, const BaseDocument *doc, const BaseTime &value, const BaseTime &min= BaseTime (- 108000, 1), const BaseTime &max= BaseTime (108000, 1), Int32 stepframes=1, Int32 tristate=0)
Bool   SetString (const GadgetPtr &id, const maxon::String &text, Int32 tristate=0, Int32 flags=0)
Bool   SetColorField (const GadgetPtr &id, const 向量 &color, Float brightness, Float maxbrightness, Int32 flags)
Bool   SetFilename (const GadgetPtr &id, const Filename &fn, Int32 tristate=0)
Bool   GetBool (const GadgetPtr &id, Bool &value) const
Bool   GetInt32 (const GadgetPtr &id, Int32 &value) const
Bool   GetFloat (const GadgetPtr &id, Float &value) const
Bool   GetVector (const GadgetPtr &id_x, const GadgetPtr &id_y, const GadgetPtr &id_z, 向量 &value) const
Bool   GetString (const GadgetPtr &id, maxon::String &text) const
Bool   GetColorField (const GadgetPtr &id, 向量 &color, Float &brightness) const
Bool   GetTime (const GadgetPtr &id, const BaseDocument *doc, BaseTime &time) const
Bool   GetFilename (const GadgetPtr &id, Filename &fn) const
Bool   CheckTristateChange (const GadgetPtr &id)
Bool   SetBool (const GadgetPtr &id, const BaseContainer *bc, Int32 bcid)
Bool   SetInt32 (const GadgetPtr &id, const BaseContainer *bc, Int32 bcid, Int32 min= LIMIT < Int32 >:: MIN , Int32 max= LIMIT < Int32 >:: MAX , Int32 step=1, Int32 min2= LIMIT < Int32 >:: MIN , Int32 max2= LIMIT < Int32 >:: MAX )
Bool   SetFloat (const GadgetPtr &id, const BaseContainer *bc, Int32 bcid, Float min=(-1.0e18), Float max=(1.0e18), Float step=1.0, Int32 format= FORMAT_FLOAT , Float min2=0.0, Float max2=0.0, Bool quadscale=false)
Bool   SetMeter (const GadgetPtr &id, const BaseContainer *bc, Int32 bcid, Float min=(-1.0e18), Float max=(1.0e18), Float step=1.0)
Bool   SetDegree (const GadgetPtr &id, const BaseContainer *bc, Int32 bcid, Float min=(-1.0e18), Float max=(1.0e18), Float step=1.0)
Bool   SetPercent (const GadgetPtr &id, const BaseContainer *bc, Int32 bcid, Float min=0.0, Float max=100.0, Float step=1.0)
Bool   SetTime (const GadgetPtr &id, const BaseDocument *doc, const BaseContainer *bc, Int32 bcid, const BaseTime &min= BaseTime (- 108000, 1), const BaseTime &max= BaseTime (108000, 1), Int32 stepframes=1)
Bool   SetString (const GadgetPtr &id, const BaseContainer *bc, Int32 bcid, Int32 flags=0)
Bool   SetFilename (const GadgetPtr &id, const BaseContainer *bc, Int32 bcid)
Bool   SetColorField (const GadgetPtr &id, const BaseContainer *bc, Int32 bc_colid, Int32 bc_brightnessid, Float maxbrightness, Int32 flags)
Bool   GetBool (const GadgetPtr &id, BaseContainer *bc, Int32 bcid) const
Bool   GetInt32 (const GadgetPtr &id, BaseContainer *bc, Int32 bcid) const
Bool   GetFloat (const GadgetPtr &id, BaseContainer *bc, Int32 bcid) const
Bool   GetTime (const GadgetPtr &id, const BaseDocument *doc, BaseContainer *bc, Int32 bcid) const
Bool   GetVector (const GadgetPtr &id_x, const GadgetPtr &id_y, const GadgetPtr &id_z, BaseContainer *bc, Int32 bcid) const
Bool   GetString (const GadgetPtr &id, BaseContainer *bc, Int32 bcid) const
Bool   GetFilename (const GadgetPtr &id, BaseContainer *bc, Int32 bcid) const
Bool   GetColorField (const GadgetPtr &id, BaseContainer *bc, Int32 bc_colid, Int32 bc_brightnessid) const
Bool   SetBool (const GadgetPtr &id, const TriState < Bool > &tri)
Bool   SetInt32 (const GadgetPtr &id, const TriState < Int32 > &tri, Int32 min= LIMIT < Int32 >:: MIN , Int32 max= LIMIT < Int32 >:: MAX , Int32 step=1, Int32 min2= LIMIT < Int32 >:: MIN , Int32 max2= LIMIT < Int32 >:: MAX )
Bool   SetFloat (const GadgetPtr &id, const TriState < Float > &tri, Float min=(-1.0e18), Float max=(1.0e18), Float step=1.0, Int32 format= FORMAT_FLOAT , Float min2=0.0, Float max2=0.0, Bool quadscale=false)
Bool   SetMeter (const GadgetPtr &id, const TriState < Float > &tri, Float min=(-1.0e18), Float max=(1.0e18), Float step=1.0)
Bool   SetDegree (const GadgetPtr &id, const TriState < Float > &tri, Float min=(-1.0e18), Float max=(1.0e18), Float step=1.0)
Bool   SetPercent (const GadgetPtr &id, const TriState < Float > &tri, Float min=0.0, Float max=100.0, Float step=1.0)
Bool   SetTime (const GadgetPtr &id, const BaseDocument *doc, const TriState < BaseTime > &tri, const BaseTime &min= BaseTime (- 108000, 1), const BaseTime &max= BaseTime (108000, 1), Int32 stepframes=1)
Bool   SetString (const GadgetPtr &id, const TriState < String > &tri, Int32 flags=0)
Bool   Local2Global ( Int32 *x, Int32 *y)
Bool   Global2Local ( Int32 *x, Int32 *y)
Bool   Screen2Local ( Int32 *x, Int32 *y)
Bool   Local2Screen ( Int32 *x, Int32 *y)
Bool   GetColorRGB ( Int32 colorid, Int32 &r, Int32 &g, Int32 &b)
void  SetDefaultColor (const GadgetPtr &id, Int32 colorid, Int32 mapid)
void  SetDefaultColor (const GadgetPtr &id, Int32 colorid, const 向量 &color)
Bool   LoadDialogResource ( Int32 id, GeResource *lr, Int32 flags)
C4DGadget AddCheckbox ( Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name)
C4DGadget AddButton ( Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name)
C4DGadget AddStaticText ( Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name, Int32 borderstyle)
C4DGadget AddArrowButton ( Int32 id, Int32 flags, Int32 initw, Int32 inith, Int32 arrowtype)
C4DGadget AddEditText ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 editflags=0)
C4DGadget AddMultiLineEditText ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 style=0)
C4DGadget AddEditNumber ( Int32 id, Int32 flags, Int32 initw=80, Int32 inith=0)
C4DGadget AddEditNumberArrows ( Int32 id, Int32 flags, Int32 initw=70, Int32 inith=0)
C4DGadget AddEditSlider ( Int32 id, Int32 flags, Int32 initw=80, Int32 inith=0)
C4DGadget AddSlider ( Int32 id, Int32 flags, Int32 initw=90, Int32 inith=0)
C4DGadget AddColorField ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 colorflags=0)
C4DGadget AddColorChooser ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 layoutflags=0, const BaseContainer &settings= BaseContainer ())
C4DGadget AddRadioButton ( Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name)
C4DGadget AddRadioText ( Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name)
C4DGadget AddEditShortcut ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 shortcutflags=0)
C4DGadget AddSeparatorH ( Int32 initw, Int32 flags= BFH_FIT )
C4DGadget AddSeparatorV ( Int32 inith, Int32 flags= BFV_FIT )
Bool   AddRadioGroup ( Int32 id, Int32 flags, Int32 columns=1, Int32 rows=0)
C4DGadget AddComboBox ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Bool specialalign=false, Bool allowFiltering=false)
C4DGadget AddComboButton ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Bool specialalign=false, Bool allowFiltering=false)
C4DGadget AddPopupButton ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Bool allowFiltering=false)
Bool   AddListView ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0)
Bool   LayoutChanged (const GadgetPtr &id)
Bool   LayoutChangedNoRedraw (const GadgetPtr &id)
Bool   激活 (const GadgetPtr &id)
Bool   IsActive (const GadgetPtr &id)
UpdateDialogHelper   BeginLayoutChange (const GadgetPtr &gadget, Bool disableRedraws)
Bool   LayoutFlushGroup (const GadgetPtr &id)
Bool   LayoutFlushDisableRedraw (const GadgetPtr &id, Bool disable)
Bool   RemoveElement (const GadgetPtr &id)
Bool   HideElement (const GadgetPtr &id, Bool hide)
Bool   RestoreLayout ( Int32 pluginid, Int32 subid, void *secret)
Bool   AddChild (const GadgetPtr &id, Int32 subid, const maxon::String &child)
Bool   FreeChildren (const GadgetPtr &id)
Bool   SetPopup (const GadgetPtr &id, const BaseContainer &bc)
Bool   AddChildren (const GadgetPtr &id, const BaseContainer &bc)
C4DGadget AddUserArea ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0)
Bool   AttachUserArea ( GeUserArea &ua, const GadgetPtr &id, USERAREAFLAGS userareaflags= USERAREAFLAGS::COREMESSAGE )
Bool   AddSubDialog ( Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0)
Bool   AttachSubDialog ( SubDialog *userdlg, Int32 id)
Bool   AddDlgGroup ( Int32 type)
Bool   GroupBeginInMenuLine ()
Bool   TabGroupBegin ( Int32 id, Int32 flags, Int32 tabtype= TAB_TABS )
Bool   GroupBegin ( Int32 id, Int32 flags, Int32 cols, Int32 rows, const maxon::String &title, Int32 groupflags, Int32 initw=0, Int32 inith=0)
Bool   GroupEnd (void)
Bool   GroupSpace ( Int32 spacex, Int32 spacey)
Bool   GroupBorder ( UInt32 borderstyle)
Bool   GroupBorderNoTitle ( UInt32 borderstyle)
Bool   GroupBorderSpace ( Int32 left, Int32 top, Int32 right, Int32 bottom)
Bool   GroupWeightsSave (const GadgetPtr &id, BaseContainer &weights)
Bool   GroupWeightsLoad (const GadgetPtr &id, const BaseContainer &weights)
Bool   GetItemDim (const GadgetPtr &id, Int32 *x, Int32 *y, Int32 *w, Int32 *h) const
Bool   GetDragPosition (const BaseContainer &msg, Int32 *x, Int32 *y)
Bool   GetDragObject (const BaseContainer &msg, Int32 *type, void **object)
Bool   SetDragDestination ( Int32 cursor, Int32 gadgetid=0)
Bool   CheckDropArea (const GadgetPtr &id, const BaseContainer &msg, Bool horiz, Bool vert)
Bool   GetVisibleArea ( Int32 scrollgroupid, Int32 *x1, Int32 *y1, Int32 *x2, Int32 *y2)
Bool   SetVisibleArea ( Int32 scrollgroupid, Int32 x1, Int32 y1, Int32 x2, Int32 y2)
Bool   ScrollGroupBegin ( Int32 id, Int32 flags, Int32 scrollflags, Int32 initw=0, Int32 inith=0)
Bool   MenuFlushAll (void)
Bool   MenuSubBegin (const maxon::String &string)
Bool   MenuSubEnd (void)
Bool   MenuAddCommand ( Int32 cmdid)
Bool   MenuAddString ( Int32 id, const maxon::String &string)
Bool   MenuAddSeparator (void)
Bool   MenuFinished (void)
Bool   MenuInitString ( Int32 id, Bool enabled, Bool checked)
Bool   MenuSetResource ( Int32 id)
void *  FindCustomGui ( Int32 id, Int32 pluginid)
void *  AddCustomGui ( Int32 id, Int32 pluginid, const maxon::String &name, Int32 flags, Int32 minw, Int32 minh, const BaseContainer &customdata)
Bool   SetMultiLineMode (const GadgetPtr &id, SCRIPTMODE mode)
Bool   SetMultiLineLock (const GadgetPtr &id, Bool lock)
Bool   SetMultiLinePos (const GadgetPtr &id, Int32 line, Int32 pos)
Bool   CheckClose (void)
Bool   CheckValueRanges (void)
Float   GetPixelRatio () const
Bool   ReleaseLink ()
Bool   CheckCoreMessage (const BaseContainer &msg, Int32 *ownlastcoremsg=nullptr)
void *  GetWindowHandle ()
-  Static Public Member Functions inherited from GeDialog
static void  HandleHelpString (const BaseContainer &msg, BaseContainer &result, const maxon::String &sym)
-  Protected Attributes inherited from GeDialog
Bool   createlayout

成员函数文档编制

◆  CreateLayout()

virtual Bool CreateLayout ( void  )
virtual

Called when the dialog is about to be displayed. Override this method to define the layout of the dialog.
Either use the recommended LoadDialogResource function or the manual functions (for example AddButton() ). See 对话框布局 了解更多信息。

返回
true if successful, otherwise false .

Reimplemented from GeDialog .

◆  InitValues()

virtual Bool InitValues ( void  )
virtual

Called when the dialog is initialized by the GUI. Override this method to initialize local variables and the gadgets used.

另请参阅
The article GUI Messages 了解更多信息。
返回
true if successful, otherwise false .

Reimplemented from GeDialog .

◆  Timer()

virtual void Timer ( const BaseContainer msg )
virtual

Called when a timer event is received.
To subscribe to timer events use SetTimer() .

参数
[in] msg The timer message container.

Reimplemented from GeDialog .

◆  Message()

virtual Int32 消息 ( const BaseContainer msg ,
BaseContainer result  
)
virtual

Called when a message is received.
Override this function to react to special messages.
Normally this is not necessary. Be sure to include a call the parent version of this function, ProgressDialog::Message(msg, result).

另请参阅
The article GUI Messages 了解更多信息。
参数
[in] msg The message container.
[in] result A container to place results in.
返回
Depends on the message.

Reimplemented from GeModalDialog .

◆  Command()

virtual Bool 命令 ( Int32   id ,
const BaseContainer msg  
)
virtual

Whenever the user clicks on a gadget and/or changes its value this function will be called. It is also called when a string menu item is selected. Override this methods to handle such events.

注意
Remember StopAllThreads() must be called before making modifications to the scene.
参数
[in] id The ID of the gadget that triggered the event.
[in] msg The message container. Contains the following values: BFM_ACTION_ID and BFM_ACTION_VALUE .
返回
true if successful, otherwise false .

Reimplemented from GeDialog .

◆  AskClose()

virtual Bool AskClose ( void  )
virtual

If the user wants to close the dialog with the OK button this function will be called. Override it to avoid closing the dialog if an error situation has occurred.
false is returned everything will be as usual, but if true is returned the dialog will not close.

警告
A buggy function, always returning true , will lead to a frustrating user experience.
返回
true if the dialog should not be closed, false if it should.

Reimplemented from GeDialog .

◆  SetPercent()

void SetPercent ( Float   p )

Sets the progress bar.

参数
[in] p The percentage for the progress bar. Goes from 0.0 to 1.0 ( 0- 100% ) .

◆  GetThread()

C4DThread * GetThread ( void  )

Gets the calling thread for the dialog.

返回
The calling thread.

◆  Main()

virtual void Main ( C4DThread bt )
pure virtual

Called to execute code within the progress thread.

参数
[in] bt The progress thread.

◆  GetTitle()

virtual String GetTitle ( void  )
pure virtual

Called to retrieve the title of the progress dialog.

返回
The title.

Member Data Documentation

◆  thread

ProgressThread thread
private

◆  percent

Float percent
private

◆  deprecatedCallback_lock

maxon::Spinlock deprecatedCallback_lock
private

◆  deprectatedCallback

void*(* deprectatedCallback(void *context) private

◆  deprectatedCallback_context

void* deprectatedCallback_context private

◆  deprectatedCallback_result

void* deprectatedCallback_result private
Float
maxon::Float Float
定义: ge_sys_math.h:64
ProgressDialog::SetPercent
void SetPercent(Float p)
ProgressDialog::CreateLayout
virtual Bool CreateLayout(void)
ProgressDialog
定义: c4d_gui.h:3329
ProgressDialog::InitValues
virtual Bool InitValues(void)
String
定义: c4d_string.h:38
ProgressDialog::Main
virtual void Main(C4DThread *bt)=0
ProgressDialog::GetTitle
virtual String GetTitle(void)=0
Int64
maxon::Int64 Int64
定义: ge_sys_math.h:60
Bool
maxon::Bool Bool
定义: ge_sys_math.h:53
C4DThread
定义: c4d_thread.h:61