Orcus
factory.hpp
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6  */
7 
8 #ifndef INCLUDED_ORCUS_SPREADSHEET_IMPORT_FACTORY_HPP
9 #define INCLUDED_ORCUS_SPREADSHEET_IMPORT_FACTORY_HPP
10 
11 #include "orcus/spreadsheet/import_interface.hpp"
12 #include "orcus/spreadsheet/export_interface.hpp"
13 #include "orcus/env.hpp"
14 
15 #include <memory>
16 
17 namespace orcus {
18 
19 class string_pool;
20 
21 namespace spreadsheet {
22 
23 class document;
24 class view;
25 class styles;
26 
27 class ORCUS_SPM_DLLPUBLIC import_factory : public iface::import_factory
28 {
29  struct impl;
30  std::unique_ptr<impl> mp_impl;
31 public:
34  virtual ~import_factory();
35 
36  virtual iface::import_global_settings* get_global_settings() override;
37  virtual iface::import_shared_strings* get_shared_strings() override;
38  virtual iface::import_styles* get_styles() override;
39  virtual iface::import_named_expression* get_named_expression() override;
40  virtual iface::import_reference_resolver* get_reference_resolver(formula_ref_context_t cxt) override;
41  virtual iface::import_pivot_cache_definition* create_pivot_cache_definition(
42  orcus::spreadsheet::pivot_cache_id_t cache_id) override;
43  virtual iface::import_pivot_cache_records* create_pivot_cache_records(
44  orcus::spreadsheet::pivot_cache_id_t cache_id) override;
45  virtual iface::import_sheet* append_sheet(sheet_t sheet_index, const char* sheet_name, size_t sheet_name_length) override;
46  virtual iface::import_sheet* get_sheet(const char* sheet_name, size_t sheet_name_length) override;
47  virtual iface::import_sheet* get_sheet(sheet_t sheet_index) override;
48  virtual void finalize() override;
49 
50  void set_default_row_size(row_t row_size);
51  void set_default_column_size(col_t col_size);
52 
53  void set_character_set(character_set_t charset);
54  character_set_t get_character_set() const;
55 
63  void set_recalc_formula_cells(bool b);
64 
65  void set_formula_error_policy(formula_error_policy_t policy);
66 };
67 
68 class ORCUS_SPM_DLLPUBLIC import_styles : public iface::import_styles
69 {
70  struct impl;
71  std::unique_ptr<impl> mp_impl;
72 public:
74  virtual ~import_styles() override;
75 
76  virtual void set_font_count(size_t n) override;
77  virtual void set_font_bold(bool b) override;
78  virtual void set_font_italic(bool b) override;
79  virtual void set_font_name(const char* s, size_t n) override;
80  virtual void set_font_size(double point) override;
81  virtual void set_font_underline(underline_t e) override;
82  virtual void set_font_underline_width(underline_width_t e) override;
83  virtual void set_font_underline_mode(underline_mode_t e) override;
84  virtual void set_font_underline_type(underline_type_t e) override;
85  virtual void set_font_underline_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) override;
86  virtual void set_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) override;
87  virtual void set_strikethrough_style(strikethrough_style_t s) override;
88  virtual void set_strikethrough_type(strikethrough_type_t s) override;
89  virtual void set_strikethrough_width(strikethrough_width_t s) override;
90  virtual void set_strikethrough_text(strikethrough_text_t s) override;
91  virtual size_t commit_font() override;
92 
93  virtual void set_fill_count(size_t n) override;
94  virtual void set_fill_pattern_type(fill_pattern_t fp) override;
95  virtual void set_fill_fg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) override;
96  virtual void set_fill_bg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) override;
97  virtual size_t commit_fill() override;
98 
99  virtual void set_border_count(size_t n) override;
100  virtual void set_border_style(border_direction_t dir, border_style_t style) override;
101  virtual void set_border_color(
102  border_direction_t dir, color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) override;
103  virtual void set_border_width(border_direction_t dir, double width, orcus::length_unit_t unit) override;
104  virtual size_t commit_border() override;
105 
106  virtual void set_cell_hidden(bool b) override;
107  virtual void set_cell_locked(bool b) override;
108  virtual void set_cell_print_content(bool b) override;
109  virtual void set_cell_formula_hidden(bool b) override;
110  virtual size_t commit_cell_protection() override;
111 
112  virtual void set_number_format_count(size_t n) override;
113  virtual void set_number_format_identifier(size_t id) override;
114  virtual void set_number_format_code(const char* s, size_t n) override;
115  virtual size_t commit_number_format() override;
116 
117  virtual void set_cell_xf_count(size_t n) override;
118  virtual void set_cell_style_xf_count(size_t n) override;
119  virtual void set_dxf_count(size_t n) override;
120 
121  virtual void set_xf_font(size_t index) override;
122  virtual void set_xf_fill(size_t index) override;
123  virtual void set_xf_border(size_t index) override;
124  virtual void set_xf_protection(size_t index) override;
125  virtual void set_xf_number_format(size_t index) override;
126  virtual void set_xf_style_xf(size_t index) override;
127  virtual void set_xf_apply_alignment(bool b) override;
128  virtual void set_xf_horizontal_alignment(hor_alignment_t align) override;
129  virtual void set_xf_vertical_alignment(ver_alignment_t align) override;
130 
131  virtual size_t commit_cell_xf() override;
132  virtual size_t commit_cell_style_xf() override;
133  virtual size_t commit_dxf() override;
134 
135  virtual void set_cell_style_count(size_t n) override;
136  virtual void set_cell_style_name(const char* s, size_t n) override;
137  virtual void set_cell_style_xf(size_t index) override;
138  virtual void set_cell_style_builtin(size_t index) override;
139  virtual void set_cell_style_parent_name(const char* s, size_t n) override;
140  virtual size_t commit_cell_style() override;
141 };
142 
143 class ORCUS_SPM_DLLPUBLIC export_factory : public iface::export_factory
144 {
145  struct impl;
146  std::unique_ptr<impl> mp_impl;
147 public:
148  export_factory(const document& doc);
149  virtual ~export_factory();
150 
151  virtual const iface::export_sheet* get_sheet(const char* sheet_name, size_t sheet_name_length) const;
152 };
153 
154 }}
155 
156 #endif
157 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: import_interface_pivot.hpp:300
Definition: import_interface.hpp:673
Definition: factory.hpp:27
Definition: import_interface.hpp:145
Definition: import_interface.hpp:310
Definition: document.hpp:47
Definition: import_interface.hpp:829
Definition: export_interface.hpp:26
Definition: import_interface_pivot.hpp:28
Definition: factory.hpp:143
Definition: import_interface.hpp:916
Definition: factory.hpp:68
Definition: styles.hpp:149
Definition: export_interface.hpp:18
Definition: view.hpp:22
Definition: string_pool.hpp:23
Definition: import_interface.hpp:30
Definition: import_interface.hpp:870
Definition: base64.hpp:15