HPS::AnnotationOperator Class Reference

#include <sprk_ops.h>

Inheritance diagram for HPS::AnnotationOperator:
HPS::Operator HPS::Sprocket HPS::Object

Classes

class  AnnotationInsertedEvent
 

Public Member Functions

 AnnotationOperator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 
UTF8 GetBackgroundShape () const
 
virtual HPS::UTF8 GetName () const override
 
virtual bool OnKeyDown (KeyboardState const &in_state) override
 
virtual bool OnMouseDown (MouseState const &in_state) override
 
virtual bool OnMouseMove (MouseState const &in_state) override
 
virtual bool OnTextInput (HPS::UTF8 const &in_text) override
 
virtual bool OnTouchDown (TouchState const &in_state) override
 
virtual bool OnTouchMove (TouchState const &in_state) override
 
virtual bool OnTouchUp (TouchState const &in_state) override
 
virtual void OnViewAttached (HPS::View const &in_attached_view) override
 
virtual void OnViewDetached (HPS::View const &in_detached_view) override
 
void SetBackgroundShape (const char *in_shape)
 
- Public Member Functions inherited from HPS::Operator
virtual void Assign (Operator const &in_that)
 
void DetachView ()
 
virtual bool Equals (Operator const &in_that) const
 
View GetAttachedView () const
 
ModifierKeys GetModifierTrigger () const
 
MouseButtons GetMouseTrigger () const
 
virtual bool IsMouseTriggered (MouseState const &in_state)
 
HPS::Type ObjectType () const
 
virtual bool OnKeyUp (KeyboardState const &in_state)
 
virtual void OnModelAttached ()
 
virtual void OnModelDetached ()
 
virtual bool OnMouseEnter (MouseState const &in_state)
 
virtual bool OnMouseLeave (MouseState const &in_state)
 
virtual bool OnMouseUp (MouseState const &in_state)
 
virtual bool OnMouseWheel (MouseState const &in_state)
 
virtual bool OnTimerTick (HPS::TimerTickEvent const &in_event)
 
 Operator (MouseButtons in_mouse_trigger=MouseButtons::ButtonLeft(), ModifierKeys in_modifier_trigger=ModifierKeys())
 
 Operator (Operator const &in_that)
 
virtual bool operator!= (Operator const &in_that) const
 
virtual Operatoroperator= (Operator const &in_that)
 
virtual bool operator== (Operator const &in_that) const
 
void SetModifierTrigger (ModifierKeys in_modifiers)
 
void SetMouseTrigger (MouseButtons in_buttons)
 
- Public Member Functions inherited from HPS::Sprocket
 Sprocket (Sprocket &&in_that)
 
- Public Member Functions inherited from HPS::Object
virtual bool Empty () const
 
intptr_t GetClassID () const
 
intptr_t GetInstanceID () const
 
bool HasType (HPS::Type in_mask) const
 
 Object (Object const &that)
 
 Object (Object &&in_that)
 
Objectoperator= (Object const &other_object)
 
Objectoperator= (Object &&in_that)
 
virtual void Reset ()
 
virtual HPS::Type Type () const
 

Additional Inherited Members

- Public Types inherited from HPS::Operator
enum  Priority { Low, Default, High }
 
- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()
 
- Static Public Attributes inherited from HPS::Operator
static const HPS::Type staticType = HPS::Type::Operator
 
- Static Public Attributes inherited from HPS::Object
static const HPS::Type staticType = HPS::Type::None
 
- Protected Attributes inherited from HPS::Operator
HPS::ModifierKeys modifier_trigger
 
HPS::MouseButtons mouse_trigger
 

Detailed Description

The AnnotationOperator class defines an operator which allows the user to insert annotations. Annotations are text geometries with leader lines and a background. This Operator works for both mouse- and touch-driven devices.

To operate this operator on a mouse-driven device: Click on a piece of geometry and drag the mouse to position an annotation. Start typing to change the annotation text. Once an annotation has been inserted it can be repositioned, and its text can be changed after clicking on it.

To operate this operator on a touch-driven device: Tap on a piece of geometry and drag your finger to position an annotation. Start typing to change the annotation text. Once an annotation has been inserted, tap on it to edit the text. Drag a previously inserted annotation around to reposition it.

An event of type AnnotationInsertedEvent is injected when new annotations are added to the scene.

Member Function Documentation

◆ GetBackgroundShape()

UTF8 HPS::AnnotationOperator::GetBackgroundShape ( ) const

This function returns the name of the shape definition currently used to draw the annotation background by this operator.

Returns
The name of the shape definition currently used to draw the annotation background

◆ GetName()

virtual HPS::UTF8 HPS::AnnotationOperator::GetName ( ) const
inlineoverridevirtual

Returns the name of the operator.

Reimplemented from HPS::Operator.

◆ OnKeyDown()

virtual bool HPS::AnnotationOperator::OnKeyDown ( KeyboardState const &  in_state)
overridevirtual

This function is called whenever HPS receives a KeyboardState event that signals a button was pressed. This function is used to edit the text of annotations

Parameters
in_stateA KeyboardState object describing the current keyboard state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

◆ OnMouseDown()

virtual bool HPS::AnnotationOperator::OnMouseDown ( MouseState const &  in_state)
overridevirtual

This function is called whenever HPS receives a MouseEvent that signals a mouse button was pressed. If the user clicks on a piece of geometry other than an existing annotation, a new annotation will be inserted. If the user clicks on an already inserted annotation, that annotation will become editable (it can be repositioned, and its text can be changed). The user can click on the background to stop editing an annotation.

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

◆ OnMouseMove()

virtual bool HPS::AnnotationOperator::OnMouseMove ( MouseState const &  in_state)
overridevirtual

This function is called whenever HPS receives a MouseEvent that signals the mouse moved When users are inserting or editing an annotation, they will be able to reposition it by dragging the mouse while holding down the trigger button specified in the operator constructor (defaults to Left mouse button)

Parameters
in_stateA MouseState object describing the current mouse state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

◆ OnTextInput()

virtual bool HPS::AnnotationOperator::OnTextInput ( HPS::UTF8 const &  in_text)
overridevirtual

This function is called whenever HPS receives a TextInput event that signals a text string was received. This function is used to edit the text of annotations from a mobile device.

Parameters
in_textThe text string received.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

◆ OnTouchDown()

virtual bool HPS::AnnotationOperator::OnTouchDown ( TouchState const &  in_state)
overridevirtual

This function is called whenever HPS receives a TouchEvent that signals the device was touched. If the user taps a piece of geometry other than an existing annotation, a new annotation will be inserted. If the user taps an already inserted annotation, that annotation will become editable (it can be repositioned, and its text can be changed). The user can tap on the background to stop editing an annotation.

Parameters
in_stateA TouchState object describing the current touch state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

◆ OnTouchMove()

virtual bool HPS::AnnotationOperator::OnTouchMove ( TouchState const &  in_state)
overridevirtual

This function is called whenever HPS receives a TouchEvent that signals a point of contact has moved. When users are inserting or editing an annotation, they will be able to reposition it by tapping it and dragging their finger

Parameters
in_stateA TouchState object describing the current touch state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

◆ OnTouchUp()

virtual bool HPS::AnnotationOperator::OnTouchUp ( TouchState const &  in_state)
overridevirtual

This function is called whenever HPS receives a TouchEvent that signals a point of contact has been released.

Parameters
in_stateA TouchState object describing the current touch state.
Returns
true if the input event was handled, false otherwise.

Reimplemented from HPS::Operator.

◆ OnViewAttached()

virtual void HPS::AnnotationOperator::OnViewAttached ( HPS::View const &  in_attached_view)
overridevirtual

This function is called whenever a view is attached to this operator.

Parameters
in_attached_viewThe view attached to this operator.

Reimplemented from HPS::Operator.

◆ OnViewDetached()

virtual void HPS::AnnotationOperator::OnViewDetached ( HPS::View const &  in_detached_view)
overridevirtual

This function is called whenever a view is detached from this operator.

Parameters
in_detached_viewThe view detached from this operator.

Reimplemented from HPS::Operator.

◆ SetBackgroundShape()

void HPS::AnnotationOperator::SetBackgroundShape ( const char *  in_shape)

This function sets the shape which will be use for the annotation background. The shape name provided has to match the name of a shape defined in a portfolio accessible by the view attached to this operator, or to a segment above that. This setting influences all shapes inserted by this operator after it is called, it does not change the shape of annotations already inserted by this operator. By default a rectangle shape ('box') is used.

Parameters
in_shapeThe name of the shape definition used when inserting annotations.

The documentation for this class was generated from the following file: