Rhino C++ API  8.14
Public Member Functions | List of all members
CRhRdkRenderWindowCustomDlg Class Referenceabstract

#include <RhRdkRenderWindowEventSink.h>

Inheritance diagram for CRhRdkRenderWindowCustomDlg:
CRhRdkExtension CRhRdkObject

Public Member Functions

virtual bool AlwaysShowDialog (void) const =0
 
virtual bool Create (HWND hParent, const UUID &uuidSidePaneUI)=0
 
virtual void Destroy (const UUID &uuidSidePaneUI)=0
 
virtual const wchar_t * DockBarTitle (const UUID &uuidSidePaneUI) const =0
 
virtual UINT DockControlBarFlags (void) const =0
 
virtual UINT EnableDockingFlags (void) const =0
 
virtual bool InitialShowControlBar (void) const =0
 
virtual UUID InterfaceId (void) const final override
 
virtual void MoveWindow (const ON_4iRect &rect, const UUID &uuidSidePaneUI)=0
 
virtual HWND WindowHandle (const UUID &uuidSidePaneUI) const =0
 
- Public Member Functions inherited from CRhRdkExtension
 CRhRdkExtension ()
 
virtual ~CRhRdkExtension ()
 
virtual UUID PlugInId (void) const =0
 
bool Unregister (void)
 
- Public Member Functions inherited from CRhRdkObject
 CRhRdkObject ()
 
virtual ~CRhRdkObject ()
 
virtual void * EVF (const wchar_t *wszFunc, void *pvData)
 
void operator delete (void *buf)
 
void operator delete[] (void *buf)
 
void * operator new (size_t size)
 
void * operator new[] (size_t size)
 

Additional Inherited Members

- Static Public Member Functions inherited from CRhRdkObject
static void CheckMemory (void)
 
static void PopulateDebuggingInfo (void)
 

Detailed Description

This custom plug-in interface allows you to create a custom dialog to be hosted on an 'extra side pane' inside the render window. This is in addition to the 'main side pane' which is the pane that contains the post effect tabs (Early, Tone Mapping, Late) and any custom tabs that may have been added. Since it is possible to have more than one open render window, it is possible for this interface to access more than one hosted dialog. This is made possible by use of the render session id which also identifies the dialog. Your implementation must ensure that it is possible to have multiple dialogs identified by this UUID.

Member Function Documentation

◆ AlwaysShowDialog()

virtual bool CRhRdkRenderWindowCustomDlg::AlwaysShowDialog ( void  ) const
pure virtual

Implement this method to return true if you want this dialog to always appear on the render window even when the render window is for a different renderer. If you return false, the dialog and side pane will only be created when the render window's renderer id matches the render engine id.

Note
It should be very rare to implement this as anything other than
return false;
.

◆ Create()

virtual bool CRhRdkRenderWindowCustomDlg::Create ( HWND  hParent,
const UUID &  uuidSidePaneUI 
)
pure virtual

Implement this method to construct and create your dialog.

Parameters
hParentis the parent window.
uuidSidePaneUIis the unique identifier of the side-pane UI. This is typically the same as the render session id, but in some cases (e.g., Rhino Options), it is not. When it is, you can get a pointer to the render window interface by calling RhRdkFindRenderWindow().
See also
RhRdkFindRenderWindow()

◆ Destroy()

virtual void CRhRdkRenderWindowCustomDlg::Destroy ( const UUID &  uuidSidePaneUI)
pure virtual

Implement this method to destroy and delete your dialog.

Parameters
uuidSidePaneUIis the unique identifier of the side-pane UI. This is typically the same as the render session id, but in some cases (e.g., Rhino Options), it is not.

◆ DockBarTitle()

virtual const wchar_t* CRhRdkRenderWindowCustomDlg::DockBarTitle ( const UUID &  uuidSidePaneUI) const
pure virtual

Implement this method to return the title that will appear on the extra side pane when it is floating.

Note
This is currently not used since there is no 'dock bar' in the cross-platform UI and it therefore can never 'float'. It might be used again in the future if we ever decide to implement cross-platform floating side panes.
Parameters
uuidSidePaneUIis the unique identifier of the side-pane UI. This is typically the same as the render session id, but in some cases (e.g., Rhino Options), it is not.

◆ DockControlBarFlags()

virtual UINT CRhRdkRenderWindowCustomDlg::DockControlBarFlags ( void  ) const
pure virtual

Implement this method to return the ids to use for positioning the side pane. For backward compatibility, this uses the old MFC dock-bar ids. Supported ids are: AFX_IDW_DOCKBAR_LEFT AFX_IDW_DOCKBAR_TOP AFX_IDW_DOCKBAR_RIGHT AFX_IDW_DOCKBAR_BOTTOM

Note
The term 'Flags' here is a typo – it should be 'Ids'.

◆ EnableDockingFlags()

virtual UINT CRhRdkRenderWindowCustomDlg::EnableDockingFlags ( void  ) const
pure virtual

Implement this method to return the flags to be passed to CControlBar::EnableDocking() (e.g., CBRS_ALIGN_ANY)

Note
This is currently not used.

◆ InitialShowControlBar()

virtual bool CRhRdkRenderWindowCustomDlg::InitialShowControlBar ( void  ) const
pure virtual

Implement this method to return the initial visibility of the side pane.

◆ InterfaceId()

virtual UUID CRhRdkRenderWindowCustomDlg::InterfaceId ( void  ) const
finaloverridevirtual

Returns the unique interface id of this extension.

Implements CRhRdkExtension.

◆ MoveWindow()

virtual void CRhRdkRenderWindowCustomDlg::MoveWindow ( const ON_4iRect rect,
const UUID &  uuidSidePaneUI 
)
pure virtual

Implement this method to move your dialog to the position specified by 'rect'.

Parameters
rectspecifies the position to move the dialog to.
uuidSidePaneUIis the unique identifier of the side-pane UI. This is typically the same as the render session id, but in some cases (e.g., Rhino Options), it is not.

◆ WindowHandle()

virtual HWND CRhRdkRenderWindowCustomDlg::WindowHandle ( const UUID &  uuidSidePaneUI) const
pure virtual

Implement this method to return the window handle of your dialog.

Parameters
uuidSidePaneUIis the unique identifier of the side-pane UI. This is typically the same as the render session id, but in some cases (e.g., Rhino Options), it is not.