Refakturiert die Anwendung und modernisiert das Build-System
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.
This commit is contained in:
18
lib/toolbox_win/CMakeLists.txt
Normal file
18
lib/toolbox_win/CMakeLists.txt
Normal file
@@ -0,0 +1,18 @@
|
||||
cmake_minimum_required(VERSION 3.30)
|
||||
|
||||
project(toolbox_win LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
|
||||
add_library(toolbox_win STATIC
|
||||
src/icon_utils.cpp
|
||||
)
|
||||
|
||||
target_include_directories(toolbox_win
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
)
|
||||
|
||||
if (WIN32)
|
||||
target_link_libraries(toolbox_win PUBLIC user32)
|
||||
endif ()
|
||||
12
lib/toolbox_win/include/toolbox_win/icon_utils.h
Normal file
12
lib/toolbox_win/include/toolbox_win/icon_utils.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <Windows.h>
|
||||
#else
|
||||
typedef void* HINSTANCE;
|
||||
typedef void* HICON;
|
||||
#endif
|
||||
|
||||
extern "C" {
|
||||
HICON toolbox_load_small_icon(HINSTANCE instance, int resource_id);
|
||||
}
|
||||
26
lib/toolbox_win/src/icon_utils.cpp
Normal file
26
lib/toolbox_win/src/icon_utils.cpp
Normal file
@@ -0,0 +1,26 @@
|
||||
#include "toolbox_win/icon_utils.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <Windows.h>
|
||||
#endif
|
||||
|
||||
HICON toolbox_load_small_icon(HINSTANCE instance, int resource_id) {
|
||||
#ifdef _WIN32
|
||||
if (!instance) {
|
||||
instance = GetModuleHandle(NULL);
|
||||
}
|
||||
|
||||
return static_cast<HICON>(LoadImage(
|
||||
instance,
|
||||
MAKEINTRESOURCE(resource_id),
|
||||
IMAGE_ICON,
|
||||
GetSystemMetrics(SM_CXSMICON),
|
||||
GetSystemMetrics(SM_CYSMICON),
|
||||
LR_SHARED
|
||||
));
|
||||
#else
|
||||
(void)instance;
|
||||
(void)resource_id;
|
||||
return nullptr;
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user