diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/LuaRuntime.hpp | 31 | ||||
| -rw-r--r-- | include/widgets/BrowserManager.hpp | 5 | ||||
| -rw-r--r-- | include/widgets/MainWindow.hpp | 2 |
3 files changed, 38 insertions, 0 deletions
diff --git a/include/LuaRuntime.hpp b/include/LuaRuntime.hpp new file mode 100644 index 0000000..85bb1ae --- /dev/null +++ b/include/LuaRuntime.hpp @@ -0,0 +1,31 @@ +#pragma once +#include <QtCore> +#include <lua.hpp> + +#include "widgets/BrowserManager.hpp" + +class LuaRuntime : public QObject { + Q_OBJECT + +public: + static LuaRuntime *instance() { + static LuaRuntime inst; + return &inst; + } + + void evaluate(const char *code); + +protected: + LuaRuntime(); + ~LuaRuntime(); + +signals: + void urlOpenned(QString url, OpenType openType); + +protected: + static int lua_onUrlOpen(lua_State *state); + static int lua_onUrlTabOpen(lua_State *state); + +private: + lua_State *state; +}; diff --git a/include/widgets/BrowserManager.hpp b/include/widgets/BrowserManager.hpp index 84d6f6a..8cf265d 100644 --- a/include/widgets/BrowserManager.hpp +++ b/include/widgets/BrowserManager.hpp @@ -5,6 +5,8 @@ #include <QWebEngineView> #include <sys/types.h> +enum OpenType { OpenUrl, OpenUrlInTab, OpenUrlInBgTab, OpenUrlInWindow }; + class BrowserManager : public QWidget { Q_OBJECT @@ -20,6 +22,9 @@ public: QWebEngineView *createNewWebView(QUrl url = BrowserManager::NewtabURL, bool focus = false); + void openUrl(QUrl url = BrowserManager::NewtabURL, + OpenType openType = OpenType::OpenUrl); + std::vector<QUrl> webViewUrls(); u_int32_t currentWebViewIndex(); u_int32_t webViewCount(); diff --git a/include/widgets/MainWindow.hpp b/include/widgets/MainWindow.hpp index 8ba0ed9..15e2889 100644 --- a/include/widgets/MainWindow.hpp +++ b/include/widgets/MainWindow.hpp @@ -4,6 +4,7 @@ #include <QObject> #include <QWebEngineView> +#include "LuaRuntime.hpp" #include "widgets/BrowserManager.hpp" #include "widgets/CommandInput.hpp" @@ -21,4 +22,5 @@ protected: private: BrowserManager *browserManager; CommandInput *commandInput; + LuaRuntime *luaRuntime; }; |
