ProgressDialog Class Referenceabstract

#include <c4d_gui.h>

Inheritance diagram for ProgressDialog:

Detailed Description

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()
{
}
Bool MyProgressDialog::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 Message (const BaseContainer &msg, BaseContainer &result)
 
virtual Bool Command (Int32 id, const BaseContainer &msg)
 
virtual Bool AskClose (void)
 

Miscellaneous

void SetPercent (Float p)
 
C4DThreadGetThread (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 Close (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< Vector > &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 Close (void)
 
Bool Close (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 Enable (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 Vector &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, Vector &value) const
 
Bool GetString (const GadgetPtr &id, maxon::String &text) const
 
Bool GetColorField (const GadgetPtr &id, Vector &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 Vector &color)
 
Bool LoadDialogResource (Int32 id, GeResource *lr, Int32 flags)
 
C4DGadgetAddCheckbox (Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name)
 
C4DGadgetAddButton (Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name)
 
C4DGadgetAddStaticText (Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name, Int32 borderstyle)
 
C4DGadgetAddArrowButton (Int32 id, Int32 flags, Int32 initw, Int32 inith, Int32 arrowtype)
 
C4DGadgetAddEditText (Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 editflags=0)
 
C4DGadgetAddMultiLineEditText (Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 style=0)
 
C4DGadgetAddEditNumber (Int32 id, Int32 flags, Int32 initw=80, Int32 inith=0)
 
C4DGadgetAddEditNumberArrows (Int32 id, Int32 flags, Int32 initw=70, Int32 inith=0)
 
C4DGadgetAddEditSlider (Int32 id, Int32 flags, Int32 initw=80, Int32 inith=0)
 
C4DGadgetAddSlider (Int32 id, Int32 flags, Int32 initw=90, Int32 inith=0)
 
C4DGadgetAddColorField (Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 colorflags=0)
 
C4DGadgetAddColorChooser (Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 layoutflags=0, const BaseContainer &settings=BaseContainer())
 
C4DGadgetAddRadioButton (Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name)
 
C4DGadgetAddRadioText (Int32 id, Int32 flags, Int32 initw, Int32 inith, const maxon::String &name)
 
C4DGadgetAddEditShortcut (Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Int32 shortcutflags=0)
 
C4DGadgetAddSeparatorH (Int32 initw, Int32 flags=BFH_FIT)
 
C4DGadgetAddSeparatorV (Int32 inith, Int32 flags=BFV_FIT)
 
Bool AddRadioGroup (Int32 id, Int32 flags, Int32 columns=1, Int32 rows=0)
 
C4DGadgetAddComboBox (Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Bool specialalign=false, Bool allowFiltering=false)
 
C4DGadgetAddComboButton (Int32 id, Int32 flags, Int32 initw=0, Int32 inith=0, Bool specialalign=false, Bool allowFiltering=false)
 
C4DGadgetAddPopupButton (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 Activate (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)
 
C4DGadgetAddUserArea (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
 

Member Function Documentation

◆ 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 Dialog Layout for more information.

Returns
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.

See also
The article GUI Messages for more information.
Returns
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().

Parameters
[in]msgThe timer message container.

Reimplemented from GeDialog.

◆ Message()

virtual Int32 Message ( 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).

See also
The article GUI Messages for more information.
Parameters
[in]msgThe message container.
[in]resultA container to place results in.
Returns
Depends on the message.

Reimplemented from GeModalDialog.

◆ Command()

virtual Bool Command ( 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.

Note
Remember StopAllThreads() must be called before making modifications to the scene.
Parameters
[in]idThe ID of the gadget that triggered the event.
[in]msgThe message container. Contains the following values: BFM_ACTION_ID and BFM_ACTION_VALUE.
Returns
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.
If false is returned everything will be as usual, but if true is returned the dialog will not close.

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

Reimplemented from GeDialog.

◆ SetPercent()

void SetPercent ( Float  p)

Sets the progress bar.

Parameters
[in]pThe 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.

Returns
The calling thread.

◆ Main()

virtual void Main ( C4DThread bt)
pure virtual

Called to execute code within the progress thread.

Parameters
[in]btThe progress thread.

◆ GetTitle()

virtual String GetTitle ( void  )
pure virtual

Called to retrieve the title of the progress dialog.

Returns
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
Definition: ge_sys_math.h:51
ProgressDialog::SetPercent
void SetPercent(Float p)
ProgressDialog::CreateLayout
virtual Bool CreateLayout(void)
ProgressDialog
Definition: c4d_gui.h:3325
ProgressDialog::InitValues
virtual Bool InitValues(void)
String
Definition: c4d_string.h:35
ProgressDialog::Main
virtual void Main(C4DThread *bt)=0
ProgressDialog::GetTitle
virtual String GetTitle(void)=0
Int64
maxon::Int64 Int64
Definition: ge_sys_math.h:47
Bool
maxon::Bool Bool
Definition: ge_sys_math.h:40
C4DThread
Definition: c4d_thread.h:56