diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/LuaRuntime.hpp | 1 | ||||
| -rw-r--r-- | src/LuaRuntimeApi.hpp | 13 | ||||
| -rw-r--r-- | src/WindowActionRouter.cpp | 6 | ||||
| -rw-r--r-- | src/widgets/BrowserWindow.hpp | 1 | ||||
| -rw-r--r-- | src/widgets/Decorations.cpp | 8 | ||||
| -rw-r--r-- | src/widgets/Decorations.hpp | 1 |
6 files changed, 30 insertions, 0 deletions
diff --git a/src/LuaRuntime.hpp b/src/LuaRuntime.hpp index 78ae354..8135d04 100644 --- a/src/LuaRuntime.hpp +++ b/src/LuaRuntime.hpp @@ -63,6 +63,7 @@ signals: void webview_scroll_top_requested(WebViewId webview_id); void webview_scroll_bottom_requested(WebViewId webview_id); void decoration_set_enabled(DecorationType type, bool enabled, std::optional<WindowId> win_id); + void decoration_set_size(DecorationType type, uint16_t size, std::optional<WindowId> win_id); void webview_html_set_requested(const QString &html, WebViewId view_id); void webview_js_eval_requested(const QString &js_code, WebViewId view_id, const JsOnResultFunc &on_result); diff --git a/src/LuaRuntimeApi.hpp b/src/LuaRuntimeApi.hpp index d6a78d5..239276e 100644 --- a/src/LuaRuntimeApi.hpp +++ b/src/LuaRuntimeApi.hpp @@ -339,6 +339,18 @@ int lua_api_decorations_set_enabled(lua_State *state) { return 1; } +int lua_api_decorations_set_size(lua_State *state) { + auto type = (DecorationType)lua_tointeger(state, 1); + uint16_t size = lua_tointeger(state, 2); + qDebug() << "::api" << type << size; + std::optional<WindowId> win_id = + lua_isnoneornil(state, 3) ? std::nullopt : std::make_optional(lua_tointeger(state, 3)); + auto &runtime = LuaRuntime::instance(); + emit runtime.decoration_set_size(type, size, win_id); + lua_pushnil(state); + return 1; +} + int lua_api_decorations_get_enabled(lua_State *state) { auto type = (DecorationType)lua_tointeger(state, 1); WindowId win_id = lua_isnoneornil(state, 2) ? lua_tointeger(state, 2) : 0; @@ -429,6 +441,7 @@ static luaL_Reg internals_api[] = { luaL_Reg{"search_next", &lua_api_search_next}, luaL_Reg{"decorations_set_enabled", &lua_api_decorations_set_enabled}, luaL_Reg{"decorations_get_enabled", &lua_api_decorations_get_enabled}, + luaL_Reg{"decorations_set_size", &lua_api_decorations_set_size}, luaL_Reg{"decorations_get_view", &lua_api_decorations_get_view}, luaL_Reg{"schedule", &lua_api_schedule_fn}, luaL_Reg{nullptr, nullptr}, diff --git a/src/WindowActionRouter.cpp b/src/WindowActionRouter.cpp index f513210..db0398d 100644 --- a/src/WindowActionRouter.cpp +++ b/src/WindowActionRouter.cpp @@ -122,6 +122,12 @@ void WindowActionRouter::initialize(Configuration *config) { for (auto *win : get_relevant_windows(win_id)) win->set_decoration_enabled(type, enabled); }); + connect(&runtime, &LuaRuntime::decoration_set_size, this, + [this](DecorationType type, uint16_t size, std::optional<WindowId> win_id) { + qDebug() << "::win" << type << size; + for (auto *win : get_relevant_windows(win_id)) + win->set_decoration_size(type, size); + }); connect(&runtime, &LuaRuntime::schedule_for_next_tick, this, [](const std::function<void()> &action) { LuaRuntime::instance().queue_task(action); }); diff --git a/src/widgets/BrowserWindow.hpp b/src/widgets/BrowserWindow.hpp index 2842983..f51b0f7 100644 --- a/src/widgets/BrowserWindow.hpp +++ b/src/widgets/BrowserWindow.hpp @@ -33,6 +33,7 @@ public: DELEGATE(decorations, set_enabled, set_decoration_enabled) DELEGATE(decorations, get_enabled, get_decoration_enabled) DELEGATE(decorations, get_view_id, get_decoration_view_id) + DELEGATE(decorations, set_size, set_decoration_size) IWebViewMediator *get_webview_mediator(WebViewId webview_id); bool has_webview(WebViewId webview_id); diff --git a/src/widgets/Decorations.cpp b/src/widgets/Decorations.cpp index 22aa9f9..5e11be4 100644 --- a/src/widgets/Decorations.cpp +++ b/src/widgets/Decorations.cpp @@ -3,6 +3,7 @@ #include <optional> #include <qboxlayout.h> #include <qlabel.h> +#include <qlogging.h> #include <qwidget.h> #include "Decorations.hpp" @@ -84,6 +85,13 @@ void Decorations::set_html(const QString &html, WebViewId view_id) { decoration.value()->set_html(html); } +void Decorations::set_size(DecorationType type, uint16_t size) { + qDebug() << "::deco" << type << size; + auto decoration = get_decoration_widget_type(type); + if (decoration.has_value()) + decoration.value()->set_size(size); +} + void Decorations::run_javascript(const QString &js_code, WebViewId view_id, const JsOnResultFunc &on_result) { auto decoration = get_decoration_widget_by_view_id(view_id); diff --git a/src/widgets/Decorations.hpp b/src/widgets/Decorations.hpp index 3df4fd7..388a02f 100644 --- a/src/widgets/Decorations.hpp +++ b/src/widgets/Decorations.hpp @@ -25,6 +25,7 @@ public: void set_enabled(DecorationType type, bool enabled); bool get_enabled(DecorationType type); + void set_size(DecorationType type, uint16_t size_value); std::optional<WebViewId> get_view_id(DecorationType type); bool has_webview(WebViewId view_id) override; |
