8 #ifndef __ORCUS_SPREADSHEET_STYLES_HPP__
9 #define __ORCUS_SPREADSHEET_STYLES_HPP__
11 #include "orcus/spreadsheet/import_interface.hpp"
12 #include "orcus/pstring.hpp"
13 #include "orcus/env.hpp"
14 #include <orcus/measurement.hpp>
21 namespace spreadsheet {
31 color_t(color_elem_t _alpha, color_elem_t _red, color_elem_t _green, color_elem_t _blue);
42 underline_t underline_style;
43 underline_width_t underline_width;
44 underline_mode_t underline_mode;
45 underline_type_t underline_type;
48 strikethrough_style_t strikethrough_style;
49 strikethrough_width_t strikethrough_width;
50 strikethrough_type_t strikethrough_type;
51 strikethrough_text_t strikethrough_text;
124 ver_alignment_t ver_align;
125 bool apply_num_format:1;
129 bool apply_alignment:1;
130 bool apply_protection:1;
154 virtual void set_font_count(
size_t n);
155 virtual void set_font_bold(
bool b);
156 virtual void set_font_italic(
bool b);
157 virtual void set_font_name(
const char* s,
size_t n);
158 virtual void set_font_size(
double point);
159 virtual void set_font_underline(underline_t e);
160 virtual void set_font_underline_width(underline_width_t e);
161 virtual void set_font_underline_mode(underline_mode_t e);
162 virtual void set_font_underline_type(underline_type_t e);
163 virtual void set_font_underline_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue);
164 virtual void set_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue);
165 virtual void set_strikethrough_style(strikethrough_style_t s);
166 virtual void set_strikethrough_type(strikethrough_type_t s);
167 virtual void set_strikethrough_width(strikethrough_width_t s);
168 virtual void set_strikethrough_text(strikethrough_text_t s);
169 virtual size_t commit_font();
171 virtual void set_fill_count(
size_t n);
172 virtual void set_fill_pattern_type(
const char* s,
size_t n);
173 virtual void set_fill_fg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue);
174 virtual void set_fill_bg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue);
175 virtual size_t commit_fill();
177 virtual void set_border_count(
size_t n);
178 virtual void set_border_style(border_direction_t dir, border_style_t style);
179 virtual void set_border_color(
180 border_direction_t dir, color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue);
181 virtual void set_border_width(border_direction_t dir,
double width, orcus::length_unit_t unit);
182 virtual size_t commit_border();
184 virtual void set_cell_hidden(
bool b);
185 virtual void set_cell_locked(
bool b);
186 virtual void set_cell_print_content(
bool b);
187 virtual void set_cell_formula_hidden(
bool b);
188 virtual size_t commit_cell_protection();
190 virtual void set_number_format_count(
size_t n);
191 virtual void set_number_format_identifier(
size_t id);
192 virtual void set_number_format_code(
const char* s,
size_t n);
193 virtual size_t commit_number_format();
195 virtual void set_cell_style_xf_count(
size_t n);
196 virtual size_t commit_cell_style_xf();
198 virtual void set_cell_xf_count(
size_t n);
199 virtual size_t commit_cell_xf();
201 virtual void set_dxf_count(
size_t n);
202 virtual size_t commit_dxf();
204 virtual void set_xf_font(
size_t index);
205 virtual void set_xf_fill(
size_t index);
206 virtual void set_xf_border(
size_t index);
207 virtual void set_xf_protection(
size_t index);
208 virtual void set_xf_number_format(
size_t index);
209 virtual void set_xf_style_xf(
size_t index);
210 virtual void set_xf_apply_alignment(
bool b);
211 virtual void set_xf_horizontal_alignment(orcus::spreadsheet::hor_alignment_t align);
212 virtual void set_xf_vertical_alignment(orcus::spreadsheet::ver_alignment_t align);
214 virtual void set_cell_style_count(
size_t n);
215 virtual void set_cell_style_name(
const char* s,
size_t n);
216 virtual void set_cell_style_xf(
size_t index);
217 virtual void set_cell_style_builtin(
size_t index);
218 virtual void set_cell_style_parent_name(
const char* s,
size_t n);
219 virtual size_t commit_cell_style();
221 const font_t* get_font(
size_t index)
const;
222 const fill_t* get_fill(
size_t index)
const;
223 const border_t* get_border(
size_t index)
const;
227 const cell_format_t* get_cell_style_format(
size_t index)
const;
231 size_t get_font_count()
const;
232 size_t get_fill_count()
const;
233 size_t get_border_count()
const;
234 size_t get_protection_count()
const;
235 size_t get_number_format_count()
const;
236 size_t get_cell_formats_count()
const;
237 size_t get_cell_style_formats_count()
const;
238 size_t get_dxf_count()
const;
239 size_t get_cell_styles_count()
const;
252 ::std::vector<font_t> m_fonts;
253 ::std::vector<fill_t> m_fills;
254 ::std::vector<border_t> m_borders;
255 ::std::vector<protection_t> m_protections;
256 ::std::vector<number_format_t> m_number_formats;
257 ::std::vector<cell_format_t> m_cell_style_formats;
258 ::std::vector<cell_format_t> m_cell_formats;
259 ::std::vector<cell_format_t> m_dxf_formats;
260 ::std::vector<cell_style_t> m_cell_styles;