[R] Refactoring of c++ API

This commit is contained in:
seleznevae
2019-09-28 11:02:34 +03:00
parent ba679b68ce
commit 77a4a1fb4c
18 changed files with 388 additions and 182 deletions

View File

@@ -5,7 +5,7 @@
int main()
{
fort::table table;
fort::char_table table;
table << fort::header
<< "N" << "Driver" << "Time" << "Avg Speed" << fort::endr
<< "1" << "Ricciardo" << "1:25.945" << "47.362" << fort::endr

View File

@@ -4,7 +4,7 @@
int main()
{
fort::table table;
fort::char_table table;
/* Set table border style */
table.set_border_style(FT_NICE_STYLE);

View File

@@ -5,7 +5,7 @@
int main()
{
fort::table table;
fort::char_table table;
/* Set table border style */
table.set_border_style(FT_DOUBLE2_STYLE);

View File

@@ -5,7 +5,7 @@
int main(void)
{
fort::table table;
fort::char_table table;
table << fort::header;
/* Fill each cell with operator[] */
table [0][0] = "N";

View File

@@ -8,34 +8,50 @@
int main(void)
{
#if defined(FT_HAVE_UTF8)
/* Example of utf8 table */
{
ft_table_t *table = ft_create_table();
ft_set_border_style(table, FT_NICE_STYLE);
ft_set_cell_prop(table, FT_ANY_ROW, 0, FT_CPROP_TEXT_ALIGN, FT_ALIGNED_CENTER);
ft_set_cell_prop(table, FT_ANY_ROW, 1, FT_CPROP_TEXT_ALIGN, FT_ALIGNED_LEFT);
ft_set_cell_prop(table, 0, FT_ANY_COLUMN, FT_CPROP_ROW_TYPE, FT_ROW_HEADER);
ft_u8write_ln(table, "Ранг", "Название", "Год", "Рейтинг");
ft_u8write_ln(table, "1", "Побег из Шоушенка", "1994", "9.5");
ft_u8write_ln(table, "2", "12 разгневанных мужчин", "1957", "8.8");
ft_u8write_ln(table, "3", "Космическая одиссея 2001 года", "1968", "8.5");
ft_u8write_ln(table, "4", "Бегущий по лезвию", "1982", "8.1");
const char *table_str = (const char *)ft_to_u8string(table);
printf("%s\n", table_str);
ft_destroy_table(table);
}
#endif
/* Example of wchar table */
#if defined(FT_HAVE_WCHAR) && !defined(FT_MICROSOFT_COMPILER)
setlocale(LC_CTYPE, "");
{
setlocale(LC_CTYPE, "");
ft_set_default_border_style(FT_BASIC_STYLE);
ft_set_default_border_style(FT_BASIC_STYLE);
ft_table_t *table = ft_create_table();
ft_set_cell_prop(table, FT_ANY_ROW, 0, FT_CPROP_TEXT_ALIGN, FT_ALIGNED_CENTER);
ft_set_cell_prop(table, FT_ANY_ROW, 1, FT_CPROP_TEXT_ALIGN, FT_ALIGNED_LEFT);
ft_table_t *table = ft_create_table();
ft_set_cell_prop(table, FT_ANY_ROW, 0, FT_CPROP_TEXT_ALIGN, FT_ALIGNED_CENTER);
ft_set_cell_prop(table, FT_ANY_ROW, 1, FT_CPROP_TEXT_ALIGN, FT_ALIGNED_LEFT);
ft_set_cell_prop(table, 0, FT_ANY_COLUMN, FT_CPROP_ROW_TYPE, FT_ROW_HEADER);
ft_wwrite_ln(table, L"Ранг", L"Название", L"Год", L"Рейтинг");
ft_set_cell_prop(table, 0, FT_ANY_COLUMN, FT_CPROP_ROW_TYPE, FT_ROW_HEADER);
ft_wwrite_ln(table, L"Ранг", L"Название", L"Год", L"Рейтинг");
ft_wwrite_ln(table, L"1", L"Побег из Шоушенка", L"1994", L"9.5");
ft_wwrite_ln(table, L"2", L"12 разгневанных мужчин", L"1957", L"8.8");
ft_wwrite_ln(table, L"3", L"Космическая одиссея 2001 года", L"1968", L"8.5");
ft_wwrite_ln(table, L"4", L"Бегущий по лезвию", L"1982", L"8.1");
/* Ранг | Название | Год | Рейтинг */
/*FT_NWWRITE_LN(table, L"\x420\x430\x43d\x433", L"\x41d\x430\x437\x432\x430\x43d\x438\x435", L"\x413\x43e\x434", L"\x420\x435\x439\x442\x438\x43d\x433"); */
/*FT_NWWRITE_LN(table, L"1", L"\x41f\x43e\x431\x435\x433 \x438\x437 \x428\x43e\x443\x448\x435\x43d\x43a\x430", L"1994", L"9.5");*/ /* Побег из Шоушенка */
/*FT_NWWRITE_LN(table, L"2", L"12 \x440\x430\x437\x433\x43d\x435\x432\x430\x43d\x43d\x44b\x445 \x43c\x443\x436\x447\x438\x43d", L"1957", L"8.8");*/ /* 12 разгневанных мужчин */
/*FT_NWWRITE_LN(table, L"3", L"\x41a\x43e\x441\x43c\x438\x447\x435\x441\x43a\x430\x44f \x43e\x434\x438\x441\x441\x435\x44f 2001 \x433\x43e\x434\x430", L"1968", L"8.5");*/ /* Космическая одиссея 2001 года */
/*FT_NWWRITE_LN(table, L"4", L"\x411\x435\x433\x443\x449\x438\x439 \x43f\x43e \x43b\x435\x437\x432\x438\x44e", L"1982", L"8.1");*/ /* Бегущий по лезвию */
const wchar_t* table_wstr = ft_to_wstring(table);
fwprintf(stderr, L"%ls\n ", table_wstr);
ft_destroy_table(table);
ft_wwrite_ln(table, L"1", L"Побег из Шоушенка", L"1994", L"9.5");
ft_wwrite_ln(table, L"2", L"12 разгневанных мужчин", L"1957", L"8.8");
ft_wwrite_ln(table, L"3", L"Космическая одиссея 2001 года", L"1968", L"8.5");
ft_wwrite_ln(table, L"4", L"Бегущий по лезвию", L"1982", L"8.1");
const wchar_t* table_wstr = ft_to_wstring(table);
fwprintf(stderr, L"%ls\n", table_wstr);
ft_destroy_table(table);
}
#endif
return 0;

View File

@@ -0,0 +1,30 @@
#include <iostream>
#include "fort.hpp"
int main(void)
{
#if defined(FT_HAVE_UTF8)
/* Example of utf8 table */
{
fort::utf8_table table;
table.set_border_style(FT_NICE_STYLE);
table.column(0).set_cell_text_align(fort::text_align::center);
table.column(1).set_cell_text_align(fort::text_align::center);
table << fort::header
<< "Ранг" << "Название" << "Год" << "Рейтинг" << fort::endr
<< "1" << "Побег из Шоушенка" << "1994" << "9.5"<< fort::endr
<< "2" << "12 разгневанных мужчин" << "1957" << "8.8" << fort::endr
<< "3" << "Космическая одиссея 2001 года" << "1968" << "8.5" << fort::endr
<< "4" << "Бегущий по лезвию" << "1982" << "8.1" << fort::endr;
std::cout << table.to_string() << std::endl;
}
#endif
return 0;
}

View File

@@ -67,6 +67,12 @@ add_executable(${PROJECT_NAME}_fill_table_cpp
target_link_libraries(${PROJECT_NAME}_fill_table_cpp
fort)
add_executable(${PROJECT_NAME}_non_ascii_table_cpp
9-non_ascii_table.cpp)
target_link_libraries(${PROJECT_NAME}_non_ascii_table_cpp
fort)
add_executable(${PROJECT_NAME}_ex_cpp
main.cpp)
target_link_libraries(${PROJECT_NAME}_ex_cpp
@@ -88,6 +94,7 @@ set(${PROJECT_NAME}_examples
${PROJECT_NAME}_custom_table_cpp
${PROJECT_NAME}_complex_layout_cpp
${PROJECT_NAME}_fill_table_cpp
${PROJECT_NAME}_non_ascii_table_cpp
PARENT_SCOPE)
if(DEFINED FORT_LINK_LIBRARIES)

View File

@@ -6,7 +6,7 @@
int main()
{
{
fort::table table;
fort::char_table table;
// Fill table with data
table << fort::header
<< "Rank" << "Title" << "Year" << "Rating" << fort::endr
@@ -27,7 +27,7 @@ int main()
{
fort::table table;
fort::char_table table;
// Fill table with data
table << fort::header;
table.write_ln("Rank", "Title", "Year", "Rating");
@@ -49,7 +49,7 @@ int main()
}
{
fort::table table;
fort::char_table table;
// Fill table with data
table << fort::header
<< "Rank" << "Title" << "Year" << "Rating" << fort::endr
@@ -66,7 +66,7 @@ int main()
}
{
fort::table table;
fort::char_table table;
/* Set table border style */
table.set_border_style(FT_BASIC_STYLE);