Orcus
import_interface_styles.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 #pragma once
9 
10 #include <cstdlib>
11 
12 #include "types.hpp"
13 #include "../types.hpp"
14 #include "../env.hpp"
15 
16 // NB: This header must not depend on ixion, as it needs to be usable for
17 // those clients that provide their own formula engine. Other headers in
18 // the orcus::spreadsheet namespace may depend on ixion.
19 
20 namespace orcus { namespace spreadsheet { namespace iface {
21 
22 class import_font_style;
23 class import_fill_style;
24 class import_border_style;
25 class import_cell_protection;
26 class import_number_format;
27 class import_xf;
28 class import_cell_style;
29 
52 class ORCUS_DLLPUBLIC import_styles
53 {
54 public:
55  virtual ~import_styles();
56 
68 
80 
92 
104 
116 
128  virtual import_xf* start_xf(xf_category_t cat) = 0;
129 
141 
149  virtual void set_font_count(size_t n) = 0;
150 
158  virtual void set_fill_count(size_t n) = 0;
159 
167  virtual void set_border_count(size_t n) = 0;
168 
176  virtual void set_number_format_count(size_t n) = 0;
177 
188  virtual void set_xf_count(xf_category_t cat, size_t n) = 0;
189 
197  virtual void set_cell_style_count(size_t n) = 0;
198 };
199 
209 class ORCUS_DLLPUBLIC import_font_style
210 {
211 public:
212  virtual ~import_font_style();
213 
219  virtual void set_bold(bool b) = 0;
220 
226  virtual void set_bold_asian(bool b) = 0;
227 
233  virtual void set_bold_complex(bool b) = 0;
234 
240  virtual void set_italic(bool b) = 0;
241 
247  virtual void set_italic_asian(bool b) = 0;
248 
254  virtual void set_italic_complex(bool b) = 0;
255 
261  virtual void set_name(std::string_view s) = 0;
262 
268  virtual void set_name_asian(std::string_view s) = 0;
269 
275  virtual void set_name_complex(std::string_view s) = 0;
276 
282  virtual void set_size(double point) = 0;
283 
289  virtual void set_size_asian(double point) = 0;
290 
296  virtual void set_size_complex(double point) = 0;
297 
303  virtual void set_underline(underline_t e) = 0;
304 
310  virtual void set_underline_width(underline_width_t e) = 0;
311 
319  virtual void set_underline_mode(underline_mode_t e) = 0;
320 
330  virtual void set_underline_type(underline_type_t e) = 0;
331 
342  virtual void set_underline_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
343 
352  virtual void set_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
353 
359  virtual void set_strikethrough_style(strikethrough_style_t s) = 0;
360 
368  virtual void set_strikethrough_type(strikethrough_type_t s) = 0;
369 
375  virtual void set_strikethrough_width(strikethrough_width_t s) = 0;
376 
382  virtual void set_strikethrough_text(strikethrough_text_t s) = 0;
383 
390  virtual std::size_t commit() = 0;
391 };
392 
396 class ORCUS_DLLPUBLIC import_fill_style
397 {
398 public:
399  virtual ~import_fill_style();
400 
406  virtual void set_pattern_type(fill_pattern_t fp) = 0;
407 
418  virtual void set_fg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
419 
430  virtual void set_bg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
431 
438  virtual size_t commit() = 0;
439 };
440 
444 class ORCUS_DLLPUBLIC import_border_style
445 {
446 public:
447  virtual ~import_border_style();
448 
455  virtual void set_style(border_direction_t dir, border_style_t style) = 0;
456 
466  virtual void set_color(
467  border_direction_t dir, color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
468 
476  virtual void set_width(border_direction_t dir, double width, orcus::length_unit_t unit) = 0;
477 
484  virtual size_t commit() = 0;
485 };
486 
490 class ORCUS_DLLPUBLIC import_cell_protection
491 {
492 public:
493  virtual ~import_cell_protection();
494 
501  virtual void set_hidden(bool b) = 0;
502 
508  virtual void set_locked(bool b) = 0;
509 
518  virtual void set_print_content(bool b) = 0;
519 
527  virtual void set_formula_hidden(bool b) = 0;
528 
535  virtual std::size_t commit() = 0;
536 };
537 
541 class ORCUS_DLLPUBLIC import_number_format
542 {
543 public:
544  virtual ~import_number_format();
545 
559  virtual void set_identifier(std::size_t id) = 0;
560 
566  virtual void set_code(std::string_view s) = 0;
567 
577  virtual size_t commit() = 0;
578 };
579 
596 class ORCUS_DLLPUBLIC import_xf
597 {
598 public:
599  virtual ~import_xf();
600 
607  virtual void set_font(size_t index) = 0;
608 
615  virtual void set_fill(size_t index) = 0;
616 
623  virtual void set_border(size_t index) = 0;
624 
631  virtual void set_protection(size_t index) = 0;
632 
639  virtual void set_number_format(size_t index) = 0;
640 
651  virtual void set_style_xf(size_t index) = 0;
652 
660  virtual void set_apply_alignment(bool b) = 0;
661 
667  virtual void set_horizontal_alignment(hor_alignment_t align) = 0;
668 
674  virtual void set_vertical_alignment(ver_alignment_t align) = 0;
675 
683  virtual void set_wrap_text(bool b) = 0;
684 
691  virtual void set_shrink_to_fit(bool b) = 0;
692 
699  virtual size_t commit() = 0;
700 };
701 
710 class ORCUS_DLLPUBLIC import_cell_style
711 {
712 public:
713  virtual ~import_cell_style();
714 
720  virtual void set_name(std::string_view s) = 0;
721 
733  virtual void set_display_name(std::string_view s) = 0;
734 
741  virtual void set_xf(size_t index) = 0;
742 
753  virtual void set_builtin(size_t index) = 0;
754 
762  virtual void set_parent_name(std::string_view s) = 0;
763 
769  virtual void commit() = 0;
770 };
771 
772 }}}
773 
774 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: import_interface_styles.hpp:445
virtual void set_style(border_direction_t dir, border_style_t style)=0
virtual void set_color(border_direction_t dir, color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual void set_width(border_direction_t dir, double width, orcus::length_unit_t unit)=0
Definition: import_interface_styles.hpp:491
Definition: import_interface_styles.hpp:711
virtual void set_name(std::string_view s)=0
virtual void set_parent_name(std::string_view s)=0
virtual void set_builtin(size_t index)=0
virtual void set_xf(size_t index)=0
virtual void set_display_name(std::string_view s)=0
Definition: import_interface_styles.hpp:397
virtual void set_bg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual void set_fg_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual void set_pattern_type(fill_pattern_t fp)=0
Definition: import_interface_styles.hpp:210
virtual void set_underline(underline_t e)=0
virtual void set_underline_type(underline_type_t e)=0
virtual void set_size_complex(double point)=0
virtual void set_size_asian(double point)=0
virtual void set_strikethrough_text(strikethrough_text_t s)=0
virtual void set_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual void set_name(std::string_view s)=0
virtual void set_name_complex(std::string_view s)=0
virtual void set_underline_mode(underline_mode_t e)=0
virtual void set_name_asian(std::string_view s)=0
virtual void set_strikethrough_style(strikethrough_style_t s)=0
virtual void set_underline_width(underline_width_t e)=0
virtual void set_strikethrough_width(strikethrough_width_t s)=0
virtual void set_strikethrough_type(strikethrough_type_t s)=0
virtual void set_size(double point)=0
virtual void set_underline_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
Definition: import_interface_styles.hpp:542
virtual void set_code(std::string_view s)=0
virtual void set_identifier(std::size_t id)=0
Definition: import_interface_styles.hpp:53
virtual import_number_format * start_number_format()=0
virtual import_xf * start_xf(xf_category_t cat)=0
virtual import_border_style * start_border_style()=0
virtual import_cell_style * start_cell_style()=0
virtual import_cell_protection * start_cell_protection()=0
virtual void set_border_count(size_t n)=0
virtual void set_xf_count(xf_category_t cat, size_t n)=0
virtual void set_number_format_count(size_t n)=0
virtual void set_font_count(size_t n)=0
virtual void set_fill_count(size_t n)=0
virtual import_fill_style * start_fill_style()=0
virtual import_font_style * start_font_style()=0
virtual void set_cell_style_count(size_t n)=0
Definition: import_interface_styles.hpp:597
virtual void set_shrink_to_fit(bool b)=0
virtual void set_border(size_t index)=0
virtual void set_style_xf(size_t index)=0
virtual void set_apply_alignment(bool b)=0
virtual void set_vertical_alignment(ver_alignment_t align)=0
virtual void set_fill(size_t index)=0
virtual void set_horizontal_alignment(hor_alignment_t align)=0
virtual void set_wrap_text(bool b)=0
virtual void set_font(size_t index)=0
virtual void set_protection(size_t index)=0
virtual void set_number_format(size_t index)=0