Line data Source code
1 : /*
2 : * Copyright 2014 Christian Loose <christian.loose@hamburg.de>
3 : *
4 : * Redistribution and use in source and binary forms, with or without
5 : * modification, are permitted provided that the following conditions are
6 : * met:
7 : *
8 : * (1) Redistributions of source code must retain the above copyright
9 : * notice, this list of conditions and the following disclaimer.
10 : *
11 : * (2) Redistributions in binary form must reproduce the above copyright
12 : * notice, this list of conditions and the following disclaimer in
13 : * the documentation and/or other materials provided with the
14 : * distribution.
15 : *
16 : * (3) The name of the author may not be used to
17 : * endorse or promote products derived from this software without
18 : * specific prior written permission.
19 : *
20 : * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21 : * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22 : * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23 : * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
24 : * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25 : * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26 : * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 : * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28 : * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
29 : * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 : * POSSIBILITY OF SUCH DAMAGE.
31 : */
32 : #ifndef TEMPLATE_H
33 : #define TEMPLATE_H
34 :
35 : #include <QString>
36 :
37 0 : class Template
38 : {
39 : public:
40 : enum RenderOption
41 : {
42 : ScrollbarSynchronization = 0x00000001,
43 : MathSupport = 0x00000002,
44 : CodeHighlighting = 0x00000004
45 : };
46 : Q_DECLARE_FLAGS (RenderOptions, RenderOption)
47 :
48 : virtual ~Template ()
49 0 : {
50 : }
51 :
52 : QString codeHighlightingStyle () const
53 : {
54 0 : return highlightingStyle;
55 : }
56 : void setCodeHighlightingStyle (const QString & style)
57 : {
58 : highlightingStyle = style;
59 : }
60 :
61 : virtual QString render (const QString & body, RenderOptions options) const = 0;
62 : virtual QString exportAsHtml (const QString & header, const QString & body, RenderOptions options) const = 0;
63 :
64 : private:
65 : QString highlightingStyle;
66 : };
67 :
68 : Q_DECLARE_OPERATORS_FOR_FLAGS (Template::RenderOptions)
69 :
70 : #endif // TEMPLATE_H
|