Rhino C++ API  9.0
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
CRhinoUserInterfaceObject Class Reference

#include <rhinoSdkUserInterfaceObject.h>

Inheritance diagram for CRhinoUserInterfaceObject:
CRhinoGripUserInterfaceObject CRhinoTextDotUserInterfaceObject CRhinoUserInterfaceControl CRhinoDirectionGripUserInterfaceObject CRhinoRotationGripUserInterfaceObject CRhinoUserInterfaceButton CRhinoUserInterfaceIcon CRhinoUserInterfaceSlider

Public Member Functions

 CRhinoUserInterfaceObject ()
 
virtual ~CRhinoUserInterfaceObject ()
 
void Animate (CRhinoAnimatingDouble &value, double target, double duration, AnimationStyle style, CRhinoDoc *doc)
 
void BindToActiveViewport (bool on)
 
void BindToViewport (unsigned int viewport_sn)
 
virtual double CameraDepth (const ON_Plane &cameraPlane) const
 
int DisplayOrder () const
 
ON_UUID DocumentGroupId () const
 
unsigned int DocumentRuntimeSerialNumber () const
 
virtual void Draw (CRhinoDisplayPipeline &dp)
 
bool GetData (const wchar_t *key, bool &value) const
 
bool GetData (const wchar_t *key, double &value) const
 
bool GetData (const wchar_t *key, int &value) const
 
bool GetData (const wchar_t *key, ON_UUID &value) const
 
bool GetData (const wchar_t *key, ON_wString &value) const
 
bool HasMouseCapture () const
 
bool IsBoundToActiveViewport () const
 
unsigned int IsBoundToViewport () const
 
virtual bool IsMouseOver (const CRhinoMouseEventArgs &mouse)
 
virtual void OnMouseClick (const CRhinoMouseEventArgs &mouse)
 
virtual void OnMouseDoubleClick (const CRhinoMouseEventArgs &mouse)
 
virtual void OnMouseDown (const CRhinoMouseEventArgs &mouse)
 
virtual void OnMouseEnter (const CRhinoMouseEventArgs &mouse)
 
virtual void OnMouseLeave (const CRhinoMouseEventArgs &mouse)
 
virtual void OnMouseMove (const CRhinoMouseEventArgs &mouse)
 
virtual void OnMouseUp (const CRhinoMouseEventArgs &mouse)
 
virtual void OnMouseWheel (const CRhinoMouseEventArgs &mouse, int delta)
 
virtual CRhinoCommand::result OnRunCommand (const CRhinoCommandContext &context, const CRhinoMouseEventArgs &mouse)
 
virtual void OnTrackpadScroll (const CRhinoMouseEventArgs &mouse, double horizontal, double vertical)
 
CRhinoUserInterfaceObjectParent ()
 
const CRhinoUserInterfaceObjectParent () const
 
bool ReceivesMouseWheelEvents () const
 
bool ReceivesTrackpadScrollEvents () const
 
bool RegisterForAllDocuments ()
 
void RunCommand (const CRhinoMouseEventArgs &mouse)
 
unsigned int RuntimeSerialNumber () const
 
void SetCursor (HCURSOR cursor)
 
void SetData (const wchar_t *key, bool value)
 
void SetData (const wchar_t *key, const wchar_t *value)
 
void SetData (const wchar_t *key, double value)
 
void SetData (const wchar_t *key, int value)
 
void SetData (const wchar_t *key, ON_UUID value)
 
void SetDisplayOrder (int order)
 
void SetReceivesMouseWheelEvents (bool enable)
 
void SetReceivesTrackpadScrollEvents (bool enable)
 
void SetTooltip (const wchar_t *tooltip)
 
void SetVisible (bool visible)
 
bool UnregisterFromAllDocuments ()
 
bool Visible () const
 

Protected Member Functions

virtual void ContinueAnimate (CRhinoDoc *doc)
 
void SetMouseCapture (CRhinoDoc *doc)
 

Protected Attributes

class CRhUserInterfaceObjectPrivatem_private = nullptr
 

Friends

class CRhinoDisplayPipeline
 
class CRhinoDoc
 
class CRhinoObjRef
 
class CRhUserInterfaceObjectPrivate
 
class CRhViewBase
 

Detailed Description

Description: Base class for in-viewport user interface objects. These are objects that are shown and can respond to mouse events for things like heads up displays or clickable and dragable items.

Constructor & Destructor Documentation

◆ CRhinoUserInterfaceObject()

CRhinoUserInterfaceObject::CRhinoUserInterfaceObject ( )

◆ ~CRhinoUserInterfaceObject()

virtual CRhinoUserInterfaceObject::~CRhinoUserInterfaceObject ( )
virtual

Member Function Documentation

◆ Animate()

void CRhinoUserInterfaceObject::Animate ( CRhinoAnimatingDouble value,
double  target,
double  duration,
AnimationStyle  style,
CRhinoDoc doc 
)

Description: Use this method to register a new animation this method also should get called in Draw routine of the parent class for every animation in m_animations

◆ BindToActiveViewport()

void CRhinoUserInterfaceObject::BindToActiveViewport ( bool  on)

◆ BindToViewport()

void CRhinoUserInterfaceObject::BindToViewport ( unsigned int  viewport_sn)

◆ CameraDepth()

virtual double CRhinoUserInterfaceObject::CameraDepth ( const ON_Plane cameraPlane) const
virtual

Description: If this is a "world space" type user interface object (grip, text dot, direction arrow), this function returns the minimum distance to the camera to allow for depth sorting user interface objects before drawing them. The default return value is ON_UNSET_VALUE

Reimplemented in CRhinoGripUserInterfaceObject, and CRhinoTextDotUserInterfaceObject.

◆ ContinueAnimate()

virtual void CRhinoUserInterfaceObject::ContinueAnimate ( CRhinoDoc doc)
protectedvirtual

◆ DisplayOrder()

int CRhinoUserInterfaceObject::DisplayOrder ( ) const

Description: Sort order for user interface object to be drawn. Values <= 0 will be drawn before overlay cinduits and values > 0 wil be drawn after overlay conduits.

◆ DocumentGroupId()

ON_UUID CRhinoUserInterfaceObject::DocumentGroupId ( ) const

◆ DocumentRuntimeSerialNumber()

unsigned int CRhinoUserInterfaceObject::DocumentRuntimeSerialNumber ( ) const

◆ Draw()

virtual void CRhinoUserInterfaceObject::Draw ( CRhinoDisplayPipeline dp)
virtual

Description: All user interface objects must implement a Draw function. This is where drawing using the input display pipeline is performed. The base class Draw function does nothing.

Reimplemented in CRhinoUserInterfaceSlider, CRhinoUserInterfaceIcon, CRhinoUserInterfaceButton, CRhinoRotationGripUserInterfaceObject, CRhinoDirectionGripUserInterfaceObject, CRhinoGripUserInterfaceObject, and CRhinoTextDotUserInterfaceObject.

◆ GetData() [1/5]

bool CRhinoUserInterfaceObject::GetData ( const wchar_t *  key,
bool &  value 
) const

◆ GetData() [2/5]

bool CRhinoUserInterfaceObject::GetData ( const wchar_t *  key,
double &  value 
) const

◆ GetData() [3/5]

bool CRhinoUserInterfaceObject::GetData ( const wchar_t *  key,
int &  value 
) const

◆ GetData() [4/5]

bool CRhinoUserInterfaceObject::GetData ( const wchar_t *  key,
ON_UUID value 
) const

◆ GetData() [5/5]

bool CRhinoUserInterfaceObject::GetData ( const wchar_t *  key,
ON_wString value 
) const

◆ HasMouseCapture()

bool CRhinoUserInterfaceObject::HasMouseCapture ( ) const

Description: Does this object have mouse capture. Mouse capture is typically set when the mouse is down and dragging ui objects around. Only one object has mouse capture at any given time

◆ IsBoundToActiveViewport()

bool CRhinoUserInterfaceObject::IsBoundToActiveViewport ( ) const

◆ IsBoundToViewport()

unsigned int CRhinoUserInterfaceObject::IsBoundToViewport ( ) const

◆ IsMouseOver()

virtual bool CRhinoUserInterfaceObject::IsMouseOver ( const CRhinoMouseEventArgs mouse)
virtual

◆ OnMouseClick()

virtual void CRhinoUserInterfaceObject::OnMouseClick ( const CRhinoMouseEventArgs mouse)
virtual

Description: Called when a mouse clicks on this UI element Parameters: mouse - mouse position, button and view

◆ OnMouseDoubleClick()

virtual void CRhinoUserInterfaceObject::OnMouseDoubleClick ( const CRhinoMouseEventArgs mouse)
virtual

Description: Called when a mouse double clicks on this UI element Parameters: mouse - mouse position, button and view

◆ OnMouseDown()

virtual void CRhinoUserInterfaceObject::OnMouseDown ( const CRhinoMouseEventArgs mouse)
virtual

Description: Called when a mouse button goes down over this UI element Parameters: mouse - mouse position, button and view

Reimplemented in CRhinoUserInterfaceSlider, CRhinoUserInterfaceButton, CRhinoDirectionGripUserInterfaceObject, and CRhinoGripUserInterfaceObject.

◆ OnMouseEnter()

virtual void CRhinoUserInterfaceObject::OnMouseEnter ( const CRhinoMouseEventArgs mouse)
virtual

Description: Called when first goes over this object (IsMouseOver returns true)

Reimplemented in CRhinoUserInterfaceSlider, CRhinoUserInterfaceButton, CRhinoGripUserInterfaceObject, and CRhinoTextDotUserInterfaceObject.

◆ OnMouseLeave()

virtual void CRhinoUserInterfaceObject::OnMouseLeave ( const CRhinoMouseEventArgs mouse)
virtual

Description: Called when mouse leaves this object (IsMouseOver returns false)

Reimplemented in CRhinoUserInterfaceSlider, CRhinoUserInterfaceButton, CRhinoGripUserInterfaceObject, and CRhinoTextDotUserInterfaceObject.

◆ OnMouseMove()

virtual void CRhinoUserInterfaceObject::OnMouseMove ( const CRhinoMouseEventArgs mouse)
virtual

Description: Called when a mouse moves over this UI element Parameters: mouse - mouse position, button and view

Reimplemented in CRhinoUserInterfaceSlider, CRhinoDirectionGripUserInterfaceObject, and CRhinoGripUserInterfaceObject.

◆ OnMouseUp()

virtual void CRhinoUserInterfaceObject::OnMouseUp ( const CRhinoMouseEventArgs mouse)
virtual

Description: Called when a mouse button goes up over this UI element Parameters: mouse - mouse position, button and view

Reimplemented in CRhinoUserInterfaceSlider, CRhinoUserInterfaceButton, CRhinoDirectionGripUserInterfaceObject, and CRhinoGripUserInterfaceObject.

◆ OnMouseWheel()

virtual void CRhinoUserInterfaceObject::OnMouseWheel ( const CRhinoMouseEventArgs mouse,
int  delta 
)
virtual

Description: Called when a mouse wheel event occurs over this user interface object. The control needs to explicitly enable mouse wheel support (default off) in order to receive these events

◆ OnRunCommand()

virtual CRhinoCommand::result CRhinoUserInterfaceObject::OnRunCommand ( const CRhinoCommandContext context,
const CRhinoMouseEventArgs mouse 
)
virtual

Description: Called after the above RunCommand function is called. This will be executing while inside a Rhino command.

◆ OnTrackpadScroll()

virtual void CRhinoUserInterfaceObject::OnTrackpadScroll ( const CRhinoMouseEventArgs mouse,
double  horizontal,
double  vertical 
)
virtual

Description: Called when a trackpad scroll event occurs and the mouse is over this user interface control. The control also needs to explicitly turn on track pad scroll support (default off) in order to receive these events.

◆ Parent() [1/2]

CRhinoUserInterfaceObject* CRhinoUserInterfaceObject::Parent ( )

◆ Parent() [2/2]

const CRhinoUserInterfaceObject* CRhinoUserInterfaceObject::Parent ( ) const

◆ ReceivesMouseWheelEvents()

bool CRhinoUserInterfaceObject::ReceivesMouseWheelEvents ( ) const

◆ ReceivesTrackpadScrollEvents()

bool CRhinoUserInterfaceObject::ReceivesTrackpadScrollEvents ( ) const

◆ RegisterForAllDocuments()

bool CRhinoUserInterfaceObject::RegisterForAllDocuments ( )

◆ RunCommand()

void CRhinoUserInterfaceObject::RunCommand ( const CRhinoMouseEventArgs mouse)

Description: Call RunCommand to have the virtual OnRunCommand function executed in the scope of a command. If you are modifying the document in a mouse function, this is the best approach to do so.

◆ RuntimeSerialNumber()

unsigned int CRhinoUserInterfaceObject::RuntimeSerialNumber ( ) const

◆ SetCursor()

void CRhinoUserInterfaceObject::SetCursor ( HCURSOR  cursor)

Description: Set mouse cursor that will be displayed when the mouse is "over" this object

◆ SetData() [1/5]

void CRhinoUserInterfaceObject::SetData ( const wchar_t *  key,
bool  value 
)

◆ SetData() [2/5]

void CRhinoUserInterfaceObject::SetData ( const wchar_t *  key,
const wchar_t *  value 
)

◆ SetData() [3/5]

void CRhinoUserInterfaceObject::SetData ( const wchar_t *  key,
double  value 
)

◆ SetData() [4/5]

void CRhinoUserInterfaceObject::SetData ( const wchar_t *  key,
int  value 
)

◆ SetData() [5/5]

void CRhinoUserInterfaceObject::SetData ( const wchar_t *  key,
ON_UUID  value 
)

◆ SetDisplayOrder()

void CRhinoUserInterfaceObject::SetDisplayOrder ( int  order)

◆ SetMouseCapture()

void CRhinoUserInterfaceObject::SetMouseCapture ( CRhinoDoc doc)
protected

◆ SetReceivesMouseWheelEvents()

void CRhinoUserInterfaceObject::SetReceivesMouseWheelEvents ( bool  enable)

◆ SetReceivesTrackpadScrollEvents()

void CRhinoUserInterfaceObject::SetReceivesTrackpadScrollEvents ( bool  enable)

◆ SetTooltip()

void CRhinoUserInterfaceObject::SetTooltip ( const wchar_t *  tooltip)

Description: Set or clear the tooltip string for this object

◆ SetVisible()

void CRhinoUserInterfaceObject::SetVisible ( bool  visible)

◆ UnregisterFromAllDocuments()

bool CRhinoUserInterfaceObject::UnregisterFromAllDocuments ( )

◆ Visible()

bool CRhinoUserInterfaceObject::Visible ( ) const

Friends And Related Function Documentation

◆ CRhinoDisplayPipeline

friend class CRhinoDisplayPipeline
friend

◆ CRhinoDoc

friend class CRhinoDoc
friend

◆ CRhinoObjRef

friend class CRhinoObjRef
friend

◆ CRhUserInterfaceObjectPrivate

friend class CRhUserInterfaceObjectPrivate
friend

◆ CRhViewBase

friend class CRhViewBase
friend

Member Data Documentation

◆ m_private

class CRhUserInterfaceObjectPrivate* CRhinoUserInterfaceObject::m_private = nullptr
protected