TIP 555: Enable listing of layouts in ttk::Themes

Login
Bounty program for improvements to Tcl and certain Tcl packages.
Author:         Manfred Rosenberger<manfred.rosenberger@gmx.net>
State:          Withdrawn
Type:           Project
Vote:           Pending
Created:        19-Nov-2019
Tcl-Version:	8.6
Post-History:
Obsoleted-By:   584

Abstract

This tip proposes listing of available layouts in ttk::theme

Rationale

inside a theme I can ask for known layouts but cannot ask for all other predefined layouts like I can ask for all predefined elements:

ttk::style element names

... Vertical.Scale.slider Horizontal.Scrollbar.thumb downarrow Combobox.field sizegrip ...

Inside a ttk::style I can add a new layout, e.g.:
ttk::style layout \
Left.Accordion {
Button.button -children {
Left.Accordion.focus -children {
Left.Accordion.padding -children {
Left.Accordion.label -sticky w
}}}}

I can test the layout in query this layout by its name:

ttk::style layout Left.Accordion
... Button.button -sticky nswe -children {Left.Accordion.focus -sticky nswe -children {Left.Accordion.padding -sticky nswe -children {Left.Accordion.label -sticky w}}}

or test it by using it in a ttk widget
ttk::button parent.bt -text "button" -style Left.AccordionButton

the issue:

  • if the layout does not exist I get an error.

Expected Feature

I want to check if my prefered theme does provide all the required layouts of my gui.

Proposal

I expect something like this
ttk::style layout names

Impact

  • This feature gives me the opportunity to introspect my theme.
  • This feature will gives me together with the other arguments of the ttk::style commands the opportunity to compare different themes.
  • This feature will also make it easier to clone a style and to modify it.
History