Commit 7239605b authored by Jan Köster's avatar Jan Köster
Browse files

container shadow

parent 602f81a2
Loading
Loading
Loading
Loading
+44 −18
Changes for editor/widgets/container/container.cpp: 44 added lines, 18 removed lines.
Original line number Diff line number Diff line
@@ -530,7 +530,11 @@ extern "C" {
                json_object_object_add(obj, "vertical_align", json_object_new_string(verticalAlign.c_str()));
                json_object_object_add(obj, "m_vertical_align", json_object_new_string(m_verticalAlign.c_str()));
                json_object_object_add(obj, "box_shadow", json_object_new_string(boxShadow.c_str()));
                json_object_object_add(obj, "box_shadow_color", json_object_new_string(boxShadowColor.c_str()));
                json_object_object_add(obj, "box_shadow_custom", json_object_new_string(boxShadowCustom.c_str()));
                json_object_object_add(obj, "m_box_shadow", json_object_new_string(m_boxShadow.c_str()));
                json_object_object_add(obj, "m_box_shadow_color", json_object_new_string(m_boxShadowColor.c_str()));
                json_object_object_add(obj, "m_box_shadow_custom", json_object_new_string(m_boxShadowCustom.c_str()));
                json_object_object_add(obj, "hidden", json_object_new_boolean(hidden));
                json_object_object_add(obj, "m_hidden", json_object_new_boolean(m_hidden));
                json_object_object_add(obj, "custom_css", json_object_new_string(customCss.c_str()));
@@ -662,10 +666,26 @@ extern "C" {
                    val = json_object_get_string(val_obj);
                    if (val) boxShadow = val;
                }
                if (json_object_object_get_ex(obj, "box_shadow_color", &val_obj)) {
                    val = json_object_get_string(val_obj);
                    if (val) boxShadowColor = val;
                }
                if (json_object_object_get_ex(obj, "box_shadow_custom", &val_obj)) {
                    val = json_object_get_string(val_obj);
                    if (val) boxShadowCustom = val;
                }
                if (json_object_object_get_ex(obj, "m_box_shadow", &val_obj)) {
                    val = json_object_get_string(val_obj);
                    if (val) m_boxShadow = val;
                }
                if (json_object_object_get_ex(obj, "m_box_shadow_color", &val_obj)) {
                    val = json_object_get_string(val_obj);
                    if (val) m_boxShadowColor = val;
                }
                if (json_object_object_get_ex(obj, "m_box_shadow_custom", &val_obj)) {
                    val = json_object_get_string(val_obj);
                    if (val) m_boxShadowCustom = val;
                }
                if (json_object_object_get_ex(obj, "hidden", &val_obj)) {
                    if (json_object_is_type(val_obj, json_type_string)) {
                        const char *s = json_object_get_string(val_obj);
@@ -738,17 +758,20 @@ extern "C" {
                    else if (verticalAlign == "center") style += " justify-content: center;";
                    else if (verticalAlign == "bottom") style += " justify-content: flex-end;";
                }
                if (boxShadow != "none" && !boxShadow.empty()) {
                    auto shadowCss = [](const std::string &key) -> std::string {
                        if (key == "sm")    return "0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)";
                        if (key == "md")    return "0 4px 8px rgba(0,0,0,0.15), 0 2px 4px rgba(0,0,0,0.12)";
                        if (key == "lg")    return "0 10px 25px rgba(0,0,0,0.15), 0 6px 10px rgba(0,0,0,0.10)";
                        if (key == "card")  return "0 2px 15px rgba(0,0,0,0.10)";
                        if (key == "float") return "0 20px 40px rgba(0,0,0,0.20)";
                        if (key == "inner") return "inset 0 2px 8px rgba(0,0,0,0.15)";
                if (!boxShadowCustom.empty()) {
                    style += " box-shadow: " + boxShadowCustom + ";";
                } else if (boxShadow != "none" && !boxShadow.empty()) {
                    auto shadowCss = [](const std::string &key, const std::string &col) -> std::string {
                        std::string c = col.empty() ? "" : col;
                        if (key == "sm")    return c.empty() ? "0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)" : "0 1px 3px " + c + ", 0 1px 2px " + c;
                        if (key == "md")    return c.empty() ? "0 4px 8px rgba(0,0,0,0.15), 0 2px 4px rgba(0,0,0,0.12)"  : "0 4px 8px " + c + ", 0 2px 4px " + c;
                        if (key == "lg")    return c.empty() ? "0 10px 25px rgba(0,0,0,0.15), 0 6px 10px rgba(0,0,0,0.10)" : "0 10px 25px " + c + ", 0 6px 10px " + c;
                        if (key == "card")  return c.empty() ? "0 2px 15px rgba(0,0,0,0.10)"  : "0 2px 15px " + c;
                        if (key == "float") return c.empty() ? "0 20px 40px rgba(0,0,0,0.20)" : "0 20px 40px " + c;
                        if (key == "inner") return c.empty() ? "inset 0 2px 8px rgba(0,0,0,0.15)" : "inset 0 2px 8px " + c;
                        return "";
                    };
                    std::string css = shadowCss(boxShadow);
                    std::string css = shadowCss(boxShadow, boxShadowColor);
                    if (!css.empty()) style += " box-shadow: " + css + ";";
                }
                if (hidden) {
@@ -791,17 +814,20 @@ extern "C" {
                    else if (m_verticalAlign == "center") mobileCSS += " justify-content: center !important;";
                    else if (m_verticalAlign == "bottom") mobileCSS += " justify-content: flex-end !important;";
                }
                if (!m_boxShadow.empty() && m_boxShadow != "none") {
                    auto shadowCss = [](const std::string &key) -> std::string {
                        if (key == "sm")    return "0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)";
                        if (key == "md")    return "0 4px 8px rgba(0,0,0,0.15), 0 2px 4px rgba(0,0,0,0.12)";
                        if (key == "lg")    return "0 10px 25px rgba(0,0,0,0.15), 0 6px 10px rgba(0,0,0,0.10)";
                        if (key == "card")  return "0 2px 15px rgba(0,0,0,0.10)";
                        if (key == "float") return "0 20px 40px rgba(0,0,0,0.20)";
                        if (key == "inner") return "inset 0 2px 8px rgba(0,0,0,0.15)";
                if (!m_boxShadowCustom.empty()) {
                    mobileCSS += " box-shadow: " + m_boxShadowCustom + " !important;";
                } else if (!m_boxShadow.empty() && m_boxShadow != "none") {
                    auto shadowCss = [](const std::string &key, const std::string &col) -> std::string {
                        std::string c = col.empty() ? "" : col;
                        if (key == "sm")    return c.empty() ? "0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)" : "0 1px 3px " + c + ", 0 1px 2px " + c;
                        if (key == "md")    return c.empty() ? "0 4px 8px rgba(0,0,0,0.15), 0 2px 4px rgba(0,0,0,0.12)"  : "0 4px 8px " + c + ", 0 2px 4px " + c;
                        if (key == "lg")    return c.empty() ? "0 10px 25px rgba(0,0,0,0.15), 0 6px 10px rgba(0,0,0,0.10)" : "0 10px 25px " + c + ", 0 6px 10px " + c;
                        if (key == "card")  return c.empty() ? "0 2px 15px rgba(0,0,0,0.10)"  : "0 2px 15px " + c;
                        if (key == "float") return c.empty() ? "0 20px 40px rgba(0,0,0,0.20)" : "0 20px 40px " + c;
                        if (key == "inner") return c.empty() ? "inset 0 2px 8px rgba(0,0,0,0.15)" : "inset 0 2px 8px " + c;
                        return "";
                    };
                    std::string css = shadowCss(m_boxShadow);
                    std::string css = shadowCss(m_boxShadow, m_boxShadowColor);
                    if (!css.empty()) mobileCSS += " box-shadow: " + css + " !important;";
                } else if (m_boxShadow == "none") {
                    mobileCSS += " box-shadow: none !important;";