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/pstring.hpp" 14 #include "orcus/env.hpp" 18 #include <unordered_map> 20 namespace ixion {
class model_context; }
26 namespace spreadsheet {
43 bool formatted()
const;
46 typedef std::vector<format_run> format_runs_t;
53 typedef std::unordered_map<pstring, size_t, pstring::hash> str_index_map_type;
62 typedef std::unordered_map<size_t, format_runs_t*> format_runs_map_type;
67 virtual size_t append(
const char* s,
size_t n);
68 virtual size_t add(
const char* s,
size_t n);
70 virtual void set_segment_font(
size_t font_index);
71 virtual void set_segment_bold(
bool b);
72 virtual void set_segment_italic(
bool b);
73 virtual void set_segment_font_name(
const char* s,
size_t n);
74 virtual void set_segment_font_size(
double point);
75 virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue);
76 virtual void append_segment(
const char* s,
size_t n);
77 virtual size_t commit_segments();
79 const format_runs_t* get_format_runs(
size_t index)
const;
81 const std::string* get_string(
size_t index)
const;
87 ixion::model_context& m_cxt;
94 format_runs_map_type m_formats;
96 ::std::string m_cur_segment_string;
98 format_runs_t* mp_cur_format_runs;
99 str_index_map_type m_set;
Definition: shared_strings.hpp:51
Definition: pstring.hpp:24
Definition: styles.hpp:23
Definition: document.hpp:17
Definition: styles.hpp:133
Definition: string_pool.hpp:22
Definition: import_interface.hpp:26
Definition: base64.hpp:15