Diese umfangreiche Überarbeitung verbessert die Architektur, den Build-Prozess und die Benutzeroberfläche der Toolbox. Wesentliche Änderungen: - **Build-System:** Umfassende Modernisierung des CMake-Builds für verbesserte Stabilität und Wartbarkeit. Die Konfiguration wurde auf zielbasierte Befehle umgestellt, `c_tray` stabilisiert und `saucer-desktop` entfernt. - **Modulare Architektur:** Die Kernlogik von `ToolboxWindow` wurde in dedizierte Helferklassen ausgelagert, darunter `LuaRunner` für die Skriptausführung, `ToolRegistry` für die Tool-Erkennung, `ResourceLoader` für UI-Ressourcen, `ToolboxJsBridge` für JavaScript-Bindungen und `WindowPlacement` für die Fensterverwaltung. Dies reduziert die Komplexität und fördert die Wiederverwendbarkeit. - **Benutzeroberfläche (UI):** Die HTML-Templates (`einstellungen_custom.html`, `index.html`) und Stylesheets (`styles.css`) wurden zentralisiert und überarbeitet, um eine kohärentere Benutzeroberfläche mit benutzerdefinierten Fensterdekorationen zu bieten. Neue Funktionen wie das Öffnen der Kommandozeile und eine "Tool hinzufügen"-Karte wurden integriert. - **Tray-Verwaltung:** Die Tray-Icon-Logik wurde in `TrayController` gekapselt, um eine robustere und zentralisierte Steuerung zu ermöglichen, insbesondere im Umgang mit Explorer-Neustarts.
29 lines
926 B
C++
29 lines
926 B
C++
#pragma once
|
|
|
|
#include <functional>
|
|
#include <string>
|
|
|
|
#include <saucer/smartview.hpp>
|
|
|
|
class ToolboxJsBridge {
|
|
public:
|
|
struct Bindings {
|
|
std::function<std::string()> getToolboxItems;
|
|
std::function<void(int)> runLua;
|
|
std::function<void(int)> cancelLua;
|
|
std::function<void()> debugPrint;
|
|
std::function<void()> openFileSystem;
|
|
std::function<void()> openCommandPrompt;
|
|
std::function<void(int)> openSettings;
|
|
std::function<void()> openIndex;
|
|
std::function<void()> getNewContent;
|
|
std::function<int()> getLuaTimeoutSeconds;
|
|
std::function<void(int)> setLuaTimeoutSeconds;
|
|
std::function<std::string()> getActiveToolName;
|
|
std::function<std::string()> getToolConfigIni;
|
|
std::function<void(const std::string&)> setToolConfigIni;
|
|
};
|
|
|
|
static void registerBindings(saucer::smartview& webview, Bindings bindings);
|
|
};
|