Rhino C++ API  8.9
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | List of all members
CRhinoEventWatcherEx Class Reference

#include <rhinoSdkEventWatcher.h>

Inheritance diagram for CRhinoEventWatcherEx:
CRhinoAfterTransformObject CRhinoDisplayModeChanged CRhinoDisplayModeSettingsChanged CRhinoIsIdle CRhinoModelessUserInterfaceDocChanged CRhinoOnAfterPostReadViewUpdate CRhinoOnBeforePostReadViewUpdate CRhinoOnChangeObjectSelectState CRhinoOnDocUserStringChanged CRhinoOnMainLoopEvent CRhinoOnPageViewPropertiesChanged CRhinoOnSetActiveDetailObject CRhinoOnTransformObject CRhinoOnViewModifiedEvent CRhinoPlugInSettingsChanged CRhinoTargetDocChanged CRhinoUiFileEvent

Public Types

enum  event_type {
  event_type_none = 0, event_type_transform_object = 1, event_type_change_object_select_state = 2, event_type_after_transform_object = 3,
  event_type_set_active_detail_object = 4, event_type_view_display_mode_changed = 5, event_type_before_post_read_view_update = 6, event_type_after_post_read_view_update = 7,
  event_type_rhino_is_idle = 8, event_type_modeless_ui_doc_changed = 9, event_type_target_doc_changed = 10, event_type_plug_in_settings_changed = 11,
  event_type_rui_file = 12, event_type_main_loop = 13, event_type_view_modified = 14, event_type_doc_user_text_changed = 15,
  event_type_display_mode_settings_changed = 16, event_type_object_manager_changed = 17, event_type_pageview_properties_changed = 18, event_type_max,
  event_type_force_4byte_size = 0xFFFFFFFF

Public Member Functions

void Enable (bool bEnable)
bool IsEnabled () const
bool IsHeadlessAppAware () const
bool IsHeadlessDocAware () const
bool IsRegistered () const
void operator delete (void *)
void operator delete (void *, void *)
void operator delete[] (void *)
void * operator new (size_t)
 new/delete More...
void * operator new (size_t, void *)
 in place new/delete More...
void * operator new[] (size_t)
 array new/delete More...
bool Register ()
bool Unregister ()

Public Attributes

const event_type m_event_type
 Type of event being watched. More...
const ON_UUID m_plugin_id
 ID of plug-in that is watching. More...
const unsigned int m_watcher_sn
 unique runtime serial number for this watcher More...

Protected Member Functions

 CRhinoEventWatcherEx (CRhinoEventWatcherEx::event_type et, ON_UUID plugin_id)
 CRhinoEventWatcherEx (CRhinoEventWatcherEx::event_type et, ON_UUID plugin_id, bool headlessDocAware, bool headlessAppAware)
virtual ~CRhinoEventWatcherEx ()

Member Enumeration Documentation

◆ event_type


Called before objects are transformed.


Object selection state changed.


Called after objects are transformed.


Called after a page view's active detail object has changed.


Called after view's display mode has been changed.


Called after a .3dm file is read to bracket the adjustments to views and clipping planes.


Called when Rhino is idle. Do not do anything time consuming when responding to this event.


Called when the Rhino document that modeless user interface refers to has changed. If you get this event, invalidate your window and wait for something like a paint message to come along. At that time, call RhinoApp().ModelessUserInterfaceDocRuntimeSerialNumber() and update your display accordingly. Do not do extensive regeneration code when this event happens.


Called when the Rhino document that a new command will target has changed. If you get this event, do something fast and simple and return immediately. Later, when Rhino is idle, call RhinoApp().TargetDocRuntimeSerialNumber() and update your information accordingly. Do not do extensive regeneration code when this event happens.


Called when plug-in settings files have been over written.


Called when a RUI file event is raised.


Called every iteration of the Rhino main message loop.


Called after a view has been modified.


Called after document user text is set.


Called after a display mode's setting(s) have been saved/changed.


Called when an object manager event is raised.


Called when the properties of page layout view changed.


Bound on event type value.


This line insures that adding events will not change the size of event_type.

Constructor & Destructor Documentation

◆ CRhinoEventWatcherEx() [1/2]

CRhinoEventWatcherEx::CRhinoEventWatcherEx ( CRhinoEventWatcherEx::event_type  et,
ON_UUID  plugin_id 

◆ CRhinoEventWatcherEx() [2/2]

CRhinoEventWatcherEx::CRhinoEventWatcherEx ( CRhinoEventWatcherEx::event_type  et,
ON_UUID  plugin_id,
bool  headlessDocAware,
bool  headlessAppAware 

Description: By default event watchers are not called for headless docs and headless app scenarios. Use this constructor if you want to make your event watcher be called for these headless cases. Note that there is a good chance that your event watcher can be called on a different thread than expected when dealing with "headless"

◆ ~CRhinoEventWatcherEx()

virtual CRhinoEventWatcherEx::~CRhinoEventWatcherEx ( )

Member Function Documentation

◆ Enable()

void CRhinoEventWatcherEx::Enable ( bool  bEnable)

Description: The constructor enables the watcher so that it will be called as soon as it is registered. If you need to disable/enable the watcher frequently, then the Enable() function is more efficient than calling Register()/Unregister().

◆ IsEnabled()

bool CRhinoEventWatcherEx::IsEnabled ( ) const

Returns: True if this watcher is enabled.

◆ IsHeadlessAppAware()

bool CRhinoEventWatcherEx::IsHeadlessAppAware ( ) const

◆ IsHeadlessDocAware()

bool CRhinoEventWatcherEx::IsHeadlessDocAware ( ) const

◆ IsRegistered()

bool CRhinoEventWatcherEx::IsRegistered ( ) const

Returns: True if this watcher is registered.

◆ operator delete() [1/2]

void CRhinoEventWatcherEx::operator delete ( void *  )

◆ operator delete() [2/2]

void CRhinoEventWatcherEx::operator delete ( void *  ,
void *   

◆ operator delete[]()

void CRhinoEventWatcherEx::operator delete[] ( void *  )

◆ operator new() [1/2]

void* CRhinoEventWatcherEx::operator new ( size_t  )


Insure the heap used by event watcher classes is reliable and independent of plug-in heap choices.

◆ operator new() [2/2]

void* CRhinoEventWatcherEx::operator new ( size_t  ,
void *   

in place new/delete

◆ operator new[]()

void* CRhinoEventWatcherEx::operator new[] ( size_t  )

array new/delete

◆ Register()

bool CRhinoEventWatcherEx::Register ( )

Call this function to register your watcher. Your watcher will not be called until it is registered.

◆ Unregister()

bool CRhinoEventWatcherEx::Unregister ( )

Description: Call this function to unregister your watcher. If you need to disable and enable a watcher frequently, then use the Enable() function.

Member Data Documentation

◆ m_event_type

const event_type CRhinoEventWatcherEx::m_event_type

Type of event being watched.

◆ m_plugin_id

const ON_UUID CRhinoEventWatcherEx::m_plugin_id

ID of plug-in that is watching.

◆ m_watcher_sn

const unsigned int CRhinoEventWatcherEx::m_watcher_sn

unique runtime serial number for this watcher