Orcus
Loading...
Searching...
No Matches
import_interface.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 ORCUS_SPREADSHEET_IMPORT_INTERFACE_HPP
9#define ORCUS_SPREADSHEET_IMPORT_INTERFACE_HPP
10
11#include <cstdlib>
12
13#include "types.hpp"
14#include "../types.hpp"
15#include "../env.hpp"
16
17// NB: This header must not depend on ixion, as it needs to be usable for
18// those clients that provide their own formula engine. Other headers in
19// the orcus::spreadsheet namespace may depend on ixion.
20
21namespace orcus { namespace spreadsheet { namespace iface {
22
23class import_styles;
24class import_pivot_cache_definition;
25class import_pivot_cache_records;
26class import_sheet_view;
27
71class ORCUS_DLLPUBLIC import_shared_strings
72{
73public:
74 virtual ~import_shared_strings();
75
86 virtual size_t append(std::string_view s) = 0;
87
97 virtual size_t add(std::string_view s) = 0;
98
108 virtual void set_segment_font(size_t font_index) = 0;
109
115 virtual void set_segment_bold(bool b) = 0;
116
122 virtual void set_segment_italic(bool b) = 0;
123
129 virtual void set_segment_font_name(std::string_view s) = 0;
130
136 virtual void set_segment_font_size(double point) = 0;
137
146 virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
147
154 virtual void append_segment(std::string_view s) = 0;
155
165 virtual size_t commit_segments() = 0;
166};
167
177class ORCUS_DLLPUBLIC import_sheet_properties
178{
179public:
180 virtual ~import_sheet_properties();
181
190 virtual void set_column_width(col_t col, col_t col_span, double width, orcus::length_unit_t unit) = 0;
191
199 virtual void set_column_hidden(col_t col, col_t col_span, bool hidden) = 0;
200
210 virtual void set_row_height(row_t row, double height, orcus::length_unit_t unit) = 0;
211
220 virtual void set_row_hidden(row_t row, bool hidden) = 0;
221
228 virtual void set_merge_cell_range(const range_t& range) = 0;
229};
230
265class ORCUS_DLLPUBLIC import_named_expression
266{
267public:
268 virtual ~import_named_expression();
269
277 virtual void set_base_position(const src_address_t& pos) = 0;
278
285 virtual void set_named_expression(std::string_view name, std::string_view expression) = 0;
286
293 virtual void set_named_range(std::string_view name, std::string_view range) = 0;
294
299 virtual void commit() = 0;
300};
301
305class ORCUS_DLLPUBLIC import_data_table
306{
307public:
308 virtual ~import_data_table();
309
319 virtual void set_type(data_table_type_t type) = 0;
320
326 virtual void set_range(const range_t& range) = 0;
327
334 virtual void set_first_reference(std::string_view ref, bool deleted) = 0;
335
345 virtual void set_second_reference(std::string_view ref, bool deleted) = 0;
346
351 virtual void commit() = 0;
352};
353
384class ORCUS_DLLPUBLIC import_auto_filter
385{
386public:
387 virtual ~import_auto_filter();
388
395 virtual void set_range(const range_t& range) = 0;
396
409 virtual void set_column(col_t col) = 0;
410
417 virtual void append_column_match_value(std::string_view value) = 0;
418
424 virtual void commit_column() = 0;
425
429 virtual void commit() = 0;
430};
431
475class ORCUS_DLLPUBLIC import_conditional_format
476{
477public:
479
484 virtual void set_color(color_elem_t alpha, color_elem_t red,
485 color_elem_t green, color_elem_t blue) = 0;
486
490 virtual void set_formula(std::string_view formula) = 0;
491
496 virtual void set_condition_type(condition_type_t type) = 0;
497
501 virtual void set_date(condition_date_t date) = 0;
502
506 virtual void commit_condition() = 0;
507
512 virtual void set_icon_name(std::string_view name) = 0;
513
518 virtual void set_databar_gradient(bool gradient) = 0;
519
524 virtual void set_databar_axis(databar_axis_t axis) = 0;
525
530 virtual void set_databar_color_positive(color_elem_t alpha, color_elem_t red,
531 color_elem_t green, color_elem_t blue) = 0;
532
537 virtual void set_databar_color_negative(color_elem_t alpha, color_elem_t red,
538 color_elem_t green, color_elem_t blue) = 0;
539
544 virtual void set_min_databar_length(double length) = 0;
545
550 virtual void set_max_databar_length(double length) = 0;
551
556 virtual void set_show_value(bool show) = 0;
557
562 virtual void set_iconset_reverse(bool reverse) = 0;
563
567 virtual void set_xf_id(size_t xf) = 0;
568
573 virtual void set_operator(condition_operator_t condition_type) = 0;
574
575 virtual void set_type(conditional_format_t type) = 0;
576
577 virtual void commit_entry() = 0;
578
579 virtual void set_range(std::string_view range) = 0;
580
581 virtual void set_range(row_t row_start, col_t col_start,
582 row_t row_end, col_t col_end) = 0;
583
584 virtual void commit_format() = 0;
585};
586
592class ORCUS_DLLPUBLIC import_table
593{
594public:
595 virtual ~import_table();
596
608
614 virtual void set_identifier(size_t id) = 0;
615
621 virtual void set_range(const range_t& range) = 0;
622
628 virtual void set_totals_row_count(size_t row_count) = 0;
629
635 virtual void set_name(std::string_view name) = 0;
636
642 virtual void set_display_name(std::string_view name) = 0;
643
653 virtual void set_column_count(size_t n) = 0;
654
660 virtual void set_column_identifier(size_t id) = 0;
661
667 virtual void set_column_name(std::string_view name) = 0;
668
674 virtual void set_column_totals_row_label(std::string_view label) = 0;
675
681 virtual void set_column_totals_row_function(totals_row_function_t func) = 0;
682
687 virtual void commit_column() = 0;
688
694 virtual void set_style_name(std::string_view name) = 0;
695
703 virtual void set_style_show_first_column(bool b) = 0;
704
712 virtual void set_style_show_last_column(bool b) = 0;
713
719 virtual void set_style_show_row_stripes(bool b) = 0;
720
726 virtual void set_style_show_column_stripes(bool b) = 0;
727
731 virtual void commit() = 0;
732};
733
739class ORCUS_DLLPUBLIC import_formula
740{
741public:
742 virtual ~import_formula();
743
750 virtual void set_position(row_t row, col_t col) = 0;
751
759 virtual void set_formula(formula_grammar_t grammar, std::string_view formula) = 0;
760
772 virtual void set_shared_formula_index(size_t index) = 0;
773
779 virtual void set_result_string(std::string_view value) = 0;
780
786 virtual void set_result_value(double value) = 0;
787
793 virtual void set_result_bool(bool value) = 0;
794
798 virtual void set_result_empty() = 0;
799
803 virtual void commit() = 0;
804};
805
811class ORCUS_DLLPUBLIC import_array_formula
812{
813public:
814 virtual ~import_array_formula();
815
821 virtual void set_range(const range_t& range) = 0;
822
830 virtual void set_formula(formula_grammar_t grammar, std::string_view formula) = 0;
831
839 virtual void set_result_string(row_t row, col_t col, std::string_view value) = 0;
840
848 virtual void set_result_value(row_t row, col_t col, double value) = 0;
849
857 virtual void set_result_bool(row_t row, col_t col, bool value) = 0;
858
866 virtual void set_result_empty(row_t row, col_t col) = 0;
867
872 virtual void commit() = 0;
873};
874
878class ORCUS_DLLPUBLIC import_sheet
879{
880public:
881 virtual ~import_sheet();
882
891
899
912
923
934
943
951
961
969
978 virtual void set_auto(row_t row, col_t col, std::string_view s) = 0;
979
987 virtual void set_string(row_t row, col_t col, string_id_t sindex) = 0;
988
996 virtual void set_value(row_t row, col_t col, double value) = 0;
997
1005 virtual void set_bool(row_t row, col_t col, bool value) = 0;
1006
1020 virtual void set_date_time(
1021 row_t row, col_t col,
1022 int year, int month, int day, int hour, int minute, double second) = 0;
1023
1035 virtual void set_format(row_t row, col_t col, size_t xf_index) = 0;
1036
1047 virtual void set_format(row_t row_start, col_t col_start,
1048 row_t row_end, col_t col_end, size_t xf_index) = 0;
1049
1062 virtual void set_column_format(col_t col, col_t col_span, std::size_t xf_index) = 0;
1063
1074 virtual void set_row_format(row_t row, std::size_t xf_index) = 0;
1075
1085 virtual void fill_down_cells(row_t src_row, col_t src_col, row_t range_size) = 0;
1086
1093 virtual range_size_t get_sheet_size() const = 0;
1094};
1095
1100class ORCUS_DLLPUBLIC import_global_settings
1101{
1102public:
1103 virtual ~import_global_settings();
1104
1115 virtual void set_origin_date(int year, int month, int day) = 0;
1116
1131 virtual void set_default_formula_grammar(formula_grammar_t grammar) = 0;
1132
1139 virtual formula_grammar_t get_default_formula_grammar() const = 0;
1140
1146 virtual void set_character_set(character_set_t charset) = 0;
1147};
1148
1156class ORCUS_DLLPUBLIC import_reference_resolver
1157{
1158public:
1160
1172 virtual src_address_t resolve_address(std::string_view address) = 0;
1173
1186 virtual src_range_t resolve_range(std::string_view range) = 0;
1187};
1188
1198class ORCUS_DLLPUBLIC import_factory
1199{
1200public:
1201 virtual ~import_factory();
1202
1213
1223
1234
1243
1254 virtual import_reference_resolver* get_reference_resolver(formula_ref_context_t cxt);
1255
1268 pivot_cache_id_t cache_id);
1269
1280 pivot_cache_id_t cache_id);
1281
1297 virtual import_sheet* append_sheet(sheet_t sheet_index, std::string_view name) = 0;
1298
1309 virtual import_sheet* get_sheet(std::string_view name) = 0;
1310
1319 virtual import_sheet* get_sheet(sheet_t sheet_index) = 0;
1320
1325 virtual void finalize() = 0;
1326};
1327
1328}}}
1329
1330#endif
1331
1332/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition import_interface.hpp:812
virtual void set_result_value(row_t row, col_t col, double value)=0
virtual void set_range(const range_t &range)=0
virtual void set_result_string(row_t row, col_t col, std::string_view value)=0
virtual void set_result_empty(row_t row, col_t col)=0
virtual void set_result_bool(row_t row, col_t col, bool value)=0
virtual void set_formula(formula_grammar_t grammar, std::string_view formula)=0
Definition import_interface.hpp:385
virtual void set_range(const range_t &range)=0
virtual void append_column_match_value(std::string_view value)=0
Definition import_interface.hpp:476
virtual void set_databar_gradient(bool gradient)=0
virtual void set_operator(condition_operator_t condition_type)=0
virtual void set_formula(std::string_view formula)=0
virtual void set_condition_type(condition_type_t type)=0
virtual void set_databar_color_positive(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual void set_max_databar_length(double length)=0
virtual void set_min_databar_length(double length)=0
virtual void set_databar_axis(databar_axis_t axis)=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_date(condition_date_t date)=0
virtual void set_icon_name(std::string_view name)=0
virtual void set_databar_color_negative(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
Definition import_interface.hpp:306
virtual void set_type(data_table_type_t type)=0
virtual void set_second_reference(std::string_view ref, bool deleted)=0
virtual void set_first_reference(std::string_view ref, bool deleted)=0
virtual void set_range(const range_t &range)=0
Definition import_interface.hpp:1199
virtual import_pivot_cache_records * create_pivot_cache_records(pivot_cache_id_t cache_id)
virtual import_reference_resolver * get_reference_resolver(formula_ref_context_t cxt)
virtual import_styles * get_styles()
virtual import_pivot_cache_definition * create_pivot_cache_definition(pivot_cache_id_t cache_id)
virtual import_sheet * append_sheet(sheet_t sheet_index, std::string_view name)=0
virtual import_sheet * get_sheet(sheet_t sheet_index)=0
virtual import_named_expression * get_named_expression()
virtual import_global_settings * get_global_settings()
virtual import_shared_strings * get_shared_strings()
virtual import_sheet * get_sheet(std::string_view name)=0
Definition import_interface.hpp:740
virtual void set_formula(formula_grammar_t grammar, std::string_view formula)=0
virtual void set_result_bool(bool value)=0
virtual void set_shared_formula_index(size_t index)=0
virtual void set_result_value(double value)=0
virtual void set_position(row_t row, col_t col)=0
virtual void set_result_string(std::string_view value)=0
Definition import_interface.hpp:1101
virtual void set_character_set(character_set_t charset)=0
virtual formula_grammar_t get_default_formula_grammar() const =0
virtual void set_origin_date(int year, int month, int day)=0
virtual void set_default_formula_grammar(formula_grammar_t grammar)=0
Definition import_interface.hpp:266
virtual void set_named_range(std::string_view name, std::string_view range)=0
virtual void set_named_expression(std::string_view name, std::string_view expression)=0
virtual void set_base_position(const src_address_t &pos)=0
Definition import_interface_pivot.hpp:29
Definition import_interface_pivot.hpp:293
Definition import_interface.hpp:1157
virtual src_range_t resolve_range(std::string_view range)=0
virtual src_address_t resolve_address(std::string_view address)=0
Definition import_interface.hpp:72
virtual size_t append(std::string_view s)=0
virtual void set_segment_font_size(double point)=0
virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual size_t add(std::string_view s)=0
virtual void append_segment(std::string_view s)=0
virtual void set_segment_font(size_t font_index)=0
virtual void set_segment_font_name(std::string_view s)=0
Definition import_interface.hpp:178
virtual void set_row_hidden(row_t row, bool hidden)=0
virtual void set_merge_cell_range(const range_t &range)=0
virtual void set_column_hidden(col_t col, col_t col_span, bool hidden)=0
virtual void set_row_height(row_t row, double height, orcus::length_unit_t unit)=0
virtual void set_column_width(col_t col, col_t col_span, double width, orcus::length_unit_t unit)=0
Definition import_interface_view.hpp:24
Definition import_interface.hpp:879
virtual void set_string(row_t row, col_t col, string_id_t sindex)=0
virtual import_array_formula * get_array_formula()
virtual import_table * get_table()
virtual void set_column_format(col_t col, col_t col_span, std::size_t xf_index)=0
virtual void set_bool(row_t row, col_t col, bool value)=0
virtual import_formula * get_formula()
virtual range_size_t get_sheet_size() const =0
virtual void set_format(row_t row_start, col_t col_start, row_t row_end, col_t col_end, size_t xf_index)=0
virtual void set_auto(row_t row, col_t col, std::string_view s)=0
virtual import_conditional_format * get_conditional_format()
virtual import_auto_filter * get_auto_filter()
virtual void fill_down_cells(row_t src_row, col_t src_col, row_t range_size)=0
virtual void set_value(row_t row, col_t col, double value)=0
virtual import_data_table * get_data_table()
virtual void set_row_format(row_t row, std::size_t xf_index)=0
virtual import_sheet_view * get_sheet_view()
virtual void set_format(row_t row, col_t col, size_t xf_index)=0
virtual import_sheet_properties * get_sheet_properties()
virtual import_named_expression * get_named_expression()
virtual void set_date_time(row_t row, col_t col, int year, int month, int day, int hour, int minute, double second)=0
Definition import_interface_styles.hpp:53
Definition import_interface.hpp:593
virtual void set_totals_row_count(size_t row_count)=0
virtual void set_column_totals_row_label(std::string_view label)=0
virtual import_auto_filter * get_auto_filter()
virtual void set_style_show_first_column(bool b)=0
virtual void set_name(std::string_view name)=0
virtual void set_column_identifier(size_t id)=0
virtual void set_style_show_last_column(bool b)=0
virtual void set_column_totals_row_function(totals_row_function_t func)=0
virtual void set_column_name(std::string_view name)=0
virtual void set_column_count(size_t n)=0
virtual void set_range(const range_t &range)=0
virtual void set_style_show_row_stripes(bool b)=0
virtual void set_style_show_column_stripes(bool b)=0
virtual void set_style_name(std::string_view name)=0
virtual void set_display_name(std::string_view name)=0
virtual void set_identifier(size_t id)=0
Definition types.hpp:590
Definition types.hpp:600
Definition types.hpp:610
Definition types.hpp:621