Commit 11e92480 authored by Jan Köster's avatar Jan Köster
Browse files

tes

parent f6ac64e5
Loading
Loading
Loading
Loading
+14 −5
Changes for editor/widgets/container/container.cpp: 14 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -341,7 +341,7 @@ extern "C" {
                addSpacingBox("margin", "Margin", "desktop");
                addField("vertical_align", "Vertical Align", "select", nullptr, "desktop", mkOpts({"top","center","bottom"}));
                addField("shape_divider_type", "Shape Divider", "select", nullptr, "desktop", mkOpts({"none","wave","oval"}), "simple");
                addField("shape_divider_position", "Shape Divider Position", "select", nullptr, "desktop", mkOpts({"bottom","top"}), "simple");
                addField("shape_divider_position", "Shape Divider Position", "select", nullptr, "desktop", mkOpts({"bottom","top","both"}), "simple");
                addField("shape_divider_color", "Shape Divider Color", "color_var", nullptr, "desktop", nullptr, "simple");
                addField("shape_divider_height", "Shape Divider Height", "text", "80px", "desktop");
                addField("shape_divider_flip", "Shape Divider Flip", "checkbox", nullptr, "desktop", nullptr, "simple");
@@ -1145,7 +1145,7 @@ extern "C" {
                cnt.setAttribute("class", cls.c_str());

                // Shape divider: a decorative wave/oval SVG pinned to the
                // container's top or bottom edge (see member field comment).
                // container's top and/or bottom edge (see member field comment).
                if (hasShapeDivider) {
                    std::string path;
                    if (shapeDividerType == "wave") {
@@ -1156,17 +1156,18 @@ extern "C" {
                        path = "M0,0Q600,100,1200,0V120H0Z";
                    }

                    auto emitDivider = [&](const std::string &pos) {
                        std::string dividerStyle = "position: absolute; left: 0; width: 100%; max-height: 100%; overflow: hidden;"
                                                    " line-height: 0; pointer-events: none;";
                    dividerStyle += (shapeDividerPosition == "top") ? " top: 0;" : " bottom: 0;";
                        dividerStyle += (pos == "top") ? " top: 0;" : " bottom: 0;";
                        if (!shapeDividerHeight.empty()) dividerStyle += " height: " + shapeDividerHeight + ";";
                        std::string transform;
                    if (shapeDividerPosition == "top") transform += "rotate(180deg) ";
                        if (pos == "top") transform += "rotate(180deg) ";
                        if (shapeDividerFlip) transform += "scaleX(-1) ";
                        if (!transform.empty()) dividerStyle += " transform: " + transform + ";";

                        libhtmlpp::HtmlElement dividerWrap("div");
                    dividerWrap.setAttribute("class", (responsiveClass + "-shape-divider").c_str());
                        dividerWrap.setAttribute("class", (responsiveClass + "-shape-divider-" + pos).c_str());
                        dividerWrap.setAttribute("style", dividerStyle.c_str());

                        libhtmlpp::HtmlElement svg("svg");
@@ -1182,6 +1183,14 @@ extern "C" {
                        svg.appendChild(svgPath);
                        dividerWrap.appendChild(svg);
                        cnt.appendChild(dividerWrap);
                    };

                    if (shapeDividerPosition == "both") {
                        emitDivider("top");
                        emitDivider("bottom");
                    } else {
                        emitDivider(shapeDividerPosition == "top" ? "top" : "bottom");
                    }
                }

                // Mobile responsive overrides via media query
+14 −5
Changes for editor/widgets/section/section.cpp: 14 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -251,7 +251,7 @@ extern "C" {
                addField("opacity", "Opacity", "text", "0.0 - 1.0", "desktop");
                addField("vertical_align", "Vertical Align", "select", nullptr, "desktop", mkOpts({"top","center","bottom"}));
                addField("shape_divider_type", "Shape Divider", "select", nullptr, "desktop", mkOpts({"none","wave","oval"}), "simple");
                addField("shape_divider_position", "Shape Divider Position", "select", nullptr, "desktop", mkOpts({"bottom","top"}), "simple");
                addField("shape_divider_position", "Shape Divider Position", "select", nullptr, "desktop", mkOpts({"bottom","top","both"}), "simple");
                addField("shape_divider_color", "Shape Divider Color", "color_var", nullptr, "desktop", nullptr, "simple");
                addField("shape_divider_height", "Shape Divider Height", "text", "80px", "desktop");
                addField("shape_divider_flip", "Shape Divider Flip", "checkbox", nullptr, "desktop", nullptr, "simple");
@@ -939,7 +939,7 @@ extern "C" {
                sect.setAttribute("class", cls.c_str());

                // Shape divider: a decorative wave/oval SVG pinned to the
                // section's top or bottom edge (see member field comment).
                // section's top and/or bottom edge (see member field comment).
                if (hasShapeDivider) {
                    std::string path;
                    if (shapeDividerType == "wave") {
@@ -950,17 +950,18 @@ extern "C" {
                        path = "M0,0Q600,100,1200,0V120H0Z";
                    }

                    auto emitDivider = [&](const std::string &pos) {
                        std::string dividerStyle = "position: absolute; left: 0; width: 100%; max-height: 100%; overflow: hidden;"
                                                    " line-height: 0; pointer-events: none;";
                    dividerStyle += (shapeDividerPosition == "top") ? " top: 0;" : " bottom: 0;";
                        dividerStyle += (pos == "top") ? " top: 0;" : " bottom: 0;";
                        if (!shapeDividerHeight.empty()) dividerStyle += " height: " + shapeDividerHeight + ";";
                        std::string transform;
                    if (shapeDividerPosition == "top") transform += "rotate(180deg) ";
                        if (pos == "top") transform += "rotate(180deg) ";
                        if (shapeDividerFlip) transform += "scaleX(-1) ";
                        if (!transform.empty()) dividerStyle += " transform: " + transform + ";";

                        libhtmlpp::HtmlElement dividerWrap("div");
                    dividerWrap.setAttribute("class", (responsiveClass + "-shape-divider").c_str());
                        dividerWrap.setAttribute("class", (responsiveClass + "-shape-divider-" + pos).c_str());
                        dividerWrap.setAttribute("style", dividerStyle.c_str());

                        libhtmlpp::HtmlElement svg("svg");
@@ -976,6 +977,14 @@ extern "C" {
                        svg.appendChild(svgPath);
                        dividerWrap.appendChild(svg);
                        sect.appendChild(dividerWrap);
                    };

                    if (shapeDividerPosition == "both") {
                        emitDivider("top");
                        emitDivider("bottom");
                    } else {
                        emitDivider(shapeDividerPosition == "top" ? "top" : "bottom");
                    }
                }

                // Mobile responsive overrides via media query