Task - #171 - Refactor UI Theme System

Project: Antilia (alpha) Priority:
2
 High
Type:
Refactor
Status:
Complete
Reported By:
jeff 
Assigned To:
jeff 
Created On: September 25, 2020 Resolved On: -

Is This Bug Affecting You?


Users Reporting This Issue: 1

I am Affected!
 
Add a Comment

Refactor the UI theme system by implementing a temporary "Theme2" class. Windows+widget combinations with Theme2 set will have access to a new UI rendering path that replaces the WindowDecorator system with theme-controlled rendering steps/layers.

The new theme system should support:
- "Point" based font sizes
- Theme Values, value references, and value overrides on both windows and widgets. (Primarily for custom colorized window, may have other applications)
- RenderSteps allow themes to specify and control layers before and after the Widget::draw() and Widget::drawChildren() functions.
- Styles allow a theme to define multiple styles for a widget
- States allow a theme to alter how a widget renders across multiple states (Window Active or Inactive, Button up or down, etc.) This eliminates the need for Borders to define multiple states.

The idea is that all UI elements should continue to render with their existing theme, and new Theme2 files can be developed and widgets can be improved without stopping all other development or requiring a branch.


Highlights
Comments Only
All Activity

Tuesday, September 21, 2021

Status changed from
In Progress
to
Complete
Reason:This item was implemented as Theme2.

Friday, September 25, 2020

New Task Created!

Refactor the UI theme system by implementing a temporary "Theme2" class. Windows+widget combinations with Theme2 set will have access to a new UI rendering path that replaces the WindowDecorator system with theme-controlled rendering steps/layers. The new theme system should support: - "Point" based font sizes - Theme Values, value references, and value overrides on both windows and widgets. (Primarily for custom colorized window, may have other applications) - RenderSteps allow themes to specify and control layers before and after the Widget::draw() and Widget::drawChildren() functions. - Styles allow a theme to define multiple styles for a widget - States allow a theme to alter how a widget renders across multiple states (Window Active or Inactive, Button up or down, etc.) This eliminates the need for Borders to define multiple states. The idea is that all UI elements should continue to render with their existing theme, and new Theme2 files can be developed and widgets can be improved without stopping all other development or requiring a branch.
Page: 1