1
0
Fork 0
libfort/src/table.h

57 lines
1.5 KiB
C
Raw Normal View History

2018-01-17 19:22:57 +01:00
#ifndef TABLE_H
#define TABLE_H
2018-05-06 15:36:53 +02:00
#include "fort_utils.h"
2018-02-04 14:21:04 +01:00
2018-05-06 16:04:34 +02:00
struct ft_table {
2019-08-27 14:04:54 +02:00
f_vector_t *rows;
f_table_properties_t *properties;
f_string_buffer_t *conv_buffer;
2018-01-17 19:22:57 +01:00
size_t cur_row;
size_t cur_col;
2019-08-27 14:04:54 +02:00
f_vector_t *separators;
2018-01-17 19:22:57 +01:00
};
2018-09-01 14:25:07 +02:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
f_separator_t *create_separator(int enabled);
2018-02-04 14:21:04 +01:00
2018-09-01 14:25:07 +02:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
void destroy_separator(f_separator_t *sep);
2018-01-17 19:22:57 +01:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
f_separator_t *copy_separator(f_separator_t *sep);
2018-09-01 14:25:07 +02:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
f_status get_table_sizes(const ft_table_t *table, size_t *rows, size_t *cols);
2018-09-01 14:25:07 +02:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
f_row_t *get_row(ft_table_t *table, size_t row);
2018-09-01 14:25:07 +02:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
const f_row_t *get_row_c(const ft_table_t *table, size_t row);
2018-09-01 14:25:07 +02:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
f_row_t *get_row_and_create_if_not_exists(ft_table_t *table, size_t row);
2018-01-17 19:22:57 +01:00
2018-09-01 14:25:07 +02:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
f_string_buffer_t *get_cur_str_buffer_and_create_if_not_exists(ft_table_t *table);
2018-01-17 19:22:57 +01:00
2018-11-10 07:58:21 +01:00
2018-09-01 14:25:07 +02:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
f_status table_rows_and_cols_geometry(const ft_table_t *table,
size_t **col_width_arr_p, size_t *col_width_arr_sz,
size_t **row_height_arr_p, size_t *row_height_arr_sz,
enum f_geometry_type geom);
2018-09-01 14:25:07 +02:00
FT_INTERNAL
2019-08-27 14:04:54 +02:00
f_status table_geometry(const ft_table_t *table, size_t *height, size_t *width);
2018-01-17 19:22:57 +01:00
2019-08-14 21:01:57 +02:00
/*
* Returns geometry in codepoints(characters) (include codepoints of invisible
* elements: e.g. styles tags).
*/
FT_INTERNAL
2019-08-27 14:04:54 +02:00
f_status table_internal_codepoints_geometry(const ft_table_t *table, size_t *height, size_t *width);
2019-08-14 21:01:57 +02:00
2018-03-09 10:44:16 +01:00
#endif /* TABLE_H */