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);
80 return Split(the_text, [](
const std::string& line) {
84 words.push_back(
text(
"") | xflex);
85 return flexbox(std::move(words), config);
FlexboxConfig & SetGap(int gap_x, int gap_y)
設定 flexbox 彈性方向。
@ SpaceBetween
項目在行中平均分佈;第一個項目在起始線,最後一個項目在結束線。
FlexboxConfig & Set(FlexboxConfig::Direction)
設定 flexbox 方向。
Element paragraphAlignRight(const std::string &text)
回傳一個在多行上繪製段落並靠右對齊的元素。
Element paragraphAlignCenter(const std::string &text)
回傳一個在多行上繪製段落並置中對齊的元素。
Element text(std::wstring text)
顯示一段 Unicode 文字。
Element paragraphAlignLeft(const std::string &text)
回傳一個在多行上繪製段落並靠左對齊的元素。
Element paragraphAlignJustify(const std::string &text)
回傳一個在多行上繪製段落並使用左右對齊的元素。
Element vbox(Elements)
一個垂直一個接一個顯示元素的容器。
FlexboxConfig 是一個配置結構,用於定義彈性盒容器的佈局屬性。
Element flexbox(Elements, FlexboxConfig config=FlexboxConfig())
一個容器,用於在行/列中顯示元素,並在滿時能夠換行到下一列/行。
std::shared_ptr< Node > Element
std::vector< Element > Elements
Elements paragraph(std::wstring text)