Provided by: tk8.6-doc_8.6.14-1build1_all bug

NAME

       ttk::style - Manipulate style database

SYNOPSIS

       ttk::style option ?args?
________________________________________________________________________________________________________________

NOTES

       See  also  the  Tcl'2004 conference presentation, available at https://tktable.sourceforge.net/tile/tile-
       tcl2004.pdf

DEFINITIONS

       Each widget is assigned a style, which specifies the set of elements making up the widget  and  how  they
       are arranged, along with dynamic and default settings for element options.  By default, the style name is
       the same as the widget's class; this may be overridden by the -style option.

       A theme is a collection of  elements  and  styles  which  controls  the  overall  look  and  feel  of  an
       application.

DESCRIPTION

       The ttk::style command takes the following arguments:

       ttk::style configure style ?-option ?value option value...? ?
              Sets the default value of the specified option(s) in style.

       ttk::style element args

              ttk::style element create elementName type ?args...?
                     Creates  a new element in the current theme of type type.  The only cross-platform built-in
                     element type is image (see ttk_image(3tk)) but themes may define other element  types  (see
                     Ttk_RegisterElementFactory).  On  suitable  versions  of  Windows  an  element  factory  is
                     registered to create Windows theme elements (see ttk_vsapi(3tk)).

              ttk::style element names
                     Returns the list of elements defined in the current theme.

              ttk::style element options element
                     Returns the list of element's options.

       ttk::style layout style ?layoutSpec?
              Define the widget layout for style style.  See LAYOUTS below for the  format  of  layoutSpec.   If
              layoutSpec is omitted, return the layout specification for style style.

       ttk::style lookup style -option ?state ?default??
              Returns  the  value specified for -option in style style in state state, using the standard lookup
              rules for element options.  state is a list of state names; if omitted, it defaults  to  all  bits
              off  (the  “normal” state).  If the default argument is present, it is used as a fallback value in
              case no specification for -option is found.

       ttk::style map style ?-option { statespec value... }?
              Sets dynamic values of the specified option(s) in style.  Each statespec / value pair is  examined
              in order; the value corresponding to the first matching statespec is used.

       ttk::style theme args

              ttk::style theme create themeName ?-parent basedon? ?-settings script... ?
                     Creates a new theme.  It is an error if themeName already exists.  If -parent is specified,
                     the new theme will inherit styles, elements, and layouts from the parent theme basedon.  If
                     -settings is present, script is evaluated in the context of the new theme as per ttk::style
                     theme settings.

              ttk::style theme names
                     Returns a list of all known themes.

              ttk::style theme settings themeName script
                     Temporarily sets the current theme to themeName, evaluate script, then restore the previous
                     theme.   Typically script simply defines styles and elements, though arbitrary Tcl code may
                     appear.

              ttk::style theme use ?themeName?
                     Without an argument the result is the name of the current theme.   Otherwise  this  command
                     sets the current theme to themeName, and refreshes all widgets.

LAYOUTS

       A layout specifies a list of elements, each followed by one or more options specifying how to arrange the
       element.  The layout mechanism uses a simplified version of the pack geometry manager: given  an  initial
       cavity,  each  element  is  allocated a parcel.  Then the parcel actually used by the element is adjusted
       within the allocated parcel.  Valid options are:

       -children { sublayout... }
              Specifies a list of elements to place inside the element.

       -expand boolean
              Specifies whether the allocated parcel is the entire cavity. If so, simultaneous specification  of
              -side is ignored.  Defaults to 0.

       -side side
              Specifies  which side of the cavity to place the element; one of left, right, top, or bottom.  For
              instance, -side top allocates the parcel along the top of  the  cavity  having  width  and  height
              respectively  the  width  of  the cavity and the height of the element.  If omitted, the allocated
              parcel is the entire cavity (same effect as -expand 1).

       -sticky [nswe]
              Specifies the actual parcel position and size inside the allocated parcel.   If  specified  as  an
              empty string then the actual parcel is centered in the allocated parcel. Default is nswe.

       For example:
              ttk::style layout Horizontal.TScrollbar {
                  Scrollbar.trough -children {
                      Scrollbar.leftarrow -side left
                      Scrollbar.rightarrow -side right
                      Horizontal.Scrollbar.thumb -side left -sticky ew
                  }
              }

SEE ALSO

       ttk::intro(3tk), ttk::widget(3tk), photo(3tk), ttk_image(3tk)

KEYWORDS

       style, theme, appearance