Cutelee
6.1.0
scriptablenode.h
1
/*
2
This file is part of the Cutelee template system.
3
4
Copyright (c) 2009,2010 Stephen Kelly <steveire@gmail.com>
5
6
This library is free software; you can redistribute it and/or
7
modify it under the terms of the GNU Lesser General Public
8
License as published by the Free Software Foundation; either version
9
2.1 of the Licence, or (at your option) any later version.
10
11
This library is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
Lesser General Public License for more details.
15
16
You should have received a copy of the GNU Lesser General Public
17
License along with this library. If not, see <http://www.gnu.org/licenses/>.
18
19
*/
20
21
#ifndef SCRIPTABLE_NODE_H
22
#define SCRIPTABLE_NODE_H
23
24
#include <QtQml/QJSValue>
25
26
#include "node.h"
27
28
class
QJSEngine
;
29
30
namespace
Cutelee
31
{
32
class
Context
;
33
class
Engine
;
34
}
35
36
using namespace
Cutelee
;
37
38
class
ScriptableNode :
public
Node
39
{
40
Q_OBJECT
41
public
:
42
ScriptableNode(
QObject
*
parent
= {});
43
void
setScriptEngine(
QJSEngine
*engine);
44
void
init(
const
QJSValue
&concreteNode,
const
QJSValue
&renderMethod);
45
46
QJSEngine
*engine();
47
48
void
render
(
OutputStream
*stream,
Context
*c)
const override
;
49
50
private
:
51
QJSEngine
*m_scriptEngine;
52
QJSValue
m_concreteNode;
53
QJSValue
m_renderMethod;
54
55
public
Q_SLOTS
:
56
void
setNodeList(
const
QString
&name,
const
QList<QObject *>
&);
57
};
58
59
class
ScriptableNodeFactory :
public
AbstractNodeFactory
60
{
61
Q_OBJECT
62
public
:
63
ScriptableNodeFactory(
QObject
*
parent
= {});
64
void
setScriptEngine(
QJSEngine
*engine);
65
66
void
setEngine(
Cutelee::Engine
*engine)
override
;
67
void
setFactory(
const
QJSValue
&factoryMethod);
68
69
Node
*
getNode
(
const
QString
&tagContent,
Parser
*p = {})
const
override
;
70
71
private
:
72
QJSEngine
*m_scriptEngine;
73
QJSValue
m_factoryMethod;
74
};
75
76
#endif
Cutelee::AbstractNodeFactory::AbstractNodeFactory
AbstractNodeFactory(QObject *parent={})
Definition
node.cpp:184
Cutelee::Context
The Context class holds the context to render a Template with.
Definition
context.h:119
Cutelee::Engine
Cutelee::Engine is the main entry point for creating Cutelee Templates.
Definition
engine.h:121
Cutelee::Node
Base class for all nodes.
Definition
node.h:78
Cutelee::Node::Node
Node(QObject *parent={})
Definition
node.cpp:84
Cutelee::OutputStream
The OutputStream class is used to render templates to a QTextStream.
Definition
outputstream.h:81
Cutelee::Parser
The Parser class processes a string template into a tree of nodes.
Definition
parser.h:49
ScriptableNodeFactory::getNode
Node * getNode(const QString &tagContent, Parser *p={}) const override
Definition
scriptablenode.cpp:85
ScriptableNode::render
void render(OutputStream *stream, Context *c) const override
Definition
scriptablenode.cpp:49
Cutelee
The Cutelee namespace holds all public Cutelee API.
Definition
Mainpage.dox:8
QJSEngine
QJSValue
QList
QObject::QObject
QObject(QObject *parent)
QObject::Q_OBJECT
Q_OBJECTQ_OBJECT
QObject::Q_SLOTS
Q_SLOTSQ_SLOTS
QObject::parent
QObject * parent() const const
QString
templates
scriptabletags
scriptablenode.h
Generated by
1.16.1