From 97a0da5e2754d6bbeabc33b1cd39e2ae65dae1d3 Mon Sep 17 00:00:00 2001 From: Marco Maroni <166719395+marcomaroni-github@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:19:04 +0200 Subject: [PATCH] docs: add root README Describes the app, code layout, build, test, and packaging steps. Co-Authored-By: Claude Sonnet 5 --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..dd804f0 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# TaskbarCalculator + +TaskbarCalculator è un'applicazione C++/Win32 per Windows 11 che risiede nell'area di +notifica (system tray) e mostra una finestra calcolatrice sempre in primo piano, +utilizzabile da tastiera. + +Il progetto nasce come migrazione di una precedente DeskBand (un'estensione COM in-process +ospitata dalla taskbar), non più caricabile su Windows 11 dalla shell per estensioni di +terze parti. La versione attuale è un eseguibile standalone che aggiunge un'icona nell'area +di notifica: click sinistro mostra/nasconde la finestra, click destro apre un menu con le +opzioni Show/Hide, Start at login, About ed Exit. + +## Struttura del codice + +- `App.cpp` — punto di ingresso (`wWinMain`), gestione singola istanza, icona di tray e + finestra proprietaria nascosta. +- `CalculatorWindow.cpp/.h` — finestra della calcolatrice, gestione input da tastiera, + formattazione dei numeri secondo le impostazioni regionali, posizionamento e persistenza. +- `Calculator.cpp/.h` — motore di calcolo, indipendente dalla UI, basato su una macchina a + stati (`init`, `first_oper`, `operation`, `second_oper`, `result`, `error`). Supporta le + quattro operazioni di base, radice quadrata, percentuale, cambio di segno, reciproco + (1/x). +- `Settings.cpp/.h`, `StartupManager.cpp/.h`, `VisualStyle.cpp/.h`, `TrayIcon.cpp/.h`, + `Utils.cpp/.h` — moduli di supporto (registro per posizione/visibilità finestra, avvio + automatico al login, tema classico/moderno, icona di tray, utilità varie). + +Dettagli più approfonditi su architettura e convenzioni si trovano in `CLAUDE.md`. + +## Build + +Richiede Visual Studio 2022 (toolset v143), Windows SDK 10.0.26100.0 e i componenti +C++/WinRT per la funzionalità di avvio al login. + +``` +msbuild TaskbarCalculator.vcxproj /p:Configuration=Debug /p:Platform=x64 +msbuild TaskbarCalculator.vcxproj /p:Configuration=Release /p:Platform=x64 +``` + +Va compilato il file `.vcxproj` direttamente, non la `.sln` (che referenzia un progetto di +setup non presente in questo repository). L'eseguibile viene prodotto in +`x64\\TaskbarCalculator.exe`. + +## Test + +Il motore di calcolo (`Calculator.cpp/.h`) è indipendente dal precompiled header e viene +compilato ed eseguito separatamente con un piccolo harness header-only: + +``` +tests\build-and-run.cmd +``` + +da un prompt "x64 Native Tools Command Prompt". + +## Packaging + +Sono previste due modalità di distribuzione: + +- **Installer classico**: `Packaging\TaskbarCalculatorSetup.iss`, compilato con Inno Setup + (`ISCC.exe`), oppure tramite lo script `Packaging\build-setup.cmd` che esegue build + Release x64 e compilazione dell'installer in un solo passaggio. +- **MSIX**: script PowerShell in `Packaging\` (`MakeAssets.ps1`, `MakeCert.ps1`, + `BuildMsix.ps1`), mantenuto in vista di una eventuale pubblicazione sul Microsoft Store. + +In entrambi i casi l'avvio automatico al login usa l'API MSIX `StartupTask` quando +l'applicazione è pacchettizzata, con fallback sulla chiave di registro +`HKCU\...\Run` quando è installata in modalità classica. -- 2.51.2