14Elements Split(
const std::string& the_text) {
16 std::stringstream ss(the_text);
18 while (std::getline(ss, word,
' ')) {
19 output.push_back(
text(word));
24Element Split(
const std::string& paragraph,
25 const std::function<
Element(std::string)>& f) {
27 std::stringstream ss(paragraph);
29 while (std::getline(ss, line,
'\n')) {
30 output.push_back(f(line));
32 return vbox(std::move(output));
48 return Split(the_text, [](
const std::string& line) {
50 return flexbox(Split(line), config);
58 return Split(the_text, [](
const std::string& line) {
61 return flexbox(Split(line), config);
69 return Split(the_text, [](
const std::string& line) {
70 static const auto config =
72 return flexbox(Split(line), config);
81 return Split(the_text, [](
const std::string& line) {
85 words.push_back(
text(
"") | xflex);
86 return flexbox(std::move(words), config);
FlexboxConfig & SetGap(int gap_x, int gap_y)
フレックスボックスのギャップを設定します。
@ Center
アイテムは行の中央に配置されます。
@ FlexEnd
アイテムはflexboxの方向の終了位置に揃えられます。
@ SpaceBetween
アイテムは行に沿って均等に分配されます。最初のアイテムは開始行に、最後のアイテムは終了行に配置されます。
FlexboxConfig & Set(FlexboxConfig::Direction)
フレックスボックスの方向を設定します。
Element paragraphAlignRight(const std::string &text)
段落を複数行にわたって右揃えで描画する要素を返します。
Element paragraphAlignCenter(const std::string &text)
段落を複数行にわたって中央揃えで描画する要素を返します。
Element text(std::wstring text)
ユニコードテキストを表示します。
Element paragraphAlignLeft(const std::string &text)
段落を複数行にわたって左揃えで描画する要素を返します。
Element paragraphAlignJustify(const std::string &text)
段落を複数行にわたって両端揃えで描画する要素を返します。 中央に。
Element vbox(Elements)
要素を縦に一つずつ表示するコンテナ。
FlexboxConfigは、flexboxコンテナのレイアウトプロパティを定義する構成構造体です。
Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
行/列に要素を表示し、一杯になると次の列/行に折り返すことができるコンテナ。
std::shared_ptr< Node > Element
std::vector< Element > Elements
Elements paragraph(std::wstring text)