Coverage Report

Created: 2026-10-28 06:34

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libetonyek/src/lib/contexts/IWORKStyleContext.h
Line
Count
Source
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/*
3
 * This file is part of the libetonyek 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 IWORKSTYLECONTEXT_H_INCLUDED
11
#define IWORKSTYLECONTEXT_H_INCLUDED
12
13
#include <string>
14
15
#include <boost/optional.hpp>
16
17
#include "IWORKPropertyMap.h"
18
#include "IWORKStyle_fwd.h"
19
#include "IWORKXMLContextBase.h"
20
21
namespace libetonyek
22
{
23
24
class IWORKStyleContext : public IWORKXMLElementContextBase
25
{
26
public:
27
  IWORKStyleContext(IWORKXMLParserState &state, IWORKStyleMap_t *styleMap = nullptr);
28
  IWORKStyleContext(IWORKXMLParserState &state, IWORKPropertyMap &props, IWORKStyleMap_t *styleMap = nullptr, const char *defaultParent = nullptr);
29
30
  void attribute(int name, const char *value) override;
31
  void endOfElement() override;
32
33
  /** returns the created style
34
35
      \note must be called after the style is read, ie. after endOfElement have been called*/
36
  IWORKStylePtr_t getStyle()
37
0
  {
38
0
    return m_style;
39
0
  }
40
private:
41
  IWORKXMLContextPtr_t element(int name) override;
42
43
private:
44
  IWORKStyleContext(IWORKStyleContext &);
45
  IWORKStyleContext operator=(IWORKStyleContext &);
46
47
  IWORKStyleMap_t *const m_styleMap;
48
  const std::string m_defaultParent;
49
  IWORKPropertyMap m_ownProps;
50
  IWORKPropertyMap &m_props;
51
  //! the final style
52
  IWORKStylePtr_t m_style;
53
  boost::optional<std::string> m_ident;
54
  boost::optional<std::string> m_parentIdent;
55
};
56
57
}
58
59
#endif // IWORKSTYLECONTEXT_H_INCLUDED
60
61
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */