- Main window layout
- Menu bar
- Tool bar
- Status bar
- Log window
- Configuration view
- UI for adding/editing plugins, folders, macros, events, actions
- Integrate with main window
- Tree view
- Hierarchical view of plugins, folders, macros, events, actions
- Context menu
- Drag and drop support
- Parent-child validation
- Auto-save functionality
- Basic UI layout
- Toolbar with icons
- Fix resource loading for icons in main application
- Ensure consistent resource handling between test and main binaries
- Menu bar
- Status bar
- Log view
- Configuration tree view
- Save/load configuration
- Command line argument handling for configuration paths
- Connect file menu actions to save/load functions
- Support for .egtree XML format
- Fix path handling for configuration files
- Enhance .egtree file format support with base64 encoding/decoding
- Keyboard shortcuts
- Support for common operations (new, open, save, etc.)
- Support for editing operations (cut, copy, paste, etc.)
- Support for configuration operations (add plugin, folder, macro, etc.)
- Plugin System
- Plugin traits and registry
- Plugin discovery and loading infrastructure
- Dynamic library loading implementation
- Plugin hot-reloading
- Route events to/from plugins
- Error handling
- Plugin reload process
- Event Handling
- Event bus / message passing
- Event dispatch and routing
- Macro Execution
- Macro execution engine
- Map events to macros
- Flow control (if/else, loops, waits)
- Action Execution
- Execute action sequences
- Builtin actions
- Plugin-defined actions
- Persistence
- Save/load configuration (partially implemented but not working)
- Auto-save
- Import/export
- Fix "export ordinal too large" errors in DLL builds
- Configure build for different scenarios (testing, production)
- Separate library (rlib) from dynamically linked library (cdylib)
- Windows installer
- Linux packages
- Mac bundle
- Python plugin loader
- Example logger plugin
- Update to latest plugin traits
- Proper error handling
- State management
- Common plugins (to be defined)
- User guide
- API docs for plugins
- Contributor guide
- Basic action trait and manager implementation
- Action result handling
- Action configuration system
- Action grouping support
- Action compilation system
- Pre-execution optimization
- Caching compiled actions
- Invalidation mechanism
- Action thread management
- Dedicated action execution thread
- Thread pool for parallel actions
- Action execution queue
- Action state management
- Persistent state storage
- State restoration on reload
- State sharing between actions
- Action configuration dialog
- Dynamic form generation based on action parameters
- Property grid for parameter display and editing
- Validation feedback
- Help text integration
- Action group tree view
- Hierarchical display of action groups
- Drag and drop support
- Context menu integration
- Action execution feedback
- Progress indicators
- Success/failure notifications
- Execution log integration
- Flow Control Actions
- Conditional execution (If/Else)
- Loops (While/For)
- Delay/Wait
- Jump to macro
- System Actions
- Execute program
- System commands
- Registry operations
- File operations
- Window Actions
- Window manipulation
- Send keys
- Mouse control
- Mouse recorder (capturing and playback)
- Variable Actions
- Set/Get variables
- Mathematical operations
- String operations
- Action registration API
- Plugin action discovery
- Dynamic action loading
- Version compatibility checking
- Action documentation
- Help page generation
- Example code
- Parameter documentation
- Action testing framework
- Unit test helpers
- Integration test support
- Mock event generation
- Action configuration storage
- Save/load action parameters
- Export/import actions
- Configuration versioning
- Action state persistence
- Runtime state serialization
- State recovery mechanisms
- Clean shutdown handling
- Action development guide
- Creating new actions
- Best practices
- Example implementations
- User documentation
- Action usage guide
- Configuration examples
- Troubleshooting guide
Add action configuration UIFix Result unwrapping in main.rsFix GTK4 compatibility issuesEnhance .egtree file format supportFix resource loading for icons- Create system action implementations (in progress)
- Run Command action implemented
- File Operations action implemented
- Additional system actions needed (Registry operations, Window management)
- Implement action thread management
- Add action persistence
- Develop plugin action integration
- Write documentation
- Action templates
- Action recording
- Action debugging tools
- Action performance profiling
- Action security sandbox
- Remote action execution
- Implement eg.globals equivalent
- Support for local, MQTT, and Redis backends
- Serialization of different data types
- Publish/subscribe functionality
- Additional compatibility with legacy Python code
- Support legacy Python plugins
- Python binding layer
- Python plugin bridge
- Support for Python callables in actions
- Core API compatibility
- Match Python API function signatures
- Support for Python events in Rust
- UI compatibility
- Support for Python UI elements
- Python-defined configuration panels
- Legacy dialog support
- IR Receiver Plugins
- USB-UIRT
- LIRC
- Streamzap
- Microsoft MCE Remote
- System Control Plugins
- Window control
- Keyboard emulation
- Mouse control
- File operations
- Network Plugins
- NetworkSender/Receiver
- Webserver
- MQTT Client
- Media Control Plugins
- VLC
- Media Player Classic
- WinAmp
- Hardware Support
- Serial port communication
- USB device support
- HID device support
- Utility Plugins
- Speech (TTS)
- Sound mixer
- Timer/Scheduler
- WinAPI integration for hardware/system access
- Plugin installation/update system
- Language translation system
- Remote control functionality
- Auto-start and tray icon functionality
- Registry handling
- Rust's ownership model requires careful design of event and plugin systems
- GTK4 migration takes significant effort but provides a more modern UI framework
- Mock implementations are crucial for testing in a UI-heavy application
- Need to balance Python compatibility with modern Rust idioms
- Consider approach for plugins: native Rust vs Python bridge vs both
- Resource loading in GTK applications requires proper initialization and path handling
- Borrow checker issues in GTK applications often require restructuring UI initialization