#include <sprk.h>

Inheritance diagram for HPS::ComponentPath:
HPS::Sprocket HPS::Object

Public Types

using const_iterator = HPS::ComponentArray::const_iterator
 
using const_reverse_iterator = HPS::ComponentArray::const_reverse_iterator
 
using iterator = HPS::ComponentArray::iterator
 
enum  PathType : uint32_t { PathType::Complete, PathType::Unique }
 
using reverse_iterator = HPS::ComponentArray::reverse_iterator
 

Public Member Functions

ComponentPathAppend (Component const &in_component)
 
ComponentPathAppend (ComponentPath const &in_path)
 
ComponentPathAppend (ComponentArray const &in_components)
 
ComponentAt (size_t in_index)
 
Component const & At (size_t in_index) const
 
ComponentBack ()
 
Component const & Back () const
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
 ComponentPath ()
 
 ComponentPath (ComponentArray const &in_components)
 
 ComponentPath (size_t in_count, Component const in_components[])
 
 ComponentPath (ComponentPath const &in_that)
 
 ComponentPath (ComponentPath &&in_that)
 
bool Empty () const
 
iterator end ()
 
const_iterator end () const
 
bool Equals (ComponentPath const &in_that) const
 
ComponentFront ()
 
Component const & Front () const
 
ComponentArray GetComponents () const
 
KeyPathArray GetKeyPaths () const
 
KeyPathArray GetKeyPaths (Canvas const &in_canvas, size_t in_layer=0) const
 
void Hide (Canvas const &in_canvas, size_t in_layer=0)
 
void Highlight (Canvas const &in_canvas, HighlightOptionsKit const &in_options, bool in_remove_existing=true) const
 
void Highlight (Canvas const &in_canvas, size_t in_layer, HighlightOptionsKit const &in_options, bool in_remove_existing=true) const
 
void Insert (size_t in_index, Component const &in_item)
 
bool IsHidden (Canvas const &in_canvas, size_t in_layer=0) const
 
void Isolate (Canvas const &in_canvas, size_t in_layer=0)
 
HPS::Type ObjectType () const
 
bool operator!= (ComponentPath const &in_that) const
 
ComponentPathoperator+= (Component const &in_component)
 
ComponentPathoperator+= (ComponentPath const &in_path)
 
ComponentPathoperator+= (ComponentArray const &in_components)
 
ComponentPathoperator= (ComponentPath &&in_that)
 
ComponentPathoperator= (ComponentPath const &in_that)
 
ComponentPathoperator= (ComponentArray const &in_path)
 
bool operator== (ComponentPath const &in_that) const
 
Component PopBack ()
 
Component PopFront ()
 
ComponentPathPushBack (Component const &in_component)
 
ComponentPathPushBack (ComponentPath const &in_path)
 
ComponentPathPushBack (ComponentArray const &in_components)
 
ComponentPathPushFront (Component const &in_component)
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
void Remove (Component const &in_item)
 
void Remove (size_t in_index)
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
void ResetVisibility (Canvas const &in_canvas, size_t in_layer=0)
 
ComponentPath Reverse () const
 
void Set (ComponentPath const &in_that)
 
ComponentPathSetComponents (ComponentArray const &in_components)
 
ComponentPathSetComponents (size_t in_count, Component const in_components[])
 
void Show (Canvas const &in_canvas, size_t in_layer=0)
 
size_t Size () const
 
void Unhighlight (Canvas const &in_canvas, HighlightOptionsKit const &in_options=HighlightOptionsKit()) const
 
void Unhighlight (Canvas const &in_canvas, size_t in_layer, HighlightOptionsKit const &in_options=HighlightOptionsKit()) const
 
virtual ~ComponentPath ()
 
- Public Member Functions inherited from HPS::Sprocket
 Sprocket (Sprocket &&in_that)
 
- Public Member Functions inherited from HPS::Object
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
 

Static Public Member Functions

static void Isolate (HPS::ComponentPathArray &in_component_paths, Canvas const &in_canvas, size_t in_layer=0)
 
static void ResetVisibility (HPS::ComponentPathArray &in_component_paths, Canvas const &in_canvas, size_t in_layer=0)
 
- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()
 

Static Public Attributes

static const HPS::Type staticType = HPS::Type::ComponentPath
 
- Static Public Attributes inherited from HPS::Object
static const HPS::Type staticType = HPS::Type::None
 

Detailed Description

The ComponentPath contains an array of components, organized from leaf to root. It allows the user to perform queries and operations along that path.

Member Enumeration Documentation

◆ PathType

enum HPS::ComponentPath::PathType : uint32_t
strong

Enumerates the types of ComponentPaths.

Enumerator
Complete 

The ComponentPath contains all components between leaf and root.

Unique 

The ComponentPath contains only components which are unique to this request, omitting ambiguous entries.

Constructor & Destructor Documentation

◆ ComponentPath() [1/5]

HPS::ComponentPath::ComponentPath ( )

Creates an uninitialized ComponentPath that refers to no database objects.

◆ ComponentPath() [2/5]

HPS::ComponentPath::ComponentPath ( ComponentArray const &  in_components)

Creates a new ComponentPath object based on the supplied path.

Parameters
in_componentsAn array of components arranged from leaf to root.

◆ ComponentPath() [3/5]

HPS::ComponentPath::ComponentPath ( size_t  in_count,
Component const  in_components[] 
)

Creates a new ComponentPath object based on the supplied path.

Parameters
in_countThe number of keys in the array.
in_componentsAn array of components arranged from leaf to root.

◆ ComponentPath() [4/5]

HPS::ComponentPath::ComponentPath ( ComponentPath const &  in_that)

Copies in_that into this ComponentPath.

◆ ComponentPath() [5/5]

HPS::ComponentPath::ComponentPath ( ComponentPath &&  in_that)

The move constructor creates a ComponentPath by transferring the underlying impl of the rvalue reference to this ComponentPath thereby avoiding a copy and allocation.

Parameters
in_thatAn rvalue reference to a ComponentPath to take the impl from.

◆ ~ComponentPath()

virtual HPS::ComponentPath::~ComponentPath ( )
virtual

Releases a reference to the database object this object is tied to.

Member Function Documentation

◆ Append() [1/3]

ComponentPath& HPS::ComponentPath::Append ( Component const &  in_component)

Appends the supplied Component into this object. Same as operator+= function.

Parameters
in_componentThe Component to be appended to this.
Returns
A reference to this object.
Deprecated:
This function exists for compatibility. Use ComponentPath::PushBack instead.

◆ Append() [2/3]

ComponentPath& HPS::ComponentPath::Append ( ComponentPath const &  in_path)

Appends the supplied key into this object. Same as operator+= function.

Parameters
in_pathThe ComponentPath to be appended to this.
Returns
A reference to this object.
Deprecated:
This function exists for compatibility. Use ComponentPath::PushBack instead.

◆ Append() [3/3]

ComponentPath& HPS::ComponentPath::Append ( ComponentArray const &  in_components)

Appends the supplied key into this object. Same as operator+= function.

Parameters
in_componentsThe ComponentArray to be appended to this.
Returns
A reference to this object.
Deprecated:
This function exists for compatibility. Use ComponentPath::PushBack instead.

◆ Empty()

bool HPS::ComponentPath::Empty ( ) const
virtual

Indicates whether this ComponentPath is empty.

Returns
true if no components are set on the path, false otherwise.

Reimplemented from HPS::Object.

◆ Equals()

bool HPS::ComponentPath::Equals ( ComponentPath const &  in_that) const

Check if the source ComponentPath is equivalent to this object.

Parameters
in_thatThe source ComponentPath to compare to this object.
Returns
true if the objects are equivalent, false otherwise.

◆ GetComponents()

ComponentArray HPS::ComponentPath::GetComponents ( ) const

Gets the components defining this ComponentPath.

Returns
The components defining this ComponentPath.

◆ GetKeyPaths() [1/2]

KeyPathArray HPS::ComponentPath::GetKeyPaths ( ) const

Gets the KeyPath objects corresponding to this ComponentPath. These key paths will include all possible paths which include the path components and all Canvas, Layout and View paths which include the Model which contains the path components.

Returns
All KeyPath objects for this ComponentPath.

◆ GetKeyPaths() [2/2]

KeyPathArray HPS::ComponentPath::GetKeyPaths ( Canvas const &  in_canvas,
size_t  in_layer = 0 
) const

Gets the KeyPath objects corresponding to this ComponentPath which are included by the specified Canvas and layer.

Returns
The KeyPath objects for this ComponentPath which are included by the specified Canvas and layer.
Parameters
in_canvasThe Canvas the returned KeyPath objects should reference.
in_layerThe layer under the provided Canvas the returned KeyPath objects should reference.

◆ Hide()

void HPS::ComponentPath::Hide ( Canvas const &  in_canvas,
size_t  in_layer = 0 
)

Hides this ComponentPath under the given Canvas in the specified layer. This forces the visibility of the selected ComponentPath and all components under this path to invisible. Any visibility changes made previously at or below this path are flushed. When performing a highlight in combination with this function the highlight must be applied with Drawing::Overlay::InPlace to display properly. See this section for limitations and details on managing component visibility.

Parameters
in_canvasThe Canvas in which to hide the ComponentPath.
in_layerThe layer under the provided Canvas in which to hide the ComponentPath.
See also
Show
Isolate
IsHidden
ResetVisibility
Programming Guide: Managing Component Visibility

◆ Highlight() [1/2]

void HPS::ComponentPath::Highlight ( Canvas const &  in_canvas,
HighlightOptionsKit const &  in_options,
bool  in_remove_existing = true 
) const

Highlights this ComponentPath with the provided options under the given Canvas in layer zero.

Parameters
in_canvasThe Canvas in which to perform the highlight.
in_optionsThe options to use to perform the highlight.
in_remove_existingIndicates whether this highlight should flush existing highlights at the specified path for the desired overlay type. If HPS::ComponentPath::Isolate(), HPS::ComponentPath::Hide(), or HPS::ComponentPath::Show() have been called on this ComponentPath, in_remove_existing should be set to false so that it doesn't override those visibility states.

◆ Highlight() [2/2]

void HPS::ComponentPath::Highlight ( Canvas const &  in_canvas,
size_t  in_layer,
HighlightOptionsKit const &  in_options,
bool  in_remove_existing = true 
) const

Highlights this ComponentPath with the provided options under the given Canvas in the specified layer.

Parameters
in_canvasThe Canvas in which to perform the highlight.
in_layerThe layer under the provided Canvas in which to perform the highlight.
in_optionsThe options to use to perform the highlight. If HPS::ComponentPath::Isolate(), HPS::ComponentPath::Hide(), or HPS::ComponentPath::Show() have been called on this ComponentPath, in_remove_existing should be set to false so that it doesn't override those visibility states.

◆ IsHidden()

bool HPS::ComponentPath::IsHidden ( Canvas const &  in_canvas,
size_t  in_layer = 0 
) const

Indicates whether this ComponentPath under the given Canvas in the specified layer is hidden. Note that even if a path is hidden, it's possible that paths descending from this path may not be hidden.

Parameters
in_canvasThe Canvas in which to check whether the specified path is hidden.
in_layerThe layer under the provided Canvas in which to check whether the specified path is hidden.
Returns
true if this path is hidden, false otherwise.
See also
Hide
Show
Isolate
ResetVisibility
Programming Guide: Managing Component Visibility

◆ Isolate() [1/2]

void HPS::ComponentPath::Isolate ( Canvas const &  in_canvas,
size_t  in_layer = 0 
)

Shows only this ComponentPath and hides all other Component objects under the given Canvas in the specified layer. When performing a highlight in combination with this function the highlight must be applied with Drawing::Overlay::InPlace to display properly. See this section for limitations and details on managing component visibility.

Parameters
in_canvasThe Canvas in which to isolate the ComponentPath.
in_layerThe layer under the provided Canvas in which to isolate the ComponentPath.
See also
Hide
Show
IsHidden
ResetVisibility
Programming Guide: Managing Component Visibility

◆ Isolate() [2/2]

static void HPS::ComponentPath::Isolate ( HPS::ComponentPathArray &  in_component_paths,
Canvas const &  in_canvas,
size_t  in_layer = 0 
)
static

Shows only the objects in the supplied ComponentPathArray and hides all other Component objects under the given Canvas in the specified layer. When performing a highlight in combination with this function the highlight must be applied with Drawing::Overlay::InPlace to display properly. See this section for limitations and details on managing component visibility.

Parameters
in_component_pathsA ComponentPathArray containing paths to isolate.
in_canvasThe Canvas in which to isolate the supplied paths.
in_layerThe layer under the provided Canvas in which to isolate the supplied paths.
See also
Hide
Show
IsHidden
ResetVisibility
Programming Guide: Managing Component Visibility

◆ ObjectType()

HPS::Type HPS::ComponentPath::ObjectType ( ) const
inlinevirtual

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Returns
The declared type of the object in question, which may differ from the true, underlying type.

Reimplemented from HPS::Object.

◆ operator!=()

bool HPS::ComponentPath::operator!= ( ComponentPath const &  in_that) const

Check if the source ComponentPath is not equivalent to this object.

Parameters
in_thatThe source ComponentPath to compare to this object.
Returns
true if the objects are not equivalent, false otherwise.

◆ operator+=() [1/3]

ComponentPath& HPS::ComponentPath::operator+= ( Component const &  in_component)

Appends the supplied Component into this object. Same as Append function.

Parameters
in_keyThe key to be appended to this.
Returns
A reference to this object.

◆ operator+=() [2/3]

ComponentPath& HPS::ComponentPath::operator+= ( ComponentPath const &  in_path)

Appends the supplied ComponentPath into this object. Same as Append function.

Parameters
in_key_pathThe ComponentPath to be appended to this.
Returns
A reference to this object.

◆ operator+=() [3/3]

ComponentPath& HPS::ComponentPath::operator+= ( ComponentArray const &  in_components)

Appends the supplied ComponentArray into this object. Same as Append function.

Parameters
in_componentsThe ComponentArray to be appended to this.
Returns
A reference to this object.

◆ operator=() [1/3]

ComponentPath& HPS::ComponentPath::operator= ( ComponentPath &&  in_that)

The move assignment operator transfers the underlying impl of the rvalue reference to this ComponentPath thereby avoiding a copy.

Parameters
in_thatAn rvalue reference to a ComponentPath to take the impl from.
Returns
A reference to this ComponentPath.

◆ operator=() [2/3]

ComponentPath& HPS::ComponentPath::operator= ( ComponentPath const &  in_that)

Copies the supplied path into this object.

Parameters
in_thatThe source of the copy.
Returns
A reference to this object.

◆ operator=() [3/3]

ComponentPath& HPS::ComponentPath::operator= ( ComponentArray const &  in_path)

Copies an array of components into this object.

Parameters
in_pathThe source array, assumed to be arranged from leaf to root.
Returns
A reference to this object.

◆ operator==()

bool HPS::ComponentPath::operator== ( ComponentPath const &  in_that) const

Check if the source ComponentPath is equivalent to this object.

Parameters
in_thatThe source ComponentPath to compare to this object.
Returns
true if the objects are equivalent, false otherwise.

◆ PushBack() [1/2]

ComponentPath& HPS::ComponentPath::PushBack ( ComponentPath const &  in_path)

Appends the supplied key into this object. Same as operator+= function.

Parameters
in_pathThe ComponentPath to be appended to this.
Returns
A reference to this object.

◆ PushBack() [2/2]

ComponentPath& HPS::ComponentPath::PushBack ( ComponentArray const &  in_components)

Appends the supplied key into this object. Same as operator+= function.

Parameters
in_componentsThe ComponentArray to be appended to this.
Returns
A reference to this object.

◆ ResetVisibility() [1/2]

void HPS::ComponentPath::ResetVisibility ( Canvas const &  in_canvas,
size_t  in_layer = 0 
)

Resets the visibility of all components at or below this ComponentPath back to the visibility state defined by their model & view. See this section for limitations and details on managing component visibility.

Parameters
in_canvasThe Canvas in which to isolate the ComponentPath.
in_layerThe layer under the provided Canvas in which to isolate the ComponentPath.
See also
Hide
Show
Isolate
IsHidden
Programming Guide: Managing Component Visibility

◆ ResetVisibility() [2/2]

static void HPS::ComponentPath::ResetVisibility ( HPS::ComponentPathArray &  in_component_paths,
Canvas const &  in_canvas,
size_t  in_layer = 0 
)
static

Resets the visibility of all components at or below the given paths back to the visibility state defined by their model & view. See this section for limitations and details on managing component visibility.

Parameters
in_component_pathsA ComponentPathArray containing paths to reset.
in_canvasThe Canvas in which to isolate the supplied paths.
in_layerThe layer under the provided Canvas in which to isolate the supplied paths.
See also
Hide
Show
Isolate
IsHidden
Programming Guide: Managing Component Visibility

◆ Set()

void HPS::ComponentPath::Set ( ComponentPath const &  in_that)

Copies the supplied path into this object.

Parameters
in_thatThe source of the copy.

◆ SetComponents() [1/2]

ComponentPath& HPS::ComponentPath::SetComponents ( ComponentArray const &  in_components)

Copies an array of components into this object.

Parameters
in_componentsThe source array, assumed to be arranged from leaf to root.
Returns
A reference to this object.

◆ SetComponents() [2/2]

ComponentPath& HPS::ComponentPath::SetComponents ( size_t  in_count,
Component const  in_components[] 
)

Copies an array of components into this object.

Parameters
in_countthe number of components in the array.
in_componentsThe source array, assumed to arranged from leaf to root.
Returns
A reference to this object.

◆ Show()

void HPS::ComponentPath::Show ( Canvas const &  in_canvas,
size_t  in_layer = 0 
)

Shows this ComponentPath under the given Canvas in the specified layer. This makes the selected path visibile but preserves the model-defined visibility of any components that exist underneath the chosen path. Any visibility changes made subsequently at or below this path are honored unless they are redundant. When performing a highlight in combination with this function the highlight must be applied with Drawing::Overlay::InPlace to display properly. See this section for limitations and details on managing component visibility.

Parameters
in_canvasThe Canvas in which to show the ComponentPath.
in_layerThe layer under the provided Canvas in which to show the ComponentPath.
See also
Hide
Isolate
IsHidden
ResetVisibility
Programming Guide: Managing Component Visibility

◆ Unhighlight() [1/2]

void HPS::ComponentPath::Unhighlight ( Canvas const &  in_canvas,
HighlightOptionsKit const &  in_options = HighlightOptionsKit() 
) const

Unhighlights this ComponentPath with the provided options under the given Canvas in layer zero.

Parameters
in_canvasThe Canvas in which to perform the unhighlight.
in_optionsThe options to use to perform the unhighlight.

◆ Unhighlight() [2/2]

void HPS::ComponentPath::Unhighlight ( Canvas const &  in_canvas,
size_t  in_layer,
HighlightOptionsKit const &  in_options = HighlightOptionsKit() 
) const

Unhighlights this ComponentPath with the provided options under the given Canvas in the specified layer.

Parameters
in_canvasThe Canvas in which to perform the unhighlight.
in_layerThe layer under the provided Canvas in which to perform the unhighlight.
in_optionsThe options to use to perform the unhighlight.

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