deargui-vpl/docs/README.md

137 lines
4.4 KiB
Markdown

# Documentation Index
## Quick Start
- **[Quick Start Guide](../CONSOLE_VARIANT_QUICKSTART.md)** - Get up and running fast
- **[Debugging Guide](../DEBUGGING.md)** - How to debug GUI and console variants
## Console Variants
- **[Console Variants Guide](console-variants.md)** - Full guide to console variants
- **[CMake Options](cmake-options.md)** - All configuration options
- **[Console Variant Setup](CONSOLE_VARIANT_SETUP.md)** - Implementation details
## CLI/Headless Mode
- **[CLI Architecture](cli.md)** ⭐ - Architectural options for true CLI mode
- **[CLI Implementation Example](cli-implementation-example.md)** - Concrete implementation guide
## Feature Guides
- **[Groups & Containers](groups-container-api.md)** - Container system API
- **[Groups Architecture](groups-container-architecture.md)** - Container system architecture
- **[Waypoints](waypoints.md)** - Waypoint system
- **[Shortcuts](shortcuts.md)** - Keyboard shortcuts
- **[Screenshots](screen.md)** - Taking screenshots
- **[MCP Screenshots](taking-screenshots-mcp.md)** - Using MCP for screenshots
- **[Plugins](plugins-js.md)** - Plugin system
## Technical Documentation
- **[Classes Documentation](../docs-classes.md)** - Class reference
- **[Complete Solution Summary](COMPLETE_SOLUTION_SUMMARY.md)** - Full solution overview
- **[Implementation Summary](IMPLEMENTATION_SUMMARY.md)** - Implementation details
- **[TODO](TODO.md)** - Future enhancements
## Test Reports
- **[Window State Test](WINDOW_STATE_TEST_REPORT.md)** - Window state persistence tests
- **[Zoom to Content Fix](ZOOM_TO_CONTENT_FIX.md)** - Zoom functionality fixes
## Current State (Nov 2025)
### Console Variants ✅
- **GUI Variant**: Standard Windows application with console attachment
- **Console Variant**: Always-visible console for debugging
- **Visual Studio**: Console variant is default startup project
- **Build Scripts**: Support for both variants
### CLI Mode 🚧
- **Status**: Architecture documented, implementation ready
- **Options**: 5 architectural approaches analyzed
- **Recommendation**: Start with Option 1 (Headless Flag) for quick wins
- **Next Step**: Implement headless mode following [cli-implementation-example.md](cli-implementation-example.md)
## Architecture Summary
```
Current Architecture:
blueprints-example.exe (GUI with console attach)
blueprints-example-console.exe (GUI + always-visible console)
Proposed CLI Architecture:
--headless flag → RunCLI() (No UI, true CLI mode)
(default) → App.Run() (Full UI as before)
```
## Quick Reference
### Build Commands
```bash
# GUI variant
./scripts/build.sh Debug
# Console variant
./scripts/build.sh Debug console
# Both
cmake --build build --config Debug
```
### Run Commands
```bash
# GUI
./build/bin/blueprints-example_d.exe --file graph.json
# Console
./build/bin/blueprints-example-console_d.exe --file graph.json
# CLI (once implemented)
./build/bin/blueprints-example-console_d.exe --headless --file graph.json --command validate
```
### Visual Studio
```bash
# Open solution (console variant is default startup)
start build\imgui-node-editor.sln
# Press F5 to debug console variant
```
### CMake Options
```bash
# Default: Both variants, console as startup
cmake -S examples -B build
# GUI only
cmake -S examples -B build -DBUILD_CONSOLE_VARIANTS=OFF
# Both, GUI as startup
cmake -S examples -B build -DUSE_CONSOLE_AS_STARTUP=OFF
```
## Getting Started with CLI Mode
1. Read **[CLI Architecture](cli.md)** to understand options
2. Follow **[CLI Implementation Example](cli-implementation-example.md)** for step-by-step guide
3. Start with Option 1 (Headless Flag) - minimal changes, maximum benefit
4. Test with: `--headless --file graph.json --command validate`
5. Refactor to Option 3 or 4 later if needed
## Key Decisions Made
| Decision | Choice | Rationale |
|----------|--------|-----------|
| Console Variants | Build both by default | Better development experience |
| VS Startup Project | Console variant | Immediate console output for debugging |
| Entry Point | Shared `entry_point.cpp` | Reuse CLI parsing, single codebase |
| CLI Mode | Headless flag (recommended) | Quick to implement, validates use cases |
## Contributing
When adding new features:
- GUI features → Add to `app.cpp` / `app-*.cpp`
- CLI commands → Add to `blueprints-cli.cpp` (once created)
- Core logic → Extract to separate files for reuse
- Document in appropriate guide above