Cutelee
6.1.0
templates
scriptabletags
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
Base class for all NodeFactories.
Definition:
node.h:300
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::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
QString
Definition:
operatorcasttests.cpp:24
ScriptableNodeFactory
Definition:
scriptablenode.h:60
ScriptableNode
Definition:
scriptablenode.h:39
Cutelee
The Cutelee namespace holds all public Cutelee API.
Definition:
Mainpage.dox:8
Generated by
1.9.1