8#ifndef INCLUDED_ORCUS_SPREADSHEET_SHARED_STRINGS_HPP
9#define INCLUDED_ORCUS_SPREADSHEET_SHARED_STRINGS_HPP
11#include "orcus/spreadsheet/import_interface.hpp"
12#include "orcus/spreadsheet/styles.hpp"
13#include "orcus/env.hpp"
17#include <unordered_map>
19namespace ixion {
class model_context; }
25namespace spreadsheet {
33 std::string_view font;
42 bool formatted()
const;
45typedef std::vector<format_run> format_runs_t;
52 using str_index_map_type = std::unordered_map<std::string_view, std::size_t>;
60 typedef std::unordered_map<size_t, format_runs_t*> format_runs_map_type;
65 virtual size_t append(std::string_view s)
override;
66 virtual size_t add(std::string_view s)
override;
73 virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)
override;
77 const format_runs_t* get_format_runs(
size_t index)
const;
79 const std::string* get_string(
size_t index)
const;
85 ixion::model_context& m_cxt;
92 format_runs_map_type m_formats;
94 ::std::string m_cur_segment_string;
96 format_runs_t* mp_cur_format_runs;
97 str_index_map_type m_set;
Definition: import_interface.hpp:31
Definition: shared_strings.hpp:51
virtual void set_segment_bold(bool b) override
virtual void set_segment_font_name(std::string_view s) override
virtual size_t append(std::string_view s) override
virtual void set_segment_italic(bool b) override
virtual void append_segment(std::string_view s) override
virtual size_t commit_segments() override
virtual size_t add(std::string_view s) override
virtual void set_segment_font(size_t font_index) override
virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) override
virtual void set_segment_font_size(double point) override
Definition: styles.hpp:280
Definition: string_pool.hpp:23
Definition: styles.hpp:21