Skip to content

[KISS/Clean Code] Split modern selector and theme widgets into focused files and classes #63

Description

@github-actions

Audit finding

ModernTheme.cs contains theme tokens, menu roles, form styling, custom buttons, toggle switch, rounded panel and additional drawing/rendering classes.

ModernSelectorComboBoxColumn.cs contains the selector option model, column, cell, editing control, dropdown behavior and painter.

These files have become presentation “grab bags”, making ownership and tests harder to locate.

Target state

Organize custom presentation code by responsibility:

  • immutable theme tokens and theme application;
  • each reusable widget in its own focused type/file;
  • selector model/column/cell/editor/painter separated by role;
  • pure visual-state resolvers kept testable without control creation.

This is a structural clean-up, not a redesign of the visual style.

Acceptance criteria

  • Theme tokens do not contain widget implementations.
  • Selector editor and selector painter have separate focused contracts.
  • Each custom control has an obvious file and ownership boundary.
  • Existing keyboard, mouse, focus and accessibility behavior is unchanged.
  • Current visual-state tests remain green and are easier to locate.
  • No generic inheritance hierarchy is added solely to reduce file count.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions