VCOM:VectorWorks:UI:IProgressDialog

From Vectorworks Developer
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

.SDK|SDK ..SDK:Types|SDK Types ..VCOM:VCOM (Vectorworks Component Object Model)|VCOM Basics ..VCOM:Class Reference|VCOM Class Reference

Description

namespace VectorWorks::UI

This interface allows you to show progress dialog which could have 'Cancel' button.

Interface

// ----------------------------------------------------------------------------------------------------
// {7E8C933D-CC09-4202-B14F-EFFB04FA4220}
static const VWIID IID_ProgressDialog = { 0x7E8C933D, 0xCC09, 0x4202, { 0xB1, 0x4F, 0xEF, 0xFB, 0x04, 0xFA, 0x42, 0x20 } };

class IProgressDialog : public IVWUnknown
{
public:
  virtual VCOMError VCOM_CALLTYPE Open(const TXString& title) = 0;
  virtual VCOMError VCOM_CALLTYPE Close() = 0;

  virtual VCOMError VCOM_CALLTYPE AllowUserCancel(bool bAllow) = 0;
  virtual VCOMError VCOM_CALLTYPE ResetMeter(Uint16 meter) = 0;
  virtual VCOMError VCOM_CALLTYPE SetTopText(const TXString& szTopText) = 0;
  virtual VCOMError VCOM_CALLTYPE SetBottomText(const TXString& szBottomText) = 0;
  virtual VCOMError VCOM_CALLTYPE SetMeterText(const TXString& szMeterText) = 0;

  virtual VCOMError VCOM_CALLTYPE HasUserCanceled(bool& bUserCanceled) = 0;
  virtual VCOMError VCOM_CALLTYPE DoYield()= 0;
  virtual VCOMError VCOM_CALLTYPE IncrementMeter(Uint16 step) = 0;
};

Members

Open Show the progress dialog.
Close Hide the progress dialog.
AllowUserCancel Determine if the user can see 'Cancel' button in the progress dialog.
ResetMeter Set progress meter maximum value.
SetTopText Set top text string.
SetBottomText Set bottom text string.
SetMeterText Set meter text string.
HasUserCanceled Determine during opened dialog if the user have clicked cancel button.
DoYield Update the dialog. This function should be called regularly during the open state of the dialog.
IncrementMeter Increment the meter with specified amount.

Remarks

There is predefined type for smart VCOM pointer VCOMPtr to IProgressDialog interface:

typedef VCOMPtr<IProgressDialog>  IProgressDialogPtr;

Example

#include "VWInterfaces.h"
using namespace VectorWorks::UI;

VCOMPtr<IProgressDialog>	pProgressDlg( IID_ProgressDialog );

pProgressDlg->Open( "Import" );

pProgressDlg->AllowUserCancel( true );
pProgressDlg->ResetMeter( 100 );

pProgressDlg->SetTopText( "Top text" );
pProgressDlg->SetBottomText( "Bottom text" );
pProgressDlg->SetMeterText( "Meter text" );

for( ... ) {
   // ...

   pProgressDlg->IncrementMeter( 1 );
   pProgressDlg->DoYield();

   // Check if the user wants to cancel
   bool    bHasCanceled = false;
   pProgressDlg->HasUserCanceled( bHasCanceled );
   if ( bHasCanceled ) {
       throw CAbortException();
   }
}

pProgressDlg->Close();

Version

Available from: VectorWorks 12

See Also

VCOM:VCOMPtr

[[VCOM:VCOMPtr]]