Files
Toolbox/inc/toolboxWindow.h
T
Yadciel f5dd50a9f7 Add "Einstellungen" interface and improve Lua execution flow
Introduced a new "Einstellungen" (Settings) interface with an HTML page and integrated it into the application workflow. Enhanced Lua execution handling with optional console output and improved UI updates. Adjusted installer UI to better align buttons and icons with user experience.
2024-12-16 23:16:22 +01:00

80 lines
1.7 KiB
C++

#pragma once
#include <saucer/smartview.hpp>
#include "modules/hwnd_module.h"
#include "all.hpp"
#include <sol/sol.hpp>
#include <saucer/webview.hpp>
class ToolboxWindow {
public:
// Konstruktor erhält das Application-Objekt als Parameter
explicit ToolboxWindow(std::shared_ptr<saucer::application>& app);
~ToolboxWindow();
bool m_bShow = false;
// Methode zum Anzeigen des Fensters
void show();
void hide();
// Für die Fensterinitialisierung
void initialize();
void OptionWindow();
struct ToolboxItem{
std::string id;
std::string name;
std::string path;
std::string icon;
std::string lua_script;
std::string description;
std::string category;
std::string version;
std::string author;
std::string url;
std::string license;
};
std::vector<ToolboxItem> m_toolboxItems;
saucer::smartview<saucer::default_serializer, hwnd_module> m_webview;
private:
std::shared_ptr<saucer::application> m_app;
std::thread m_threadMonitor;
std::atomic<bool> m_runningMonitor = true;
std::string jsonString;
#ifdef _WIN32
std::filesystem::path userPath = std::getenv("USERPROFILE"); // Windows
#else
std::filesystem::path userPath = std::getenv("HOME"); // Unix/Linux/MacOS
#endif
void configureWindow();
void loadResources();
void runLuaScript();
void ExposeToJs();
bool ensureToolboxInUserPath();
void fillToolboxMenu();
void debug_print();
void run_lua(int id);
void monitor_focus();
void open_file_system();
void SetJsonItems();
void openEinst();
void openIndex();
};