Add GUI desktop application

- Add gui/ package: CustomTkinter app with dashboard, mods, tools, logs,
  and settings views; first-run SetupWizard for config.json generation
- Add gui.py root entry point (calls gui.run_app())
- Add selection.json for GUI selection state persistence
- Add customtkinter to requirements.txt
- Fix link_mods.py minor issues surfaced during GUI integration
- Add modlist_html/Test_Preset_A.html and Test_Preset_B.html as example inputs
- Update README.md: add GUI prerequisites, gui.py script section, gui/ folder
  structure, customtkinter to prerequisites table
- Update CLAUDE.md: add python gui.py to common commands, document GUI package
  architecture and views

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
revernomad17
2026-04-08 13:36:49 +07:00
parent 595544e94f
commit 57895a04d3
20 changed files with 2185 additions and 6 deletions

28
gui/_constants.py Normal file
View File

@@ -0,0 +1,28 @@
from __future__ import annotations
from pathlib import Path
# ---------------------------------------------------------------------------
# Window geometry
# ---------------------------------------------------------------------------
SIDEBAR_W: int = 190
APP_TITLE: str = "Arma Mod Manager"
# ---------------------------------------------------------------------------
# Status colours
# ---------------------------------------------------------------------------
COLOR_OK: str = "#4CAF50"
COLOR_PENDING: str = "#9E9E9E"
COLOR_RUNNING: str = "#2196F3"
COLOR_ERROR: str = "#F44336"
COLOR_WARN: str = "#FF9800"
# ---------------------------------------------------------------------------
# Filesystem
# ---------------------------------------------------------------------------
# gui/ lives one level below the project root
PROJECT_ROOT: Path = Path(__file__).parent.parent
SELECTION_FILE: Path = PROJECT_ROOT / "selection.json"