Representation of a dynamic inheritance of styles. More...
#include <IWORKStyleStack.h>
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 |
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
.
|
private |
The internal type of style stack.
std::deque
is used instead of std::stack
because std::stack
does not allow iteration through the elements.
libetonyek::IWORKStyleStack::IWORKStyleStack | ( | ) |
Construct an empty context.
libetonyek::IWORKStyleStack::~IWORKStyleStack | ( | ) |
|
inline |
Referenced by libetonyek::IWORKTable::insertCell().
|
inline |
Referenced by libetonyek::IWORKTable::insertCell().
void libetonyek::IWORKStyleStack::pop | ( | ) |
Pop a style from the active styles stack.
void libetonyek::IWORKStyleStack::push | ( | ) |
Push a style onto the active styles stack.
The previous top style becomes a dynamic parent style
.
Referenced by libetonyek::IWORKTable::draw(), libetonyek::IWORKText::handleListLevelChange(), libetonyek::IWORKTable::insertCell(), and libetonyek::IWORKText::needsSection().
void libetonyek::IWORKStyleStack::push | ( | const IWORKStylePtr_t & | style | ) |
Push a style onto the active styles stack.
The previous top style becomes a dynamic parent style
.
void libetonyek::IWORKStyleStack::set | ( | const IWORKStylePtr_t & | style | ) |
|
private |