- Updated G2DButtonControlImpl, G2DLabelControlImpl, G2DSliderControlImpl, G2DSwitchControlImpl, G2DTableControlImpl, G2DTextfieldControlImpl, G2DTextfieldControlImpl2, G2DToggleButtonControlImpl, G2DWindowCloseButtonControlImpl, and G2DWindowPanelControlImpl to use G2DThemeManager directly instead of casting from G2DRenderer.
- Added new theme factory beans: BevelDarkThemeFactoryBean, BevelLightThemeFactoryBean, MetroPatternRenderer, and updated existing theme factory beans to improve theme consistency and aesthetics.
- Modified audio settings in DemoModule for improved user experience.
- Adjusted background and foreground colors in various themes for better visibility and aesthetics.
- Introduced new themes: Contemporary, Dream, Fantasy, Modern, Neon, Noir, and Urban.
- Implemented FactoryBeans for each theme to facilitate their creation.
- Developed pattern renderers for each theme to define their visual styles.
- Updated G2DAutoConfiguration to include new theme beans.
- Enhanced DemoModule to support dynamic theme selection with improved layout and positioning.
- Added `ComponentState` enum to represent UI component states.
- Implemented `G2DThemeManager` to manage themes and pattern renderers.
- Created `HSBColor` class for HSB color representation and manipulation.
- Defined `PatternRenderer` interface for rendering UI patterns.
- Developed `SpacecraftPatternRenderer` and `VintagePatternRenderer` for default theming styles.
- Introduced `Theme` class to encapsulate theme properties and builder pattern.
- Added `SpacecraftThemeFactoryBean` and `VintageThemeFactoryBean` for theme instantiation.
- Updated `G2DWindowPanelControlImpl` to utilize theme manager.
- Removed obsolete `DrawWindowRenderingBo` interface.
- Enhanced `DemoModule` to support theme selection and application.
- Renamed `moduleManager` to `moduleService` in RendererData for clarity.
- Updated G2DRenderer to use the new module service methods with string IDs instead of class references.
- Modified RendererWorkingSet interface and implementation to use string IDs for module identification instead of class types.
- Adjusted tests in ModuleManagerTest and RendererWorkingSetImplTest to reflect changes in module management and identification.
- Ensured consistency across the codebase by replacing class references with module IDs in method calls and assertions.
- Added AudioData class to encapsulate audio name and input stream.
- Introduced AudioLoader for loading audio files with caching mechanism.
- Created AudioLoaderRequest for handling audio loading requests.
- Developed AudioOptions class to manage audio settings for sound effects and music.
- Implemented AudioPlayer interface and its concrete classes: AudioPlayerMultiStream and AudioPlayerSingleStream.
- Established AudioStrategy interface with implementations for Java Mixer and Software Mixing strategies.
- Enhanced StaticResource class with a custom toString method for better resource path representation.
- Updated Spring configuration to include AudioAutoConfiguration for audio management.
feat(renderer): Integrate StaticResourceService for dynamic resource loading in renderer
feat(font): Implement font resource management and update default font handling
feat(resources): Add icon and font files for renderer and localization features