VSDFieldList.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/*
3 * This file is part of the libvisio project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
9
10#ifndef __VSDFIELDLIST_H__
11#define __VSDFIELDLIST_H__
12
13#include <vector>
14#include <map>
15#include <librevenge/librevenge.h>
17#include "VSDTypes.h"
18
19namespace libvisio
20{
21
22class VSDCollector;
23
25{
26public:
29 virtual void handle(VSDCollector *collector) const = 0;
30 virtual VSDFieldListElement *clone() = 0;
31 virtual librevenge::RVNGString getString(const std::map<unsigned, librevenge::RVNGString> &) = 0;
32 virtual void setNameId(int) = 0;
33 virtual void setFormat(unsigned short) = 0;
34 virtual void setValue(double) = 0;
35};
36
38{
39public:
40 VSDTextField(unsigned id, unsigned level, int nameId, int formatStringId)
41 : m_id(id),
42 m_level(level),
43 m_nameId(nameId),
44 m_formatStringId(formatStringId) {}
45 ~VSDTextField() override {}
46 void handle(VSDCollector *collector) const override;
47 VSDFieldListElement *clone() override;
48 librevenge::RVNGString getString(const std::map<unsigned, librevenge::RVNGString> &strVec) override;
49 void setNameId(int nameId) override;
50 void setFormat(unsigned short) override {}
51 void setValue(double) override {}
52private:
53 unsigned m_id, m_level;
55};
56
58{
59public:
60 VSDNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId)
61 : m_id(id),
62 m_level(level),
63 m_format(format),
64 m_number(number),
65 m_formatStringId(formatStringId) {}
66 ~VSDNumericField() override {}
67 void handle(VSDCollector *collector) const override;
68 VSDFieldListElement *clone() override;
69 librevenge::RVNGString getString(const std::map<unsigned, librevenge::RVNGString> &) override;
70 void setNameId(int) override {}
71 void setFormat(unsigned short format) override;
72 void setValue(double number) override;
73private:
74 librevenge::RVNGString datetimeToString(const char *format, double datetime);
75 unsigned m_id, m_level;
76 unsigned short m_format;
77 double m_number;
79};
80
82{
83public:
85 VSDFieldList(const VSDFieldList &fieldList);
87 VSDFieldList &operator=(const VSDFieldList &fieldList);
88 void setElementsOrder(const std::vector<unsigned> &m_elementsOrder);
89 void addFieldList(unsigned id, unsigned level);
90 void addTextField(unsigned id, unsigned level, int nameId, int formatStringId);
91 void addNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId);
92 void addClonedField(unsigned id);
93 void handle(VSDCollector *collector) const;
94 void clear();
95 unsigned long size() const
96 {
97 return (unsigned long)m_elements.size();
98 }
99 bool empty() const
100 {
101 return (m_elements.empty());
102 }
103 VSDFieldListElement *getElement(unsigned index);
104private:
105 std::map<unsigned, VSDFieldListElement *> m_elements;
106 std::vector<unsigned> m_elementsOrder;
107 unsigned m_id, m_level;
108};
109
110} // namespace libvisio
111
112#endif // __VSDFIELDLIST_H__
113/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Definition: VSDCollector.h:21
Definition: VSDFieldList.h:25
virtual VSDFieldListElement * clone()=0
VSDFieldListElement()
Definition: VSDFieldList.h:27
virtual void handle(VSDCollector *collector) const =0
virtual void setValue(double)=0
virtual void setNameId(int)=0
virtual ~VSDFieldListElement()
Definition: VSDFieldList.h:28
virtual librevenge::RVNGString getString(const std::map< unsigned, librevenge::RVNGString > &)=0
virtual void setFormat(unsigned short)=0
Definition: VSDFieldList.h:82
VSDFieldListElement * getElement(unsigned index)
Definition: VSDFieldList.cpp:260
void setElementsOrder(const std::vector< unsigned > &m_elementsOrder)
Definition: VSDFieldList.cpp:204
void addFieldList(unsigned id, unsigned level)
Definition: VSDFieldList.cpp:211
void addNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId)
Definition: VSDFieldList.cpp:223
~VSDFieldList()
Definition: VSDFieldList.cpp:199
VSDFieldList & operator=(const VSDFieldList &fieldList)
Definition: VSDFieldList.cpp:184
VSDFieldList()
Definition: VSDFieldList.cpp:165
unsigned m_id
Definition: VSDFieldList.h:107
unsigned long size() const
Definition: VSDFieldList.h:95
bool empty() const
Definition: VSDFieldList.h:99
void clear()
Definition: VSDFieldList.cpp:252
void addTextField(unsigned id, unsigned level, int nameId, int formatStringId)
Definition: VSDFieldList.cpp:217
void addClonedField(unsigned id)
unsigned m_level
Definition: VSDFieldList.h:107
std::map< unsigned, VSDFieldListElement * > m_elements
Definition: VSDFieldList.h:105
void handle(VSDCollector *collector) const
Definition: VSDFieldList.cpp:229
std::vector< unsigned > m_elementsOrder
Definition: VSDFieldList.h:106
Definition: VSDFieldList.h:58
VSDNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId)
Definition: VSDFieldList.h:60
librevenge::RVNGString datetimeToString(const char *format, double datetime)
Definition: VSDFieldList.cpp:51
unsigned m_level
Definition: VSDFieldList.h:75
int m_formatStringId
Definition: VSDFieldList.h:78
~VSDNumericField() override
Definition: VSDFieldList.h:66
unsigned m_id
Definition: VSDFieldList.h:75
double m_number
Definition: VSDFieldList.h:77
void setFormat(unsigned short format) override
Definition: VSDFieldList.cpp:155
void handle(VSDCollector *collector) const override
Definition: VSDFieldList.cpp:39
void setValue(double number) override
Definition: VSDFieldList.cpp:159
librevenge::RVNGString getString(const std::map< unsigned, librevenge::RVNGString > &) override
Definition: VSDFieldList.cpp:65
void setNameId(int) override
Definition: VSDFieldList.h:70
VSDFieldListElement * clone() override
Definition: VSDFieldList.cpp:44
unsigned short m_format
Definition: VSDFieldList.h:76
Definition: VSDFieldList.h:38
unsigned m_id
Definition: VSDFieldList.h:53
VSDFieldListElement * clone() override
Definition: VSDFieldList.cpp:19
~VSDTextField() override
Definition: VSDFieldList.h:45
void handle(VSDCollector *collector) const override
Definition: VSDFieldList.cpp:14
void setNameId(int nameId) override
Definition: VSDFieldList.cpp:33
int m_nameId
Definition: VSDFieldList.h:54
librevenge::RVNGString getString(const std::map< unsigned, librevenge::RVNGString > &strVec) override
Definition: VSDFieldList.cpp:24
void setFormat(unsigned short) override
Definition: VSDFieldList.h:50
int m_formatStringId
Definition: VSDFieldList.h:54
VSDTextField(unsigned id, unsigned level, int nameId, int formatStringId)
Definition: VSDFieldList.h:40
unsigned m_level
Definition: VSDFieldList.h:53
void setValue(double) override
Definition: VSDFieldList.h:51
Definition: VisioDocument.h:30

Generated for libvisio by doxygen 1.9.2