diff --git a/doc/platforms-html5.dox b/doc/platforms-html5.dox index 56520dfab..c52ef830c 100644 --- a/doc/platforms-html5.dox +++ b/doc/platforms-html5.dox @@ -329,7 +329,8 @@ the @cb{.css} div#sizer @ce will center it, following the canvas width. If you need more advanced styling, check out [m.css](http://mcss.mosra.cz). @note It's also possible to modify the container CSS classes from the C++ side - using @ref Platform::Sdl2Application::setContainerCssClass(). + using @ref Platform::EmscriptenApplication::setContainerCssClass() / + @ref Platform::Sdl2Application::setContainerCssClass(). @section platforms-html5-events Controlling event behavior diff --git a/src/Magnum/Platform/EmscriptenApplication.cpp b/src/Magnum/Platform/EmscriptenApplication.cpp index def76f07b..c1c839350 100644 --- a/src/Magnum/Platform/EmscriptenApplication.cpp +++ b/src/Magnum/Platform/EmscriptenApplication.cpp @@ -382,6 +382,13 @@ Vector2i EmscriptenApplication::framebufferSize() const { } #endif +void EmscriptenApplication::setContainerCssClass(const std::string& cssClass) { + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wdollar-in-identifier-extension" + EM_ASM_({document.getElementById('container').className = AsciiToString($0);}, cssClass.data()); + #pragma GCC diagnostic pop +} + void EmscriptenApplication::swapBuffers() { emscripten_webgl_commit_frame(); } diff --git a/src/Magnum/Platform/EmscriptenApplication.h b/src/Magnum/Platform/EmscriptenApplication.h index 91a74fb32..67da4dd57 100644 --- a/src/Magnum/Platform/EmscriptenApplication.h +++ b/src/Magnum/Platform/EmscriptenApplication.h @@ -447,6 +447,18 @@ class EmscriptenApplication { */ Vector2 devicePixelRatio() const { return _devicePixelRatio; } + /** + * @brief Set container CSS class + * + * Assigns given CSS class to the @cb{.html}