libetonyek::IWORKStyleStack Class Reference

Representation of a dynamic inheritance of styles. More...

#include <IWORKStyleStack.h>

List of all members.

Public Member Functions

 IWORKStyleStack ()
 Construct an empty context.
 ~IWORKStyleStack ()
void push ()
 Push a style onto the active styles stack.
void push (const IWORKStylePtr_t &style)
 Push a style onto the active styles stack.
void pop ()
 Pop a style from the active styles stack.
void set (const IWORKStylePtr_t &style)
template<class Property >
bool has (const bool lookInParent=true) const
template<class Property >
const IWORKPropertyInfo
< Property >::ValueType & 
get (const bool lookInParent=true) const

Private Types

typedef std::deque
< IWORKStylePtr_t
Stack_t
 The internal type of style stack.

Private Attributes

Stack_t m_stack

Detailed Description

Representation of a dynamic inheritance of styles.

A static inheritance of styles is represented by the "parent" relation of styles. A dynamic inheritance is defined by the way styles are applied on elements. One or more styles may be active at any given moment (e.g., a character style of a text span and a paragraph style of the paragraph) and a property can be inherited from the enclosing style.

The property getters in specific implementations of IWORKStyle should take a pointer to a IWORKStyleStack.


Member Typedef Documentation

The internal type of style stack.

std::deque is used instead of std::stack because std::stack does not allow iteration through the elements.


Constructor & Destructor Documentation

Construct an empty context.


Member Function Documentation

template<class Property >
const IWORKPropertyInfo<Property>::ValueType& libetonyek::IWORKStyleStack::get ( const bool  lookInParent = true) const [inline]
template<class Property >
bool libetonyek::IWORKStyleStack::has ( const bool  lookInParent = true) const [inline]

Push a style onto the active styles stack.

The previous top style becomes a dynamic parent style.


Member Data Documentation


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