2018-01-17 19:22:57 +01:00
|
|
|
#ifndef ROW_H
|
|
|
|
#define ROW_H
|
|
|
|
|
|
|
|
#include "fort_impl.h"
|
|
|
|
#include "fort.h"
|
|
|
|
#include "stdarg.h"
|
2018-03-18 10:17:33 +01:00
|
|
|
#include "options.h"
|
2018-01-17 19:22:57 +01:00
|
|
|
|
2018-04-24 20:36:07 +02:00
|
|
|
#ifdef FT_HAVE_WCHAR
|
|
|
|
#include <wchar.h>
|
|
|
|
#endif
|
2018-01-17 19:22:57 +01:00
|
|
|
struct fort_row;
|
|
|
|
typedef struct fort_row fort_row_t;
|
2018-01-17 19:34:15 +01:00
|
|
|
|
2018-01-17 19:22:57 +01:00
|
|
|
|
2018-03-29 20:25:04 +02:00
|
|
|
fort_row_t * create_row(void);
|
2018-01-17 19:22:57 +01:00
|
|
|
void destroy_row(fort_row_t *row);
|
|
|
|
fort_row_t * create_row_from_string(const char *str);
|
2018-03-31 12:33:37 +02:00
|
|
|
fort_row_t* create_row_from_fmt_string(const char* fmt, va_list *va_args);
|
2018-01-17 19:22:57 +01:00
|
|
|
|
|
|
|
|
2018-04-17 19:14:50 +02:00
|
|
|
size_t columns_in_row(const fort_row_t *row);
|
2018-01-17 19:22:57 +01:00
|
|
|
|
|
|
|
fort_cell_t *get_cell_implementation(fort_row_t *row, size_t col, enum PolicyOnNull policy);
|
|
|
|
fort_cell_t *get_cell(fort_row_t *row, size_t col);
|
|
|
|
const fort_cell_t *get_cell_c(const fort_row_t *row, size_t col);
|
|
|
|
fort_cell_t *get_cell_and_create_if_not_exists(fort_row_t *row, size_t col);
|
2018-04-22 20:42:22 +02:00
|
|
|
fort_status_t swap_row(fort_row_t *cur_row, fort_row_t *ins_row, size_t pos);
|
2018-01-17 19:22:57 +01:00
|
|
|
|
2018-05-02 16:55:29 +02:00
|
|
|
size_t group_cell_number(const fort_row_t *row, size_t master_cell_col);
|
|
|
|
int get_row_cell_types(const fort_row_t *row, enum CellType *types, size_t types_sz);
|
2018-05-04 20:25:29 +02:00
|
|
|
fort_status_t row_set_cell_span(fort_row_t *row, size_t cell_column, size_t hor_span);
|
2018-01-17 19:22:57 +01:00
|
|
|
|
|
|
|
int print_row_separator(char *buffer, size_t buffer_sz,
|
|
|
|
const size_t *col_width_arr, size_t cols,
|
|
|
|
const fort_row_t *upper_row, const fort_row_t *lower_row,
|
2018-02-04 14:21:04 +01:00
|
|
|
enum HorSeparatorPos separatorPos, const separator_t *sep,
|
|
|
|
const context_t *context);
|
2018-01-17 19:22:57 +01:00
|
|
|
|
2018-04-24 20:36:07 +02:00
|
|
|
|
2018-03-05 19:08:14 +01:00
|
|
|
|
2018-01-17 19:22:57 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int snprintf_row(const fort_row_t *row, char *buffer, size_t buf_sz, size_t *col_width_arr, size_t col_width_arr_sz,
|
|
|
|
size_t row_height, const context_t *context);
|
2018-04-24 20:36:07 +02:00
|
|
|
|
|
|
|
#ifdef FT_HAVE_WCHAR
|
|
|
|
fort_row_t *create_row_from_wstring(const wchar_t *str);
|
|
|
|
fort_row_t* create_row_from_fmt_wstring(const wchar_t* fmt, va_list *va_args);
|
|
|
|
|
|
|
|
int wprint_row_separator(wchar_t *buffer, size_t buffer_sz,
|
|
|
|
const size_t *col_width_arr, size_t cols,
|
|
|
|
const fort_row_t *upper_row, const fort_row_t *lower_row,
|
|
|
|
enum HorSeparatorPos separatorPos, const separator_t *sep,
|
|
|
|
const context_t *context);
|
2018-03-05 19:08:14 +01:00
|
|
|
int wsnprintf_row(const fort_row_t *row, wchar_t *buffer, size_t buf_sz, size_t *col_width_arr, size_t col_width_arr_sz,
|
|
|
|
size_t row_height, const context_t *context);
|
2018-04-24 20:36:07 +02:00
|
|
|
#endif
|
2018-01-17 19:22:57 +01:00
|
|
|
|
|
|
|
|
2018-03-09 10:44:16 +01:00
|
|
|
#endif /* ROW_H */
|