Posted to tcl by schelte at Tue Aug 16 19:55:52 GMT 2011view pretty

#!/usr/bin/tclsh

package require Tk

image create photo img-unchecked -data {
R0lGODlhKAAoAOf/AAABAAcKBgsNChcXDxYYFR0dFjs3Jjw4KDw6Ljs6Mzw7NFNUUlpcWXFuT3By
b3p3aYV4UIB7V4J8aoF+cJuNAImIbp2OAp6PBKKNFpWMXJ+QF6WQGqGTG6SVEKSVHaWWH6SWKKuV
IZiTbZSTeaaXIJWUeqGTaqGXR6iZI6qaJK6ZJKSaSaKbb62eMZ+be6+fKq6fMrCgK6+gM7OkN6ij
arWmObqlQqqkfrOpXq6ogtaiSK6qcMGqP8GoU7OtbcStQrGuerSvdcCxS7yzRLiwg761TbmxhMS0
Triyi8G4ULi0k8a3UcS4ZbS2s8W5Z8e7abi6t8a+d7q8uf+2M/y4Mv+3NLy+u/25M/y5PL2/vP66
Nc3FY8TAsv67Pv+8P8DCvvq+PsLEwfLAXP3AQcPFwv7BQufFcfvEQsXHxOLHcf7CUujGcvzFQ8bI
xcvIuf7DW8fJxv3GReTJc+PJef7HRuXKdPrJRejLbv/GXvrKTvXMTujMdvzLSNDOstTQm8vOyuPP
ffnOSPjOUPvMX/nPUc7QzPrQUs/RzuHUgP3PYf/Od/HRidLU0dfVud7VqPnWVuPYifTYXuLZkfbZ
V+DYquXajPnYZvjaWPfaYNbY1fnbWfDZlPjcYdja1u3faNnb1/XfYvjZl//Ykf3ahO/ffdrc2ffa
nuLeu9vd2vrfa/bhZP/Zmdze2/jiZffibPTkZuTgvd3f3PXfod7g3fXmZ9/h3v/eo/bnaPXnb+Di
3/3go+3lo/bocPvhsffpcffnhfbpeP/ipf3iq/Xpf/zkn+Pl4ffqefTmrPbqgP/jrOTm4/7moeXn
5PfsgevpzObo5fjtgv3mu/ftiefp5v7nvPLsr/juivbukPvptvjvkfbvmPfst/vumPfwmers6PHt
3vzwoezu6/rvuvvxqP/uwf3yqfvyr+7w7f7xtu/x7vTx4fvyw/z0sPr0t/Dy7/by4/v1uPr1vvj2
xfL08fP18v/2x/32zf/4z/b49Pf59vn7+Pr8+fv9+vz/+/7//P///yH5BAEKAP8ALAQABAAgACAA
AAj+ABUIHEiwoMGDBf0pXMiwocOHCgVCnEhxocSJ+045efGBwocXTk7tm3jRIT8/JIpA2rbO3rpq
iIR88MPvYUmG72Qk2SavnDZpyJBJ64bu2JEW7xzeVOiMhCR74LJJlQoU2K1f4gB9cNZw6bsUu+JJ
BUcWXLdsQHm9wrRsU4qkFhU0rFGpnbRs4MqZ21suqjRjt1Q9IlZnBsOblJbEQ4a3HBECSOCZK+dj
AA5eqi4RSvbDUdyF/FJUQ4vXHAIACerBK2cAgAFgrzQnCpWipr+SsIa0AyZNGzhzAgAIuBcPOIAA
0mITiqOLB6yIchU+QcQNGLTSwQXYW509ueY4isz+PIG+8MWxYb4Y5z2tQN7k0waQZRZ0Ro2pFuQV
ftjmipexu+AYUYASk4ETRAFAYPYIH2N00UsH+flDATmY3JKeNdl0U+BZd8GmyXJgTBENBRF+gA0m
qtwCjFBTUYWML4EtOIYWDkJ4W3T+tCCLJZek6IsxyERRwQMOTCDCFpkt18UU9uF340JPyDEKIT2+
4kkEC0hQggsjPMBABnrYMcYUU4Q33pMKwcJDMHYQ8kgkDbBACi9quZLKHiZAAIYWZNriXIT8qBDK
IHEE0sMdl1yiSaKPEMIHHWLoQOYbtNl2kyM/JDPGGXnwEQghoArCRxwNkjkFFrZ09hlDM6whihbc
YGwax6xjjLGnqVOIsoZhqy70TgiLrLIkFVoUSwWuU3SxyiIhfHMYjv7ok04jH8yRzBvI4vpGMnNw
0Mc07ugTobTPfOIGCDyYYosiaizZhRqK2GIKDyBwwQgrz7hTU0n5nFPMJ4WQsYMGNqRhSi/U9GJK
GjZoQAMUaBTySTHn7AstPd7k0kkhaEiRwwobYEABBhuccEMTVkTcSS7hiIvmQvu4M00tnTDyRxth
fJFFFl+QAccfjHxSizf5PAvRPvi4400xtcwSSyyz5DJNOPO43BW0FWUdF0Jcd01QQAA7
}

image create photo img-checked -data {
R0lGODlhKAAoAOf/AAABAAoNCQ8RDRETEBcXDxoaEx0dFh4eFyEhGj05KEA8K0FDQUdFOExOS1FO
QlJSSl9YQmJdO15eVmViVWZlXWxnVW9sX3NsVXJvYpB5QYR8ZIZ+T5mEV5yNAKKNFp+QF5eLZ5aP
TKCSGZGObqGTG6uLTpOQcKSVELCNPaOVHaWWH6SWKKaXIKeYIqGXR6maJKqbJaSaSZ6baK2fMbia
SK+gKqGea6+gM7KbbredZLOkN6ijarWmObqlQqqkfq6ogq6qcMCqP8GrSLasYdemPMStQsGxRMCx
S7qybL61TcS0TuCvRcG4UMa3UbS2s8W5Z8e7adG5cMy9Xc68a7m7uP+2M/y4Mv+3NP25M72/vP66
Nf26PdDDacTAstDGXsjEkP+8P8DCvvq+PszEl8LEwfLAXP3AQefFcf7CS/vEQsXHxOLHcf7CUujG
cvzFQ8bIxcvIuevJUf7DW8fJxv3GRebJbOTJc+PJeeXKdPrJRf/GXv7IVvzLSNDOst7SYvrLV9TQ
m8vOyuPPffnOSPvMX/nPUc7QzPrQUs/RztnSquHUgP3PYfvRVPrRW//Od/HRidLU0dfVud7VqPnW
VuPYieLZkfbZV+DYquXajPnYZu/bZvjaWPnbWffbYNfZ1vDZlPndYtnb1/bfW/XfYvjZl//Ykf3a
hNrc2ffanvHiY+Leu9vd2vbhZP/ZmfjiZfTkZuTgvd3f3OjipvjjbfXfod7g3fHldPXmZ//do9/h
3vbnaODi3/3go+3lo/bocPXod/vhsffpcffnhfbpeP/ipfzkn+Pl4vfqef7jrPTmrPbqgP7moeXn
5PfsgevpzObo5fjtgvftiefp5vLsr/juivbukPvptv/ovfjvkfbvmOnr6Pfst/vumPfwmevt6vHt
3vzwofrvuvvxqPXxuu3v6/3yqfvyr+7w7f7xtvrxwv7wye/x7vTx4fzyw/z0sPr0t/Dy7/v1uPr1
vvfz5Pj2xfL08PP18v32zfb49fj69/n7+Pr8+fv9+vz/+/7//P///yH5BAEKAP8ALAQABAAgACAA
AAj+ABcIHEiwoMGDBf0pXMiwocOHCgVCnEhxocSJ+1Q9qaGig4oaT1Ttm3jRIT9ALJJQ2tbuXrtp
io6oAMTvYUmG7G4w2UavXLZoypRF64YumZIb7BzeVOiMRaV74LBJlQp0mC5h4QSpcNZw6bwXveRJ
BUcWXDdsQH296rTsU4t5DJfywPQuGjZw5czpLRc12jFdrCYVw6Mj7gKGl5rIU3a33JcCI+KZKyeD
wBBfrDYVQlZEksXDCvnBmIb2rjkHAAS0i1fuAIAEwV5pXkTqRU1/JWEZeTcsWjZw5hAAAJBInqzh
AYbJLkSHVxBYEUH7g6KI2zBopoUTj3ccQIDYmun+ODoDJfrCGsmUBWOMF/WAcZNdK8CsOQ0bVDPM
KzyxbZavY3aBM4YBJkwGjg0GIAHYJHyYsQUwJ+jnTwfqgKKLL8pQg003fJmFVjRqccIIHWJUcU0H
EpJgTSesePGLUFNRpd6CfBBhxYMR4ibdDLRksokmIdhyTFDQBHWML4BphsISVdyXn44LQWGHKYxs
wkUEfvgyzJZIviKKZhmUUEUV45UHpUKwBEFMHoxMMgUDG0jxyiussMJJHDRAwMEWY+LynIT8vEAK
IXQMwkgdFyzQwAQXVCBBAw/kwGcVctR2202SFMGLGWnQwUcjUYCAAQUWaIBDGVqMuQUunX3WkA7g
bZSihRic0kHHH3/sgUaqY1ZRShuFucrQPC080gqfVmihrBW9qtrKIy18YxhD+qwTiQp3ICNHs9zK
gcwdJPQhDTz6SFjtM6HAsYIQqPDiCBt8bsGGI7ygIsQKXUCyyjPw1FRSPucYE4ohagDxQQ9roALM
NcCgskYPH+xAhRqGhPLMOf5K54892uziCcFU/BADCR504AEJLvjgRBYUh7ILOeWeudA+9UiTSyiQ
BPIGGWFkkUUYZMwRCCSh5OINPtM+tA8+8GjzTC61xBJLLbtIQ049MXelcUVcf4bQ12ATFBAAOw==
}

ttk::style element create Checkbutton.checkmark \
  image [list img-unchecked selected img-checked]

ttk::style layout Smiley.TCheckbutton {
    Checkbutton.padding -sticky nswe -children {
        Checkbutton.checkmark -side left -sticky {}
        Checkbutton.focus -side left -sticky w -children {
            Checkbutton.label -sticky nswe
        }
    }
}

font configure TkDefaultFont -size 20
ttk::checkbutton .c -style Smiley.TCheckbutton -text Smile!
grid .c -padx 10 -pady 10