#include <hps.h>

Inheritance diagram for HPS::StyleControl:
HPS::Control HPS::Object

Public Member Functions

StyleKey AppendNamed (char const *in_style_name, ConditionalExpression const &in_conditional, Style::AppendMode in_mode=Style::AppendMode::Or)
 
StyleKey AppendSegment (SegmentKey const &in_style_source, ConditionalExpression const &in_conditional, Style::AppendMode in_mode=Style::AppendMode::Or)
 
void Flush (SegmentKey const &in_style_source)
 
void Flush (SegmentKey const &in_style_source, ConditionalExpression const &in_conditional)
 
void Flush (char const *in_style_name)
 
void Flush (char const *in_style_name, ConditionalExpression const &in_conditional)
 
size_t GetCount () const
 
HPS::Type ObjectType () const
 
StyleControloperator= (StyleControl &&in_that)
 
StyleControloperator= (StyleControl const &in_that)
 
bool Pop ()
 
bool Pop (Style::Type &out_type, SegmentKey &out_segment_source, UTF8 &out_style_name, ConditionalExpression &out_conditional)
 
StyleKey PushNamed (char const *in_style_name)
 
StyleKey PushNamed (char const *in_style_name, ConditionalExpression const &in_conditional)
 
StyleKey PushSegment (SegmentKey const &in_style_source)
 
StyleKey PushSegment (SegmentKey const &in_style_source, ConditionalExpression const &in_conditional)
 
void Set (StyleTypeArray const &in_types, SegmentKeyArray const &in_segment_sources, UTF8Array const &in_style_names, ConditionalExpressionArray const &in_conditions)
 
void Set (StyleTypeArray const &in_types, SegmentKeyArray const &in_segment_sources, UTF8Array const &in_style_names)
 
void Set (size_t in_count, Style::Type const in_types[], SegmentKey const in_segment_sources[], UTF8 const in_style_names[], ConditionalExpression const in_conditions[])
 
StyleKey SetNamed (char const *in_style_name)
 
StyleKey SetNamed (char const *in_style_name, ConditionalExpression const &in_conditional)
 
StyleKey SetSegment (SegmentKey const &in_style_source)
 
StyleKey SetSegment (SegmentKey const &in_style_source, ConditionalExpression const &in_conditional)
 
bool Show (StyleTypeArray &out_types, SegmentKeyArray &out_segment_sources, UTF8Array &out_style_names, ConditionalExpressionArray &out_conditions) const
 
bool Show (StyleKeyArray &out_styles) const
 
bool ShowAllNamed (UTF8Array &out_names, HPS::ConditionalExpressionArray &out_conditions) const
 
bool ShowAllNamed (StyleKeyArray &out_styles) const
 
bool ShowAllSegment (SegmentKeyArray &out_segments, HPS::ConditionalExpressionArray &out_conditions) const
 
bool ShowAllSegment (StyleKeyArray &out_styles) const
 
bool ShowTop (Style::Type &out_type, SegmentKey &out_segment_source, UTF8 &out_style_name, ConditionalExpression &out_conditional) const
 
bool ShowTop (StyleKey &out_style) const
 
 StyleControl (SegmentKey &in_seg)
 
 StyleControl (StyleControl const &in_that)
 
 StyleControl (StyleControl &&in_that)
 
virtual HPS::Type Type () const
 
void UnsetAllNamed ()
 
void UnsetAllSegment ()
 
void UnsetEverything ()
 
void UnsetTop ()
 
 ~StyleControl ()
 
- 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 ()
 

Static Public Attributes

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

Additional Inherited Members

- Static Public Member Functions inherited from HPS::Object
template<typename T >
static intptr_t ClassID ()
 
- Protected Member Functions inherited from HPS::Control
 Control (Control &&in_that)
 
Controloperator= (Control &&in_that)
 

Detailed Description

The StyleControl class is a smart pointer that is tied to a database object. Controls are used for manipulating settings within the database.

Constructor & Destructor Documentation

◆ StyleControl() [1/3]

HPS::StyleControl::StyleControl ( SegmentKey in_seg)
explicit

Initializes a control tied to the segment in_seg.

◆ StyleControl() [2/3]

HPS::StyleControl::StyleControl ( StyleControl const &  in_that)

Initializes a control tied to the same object as in_that.

◆ StyleControl() [3/3]

HPS::StyleControl::StyleControl ( StyleControl &&  in_that)

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

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

◆ ~StyleControl()

HPS::StyleControl::~StyleControl ( )

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

Member Function Documentation

◆ AppendNamed()

StyleKey HPS::StyleControl::AppendNamed ( char const *  in_style_name,
ConditionalExpression const &  in_conditional,
Style::AppendMode  in_mode = Style::AppendMode::Or 
)

Appends a conditional expression to an existing style or conditional style. If the style does not currently exist, a new conditional style is pushed. Conditional styles are only applied if their condition(s) are satisfied.

Parameters
in_style_nameThe name of the named style which should be defined in an accessible portfolio.
in_conditionalA conditional expression that must be satisfied in order for the style to be applied.
in_modeThe behavior of the conditional expression if another conditional style is currently applied with the same style.
Returns
a StyleKey that can be used to interact with the style.

◆ AppendSegment()

StyleKey HPS::StyleControl::AppendSegment ( SegmentKey const &  in_style_source,
ConditionalExpression const &  in_conditional,
Style::AppendMode  in_mode = Style::AppendMode::Or 
)

Appends a conditional expression to an existing style or conditional style. If the style does not currently exist, a new conditional style is pushed. Conditional styles are only applied if their condition(s) are satisfied.

Parameters
in_style_sourceThe segment to use as the source for the attributes that should be styled.
in_conditionalA conditional expression that must be satisfied in order for the style to be applied.
in_modeThe behavior of the conditional expression if another conditional style is currently applied with the same style.
Returns
a StyleKey that can be used to interact with the style.

◆ Flush() [1/4]

void HPS::StyleControl::Flush ( SegmentKey const &  in_style_source)

Removes any styles on the associated segment which refer to the provided style source. The styles will be removed regardless if there is a conditional expression associated with the style or not.

Parameters
in_style_sourceThe style source used to identify which styles to remove.

◆ Flush() [2/4]

void HPS::StyleControl::Flush ( SegmentKey const &  in_style_source,
ConditionalExpression const &  in_conditional 
)

Removes any styles on the associated segment which refer to the provided style source with the provided condition. If a style is found which references the style source and has an associated conditional expression which contains the provided conditional expression, the provided conditional expression will be removed from the conditional expression associated with the style. If removing the provided conditional expression from the style results in the complete removal of the conditional expression for the style, the style itself will be completely removed.

Parameters
in_style_sourceThe style source used to identify which styles to remove or modify.
in_conditionalThe conditional expression to remove from styles which refer to the provided style source.

◆ Flush() [3/4]

void HPS::StyleControl::Flush ( char const *  in_style_name)

Removes any styles on the associated segment which refer to the provided style name. The styles will be removed regardless if there is a conditional expression associated with the style or not.

Parameters
in_style_nameThe style name used to identify which styles to remove.

◆ Flush() [4/4]

void HPS::StyleControl::Flush ( char const *  in_style_name,
ConditionalExpression const &  in_conditional 
)

Removes any styles on the associated segment which refer to the provided style name with the provided condition. If a style is found which references the style name and has an associated conditional expression which contains the provided conditional expression, the provided conditional expression will be removed from the conditional expression associated with the style. If removing the provided conditional expression from the style results in the complete removal of the conditional expression for the style, the style itself will be completely removed.

Parameters
in_style_nameThe style name used to identify which styles to remove or modify.
in_conditionalThe conditional expression to remove from styles which refer to the provided style name.

◆ GetCount()

size_t HPS::StyleControl::GetCount ( ) const

Returns the number of styles set here.

◆ ObjectType()

HPS::Type HPS::StyleControl::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::Control.

◆ operator=() [1/2]

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

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

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

◆ operator=() [2/2]

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

Share the underlying smart-pointer of the StyleControl source.

Parameters
in_thatThe StyleControl source of the assignment.
Returns
A reference to this StyleControl.

◆ Pop() [1/2]

bool HPS::StyleControl::Pop ( )

Removes the most recent style.

Returns
true if a style was present, false otherwise.

◆ Pop() [2/2]

bool HPS::StyleControl::Pop ( Style::Type out_type,
SegmentKey out_segment_source,
UTF8 out_style_name,
ConditionalExpression out_conditional 
)

Removes the most recent style and gives information about it to the user.

Parameters
out_typeIndicates the type of the style.
out_segment_sourceIf out_type was Segment, this value contains the source segment for the style.
out_style_nameIf out_type was Named, this value contains the name of the style (defined in a portfolio).
out_conditionalThe conditions, if any, set on the style when it was applied.
Returns
true if a style was present, false otherwise.

◆ PushNamed() [1/2]

StyleKey HPS::StyleControl::PushNamed ( char const *  in_style_name)

Adds a named style to the top of the style stack. Existing styles are unmodified but styles on top take precedence if there are duplicate settings.

◆ PushNamed() [2/2]

StyleKey HPS::StyleControl::PushNamed ( char const *  in_style_name,
ConditionalExpression const &  in_conditional 
)

Adds a conditional named style to the top of the style stack. Existing styles are unmodified but styles on top take precedence if there are duplicate settings. Conditional styles are only applied if their condition(s) are satisfied.

Parameters
in_style_nameThe name of the named style which should be defined in an accessible portfolio.
in_conditionalA conditional expression that must be satisfied in order for the style to be applied.
Returns
a StyleKey that can be used to interact with the style.

◆ PushSegment() [1/2]

StyleKey HPS::StyleControl::PushSegment ( SegmentKey const &  in_style_source)

Creates a new style based on in_style_source and places it on the top of the style stack. Existing styles are unmodified but styles on top take precedence if there are duplicate settings.

Parameters
in_style_sourceThe segment to use as the source for the attributes that should be styled.
Returns
a StyleKey that can be used to interact with the style.

◆ PushSegment() [2/2]

StyleKey HPS::StyleControl::PushSegment ( SegmentKey const &  in_style_source,
ConditionalExpression const &  in_conditional 
)

Creates a new style based on in_style_source and places it on the top of the style stack. Existing styles are unmodified but styles on top take precedence if there are duplicate settings.

Parameters
in_style_sourceThe segment to use as the source for the attributes that should be styled.
in_conditionalA conditional expression that must be satisfied in order for the style to be applied.
Returns
a StyleKey that can be used to interact with the style.

◆ Set() [1/3]

void HPS::StyleControl::Set ( StyleTypeArray const &  in_types,
SegmentKeyArray const &  in_segment_sources,
UTF8Array const &  in_style_names,
ConditionalExpressionArray const &  in_conditions 
)

Sets a collection of styles, replacing any existing styles.

Parameters
in_typesIndicates the type of each style.
in_segment_sourcesFor each entry, if in_type was Segment, this value must contain the source segment for the style.
in_style_namesFor each entry, if in_type was Named, this value must contain the name of the style (defined in a portfolio).
in_conditionsThe conditions to set on each style.

◆ Set() [2/3]

void HPS::StyleControl::Set ( StyleTypeArray const &  in_types,
SegmentKeyArray const &  in_segment_sources,
UTF8Array const &  in_style_names 
)

Sets a collection of styles, replacing any existing styles.

Parameters
in_typesIndicates the type of each style.
in_segment_sourcesFor each entry, if in_type was Segment, this value must contain the source segment for the style.
in_style_namesFor each entry, if in_type was Named, this value must contain the name of the style (defined in a portfolio).

◆ Set() [3/3]

void HPS::StyleControl::Set ( size_t  in_count,
Style::Type const  in_types[],
SegmentKey const  in_segment_sources[],
UTF8 const  in_style_names[],
ConditionalExpression const  in_conditions[] 
)

Sets a collection of styles, replacing any existing styles.

Parameters
in_countThe length of all arrays
in_typesIndicates the type of each style.
in_segment_sourcesFor each entry, if in_type was Segment, this value must contain the source segment for the style.
in_style_namesFor each entry, if in_type was Named, this value must contain the name of the style (defined in a portfolio).
in_conditionsThe conditions, if any, to set on each style. Passing a null pointer indicates no conditions are requested.

◆ SetNamed() [1/2]

StyleKey HPS::StyleControl::SetNamed ( char const *  in_style_name)

Sets in_style_name as the only active style, replacing any existing styles.

Parameters
in_style_nameThe name of the style to apply. If the name does not exist in the active portfolio, no style is applied.

◆ SetNamed() [2/2]

StyleKey HPS::StyleControl::SetNamed ( char const *  in_style_name,
ConditionalExpression const &  in_conditional 
)

Sets in_style_name as the only active style, replacing any existing styles.

Parameters
in_style_nameThe name of the style to apply. If the name does not exist in the active portfolio, no style is applied.
in_conditionalA condition or conditions that must be met for a style to be activated.

◆ SetSegment() [1/2]

StyleKey HPS::StyleControl::SetSegment ( SegmentKey const &  in_style_source)

Sets in_style_source as the only active style, replacing any existing styles.

Parameters
in_style_sourceA segment containing attributes that should be styled.

◆ SetSegment() [2/2]

StyleKey HPS::StyleControl::SetSegment ( SegmentKey const &  in_style_source,
ConditionalExpression const &  in_conditional 
)

Sets in_style_source as the only active style, replacing any existing styles.

Parameters
in_style_sourceA segment containing attributes that should be styled.
in_conditionalA condition or conditions that must be met for a style to be activated.

◆ Show() [1/2]

bool HPS::StyleControl::Show ( StyleTypeArray out_types,
SegmentKeyArray out_segment_sources,
UTF8Array out_style_names,
ConditionalExpressionArray out_conditions 
) const

Shows all styles on this segment.

Parameters
out_typesIndicates the type of each style.
out_segment_sourcesFor each entry, if out_type was Style::Type::Segment, this value contains the source segment for the style.
out_style_namesFor each entry, if out_type was Style::Type::Named, this value contains the name of the style (defined in a portfolio).
out_conditionsThe conditions, if any, set on each style when it was applied.
Returns
true if any style was present, false otherwise.

◆ Show() [2/2]

bool HPS::StyleControl::Show ( StyleKeyArray out_styles) const

Shows the all styles on this segment.

Parameters
out_stylesThe StyleKey for each style on this segment.
Returns
true if any style was present, false otherwise.

◆ ShowAllNamed() [1/2]

bool HPS::StyleControl::ShowAllNamed ( UTF8Array out_names,
HPS::ConditionalExpressionArray out_conditions 
) const

Shows all named styles on this segment.

Parameters
out_namesNames of all named styles set on this segment.
out_conditionsThe conditions, if any, set on each style when it was applied.
Returns
true if any style of the correct type was present, false otherwise.

◆ ShowAllNamed() [2/2]

bool HPS::StyleControl::ShowAllNamed ( StyleKeyArray out_styles) const

Shows the all named styles on this segment.

Parameters
out_stylesThe StyleKey for each named style on this segment.
Returns
true if any named style was present, false otherwise.

◆ ShowAllSegment() [1/2]

bool HPS::StyleControl::ShowAllSegment ( SegmentKeyArray out_segments,
HPS::ConditionalExpressionArray out_conditions 
) const

Shows all segment styles on this segment.

Parameters
out_segmentsKeys to all segments styled onto this segment.
out_conditionsThe conditions, if any, set on each style when it was applied.
Returns
true if any style of the correct type was present, false otherwise.

◆ ShowAllSegment() [2/2]

bool HPS::StyleControl::ShowAllSegment ( StyleKeyArray out_styles) const

Shows the all segment styles on this segment.

Parameters
out_stylesThe StyleKey for each segment style on this segment.
Returns
true if any segment style was present, false otherwise.

◆ ShowTop() [1/2]

bool HPS::StyleControl::ShowTop ( Style::Type out_type,
SegmentKey out_segment_source,
UTF8 out_style_name,
ConditionalExpression out_conditional 
) const

Shows the most recent style applied to this segment.

Parameters
out_typeIndicates the type of the style.
out_segment_sourceIf out_type was Style::Type::Segment, this value contains the source segment for the style.
out_style_nameIf out_type was Style::Type::Named, this value contains the name of the style (defined in a portfolio).
out_conditionalThe conditions, if any, set on the style when it was applied.
Returns
true if a style was present, false otherwise.

◆ ShowTop() [2/2]

bool HPS::StyleControl::ShowTop ( StyleKey out_style) const

Shows the most recent style applied to this segment.

Parameters
out_styleThe StyleKey for the most recent style applied to this segment.
Returns
true if a style was present, false otherwise.

◆ Type()

virtual HPS::Type HPS::StyleControl::Type ( ) const
inlinevirtual

This function returns the true type of the underlying object. This function is useful for finding the type of smart pointer objects that have been cast to more generic types.

Warning
This function must synchronize the database (by waiting for all pending database operations to complete) in order to know the type status of this object with certainty. Therefore this function can negatively impact performance. You should vigorously avoid using this function in high-traffic or peformance-critical areas of your code.
Returns
The true type of the object in question.

Reimplemented from HPS::Control.

◆ UnsetAllNamed()

void HPS::StyleControl::UnsetAllNamed ( )

Unsets all named styles on this segment.

◆ UnsetAllSegment()

void HPS::StyleControl::UnsetAllSegment ( )

Unsets all segment styles on this segment.

◆ UnsetEverything()

void HPS::StyleControl::UnsetEverything ( )

Unsets all styles on this segment.

◆ UnsetTop()

void HPS::StyleControl::UnsetTop ( )

Unsets the most recent style on this segment.


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