aboutsummaryrefslogtreecommitdiff
path: root/src/styleengine.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/styleengine.hh')
-rw-r--r--src/styleengine.hh27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/styleengine.hh b/src/styleengine.hh
index af615a44..94792250 100644
--- a/src/styleengine.hh
+++ b/src/styleengine.hh
@@ -4,17 +4,38 @@
#include "dw/core.hh"
#include "doctree.hh"
-class StyleEngine {
+class StyleEngine : public Doctree {
private:
- dw::core::style::Style *currentStyle;
+ class Node : public DoctreeNode {
+ public:
+ dw::core::style::Style *style;
+
+
+ };
+
+ lout::misc::SimpleVector <Node> *stack;
public:
StyleEngine ();
~StyleEngine ();
+
+ /* Doctree interface */
+ const DoctreeNode *top () {
+ return stack->getRef (stack->size () - 1);
+ };
+ const DoctreeNode *parent (const DoctreeNode *n) {
+ if (n->depth > 0)
+ return stack->getRef (n->depth - 1);
+ else
+ return NULL;
+ };
void startElement (int tag, const char *id, const char *klass, const char *style);
void endElement (int tag);
- inline dw::core::style::Style *style () { return currentStyle; };
+
+ inline dw::core::style::Style *style () {
+ return stack->getRef (stack->size () - 1)->style;
+ };
};
#endif