Dynamic MonitorAvailability LightWave 6.0 The Modeler monitor global returns functions for initializing and displaying a progress dialog in Modeler. See also the monitor global for Layout. Global Call DynaMonitorFuncs *monf; monf = global( LWDYNAMONITORFUNCS_GLOBAL, GFUSE_TRANSIENT ); The global function returns a pointer to a DynaMonitorFuncs. typedef struct st_DynaMonitorFuncs { LWMonitor * (*create) (const char *, const char *); void (*destroy) (LWMonitor *); } DynaMonitorFuncs;
LWMonitor The monitor structure returned by create is defined in the lwmonitor.h header file. typedef struct st_LWMonitor { void *data; void (*init) (void *, unsigned int); int (*step) (void *, unsigned int); void (*done) (void *); } LWMonitor;
Example This code fragment demonstrates the use of a monitor. Macros in lwmonitor.h allow you to call the LWMonitor functions without worrying about whether the create call succeeded. #include <lwserver.h> #include <lwdyna.h> DynaMonitorFuncs *monf; LWMonitor *mon = NULL; monf = global( LWDYNAMONITORFUNCS_GLOBAL, GFUSE_TRANSIENT ); if ( monf ) mon = monf->create( "Hello", "Just fooling around" ); MON_INIT( mon, 100 ); for ( i = 0; i < 100; i += 2 ) { ...do something that takes a long time... if ( MON_INCR( mon, 2 )) break; } MON_DONE( mon ); ... if ( monf && mon ) monf->destroy( mon ); |