Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 9, 2022

ttk_vsapi (1t)


ttk_vsapi - Define a Microsoft Visual Styles element


ttk::style  element  create  name  vsapi  className  partId  ?stateMap?


ttk_vsapi(1t)                  Tk Themed Widget                  ttk_vsapi(1t)


       ttk_vsapi - Define a Microsoft Visual Styles element

       ttk::style  element  create  name  vsapi  className  partId  ?stateMap?

       The vsapi element factory creates a new element in  the  current  theme
       whose  visual appearance is drawn using the Microsoft Visual Styles API
       which is responsible for the themed styles on  Windows  XP  and  Vista.
       This  factory  permits any of the Visual Styles parts to be declared as
       Ttk elements that can then be included in a style layout to modify  the
       appearance of Ttk widgets.

       className  and  partId  are  required parameters and specify the Visual
       Styles class and part as given  in  the  Microsoft  documentation.  The
       stateMap  may be provided to map Ttk states to Visual Styles API states
       (see STATE MAP).

       Valid options are:

       -padding padding
              Specify the element's interior padding.  padding is a list of up
              to four integers specifying the left, top, right and bottom pad-
              ding quantities respectively.  If fewer than four  elements  are
              specified,  bottom  defaults to top, right defaults to left, and
              top defaults to left.  In other words, a list of  three  numbers
              specify  the  left,  vertical,  and right padding; a list of two
              numbers specify the horizontal and the vertical padding; a  sin-
              gle  number  specifies  the  same padding all the way around the
              widget.  This option may not be mixed with any other options.

       -margins padding
              Specifies the elements exterior padding.  padding is a  list  of
              up  to  four integers specifying the left, top, right and bottom
              padding quantities respectively.  This option may not  be  mixed
              with any other options.

       -width width
              Specifies the height for the element. If this option is set then
              the Visual Styles API will not be queried  for  the  recommended
              size or the part. If this option is set then -height should also
              be set. The -width and -height options cannot be mixed with  the
              -padding or -margins options.

       -height height
              Specifies  the  height  of  the  element.  See  the comments for

       The stateMap parameter is a list of ttk states  and  the  corresponding
       Visual  Styles API state value.  This permits the element appearance to
       respond to changes in the widget state such as becoming active or being
       pressed. The list should be as described for the ttk::style map command
       but note that the last pair in the list should be the default state and
       is  typically  an empty list and 1. Unfortunately all the Visual Styles
       parts have different state values and these must be looked up either in
       the  Microsoft  documentation  or  more likely in the header files. The
       original header to use was tmschema.h, but in more recent  versions  of
       the Windows Development Kit this is vssym32.h.

       If  no  stateMap parameter is given there is an implicit default map of
       {{} 1}

       Create a correctly themed close button by  changing  the  layout  of  a
       ttk::button(n).  This  uses  the WINDOW part WP_SMALLCLOSEBUTTON and as
       documented the states CBS_DISABLED, CBS_HOT, CBS_NORMAL and  CBS_PUSHED
       are mapped from ttk states.
              ttk::style element create smallclose vsapi WINDOW 19 \
                  {disabled 4 pressed 3 active 2 {} 1}
              ttk::style layout CloseButton {CloseButton.smallclose -sticky news}
              pack [ttk::button .close -style CloseButton]

       Change  the appearance of a ttk::checkbutton(n) to use the Explorer pin
       part EBP_HEADERPIN.
              ttk::style element create pin vsapi EXPLORERBAR 3 {
                  {pressed !selected} 3
                  {active !selected} 2
                  {pressed selected} 6
                  {active selected} 5
                  {selected} 4
                  {} 1
              ttk::style layout Explorer.Pin {Explorer.Pin.pin -sticky news}
              pack [ttk::checkbutton .pin -style Explorer.Pin]

       See attributes(7) for descriptions of the following attributes:

       |Availability   | runtime/tk-8     |
       |Stability      | Uncommitted      |

       ttk::intro(n), ttk::widget(n), ttk::style(n), ttk_image(n)

       style, theme, appearance, windows

       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source        was        downloaded        from         https://source-

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.

Tk                                    8.5                        ttk_vsapi(1t)