- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

VSDXTheme.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* libvisio
3 * Version: MPL 1.1 / GPLv2+ / LGPLv2+
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License or as specified alternatively below. You may obtain a copy of
8 * the License at http://www.mozilla.org/MPL/
9 *
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
14 *
15 * Major Contributor(s):
16 * Copyright (C) 2013 Fridrich Strba <fridrich.strba@bluewin.ch>
17 *
18 *
19 * All Rights Reserved.
20 *
21 * For minor contributions see the git repository.
22 *
23 * Alternatively, the contents of this file may be used under the terms of
24 * either the GNU General Public License Version 2 or later (the "GPLv2+"), or
25 * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
26 * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
27 * instead of those above.
28 */
29
30 #ifndef __VSDXTHEME_H__
31 #define __VSDXTHEME_H__
32
33 #include <vector>
34 #include <boost/optional.hpp>
35 #include <libwpd-stream/libwpd-stream.h>
36 #include "VSDXMLHelper.h"
37
38 namespace libvisio
39 {
40
41 class VSDCollector;
42
43 struct VSDXVariationClrScheme
44 {
45 Colour m_varColor1;
46 Colour m_varColor2;
47 Colour m_varColor3;
48 Colour m_varColor4;
49 Colour m_varColor5;
50 Colour m_varColor6;
51 Colour m_varColor7;
52 };
53
54 struct VSDXClrScheme
55 {
56 Colour m_dk1;
57 Colour m_lt1;
58 Colour m_dk2;
59 Colour m_lt2;
60 Colour m_accent1;
61 Colour m_accent2;
62 Colour m_accent3;
63 Colour m_accent4;
64 Colour m_accent5;
65 Colour m_accent6;
66 Colour m_hlink;
67 Colour m_folHlink;
68 std::vector<VSDXVariationClrScheme> m_variationClrSchemeLst;
69 };
70
71 class VSDXTheme
72 {
73 public:
74 VSDXTheme();
75 ~VSDXTheme();
76 bool parse(WPXInputStream *input);
77
78 private:
79 VSDXTheme(const VSDXTheme &);
80 VSDXTheme &operator=(const VSDXTheme &);
81
82 boost::optional<Colour> readSrgbClr(xmlTextReaderPtr reader);
83 boost::optional<Colour> readSysClr(xmlTextReaderPtr reader);
84
85 void readClrScheme(xmlTextReaderPtr reader);
86 void readThemeColour(xmlTextReaderPtr reader, int idToken, Colour &clr);
87 void readVariationClrSchemeLst(xmlTextReaderPtr reader);
88 void readVariationClrScheme(xmlTextReaderPtr reader, VSDXVariationClrScheme &varClrSch);
89
90 int getElementToken(xmlTextReaderPtr reader);
91
92 VSDXClrScheme m_clrScheme;
93 };
94
95 } // namespace libvisio
96
97 #endif // __VSDXTHEME_H__
98 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libvisio::VSDXClrScheme::m_accent5
Colour m_accent5
Definition: VSDXTheme.h:64
libvisio::VSDXVariationClrScheme::m_varColor7
Colour m_varColor7
Definition: VSDXTheme.h:51
libvisio::VSDXVariationClrScheme::m_varColor4
Colour m_varColor4
Definition: VSDXTheme.h:48
libvisio::VSDXClrScheme::m_lt2
Colour m_lt2
Definition: VSDXTheme.h:59
libvisio::VSDXVariationClrScheme::m_varColor3
Colour m_varColor3
Definition: VSDXTheme.h:47
libvisio::VSDXVariationClrScheme::m_varColor2
Colour m_varColor2
Definition: VSDXTheme.h:46
libvisio::VSDXClrScheme::m_lt1
Colour m_lt1
Definition: VSDXTheme.h:57
libvisio::Colour
Definition: VSDTypes.h:78
libvisio::VSDXTheme::readSysClr
boost::optional< Colour > readSysClr(xmlTextReaderPtr reader)
Definition: VSDXTheme.cpp:105
libvisio::VSDXTheme::VSDXTheme
VSDXTheme()
Definition: VSDXTheme.cpp:34
libvisio::VSDXClrScheme::m_dk1
Colour m_dk1
Definition: VSDXTheme.h:56
libvisio::VSDXVariationClrScheme::m_varColor1
Colour m_varColor1
Definition: VSDXTheme.h:45
libvisio::VSDXVariationClrScheme
Definition: VSDXTheme.h:43
libvisio::VSDXClrScheme::m_accent6
Colour m_accent6
Definition: VSDXTheme.h:65
libvisio::VSDXTheme::readVariationClrScheme
void readVariationClrScheme(xmlTextReaderPtr reader, VSDXVariationClrScheme &varClrSch)
Definition: VSDXTheme.cpp:252
libvisio::VSDXVariationClrScheme::m_varColor6
Colour m_varColor6
Definition: VSDXTheme.h:50
VSDXMLHelper.h
libvisio::VSDXClrScheme
Definition: VSDXTheme.h:54
libvisio::VSDXTheme::m_clrScheme
VSDXClrScheme m_clrScheme
Definition: VSDXTheme.h:92
libvisio::VSDXTheme::readClrScheme
void readClrScheme(xmlTextReaderPtr reader)
Definition: VSDXTheme.cpp:126
libvisio::VSDXTheme::readSrgbClr
boost::optional< Colour > readSrgbClr(xmlTextReaderPtr reader)
Definition: VSDXTheme.cpp:84
libvisio::VSDXClrScheme::m_accent4
Colour m_accent4
Definition: VSDXTheme.h:63
libvisio::VSDXTheme::~VSDXTheme
~VSDXTheme()
Definition: VSDXTheme.cpp:38
libvisio::VSDXTheme::operator=
VSDXTheme & operator=(const VSDXTheme &)
libvisio::VSDXClrScheme::m_accent1
Colour m_accent1
Definition: VSDXTheme.h:60
libvisio::VSDXClrScheme::m_folHlink
Colour m_folHlink
Definition: VSDXTheme.h:67
libvisio::VSDXClrScheme::m_dk2
Colour m_dk2
Definition: VSDXTheme.h:58
libvisio::VSDXClrScheme::m_hlink
Colour m_hlink
Definition: VSDXTheme.h:66
libvisio::VSDXTheme::getElementToken
int getElementToken(xmlTextReaderPtr reader)
Definition: VSDXTheme.cpp:43
libvisio::VSDXVariationClrScheme::m_varColor5
Colour m_varColor5
Definition: VSDXTheme.h:49
libvisio::VSDXTheme::parse
bool parse(WPXInputStream *input)
Definition: VSDXTheme.cpp:48
libvisio::VSDXTheme::readVariationClrSchemeLst
void readVariationClrSchemeLst(xmlTextReaderPtr reader)
Definition: VSDXTheme.cpp:222
libvisio::VSDXTheme
Definition: VSDXTheme.h:71
libvisio::VSDXTheme::readThemeColour
void readThemeColour(xmlTextReaderPtr reader, int idToken, Colour &clr)
Definition: VSDXTheme.cpp:189
libvisio::VSDXClrScheme::m_accent3
Colour m_accent3
Definition: VSDXTheme.h:62
libvisio::VSDXClrScheme::m_accent2
Colour m_accent2
Definition: VSDXTheme.h:61
libvisio::VSDXClrScheme::m_variationClrSchemeLst
std::vector< VSDXVariationClrScheme > m_variationClrSchemeLst
Definition: VSDXTheme.h:68