0000: 2f 2a 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 /*. * Copyright
0010: c2 a9 20 32 30 30 34 2c 20 4a 6f 65 20 45 6e 67 © 2004, Joe Eng
0020: 6c 69 73 68 0a 20 2a 0a 20 2a 20 22 63 6c 61 73 lish. *. * "clas
0030: 73 69 63 22 20 74 68 65 6d 65 3b 20 69 6d 70 6c sic" theme; impl
0040: 65 6d 65 6e 74 73 20 74 68 65 20 63 6c 61 73 73 ements the class
0050: 69 63 20 4d 6f 74 69 66 2d 6c 69 6b 65 20 54 6b ic Motif-like Tk
0060: 20 6c 6f 6f 6b 2e 0a 20 2a 0a 20 2a 2f 0a 0a 23 look.. *. */..#
0070: 69 6e 63 6c 75 64 65 20 22 74 6b 49 6e 74 2e 68 include "tkInt.h
0080: 22 0a 23 69 6e 63 6c 75 64 65 20 22 74 74 6b 54 ".#include "ttkT
0090: 68 65 6d 65 2e 68 22 0a 0a 23 64 65 66 69 6e 65 heme.h"..#define
00a0: 20 44 45 46 41 55 4c 54 5f 42 4f 52 44 45 52 57 DEFAULT_BORDERW
00b0: 49 44 54 48 20 22 32 22 0a 23 64 65 66 69 6e 65 IDTH "2".#define
00c0: 20 44 45 46 41 55 4c 54 5f 41 52 52 4f 57 5f 53 DEFAULT_ARROW_S
00d0: 49 5a 45 20 22 31 35 22 0a 0a 2f 2a 2d 2d 2d 2d IZE "15"../*----
00e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0100: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0110: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0120: 2d 2d 0a 20 2a 20 2b 2b 2b 20 48 69 67 68 6c 69 --. * +++ Highli
0130: 67 68 74 20 65 6c 65 6d 65 6e 74 20 69 6d 70 6c ght element impl
0140: 65 6d 65 6e 74 61 74 69 6f 6e 2e 0a 20 2a 20 09 ementation.. * .
0150: 44 72 61 77 20 61 20 73 6f 6c 69 64 20 68 69 67 Draw a solid hig
0160: 68 6c 69 67 68 74 20 62 6f 72 64 65 72 20 74 6f hlight border to
0170: 20 69 6e 64 69 63 61 74 65 20 66 6f 63 75 73 2e indicate focus.
0180: 0a 20 2a 2f 0a 0a 74 79 70 65 64 65 66 20 73 74 . */..typedef st
0190: 72 75 63 74 20 7b 0a 20 20 20 20 54 63 6c 5f 4f ruct {. Tcl_O
01a0: 62 6a 09 2a 68 69 67 68 6c 69 67 68 74 43 6f 6c bj.*highlightCol
01b0: 6f 72 4f 62 6a 3b 0a 20 20 20 20 54 63 6c 5f 4f orObj;. Tcl_O
01c0: 62 6a 09 2a 68 69 67 68 6c 69 67 68 74 54 68 69 bj.*highlightThi
01d0: 63 6b 6e 65 73 73 4f 62 6a 3b 0a 7d 20 48 69 67 cknessObj;.} Hig
01e0: 68 6c 69 67 68 74 45 6c 65 6d 65 6e 74 3b 0a 0a hlightElement;..
01f0: 73 74 61 74 69 63 20 63 6f 6e 73 74 20 54 74 6b static const Ttk
0200: 5f 45 6c 65 6d 65 6e 74 4f 70 74 69 6f 6e 53 70 _ElementOptionSp
0210: 65 63 20 48 69 67 68 6c 69 67 68 74 45 6c 65 6d ec HighlightElem
0220: 65 6e 74 4f 70 74 69 6f 6e 73 5b 5d 20 3d 20 7b entOptions[] = {
0230: 0a 20 20 20 20 7b 20 22 2d 68 69 67 68 6c 69 67 . { "-highlig
0240: 68 74 63 6f 6c 6f 72 22 2c 54 4b 5f 4f 50 54 49 htcolor",TK_OPTI
0250: 4f 4e 5f 43 4f 4c 4f 52 2c 0a 09 6f 66 66 73 65 ON_COLOR,..offse
0260: 74 6f 66 28 48 69 67 68 6c 69 67 68 74 45 6c 65 tof(HighlightEle
0270: 6d 65 6e 74 2c 68 69 67 68 6c 69 67 68 74 43 6f ment,highlightCo
0280: 6c 6f 72 4f 62 6a 29 2c 20 44 45 46 41 55 4c 54 lorObj), DEFAULT
0290: 5f 42 41 43 4b 47 52 4f 55 4e 44 20 7d 2c 0a 20 _BACKGROUND },.
02a0: 20 20 20 7b 20 22 2d 68 69 67 68 6c 69 67 68 74 { "-highlight
02b0: 74 68 69 63 6b 6e 65 73 73 22 2c 54 4b 5f 4f 50 thickness",TK_OP
02c0: 54 49 4f 4e 5f 50 49 58 45 4c 53 2c 0a 09 6f 66 TION_PIXELS,..of
02d0: 66 73 65 74 6f 66 28 48 69 67 68 6c 69 67 68 74 fsetof(Highlight
02e0: 45 6c 65 6d 65 6e 74 2c 68 69 67 68 6c 69 67 68 Element,highligh
02f0: 74 54 68 69 63 6b 6e 65 73 73 4f 62 6a 29 2c 20 tThicknessObj),
0300: 22 30 22 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c "0" },. { NUL
0310: 4c 2c 20 54 4b 5f 4f 50 54 49 4f 4e 5f 42 4f 4f L, TK_OPTION_BOO
0320: 4c 45 41 4e 2c 20 30 2c 20 4e 55 4c 4c 20 7d 0a LEAN, 0, NULL }.
0330: 7d 3b 0a 0a 73 74 61 74 69 63 20 76 6f 69 64 20 };..static void
0340: 48 69 67 68 6c 69 67 68 74 45 6c 65 6d 65 6e 74 HighlightElement
0350: 53 69 7a 65 28 0a 20 20 20 20 76 6f 69 64 20 2a Size(. void *
0360: 64 75 6d 6d 79 2c 20 76 6f 69 64 20 2a 65 6c 65 dummy, void *ele
0370: 6d 65 6e 74 52 65 63 6f 72 64 2c 20 54 6b 5f 57 mentRecord, Tk_W
0380: 69 6e 64 6f 77 20 74 6b 77 69 6e 2c 0a 20 20 20 indow tkwin,.
0390: 20 69 6e 74 20 2a 77 69 64 74 68 50 74 72 2c 20 int *widthPtr,
03a0: 69 6e 74 20 2a 68 65 69 67 68 74 50 74 72 2c 20 int *heightPtr,
03b0: 54 74 6b 5f 50 61 64 64 69 6e 67 20 2a 70 61 64 Ttk_Padding *pad
03c0: 64 69 6e 67 50 74 72 29 0a 7b 0a 20 20 20 20 48 dingPtr).{. H
03d0: 69 67 68 6c 69 67 68 74 45 6c 65 6d 65 6e 74 20 ighlightElement
03e0: 2a 68 6c 20 3d 20 28 48 69 67 68 6c 69 67 68 74 *hl = (Highlight
03f0: 45 6c 65 6d 65 6e 74 20 2a 29 65 6c 65 6d 65 6e Element *)elemen
0400: 74 52 65 63 6f 72 64 3b 0a 20 20 20 20 69 6e 74 tRecord;. int
0410: 20 68 69 67 68 6c 69 67 68 74 54 68 69 63 6b 6e highlightThickn
0420: 65 73 73 20 3d 20 30 3b 0a 20 20 20 20 28 76 6f ess = 0;. (vo
0430: 69 64 29 64 75 6d 6d 79 3b 0a 20 20 20 20 28 76 id)dummy;. (v
0440: 6f 69 64 29 74 6b 77 69 6e 3b 0a 20 20 20 20 28 oid)tkwin;. (
0450: 76 6f 69 64 29 77 69 64 74 68 50 74 72 3b 0a 20 void)widthPtr;.
0460: 20 20 20 28 76 6f 69 64 29 68 65 69 67 68 74 50 (void)heightP
0470: 74 72 3b 0a 0a 20 20 20 20 54 63 6c 5f 47 65 74 tr;.. Tcl_Get
0480: 49 6e 74 46 72 6f 6d 4f 62 6a 28 4e 55 4c 4c 2c IntFromObj(NULL,
0490: 68 6c 2d 3e 68 69 67 68 6c 69 67 68 74 54 68 69 hl->highlightThi
04a0: 63 6b 6e 65 73 73 4f 62 6a 2c 26 68 69 67 68 6c cknessObj,&highl
04b0: 69 67 68 74 54 68 69 63 6b 6e 65 73 73 29 3b 0a ightThickness);.
04c0: 20 20 20 20 2a 70 61 64 64 69 6e 67 50 74 72 20 *paddingPtr
04d0: 3d 20 54 74 6b 5f 55 6e 69 66 6f 72 6d 50 61 64 = Ttk_UniformPad
04e0: 64 69 6e 67 28 28 73 68 6f 72 74 29 68 69 67 68 ding((short)high
04f0: 6c 69 67 68 74 54 68 69 63 6b 6e 65 73 73 29 3b lightThickness);
0500: 0a 7d 0a 0a 73 74 61 74 69 63 20 76 6f 69 64 20 .}..static void
0510: 48 69 67 68 6c 69 67 68 74 45 6c 65 6d 65 6e 74 HighlightElement
0520: 44 72 61 77 28 0a 20 20 20 20 76 6f 69 64 20 2a Draw(. void *
0530: 64 75 6d 6d 79 2c 20 76 6f 69 64 20 2a 65 6c 65 dummy, void *ele
0540: 6d 65 6e 74 52 65 63 6f 72 64 2c 20 54 6b 5f 57 mentRecord, Tk_W
0550: 69 6e 64 6f 77 20 74 6b 77 69 6e 2c 0a 20 20 20 indow tkwin,.
0560: 20 44 72 61 77 61 62 6c 65 20 64 2c 20 54 74 6b Drawable d, Ttk
0570: 5f 42 6f 78 20 62 2c 20 75 6e 73 69 67 6e 65 64 _Box b, unsigned
0580: 20 69 6e 74 20 73 74 61 74 65 29 0a 7b 0a 20 20 int state).{.
0590: 20 20 48 69 67 68 6c 69 67 68 74 45 6c 65 6d 65 HighlightEleme
05a0: 6e 74 20 2a 68 6c 20 3d 20 28 48 69 67 68 6c 69 nt *hl = (Highli
05b0: 67 68 74 45 6c 65 6d 65 6e 74 20 2a 29 65 6c 65 ghtElement *)ele
05c0: 6d 65 6e 74 52 65 63 6f 72 64 3b 0a 20 20 20 20 mentRecord;.
05d0: 69 6e 74 20 68 69 67 68 6c 69 67 68 74 54 68 69 int highlightThi
05e0: 63 6b 6e 65 73 73 20 3d 20 30 3b 0a 20 20 20 20 ckness = 0;.
05f0: 58 43 6f 6c 6f 72 20 2a 68 69 67 68 6c 69 67 68 XColor *highligh
0600: 74 43 6f 6c 6f 72 20 3d 20 54 6b 5f 47 65 74 43 tColor = Tk_GetC
0610: 6f 6c 6f 72 46 72 6f 6d 4f 62 6a 28 74 6b 77 69 olorFromObj(tkwi
0620: 6e 2c 20 68 6c 2d 3e 68 69 67 68 6c 69 67 68 74 n, hl->highlight
0630: 43 6f 6c 6f 72 4f 62 6a 29 3b 0a 20 20 20 20 28 ColorObj);. (
0640: 76 6f 69 64 29 64 75 6d 6d 79 3b 0a 20 20 20 20 void)dummy;.
0650: 28 76 6f 69 64 29 62 3b 0a 20 20 20 20 28 76 6f (void)b;. (vo
0660: 69 64 29 73 74 61 74 65 3b 0a 0a 20 20 20 20 54 id)state;.. T
0670: 63 6c 5f 47 65 74 49 6e 74 46 72 6f 6d 4f 62 6a cl_GetIntFromObj
0680: 28 4e 55 4c 4c 2c 68 6c 2d 3e 68 69 67 68 6c 69 (NULL,hl->highli
0690: 67 68 74 54 68 69 63 6b 6e 65 73 73 4f 62 6a 2c ghtThicknessObj,
06a0: 26 68 69 67 68 6c 69 67 68 74 54 68 69 63 6b 6e &highlightThickn
06b0: 65 73 73 29 3b 0a 20 20 20 20 69 66 20 28 68 69 ess);. if (hi
06c0: 67 68 6c 69 67 68 74 43 6f 6c 6f 72 20 26 26 20 ghlightColor &&
06d0: 68 69 67 68 6c 69 67 68 74 54 68 69 63 6b 6e 65 highlightThickne
06e0: 73 73 20 3e 20 30 29 20 7b 0a 09 47 43 20 67 63 ss > 0) {..GC gc
06f0: 20 3d 20 54 6b 5f 47 43 46 6f 72 43 6f 6c 6f 72 = Tk_GCForColor
0700: 28 68 69 67 68 6c 69 67 68 74 43 6f 6c 6f 72 2c (highlightColor,
0710: 20 64 29 3b 0a 09 54 6b 5f 44 72 61 77 46 6f 63 d);..Tk_DrawFoc
0720: 75 73 48 69 67 68 6c 69 67 68 74 28 74 6b 77 69 usHighlight(tkwi
0730: 6e 2c 20 67 63 2c 20 68 69 67 68 6c 69 67 68 74 n, gc, highlight
0740: 54 68 69 63 6b 6e 65 73 73 2c 20 64 29 3b 0a 20 Thickness, d);.
0750: 20 20 20 7d 0a 7d 0a 0a 73 74 61 74 69 63 20 63 }.}..static c
0760: 6f 6e 73 74 20 54 74 6b 5f 45 6c 65 6d 65 6e 74 onst Ttk_Element
0770: 53 70 65 63 20 48 69 67 68 6c 69 67 68 74 45 6c Spec HighlightEl
0780: 65 6d 65 6e 74 53 70 65 63 20 3d 0a 7b 0a 20 20 ementSpec =.{.
0790: 20 20 54 4b 5f 53 54 59 4c 45 5f 56 45 52 53 49 TK_STYLE_VERSI
07a0: 4f 4e 5f 32 2c 0a 20 20 20 20 73 69 7a 65 6f 66 ON_2,. sizeof
07b0: 28 48 69 67 68 6c 69 67 68 74 45 6c 65 6d 65 6e (HighlightElemen
07c0: 74 29 2c 0a 20 20 20 20 48 69 67 68 6c 69 67 68 t),. Highligh
07d0: 74 45 6c 65 6d 65 6e 74 4f 70 74 69 6f 6e 73 2c tElementOptions,
07e0: 0a 20 20 20 20 48 69 67 68 6c 69 67 68 74 45 6c . HighlightEl
07f0: 65 6d 65 6e 74 53 69 7a 65 2c 0a 20 20 20 20 48 ementSize,. H
0800: 69 67 68 6c 69 67 68 74 45 6c 65 6d 65 6e 74 44 ighlightElementD
0810: 72 61 77 0a 7d 3b 0a 0a 2f 2a 2d 2d 2d 2d 2d 2d raw.};../*------
0820: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0830: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0840: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0850: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0860: 2d 2d 0a 20 2a 20 2b 2b 2b 20 42 75 74 74 6f 6e --. * +++ Button
0870: 20 42 6f 72 64 65 72 20 65 6c 65 6d 65 6e 74 3a Border element:
0880: 0a 20 2a 0a 20 2a 20 54 68 65 20 4d 6f 74 69 66 . *. * The Motif
0890: 2d 73 74 79 6c 65 20 62 75 74 74 6f 6e 20 62 6f -style button bo
08a0: 72 64 65 72 20 6f 6e 20 58 31 31 20 63 6f 6e 73 rder on X11 cons
08b0: 69 73 74 73 20 6f 66 20 28 66 72 6f 6d 20 6f 75 ists of (from ou
08c0: 74 73 69 64 65 2d 69 6e 29 3a 0a 20 2a 0a 20 2a tside-in):. *. *
08d0: 20 2b 20 66 6f 63 75 73 20 69 6e 64 69 63 61 74 + focus indicat
08e0: 6f 72 20 28 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 or (controlled b
08f0: 79 20 2d 68 69 67 68 6c 69 67 68 74 63 6f 6c 6f y -highlightcolo
0900: 72 20 61 6e 64 20 2d 68 69 67 68 6c 69 67 68 74 r and -highlight
0910: 74 68 69 63 6b 6e 65 73 73 29 2c 0a 20 2a 20 2b thickness),. * +
0920: 20 64 65 66 61 75 6c 74 20 72 69 6e 67 20 28 69 default ring (i
0930: 66 20 2d 64 65 66 61 75 6c 74 20 61 63 74 69 76 f -default activ
0940: 65 3b 20 62 6c 61 6e 6b 20 69 66 20 2d 64 65 66 e; blank if -def
0950: 61 75 6c 74 20 6e 6f 72 6d 61 6c 29 0a 20 2a 20 ault normal). *
0960: 2b 20 73 68 61 64 65 64 20 62 6f 72 64 65 72 20 + shaded border
0970: 28 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 20 2d (controlled by -
0980: 62 61 63 6b 67 72 6f 75 6e 64 2c 20 2d 62 6f 72 background, -bor
0990: 64 65 72 77 69 64 74 68 2c 20 61 6e 64 20 2d 72 derwidth, and -r
09a0: 65 6c 69 65 66 29 0a 20 2a 2f 0a 0a 74 79 70 65 elief). */..type
09b0: 64 65 66 20 73 74 72 75 63 74 20 7b 0a 20 20 20 def struct {.
09c0: 20 54 63 6c 5f 4f 62 6a 09 2a 62 6f 72 64 65 72 Tcl_Obj.*border
09d0: 4f 62 6a 3b 0a 20 20 20 20 54 63 6c 5f 4f 62 6a Obj;. Tcl_Obj
09e0: 09 2a 62 6f 72 64 65 72 57 69 64 74 68 4f 62 6a .*borderWidthObj
09f0: 3b 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 09 2a 72 ;. Tcl_Obj.*r
0a00: 65 6c 69 65 66 4f 62 6a 3b 0a 20 20 20 20 54 63 eliefObj;. Tc
0a10: 6c 5f 4f 62 6a 09 2a 64 65 66 61 75 6c 74 53 74 l_Obj.*defaultSt
0a20: 61 74 65 4f 62 6a 3b 0a 7d 20 42 75 74 74 6f 6e ateObj;.} Button
0a30: 42 6f 72 64 65 72 45 6c 65 6d 65 6e 74 3b 0a 0a BorderElement;..
0a40: 73 74 61 74 69 63 20 63 6f 6e 73 74 20 54 74 6b static const Ttk
0a50: 5f 45 6c 65 6d 65 6e 74 4f 70 74 69 6f 6e 53 70 _ElementOptionSp
0a60: 65 63 20 42 75 74 74 6f 6e 42 6f 72 64 65 72 45 ec ButtonBorderE
0a70: 6c 65 6d 65 6e 74 4f 70 74 69 6f 6e 73 5b 5d 20 lementOptions[]
0a80: 3d 0a 7b 0a 20 20 20 20 7b 20 22 2d 62 61 63 6b =.{. { "-back
0a90: 67 72 6f 75 6e 64 22 2c 20 54 4b 5f 4f 50 54 49 ground", TK_OPTI
0aa0: 4f 4e 5f 42 4f 52 44 45 52 2c 0a 09 6f 66 66 73 ON_BORDER,..offs
0ab0: 65 74 6f 66 28 42 75 74 74 6f 6e 42 6f 72 64 65 etof(ButtonBorde
0ac0: 72 45 6c 65 6d 65 6e 74 2c 62 6f 72 64 65 72 4f rElement,borderO
0ad0: 62 6a 29 2c 20 44 45 46 41 55 4c 54 5f 42 41 43 bj), DEFAULT_BAC
0ae0: 4b 47 52 4f 55 4e 44 20 7d 2c 0a 20 20 20 20 7b KGROUND },. {
0af0: 20 22 2d 62 6f 72 64 65 72 77 69 64 74 68 22 2c "-borderwidth",
0b00: 20 54 4b 5f 4f 50 54 49 4f 4e 5f 50 49 58 45 4c TK_OPTION_PIXEL
0b10: 53 2c 0a 09 6f 66 66 73 65 74 6f 66 28 42 75 74 S,..offsetof(But
0b20: 74 6f 6e 42 6f 72 64 65 72 45 6c 65 6d 65 6e 74 tonBorderElement
0b30: 2c 62 6f 72 64 65 72 57 69 64 74 68 4f 62 6a 29 ,borderWidthObj)
0b40: 2c 20 44 45 46 41 55 4c 54 5f 42 4f 52 44 45 52 , DEFAULT_BORDER
0b50: 57 49 44 54 48 20 7d 2c 0a 20 20 20 20 7b 20 22 WIDTH },. { "
0b60: 2d 72 65 6c 69 65 66 22 2c 20 54 4b 5f 4f 50 54 -relief", TK_OPT
0b70: 49 4f 4e 5f 52 45 4c 49 45 46 2c 0a 09 6f 66 66 ION_RELIEF,..off
0b80: 73 65 74 6f 66 28 42 75 74 74 6f 6e 42 6f 72 64 setof(ButtonBord
0b90: 65 72 45 6c 65 6d 65 6e 74 2c 72 65 6c 69 65 66 erElement,relief
0ba0: 4f 62 6a 29 2c 20 22 66 6c 61 74 22 20 7d 2c 0a Obj), "flat" },.
0bb0: 20 20 20 20 7b 20 22 2d 64 65 66 61 75 6c 74 22 { "-default"
0bc0: 2c 20 54 4b 5f 4f 50 54 49 4f 4e 5f 41 4e 59 2c , TK_OPTION_ANY,
0bd0: 0a 09 6f 66 66 73 65 74 6f 66 28 42 75 74 74 6f ..offsetof(Butto
0be0: 6e 42 6f 72 64 65 72 45 6c 65 6d 65 6e 74 2c 64 nBorderElement,d
0bf0: 65 66 61 75 6c 74 53 74 61 74 65 4f 62 6a 29 2c efaultStateObj),
0c00: 20 22 64 69 73 61 62 6c 65 64 22 20 7d 2c 0a 20 "disabled" },.
0c10: 20 20 20 7b 20 4e 55 4c 4c 2c 20 54 4b 5f 4f 50 { NULL, TK_OP
0c20: 54 49 4f 4e 5f 42 4f 4f 4c 45 41 4e 2c 20 30 2c TION_BOOLEAN, 0,
0c30: 20 4e 55 4c 4c 20 7d 0a 7d 3b 0a 0a 73 74 61 74 NULL }.};..stat
0c40: 69 63 20 76 6f 69 64 20 42 75 74 74 6f 6e 42 6f ic void ButtonBo
0c50: 72 64 65 72 45 6c 65 6d 65 6e 74 53 69 7a 65 28 rderElementSize(
0c60: 0a 20 20 20 20 76 6f 69 64 20 2a 64 75 6d 6d 79 . void *dummy
0c70: 2c 20 76 6f 69 64 20 2a 65 6c 65 6d 65 6e 74 52 , void *elementR
0c80: 65 63 6f 72 64 2c 20 54 6b 5f 57 69 6e 64 6f 77 ecord, Tk_Window
0c90: 20 74 6b 77 69 6e 2c 0a 20 20 20 20 69 6e 74 20 tkwin,. int
0ca0: 2a 77 69 64 74 68 50 74 72 2c 20 69 6e 74 20 2a *widthPtr, int *
0cb0: 68 65 69 67 68 74 50 74 72 2c 20 54 74 6b 5f 50 heightPtr, Ttk_P
0cc0: 61 64 64 69 6e 67 20 2a 70 61 64 64 69 6e 67 50 adding *paddingP
0cd0: 74 72 29 0a 7b 0a 20 20 20 20 42 75 74 74 6f 6e tr).{. Button
0ce0: 42 6f 72 64 65 72 45 6c 65 6d 65 6e 74 20 2a 62 BorderElement *b
0cf0: 64 20 3d 20 28 42 75 74 74 6f 6e 42 6f 72 64 65 d = (ButtonBorde
0d00: 72 45 6c 65 6d 65 6e 74 20 2a 29 65 6c 65 6d 65 rElement *)eleme
0d10: 6e 74 52 65 63 6f 72 64 3b 0a 20 20 20 20 54 74 ntRecord;. Tt
0d20: 6b 5f 42 75 74 74 6f 6e 44 65 66 61 75 6c 74 53 k_ButtonDefaultS
0d30: 74 61 74 65 20 64 65 66 61 75 6c 74 53 74 61 74 tate defaultStat
0d40: 65 20 3d 20 54 54 4b 5f 42 55 54 54 4f 4e 5f 44 e = TTK_BUTTON_D
0d50: 45 46 41 55 4c 54 5f 44 49 53 41 42 4c 45 44 3b EFAULT_DISABLED;
0d60: 0a 20 20 20 20 69 6e 74 20 62 6f 72 64 65 72 57 . int borderW
0d70: 69 64 74 68 20 3d 20 30 3b 0a 20 20 20 20 28 76 idth = 0;. (v
0d80: 6f 69 64 29 64 75 6d 6d 79 3b 0a 20 20 20 20 28 oid)dummy;. (
0d90: 76 6f 69 64 29 74 6b 77 69 6e 3b 0a 20 20 20 20 void)tkwin;.
0da0: 28 76 6f 69 64 29 77 69 64 74 68 50 74 72 3b 0a (void)widthPtr;.
0db0: 20 20 20 20 28 76 6f 69 64 29 68 65 69 67 68 74 (void)height
0dc0: 50 74 72 3b 0a 0a 20 20 20 20 54 63 6c 5f 47 65 Ptr;.. Tcl_Ge
0dd0: 74 49 6e 74 46 72 6f 6d 4f 62 6a 28 4e 55 4c 4c tIntFromObj(NULL
0de0: 2c 20 62 64 2d 3e 62 6f 72 64 65 72 57 69 64 74 , bd->borderWidt
0df0: 68 4f 62 6a 2c 20 26 62 6f 72 64 65 72 57 69 64 hObj, &borderWid
0e00: 74 68 29 3b 0a 20 20 20 20 54 74 6b 5f 47 65 74 th);. Ttk_Get
0e10: 42 75 74 74 6f 6e 44 65 66 61 75 6c 74 53 74 61 ButtonDefaultSta
0e20: 74 65 46 72 6f 6d 4f 62 6a 28 4e 55 4c 4c 2c 20 teFromObj(NULL,
0e30: 62 64 2d 3e 64 65 66 61 75 6c 74 53 74 61 74 65 bd->defaultState
0e40: 4f 62 6a 2c 20 26 64 65 66 61 75 6c 74 53 74 61 Obj, &defaultSta
0e50: 74 65 29 3b 0a 0a 20 20 20 20 69 66 20 28 64 65 te);.. if (de
0e60: 66 61 75 6c 74 53 74 61 74 65 20 21 3d 20 54 54 faultState != TT
0e70: 4b 5f 42 55 54 54 4f 4e 5f 44 45 46 41 55 4c 54 K_BUTTON_DEFAULT
0e80: 5f 44 49 53 41 42 4c 45 44 29 20 7b 0a 09 62 6f _DISABLED) {..bo
0e90: 72 64 65 72 57 69 64 74 68 20 2b 3d 20 35 3b 0a rderWidth += 5;.
0ea0: 20 20 20 20 7d 0a 20 20 20 20 2a 70 61 64 64 69 }. *paddi
0eb0: 6e 67 50 74 72 20 3d 20 54 74 6b 5f 55 6e 69 66 ngPtr = Ttk_Unif
0ec0: 6f 72 6d 50 61 64 64 69 6e 67 28 28 73 68 6f 72 ormPadding((shor
0ed0: 74 29 62 6f 72 64 65 72 57 69 64 74 68 29 3b 0a t)borderWidth);.
0ee0: 7d 0a 0a 2f 2a 0a 20 2a 20 28 40 40 40 20 4e 6f }../*. * (@@@ No
0ef0: 74 65 3a 20 42 75 74 74 6f 6e 42 6f 72 64 65 72 te: ButtonBorder
0f00: 45 6c 65 6d 65 6e 74 20 73 74 69 6c 6c 20 73 74 Element still st
0f10: 69 6c 6c 20 73 74 69 6c 6c 20 62 75 67 67 79 3a ill still buggy:
0f20: 0a 20 2a 20 70 61 64 64 69 6e 67 20 66 6f 72 20 . * padding for
0f30: 64 65 66 61 75 6c 74 20 72 69 6e 67 20 69 73 20 default ring is
0f40: 64 72 61 77 6e 20 69 6e 20 74 68 65 20 77 72 6f drawn in the wro
0f50: 6e 67 20 63 6f 6c 6f 72 0a 20 2a 20 77 68 65 6e ng color. * when
0f60: 20 74 68 65 20 62 75 74 74 6f 6e 20 69 73 20 61 the button is a
0f70: 63 74 69 76 65 2e 29 0a 20 2a 2f 0a 73 74 61 74 ctive.). */.stat
0f80: 69 63 20 76 6f 69 64 20 42 75 74 74 6f 6e 42 6f ic void ButtonBo
0f90: 72 64 65 72 45 6c 65 6d 65 6e 74 44 72 61 77 28 rderElementDraw(
0fa0: 0a 20 20 20 20 76 6f 69 64 20 2a 64 75 6d 6d 79 . void *dummy
0fb0: 2c 20 76 6f 69 64 20 2a 65 6c 65 6d 65 6e 74 52 , void *elementR
0fc0: 65 63 6f 72 64 2c 20 54 6b 5f 57 69 6e 64 6f 77 ecord, Tk_Window
0fd0: 20 74 6b 77 69 6e 2c 0a 20 20 20 20 44 72 61 77 tkwin,. Draw
0fe0: 61 62 6c 65 20 64 2c 20 54 74 6b 5f 42 6f 78 20 able d, Ttk_Box
0ff0: 62 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 b, unsigned int
1000: 73 74 61 74 65 29 0a 7b 0a 20 20 20 20 42 75 74 state).{. But
1010: 74 6f 6e 42 6f 72 64 65 72 45 6c 65 6d 65 6e 74 tonBorderElement
1020: 20 2a 62 64 20 3d 20 28 42 75 74 74 6f 6e 42 6f *bd = (ButtonBo
1030: 72 64 65 72 45 6c 65 6d 65 6e 74 20 2a 29 65 6c rderElement *)el
1040: 65 6d 65 6e 74 52 65 63 6f 72 64 3b 0a 20 20 20 ementRecord;.
1050: 20 54 6b 5f 33 44 42 6f 72 64 65 72 20 62 6f 72 Tk_3DBorder bor
1060: 64 65 72 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 der = NULL;.
1070: 69 6e 74 20 62 6f 72 64 65 72 57 69 64 74 68 20 int borderWidth
1080: 3d 20 31 2c 20 72 65 6c 69 65 66 20 3d 20 54 4b = 1, relief = TK
1090: 5f 52 45 4c 49 45 46 5f 46 4c 41 54 3b 0a 20 20 _RELIEF_FLAT;.
10a0: 20 20 54 74 6b 5f 42 75 74 74 6f 6e 44 65 66 61 Ttk_ButtonDefa
10b0: 75 6c 74 53 74 61 74 65 20 64 65 66 61 75 6c 74 ultState default
10c0: 53 74 61 74 65 20 3d 20 54 54 4b 5f 42 55 54 54 State = TTK_BUTT
10d0: 4f 4e 5f 44 45 46 41 55 4c 54 5f 44 49 53 41 42 ON_DEFAULT_DISAB
10e0: 4c 45 44 3b 0a 20 20 20 20 69 6e 74 20 69 6e 73 LED;. int ins
10f0: 65 74 20 3d 20 30 3b 0a 20 20 20 20 28 76 6f 69 et = 0;. (voi
1100: 64 29 64 75 6d 6d 79 3b 0a 20 20 20 20 28 76 6f d)dummy;. (vo
1110: 69 64 29 73 74 61 74 65 3b 0a 0a 20 20 20 20 2f id)state;.. /
1120: 2a 0a 20 20 20 20 20 2a 20 47 65 74 20 6f 70 74 *. * Get opt
1130: 69 6f 6e 20 76 61 6c 75 65 73 2e 0a 20 20 20 20 ion values..
1140: 20 2a 2f 0a 20 20 20 20 62 6f 72 64 65 72 20 3d */. border =
1150: 20 54 6b 5f 47 65 74 33 44 42 6f 72 64 65 72 46 Tk_Get3DBorderF
1160: 72 6f 6d 4f 62 6a 28 74 6b 77 69 6e 2c 20 62 64 romObj(tkwin, bd
1170: 2d 3e 62 6f 72 64 65 72 4f 62 6a 29 3b 0a 20 20 ->borderObj);.
1180: 20 20 54 63 6c 5f 47 65 74 49 6e 74 46 72 6f 6d Tcl_GetIntFrom
1190: 4f 62 6a 28 4e 55 4c 4c 2c 20 62 64 2d 3e 62 6f Obj(NULL, bd->bo
11a0: 72 64 65 72 57 69 64 74 68 4f 62 6a 2c 20 26 62 rderWidthObj, &b
11b0: 6f 72 64 65 72 57 69 64 74 68 29 3b 0a 20 20 20 orderWidth);.
11c0: 20 54 6b 5f 47 65 74 52 65 6c 69 65 66 46 72 6f Tk_GetReliefFro
11d0: 6d 4f 62 6a 28 4e 55 4c 4c 2c 20 62 64 2d 3e 72 mObj(NULL, bd->r
11e0: 65 6c 69 65 66 4f 62 6a 2c 20 26 72 65 6c 69 65 eliefObj, &relie
11f0: 66 29 3b 0a 20 20 20 20 54 74 6b 5f 47 65 74 42 f);. Ttk_GetB
1200: 75 74 74 6f 6e 44 65 66 61 75 6c 74 53 74 61 74 uttonDefaultStat
1210: 65 46 72 6f 6d 4f 62 6a 28 4e 55 4c 4c 2c 20 62 eFromObj(NULL, b
1220: 64 2d 3e 64 65 66 61 75 6c 74 53 74 61 74 65 4f d->defaultStateO
1230: 62 6a 2c 20 26 64 65 66 61 75 6c 74 53 74 61 74 bj, &defaultStat
1240: 65 29 3b 0a 0a 20 20 20 20 2f 2a 0a 20 20 20 20 e);.. /*.
1250: 20 2a 20 44 65 66 61 75 6c 74 20 72 69 6e 67 3a * Default ring:
1260: 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 73 77 69 . */. swi
1270: 74 63 68 20 28 64 65 66 61 75 6c 74 53 74 61 74 tch (defaultStat
1280: 65 29 0a 20 20 20 20 7b 0a 09 63 61 73 65 20 54 e). {..case T
1290: 54 4b 5f 42 55 54 54 4f 4e 5f 44 45 46 41 55 4c TK_BUTTON_DEFAUL
12a0: 54 5f 44 49 53 41 42 4c 45 44 20 3a 0a 09 20 20 T_DISABLED :..
12b0: 20 20 62 72 65 61 6b 3b 0a 09 63 61 73 65 20 54 break;..case T
12c0: 54 4b 5f 42 55 54 54 4f 4e 5f 44 45 46 41 55 4c TK_BUTTON_DEFAUL
12d0: 54 5f 4e 4f 52 4d 41 4c 20 3a 0a 09 20 20 20 20 T_NORMAL :..
12e0: 69 6e 73 65 74 20 2b 3d 20 35 3b 0a 09 20 20 20 inset += 5;..
12f0: 20 62 72 65 61 6b 3b 0a 09 63 61 73 65 20 54 54 break;..case TT
1300: 4b 5f 42 55 54 54 4f 4e 5f 44 45 46 41 55 4c 54 K_BUTTON_DEFAULT
1310: 5f 41 43 54 49 56 45 20 3a 0a 20 20 20 20 20 20 _ACTIVE :.
1320: 20 20 20 20 20 20 54 6b 5f 44 72 61 77 33 44 52 Tk_Draw3DR
1330: 65 63 74 61 6e 67 6c 65 28 74 6b 77 69 6e 2c 20 ectangle(tkwin,
1340: 64 2c 20 62 6f 72 64 65 72 2c 0a 09 09 62 2e 78 d, border,...b.x
1350: 2b 69 6e 73 65 74 2c 20 62 2e 79 2b 69 6e 73 65 +inset, b.y+inse
1360: 74 2c 20 62 2e 77 69 64 74 68 20 2d 20 32 2a 69 t, b.width - 2*i
1370: 6e 73 65 74 2c 20 62 2e 68 65 69 67 68 74 20 2d nset, b.height -
1380: 20 32 2a 69 6e 73 65 74 2c 0a 09 09 32 2c 20 54 2*inset,...2, T
1390: 4b 5f 52 45 4c 49 45 46 5f 46 4c 41 54 29 3b 0a K_RELIEF_FLAT);.
13a0: 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 73 65 inse
13b0: 74 20 2b 3d 20 32 3b 0a 20 20 20 20 20 20 20 20 t += 2;.
13c0: 20 20 20 20 54 6b 5f 44 72 61 77 33 44 52 65 63 Tk_Draw3DRec
13d0: 74 61 6e 67 6c 65 28 74 6b 77 69 6e 2c 20 64 2c tangle(tkwin, d,
13e0: 20 62 6f 72 64 65 72 2c 0a 09 09 62 2e 78 2b 69 border,...b.x+i
13f0: 6e 73 65 74 2c 20 62 2e 79 2b 69 6e 73 65 74 2c nset, b.y+inset,
1400: 20 62 2e 77 69 64 74 68 20 2d 20 32 2a 69 6e 73 b.width - 2*ins
1410: 65 74 2c 20 62 2e 68 65 69 67 68 74 20 2d 20 32 et, b.height - 2
1420: 2a 69 6e 73 65 74 2c 0a 09 09 31 2c 20 54 4b 5f *inset,...1, TK_
1430: 52 45 4c 49 45 46 5f 53 55 4e 4b 45 4e 29 3b 0a RELIEF_SUNKEN);.
1440: 09 20 20 20 20 2b 2b 69 6e 73 65 74 3b 0a 20 20 . ++inset;.
1450: 20 20 20 20 20 20 20 20 20 20 54 6b 5f 44 72 61 Tk_Dra
1460: 77 33 44 52 65 63 74 61 6e 67 6c 65 28 74 6b 77 w3DRectangle(tkw
1470: 69 6e 2c 20 64 2c 20 62 6f 72 64 65 72 2c 0a 09 in, d, border,..
1480: 09 62 2e 78 2b 69 6e 73 65 74 2c 20 62 2e 79 2b .b.x+inset, b.y+
1490: 69 6e 73 65 74 2c 20 62 2e 77 69 64 74 68 20 2d inset, b.width -
14a0: 20 32 2a 69 6e 73 65 74 2c 20 62 2e 68 65 69 67 2*inset, b.heig
14b0: 68 74 20 2d 20 32 2a 69 6e 73 65 74 2c 0a 09 09 ht - 2*inset,...
14c0: 32 2c 20 54 4b 5f 52 45 4c 49 45 46 5f 46 4c 41 2, TK_RELIEF_FLA
14d0: 54 29 3b 0a 09 20 20 20 20 69 6e 73 65 74 20 2b T);.. inset +
14e0: 3d 20 32 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b = 2;.. break;
14f0: 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 0a 20 . }.. /*.
1500: 20 20 20 20 2a 20 33 2d 44 20 62 6f 72 64 65 72 * 3-D border
1510: 3a 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 69 66 :. */. if
1520: 20 28 62 6f 72 64 65 72 20 26 26 20 62 6f 72 64 (border && bord
1530: 65 72 57 69 64 74 68 20 3e 20 30 29 20 7b 0a 09 erWidth > 0) {..
1540: 54 6b 5f 44 72 61 77 33 44 52 65 63 74 61 6e 67 Tk_Draw3DRectang
1550: 6c 65 28 74 6b 77 69 6e 2c 20 64 2c 20 62 6f 72 le(tkwin, d, bor
1560: 64 65 72 2c 0a 09 20 20 20 20 62 2e 78 2b 69 6e der,.. b.x+in
1570: 73 65 74 2c 20 62 2e 79 2b 69 6e 73 65 74 2c 20 set, b.y+inset,
1580: 62 2e 77 69 64 74 68 20 2d 20 32 2a 69 6e 73 65 b.width - 2*inse
1590: 74 2c 20 62 2e 68 65 69 67 68 74 20 2d 20 32 2a t, b.height - 2*
15a0: 69 6e 73 65 74 2c 0a 09 20 20 20 20 62 6f 72 64 inset,.. bord
15b0: 65 72 57 69 64 74 68 2c 72 65 6c 69 65 66 29 3b erWidth,relief);
15c0: 0a 20 20 20 20 7d 0a 7d 0a 0a 73 74 61 74 69 63 . }.}..static
15d0: 20 63 6f 6e 73 74 20 54 74 6b 5f 45 6c 65 6d 65 const Ttk_Eleme
15e0: 6e 74 53 70 65 63 20 42 75 74 74 6f 6e 42 6f 72 ntSpec ButtonBor
15f0: 64 65 72 45 6c 65 6d 65 6e 74 53 70 65 63 20 3d derElementSpec =
1600: 0a 7b 0a 20 20 20 20 54 4b 5f 53 54 59 4c 45 5f .{. TK_STYLE_
1610: 56 45 52 53 49 4f 4e 5f 32 2c 0a 20 20 20 20 73 VERSION_2,. s
1620: 69 7a 65 6f 66 28 42 75 74 74 6f 6e 42 6f 72 64 izeof(ButtonBord
1630: 65 72 45 6c 65 6d 65 6e 74 29 2c 0a 20 20 20 20 erElement),.
1640: 42 75 74 74 6f 6e 42 6f 72 64 65 72 45 6c 65 6d ButtonBorderElem
1650: 65 6e 74 4f 70 74 69 6f 6e 73 2c 0a 20 20 20 20 entOptions,.
1660: 42 75 74 74 6f 6e 42 6f 72 64 65 72 45 6c 65 6d ButtonBorderElem
1670: 65 6e 74 53 69 7a 65 2c 0a 20 20 20 20 42 75 74 entSize,. But
1680: 74 6f 6e 42 6f 72 64 65 72 45 6c 65 6d 65 6e 74 tonBorderElement
1690: 44 72 61 77 0a 7d 3b 0a 0a 2f 2a 2d 2d 2d 2d 2d Draw.};../*-----
16a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
16b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
16c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
16d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
16e0: 2d 0a 20 2a 20 2b 2b 2b 20 41 72 72 6f 77 20 65 -. * +++ Arrow e
16f0: 6c 65 6d 65 6e 74 28 73 29 2e 0a 20 2a 0a 20 2a lement(s).. *. *
1700: 20 44 72 61 77 73 20 61 20 33 2d 44 20 73 68 61 Draws a 3-D sha
1710: 64 65 64 20 74 72 69 61 6e 67 6c 65 2e 0a 20 2a ded triangle.. *
1720: 20 63 6c 69 65 6e 74 44 61 74 61 20 69 73 20 61 clientData is a
1730: 6e 20 65 6e 75 6d 20 41 72 72 6f 77 44 69 72 65 n enum ArrowDire
1740: 63 74 69 6f 6e 20 70 6f 69 6e 74 65 72 2e 0a 20 ction pointer..
1750: 2a 2f 0a 0a 74 79 70 65 64 65 66 20 73 74 72 75 */..typedef stru
1760: 63 74 0a 7b 0a 20 20 20 20 54 63 6c 5f 4f 62 6a ct.{. Tcl_Obj
1770: 20 2a 73 69 7a 65 4f 62 6a 3b 0a 20 20 20 20 54 *sizeObj;. T
1780: 63 6c 5f 4f 62 6a 20 2a 62 6f 72 64 65 72 4f 62 cl_Obj *borderOb
1790: 6a 3b 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a j;. Tcl_Obj *
17a0: 62 6f 72 64 65 72 57 69 64 74 68 4f 62 6a 3b 0a borderWidthObj;.
17b0: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 72 65 6c Tcl_Obj *rel
17c0: 69 65 66 4f 62 6a 3b 0a 7d 20 41 72 72 6f 77 45 iefObj;.} ArrowE
17d0: 6c 65 6d 65 6e 74 3b 0a 0a 73 74 61 74 69 63 20 lement;..static
17e0: 63 6f 6e 73 74 20 54 74 6b 5f 45 6c 65 6d 65 6e const Ttk_Elemen
17f0: 74 4f 70 74 69 6f 6e 53 70 65 63 20 41 72 72 6f tOptionSpec Arro
1800: 77 45 6c 65 6d 65 6e 74 4f 70 74 69 6f 6e 73 5b wElementOptions[
1810: 5d 20 3d 0a 7b 0a 20 20 20 20 7b 20 22 2d 61 72 ] =.{. { "-ar
1820: 72 6f 77 73 69 7a 65 22 2c 20 54 4b 5f 4f 50 54 rowsize", TK_OPT
1830: 49 4f 4e 5f 50 49 58 45 4c 53 2c 20 6f 66 66 73 ION_PIXELS, offs
1840: 65 74 6f 66 28 41 72 72 6f 77 45 6c 65 6d 65 6e etof(ArrowElemen
1850: 74 2c 73 69 7a 65 4f 62 6a 29 2c 0a 09 44 45 46 t,sizeObj),..DEF
1860: 41 55 4c 54 5f 41 52 52 4f 57 5f 53 49 5a 45 20 AULT_ARROW_SIZE
1870: 7d 2c 0a 20 20 20 20 7b 20 22 2d 62 61 63 6b 67 },. { "-backg
1880: 72 6f 75 6e 64 22 2c 20 54 4b 5f 4f 50 54 49 4f round", TK_OPTIO
1890: 4e 5f 42 4f 52 44 45 52 2c 20 6f 66 66 73 65 74 N_BORDER, offset
18a0: 6f 66 28 41 72 72 6f 77 45 6c 65 6d 65 6e 74 2c of(ArrowElement,
18b0: 62 6f 72 64 65 72 4f 62 6a 29 2c 0a 20 20 20 20 borderObj),.
18c0: 09 44 45 46 41 55 4c 54 5f 42 41 43 4b 47 52 4f .DEFAULT_BACKGRO
18d0: 55 4e 44 20 7d 2c 0a 20 20 20 20 7b 20 22 2d 62 UND },. { "-b
18e0: 6f 72 64 65 72 77 69 64 74 68 22 2c 20 54 4b 5f orderwidth", TK_
18f0: 4f 50 54 49 4f 4e 5f 50 49 58 45 4c 53 2c 20 6f OPTION_PIXELS, o
1900: 66 66 73 65 74 6f 66 28 41 72 72 6f 77 45 6c 65 ffsetof(ArrowEle
1910: 6d 65 6e 74 2c 62 6f 72 64 65 72 57 69 64 74 68 ment,borderWidth
1920: 4f 62 6a 29 2c 0a 20 20 20 20 09 44 45 46 41 55 Obj),. .DEFAU
1930: 4c 54 5f 42 4f 52 44 45 52 57 49 44 54 48 20 7d LT_BORDERWIDTH }
1940: 2c 0a 20 20 20 20 7b 20 22 2d 72 65 6c 69 65 66 ,. { "-relief
1950: 22 2c 20 54 4b 5f 4f 50 54 49 4f 4e 5f 52 45 4c ", TK_OPTION_REL
1960: 49 45 46 2c 20 6f 66 66 73 65 74 6f 66 28 41 72 IEF, offsetof(Ar
1970: 72 6f 77 45 6c 65 6d 65 6e 74 2c 72 65 6c 69 65 rowElement,relie
1980: 66 4f 62 6a 29 2c 22 72 61 69 73 65 64 22 20 7d fObj),"raised" }
1990: 2c 0a 20 20 20 20 7b 20 4e 55 4c 4c 2c 20 54 4b ,. { NULL, TK
19a0: 5f 4f 50 54 49 4f 4e 5f 42 4f 4f 4c 45 41 4e 2c _OPTION_BOOLEAN,
19b0: 20 30 2c 20 4e 55 4c 4c 20 7d 0a 7d 3b 0a 0a 73 0, NULL }.};..s
19c0: 74 61 74 69 63 20 76 6f 69 64 20 41 72 72 6f 77 tatic void Arrow
19d0: 45 6c 65 6d 65 6e 74 53 69 7a 65 28 0a 20 20 20 ElementSize(.
19e0: 20 76 6f 69 64 20 2a 64 75 6d 6d 79 2c 20 76 6f void *dummy, vo
19f0: 69 64 20 2a 65 6c 65 6d 65 6e 74 52 65 63 6f 72 id *elementRecor
1a00: 64 2c 20 54 6b 5f 57 69 6e 64 6f 77 20 74 6b 77 d, Tk_Window tkw
1a10: 69 6e 2c 0a 20 20 20 20 69 6e 74 20 2a 77 69 64 in,. int *wid
1a20: 74 68 50 74 72 2c 20 69 6e 74 20 2a 68 65 69 67 thPtr, int *heig
1a30: 68 74 50 74 72 2c 20 54 74 6b 5f 50 61 64 64 69 htPtr, Ttk_Paddi
1a40: 6e 67 20 2a 70 61 64 64 69 6e 67 50 74 72 29 0a ng *paddingPtr).
1a50: 7b 0a 20 20 20 20 41 72 72 6f 77 45 6c 65 6d 65 {. ArrowEleme
1a60: 6e 74 20 2a 61 72 72 6f 77 20 3d 20 28 41 72 72 nt *arrow = (Arr
1a70: 6f 77 45 6c 65 6d 65 6e 74 20 2a 29 65 6c 65 6d owElement *)elem
1a80: 65 6e 74 52 65 63 6f 72 64 3b 0a 20 20 20 20 69 entRecord;. i
1a90: 6e 74 20 73 69 7a 65 20 3d 20 31 32 3b 0a 20 20 nt size = 12;.
1aa0: 20 20 28 76 6f 69 64 29 64 75 6d 6d 79 3b 0a 20 (void)dummy;.
1ab0: 20 20 20 28 76 6f 69 64 29 70 61 64 64 69 6e 67 (void)padding
1ac0: 50 74 72 3b 0a 0a 20 20 20 20 54 6b 5f 47 65 74 Ptr;.. Tk_Get
1ad0: 50 69 78 65 6c 73 46 72 6f 6d 4f 62 6a 28 4e 55 PixelsFromObj(NU
1ae0: 4c 4c 2c 20 74 6b 77 69 6e 2c 20 61 72 72 6f 77 LL, tkwin, arrow
1af0: 2d 3e 73 69 7a 65 4f 62 6a 2c 20 26 73 69 7a 65 ->sizeObj, &size
1b00: 29 3b 0a 20 20 20 20 2a 77 69 64 74 68 50 74 72 );. *widthPtr
1b10: 20 3d 20 2a 68 65 69 67 68 74 50 74 72 20 3d 20 = *heightPtr =
1b20: 73 69 7a 65 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 size;.}..static
1b30: 76 6f 69 64 20 41 72 72 6f 77 45 6c 65 6d 65 6e void ArrowElemen
1b40: 74 44 72 61 77 28 0a 20 20 20 20 76 6f 69 64 20 tDraw(. void
1b50: 2a 63 6c 69 65 6e 74 44 61 74 61 2c 20 76 6f 69 *clientData, voi
1b60: 64 20 2a 65 6c 65 6d 65 6e 74 52 65 63 6f 72 64 d *elementRecord
1b70: 2c 20 54 6b 5f 57 69 6e 64 6f 77 20 74 6b 77 69 , Tk_Window tkwi
1b80: 6e 2c 0a 20 20 20 20 44 72 61 77 61 62 6c 65 20 n,. Drawable
1b90: 64 2c 20 54 74 6b 5f 42 6f 78 20 62 2c 20 75 6e d, Ttk_Box b, un
1ba0: 73 69 67 6e 65 64 20 69 6e 74 20 73 74 61 74 65 signed int state
1bb0: 29 0a 7b 0a 09 41 72 72 6f 77 44 69 72 65 63 74 ).{..ArrowDirect
1bc0: 69 6f 6e 20 64 69 72 65 63 74 69 6f 6e 20 3d 20 ion direction =
1bd0: 28 41 72 72 6f 77 44 69 72 65 63 74 69 6f 6e 29 (ArrowDirection)
1be0: 50 54 52 32 49 4e 54 28 63 6c 69 65 6e 74 44 61 PTR2INT(clientDa
1bf0: 74 61 29 3b 0a 20 20 20 20 41 72 72 6f 77 45 6c ta);. ArrowEl
1c00: 65 6d 65 6e 74 20 2a 61 72 72 6f 77 20 3d 20 28 ement *arrow = (
1c10: 41 72 72 6f 77 45 6c 65 6d 65 6e 74 20 2a 29 65 ArrowElement *)e
1c20: 6c 65 6d 65 6e 74 52 65 63 6f 72 64 3b 0a 20 20 lementRecord;.
1c30: 20 20 54 6b 5f 33 44 42 6f 72 64 65 72 20 62 6f Tk_3DBorder bo
1c40: 72 64 65 72 20 3d 20 54 6b 5f 47 65 74 33 44 42 rder = Tk_Get3DB
1c50: 6f 72 64 65 72 46 72 6f 6d 4f 62 6a 28 74 6b 77 orderFromObj(tkw
1c60: 69 6e 2c 20 61 72 72 6f 77 2d 3e 62 6f 72 64 65 in, arrow->borde
1c70: 72 4f 62 6a 29 3b 0a 20 20 20 20 69 6e 74 20 62 rObj);. int b
1c80: 6f 72 64 65 72 57 69 64 74 68 20 3d 20 32 3b 0a orderWidth = 2;.
1c90: 20 20 20 20 69 6e 74 20 72 65 6c 69 65 66 20 3d int relief =
1ca0: 20 54 4b 5f 52 45 4c 49 45 46 5f 52 41 49 53 45 TK_RELIEF_RAISE
1cb0: 44 3b 0a 20 20 20 20 69 6e 74 20 73 69 7a 65 20 D;. int size
1cc0: 3d 20 62 2e 77 69 64 74 68 20 3c 20 62 2e 68 65 = b.width < b.he
1cd0: 69 67 68 74 20 3f 20 62 2e 77 69 64 74 68 20 3a ight ? b.width :
1ce0: 20 62 2e 68 65 69 67 68 74 3b 0a 20 20 20 20 58 b.height;. X
1cf0: 50 6f 69 6e 74 20 70 6f 69 6e 74 73 5b 33 5d 3b Point points[3];
1d00: 0a 20 20 20 20 28 76 6f 69 64 29 73 74 61 74 65 . (void)state
1d10: 3b 0a 0a 20 20 20 20 54 6b 5f 47 65 74 50 69 78 ;.. Tk_GetPix
1d20: 65 6c 73 46 72 6f 6d 4f 62 6a 28 4e 55 4c 4c 2c elsFromObj(NULL,
1d30: 20 74 6b 77 69 6e 2c 20 61 72 72 6f 77 2d 3e 62 tkwin, arrow->b
1d40: 6f 72 64 65 72 57 69 64 74 68 4f 62 6a 2c 20 26 orderWidthObj, &
1d50: 62 6f 72 64 65 72 57 69 64 74 68 29 3b 0a 20 20 borderWidth);.
1d60: 20 20 54 6b 5f 47 65 74 52 65 6c 69 65 66 46 72 Tk_GetReliefFr
1d70: 6f 6d 4f 62 6a 28 4e 55 4c 4c 2c 20 61 72 72 6f omObj(NULL, arro
1d80: 77 2d 3e 72 65 6c 69 65 66 4f 62 6a 2c 20 26 72 w->reliefObj, &r
1d90: 65 6c 69 65 66 29 3b 0a 0a 0a 20 20 20 20 2f 2a elief);... /*
1da0: 0a 20 20 20 20 20 2a 20 40 40 40 20 54 68 65 72 . * @@@ Ther
1db0: 65 20 61 72 65 20 6f 66 66 2d 62 79 2d 6f 6e 65 e are off-by-one
1dc0: 20 70 69 78 65 6c 20 65 72 72 6f 72 73 20 69 6e pixel errors in
1dd0: 20 74 68 65 20 77 61 79 20 74 68 65 73 65 20 61 the way these a
1de0: 72 65 20 64 72 61 77 6e 3b 0a 20 20 20 20 20 2a re drawn;. *
1df0: 20 40 40 40 20 6e 65 65 64 20 74 6f 20 74 61 6b @@@ need to tak
1e00: 65 20 61 20 6c 6f 6f 6b 20 61 74 20 54 6b 5f 46 e a look at Tk_F
1e10: 69 6c 6c 33 44 50 6f 6c 79 67 6f 6e 20 61 6e 64 ill3DPolygon and
1e20: 20 58 31 31 20 74 6f 20 66 69 6e 64 20 74 68 65 X11 to find the
1e30: 0a 20 20 20 20 20 2a 20 40 40 40 20 65 78 61 63 . * @@@ exac
1e40: 74 20 72 75 6c 65 73 2e 0a 20 20 20 20 20 2a 2f t rules.. */
1e50: 0a 20 20 20 20 73 77 69 74 63 68 20 28 64 69 72 . switch (dir
1e60: 65 63 74 69 6f 6e 29 0a 20 20 20 20 7b 0a 09 63 ection). {..c
1e70: 61 73 65 20 41 52 52 4f 57 5f 55 50 3a 0a 09 20 ase ARROW_UP:..
1e80: 20 20 20 70 6f 69 6e 74 73 5b 32 5d 2e 78 20 3d points[2].x =
1e90: 20 62 2e 78 3b 20 09 09 70 6f 69 6e 74 73 5b 32 b.x; ..points[2
1ea0: 5d 2e 79 20 3d 20 62 2e 79 20 2b 20 73 69 7a 65 ].y = b.y + size
1eb0: 3b 0a 09 20 20 20 20 70 6f 69 6e 74 73 5b 31 5d ;.. points[1]
1ec0: 2e 78 20 3d 20 62 2e 78 20 2b 20 73 69 7a 65 2f .x = b.x + size/
1ed0: 32 3b 09 70 6f 69 6e 74 73 5b 31 5d 2e 79 20 3d 2;.points[1].y =
1ee0: 20 62 2e 79 3b 0a 09 20 20 20 20 70 6f 69 6e 74 b.y;.. point
1ef0: 73 5b 30 5d 2e 78 20 3d 20 62 2e 78 20 2b 20 73 s[0].x = b.x + s
1f00: 69 7a 65 3b 09 70 6f 69 6e 74 73 5b 30 5d 2e 79 ize;.points[0].y
1f10: 20 3d 20 62 2e 79 20 2b 20 73 69 7a 65 3b 0a 09 = b.y + size;..
1f20: 20 20 20 20 62 72 65 61 6b 3b 0a 09 63 61 73 65 break;..case
1f30: 20 41 52 52 4f 57 5f 44 4f 57 4e 3a 0a 09 20 20 ARROW_DOWN:..
1f40: 20 20 70 6f 69 6e 74 73 5b 30 5d 2e 78 20 3d 20 points[0].x =
1f50: 62 2e 78 3b 20 09 09 70 6f 69 6e 74 73 5b 30 5d b.x; ..points[0]
1f60: 2e 79 20 3d 20 62 2e 79 3b 0a 09 20 20 20 20 70 .y = b.y;.. p
1f70: 6f 69 6e 74 73 5b 31 5d 2e 78 20 3d 20 62 2e 78 oints[1].x = b.x
1f80: 20 2b 20 73 69 7a 65 2f 32 3b 09 70 6f 69 6e 74 + size/2;.point
1f90: 73 5b 31 5d 2e 79 20 3d 20 62 2e 79 20 2b 20 73 s[1].y = b.y + s
1fa0: 69 7a 65 3b 0a 09 20 20 20 20 70 6f 69 6e 74 73 ize;.. points
1fb0: 5b 32 5d 2e 78 20 3d 20 62 2e 78 20 2b 20 73 69 [2].x = b.x + si
1fc0: 7a 65 3b 09 70 6f 69 6e 74 73 5b 32 5d 2e 79 20 ze;.points[2].y
1fd0: 3d 20 62 2e 79 3b 0a 09 20 20 20 20 62 72 65 61 = b.y;.. brea
1fe0: 6b 3b 0a 09 63 61 73 65 20 41 52 52 4f 57 5f 4c k;..case ARROW_L
1ff0: 45 46 54 3a 0a 09 20 20 20 20 70 6f 69 6e 74 73 EFT:.. points
2000: 5b 30 5d 2e 78 20 3d 20 62 2e 78 3b 20 09 09 70 [0].x = b.x; ..p
2010: 6f 69 6e 74 73 5b 30 5d 2e 79 20 3d 20 62 2e 79 oints[0].y = b.y
2020: 20 2b 20 73 69 7a 65 20 2f 20 32 3b 0a 09 20 20 + size / 2;..
2030: 20 20 70 6f 69 6e 74 73 5b 31 5d 2e 78 20 3d 20 points[1].x =
2040: 62 2e 78 20 2b 20 73 69 7a 65 3b 09 70 6f 69 6e b.x + size;.poin
2050: 74 73 5b 31 5d 2e 79 20 3d 20 62 2e 79 20 2b 20 ts[1].y = b.y +
2060: 73 69 7a 65 3b 0a 09 20 20 20 20 70 6f 69 6e 74 size;.. point
2070: 73 5b 32 5d 2e 78 20 3d 20 62 2e 78 20 2b 20 73 s[2].x = b.x + s
2080: 69 7a 65 3b 09 70 6f 69 6e 74 73 5b 32 5d 2e 79 ize;.points[2].y
2090: 20 3d 20 62 2e 79 3b 0a 09 20 20 20 20 62 72 65 = b.y;.. bre
20a0: 61 6b 3b 0a 09 63 61 73 65 20 41 52 52 4f 57 5f ak;..case ARROW_
20b0: 52 49 47 48 54 3a 0a 09 20 20 20 20 70 6f 69 6e RIGHT:.. poin
20c0: 74 73 5b 30 5d 2e 78 20 3d 20 62 2e 78 20 2b 20 ts[0].x = b.x +
20d0: 73 69 7a 65 3b 09 70 6f 69 6e 74 73 5b 30 5d 2e size;.points[0].
20e0: 79 20 3d 20 62 2e 79 20 2b 20 73 69 7a 65 20 2f y = b.y + size /
20f0: 20 32 3b 0a 09 20 20 20 20 70 6f 69 6e 74 73 5b 2;.. points[
2100: 31 5d 2e 78 20 3d 20 62 2e 78 3b 09 09 70 6f 69 1].x = b.x;..poi
2110: 6e 74 73 5b 31 5d 2e 79 20 3d 20 62 2e 79 3b 0a nts[1].y = b.y;.
2120: 09 20 20 20 20 70 6f 69 6e 74 73 5b 32 5d 2e 78 . points[2].x
2130: 20 3d 20 62 2e 78 3b 09 09 70 6f 69 6e 74 73 5b = b.x;..points[
2140: 32 5d 2e 79 20 3d 20 62 2e 79 20 2b 20 73 69 7a 2].y = b.y + siz
2150: 65 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 20 e;.. break;.
2160: 20 20 20 7d 0a 0a 20 20 20 20 54 6b 5f 46 69 6c }.. Tk_Fil
2170: 6c 33 44 50 6f 6c 79 67 6f 6e 28 74 6b 77 69 6e l3DPolygon(tkwin
2180: 2c 20 64 2c 20 62 6f 72 64 65 72 2c 20 70 6f 69 , d, border, poi
2190: 6e 74 73 2c 20 33 2c 20 62 6f 72 64 65 72 57 69 nts, 3, borderWi
21a0: 64 74 68 2c 20 72 65 6c 69 65 66 29 3b 0a 7d 0a dth, relief);.}.
21b0: 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 54 74 .static const Tt
21c0: 6b 5f 45 6c 65 6d 65 6e 74 53 70 65 63 20 41 72 k_ElementSpec Ar
21d0: 72 6f 77 45 6c 65 6d 65 6e 74 53 70 65 63 20 3d rowElementSpec =
21e0: 0a 7b 0a 20 20 20 20 54 4b 5f 53 54 59 4c 45 5f .{. TK_STYLE_
21f0: 56 45 52 53 49 4f 4e 5f 32 2c 0a 20 20 20 20 73 VERSION_2,. s
2200: 69 7a 65 6f 66 28 41 72 72 6f 77 45 6c 65 6d 65 izeof(ArrowEleme
2210: 6e 74 29 2c 0a 20 20 20 20 41 72 72 6f 77 45 6c nt),. ArrowEl
2220: 65 6d 65 6e 74 4f 70 74 69 6f 6e 73 2c 0a 20 20 ementOptions,.
2230: 20 20 41 72 72 6f 77 45 6c 65 6d 65 6e 74 53 69 ArrowElementSi
2240: 7a 65 2c 0a 20 20 20 20 41 72 72 6f 77 45 6c 65 ze,. ArrowEle
2250: 6d 65 6e 74 44 72 61 77 0a 7d 3b 0a 0a 0a 2f 2a mentDraw.};.../*
2260: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2270: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2280: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2290: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
22a0: 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 2a 20 2b 2b 2b 20 --------. * +++
22b0: 53 61 73 68 20 65 6c 65 6d 65 6e 74 20 28 66 6f Sash element (fo
22c0: 72 20 74 74 6b 3a 3a 70 61 6e 65 64 77 69 6e 64 r ttk::panedwind
22d0: 6f 77 29 0a 20 2a 0a 20 2a 20 4e 4f 54 45 53 3a ow). *. * NOTES:
22e0: 0a 20 2a 0a 20 2a 20 70 61 6e 65 64 77 69 6e 64 . *. * panedwind
22f0: 6f 77 73 20 77 69 74 68 20 2d 6f 72 69 65 6e 74 ows with -orient
2300: 20 68 6f 72 69 7a 6f 6e 74 61 6c 20 75 73 65 20 horizontal use
2310: 76 65 72 74 69 63 61 6c 20 73 61 73 68 65 73 2c vertical sashes,
2320: 20 61 6e 64 20 76 69 63 65 20 76 65 72 73 61 2e and vice versa.
2330: 0a 20 2a 0a 20 2a 20 49 6e 74 65 72 70 72 65 74 . *. * Interpret
2340: 61 74 69 6f 6e 20 6f 66 20 2d 73 61 73 68 72 65 ation of -sashre
2350: 6c 69 65 66 20 27 67 72 6f 6f 76 65 27 20 61 6e lief 'groove' an
2360: 64 20 27 72 69 64 67 65 27 20 61 72 65 0a 20 2a d 'ridge' are. *
2370: 20 73 77 61 70 70 65 64 20 77 72 74 2e 20 74 68 swapped wrt. th
2380: 65 20 63 6f 72 65 20 70 61 6e 65 64 77 69 6e 64 e core panedwind
2390: 6f 77 2c 20 77 68 69 63 68 20 28 49 20 74 68 69 ow, which (I thi
23a0: 6e 6b 29 20 68 61 73 20 74 68 65 6d 20 62 61 63 nk) has them bac
23b0: 6b 77 61 72 64 73 2e 0a 20 2a 0a 20 2a 20 44 65 kwards.. *. * De
23c0: 66 61 75 6c 74 20 2d 73 61 73 68 72 65 6c 69 65 fault -sashrelie
23d0: 66 20 69 73 20 73 75 6e 6b 65 6e 3b 20 74 68 65 f is sunken; the
23e0: 20 63 6f 72 65 20 70 61 6e 65 64 77 69 6e 64 6f core panedwindo
23f0: 77 20 68 61 73 20 64 65 66 61 75 6c 74 0a 20 2a w has default. *
2400: 20 2d 73 61 73 68 72 65 6c 69 65 66 20 72 61 69 -sashrelief rai
2410: 73 65 64 2c 20 62 75 74 20 74 68 61 74 20 6c 6f sed, but that lo
2420: 6f 6b 73 20 77 72 6f 6e 67 20 74 6f 20 6d 65 2e oks wrong to me.
2430: 0a 20 2a 2f 0a 0a 74 79 70 65 64 65 66 20 73 74 . */..typedef st
2440: 72 75 63 74 20 7b 0a 20 20 20 20 54 63 6c 5f 4f ruct {. Tcl_O
2450: 62 6a 20 2a 62 6f 72 64 65 72 4f 62 6a 3b 20 09 bj *borderObj; .
2460: 2f 2a 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f /* background co
2470: 6c 6f 72 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f lor */. Tcl_O
2480: 62 6a 20 2a 73 61 73 68 52 65 6c 69 65 66 4f 62 bj *sashReliefOb
2490: 6a 3b 09 2f 2a 20 73 61 73 68 20 72 65 6c 69 65 j;./* sash relie
24a0: 66 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a f */. Tcl_Obj
24b0: 20 2a 73 61 73 68 54 68 69 63 6b 6e 65 73 73 4f *sashThicknessO
24c0: 62 6a 3b 09 2f 2a 20 6f 76 65 72 61 6c 6c 20 74 bj;./* overall t
24d0: 68 69 63 6b 6e 65 73 73 20 6f 66 20 73 61 73 68 hickness of sash
24e0: 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 */. Tcl_Obj
24f0: 2a 73 61 73 68 50 61 64 4f 62 6a 3b 09 2f 2a 20 *sashPadObj;./*
2500: 70 61 64 64 69 6e 67 20 6f 6e 20 65 69 74 68 65 padding on eithe
2510: 72 20 73 69 64 65 20 6f 66 20 68 61 6e 64 6c 65 r side of handle
2520: 20 2a 2f 0a 20 20 20 20 54 63 6c 5f 4f 62 6a 20 */. Tcl_Obj
2530: 2a 68 61 6e 64 6c 65 53 69 7a 65 4f 62 6a 3b 09 *handleSizeObj;.
2540: 2f 2a 20 68 61 6e 64 6c 65 20 77 69 64 74 68 20 /* handle width
2550: 61 6e 64 20 68 65 69 67 68 74 20 2a 2f 0a 20 20 and height */.
2560: 20 20 54 63 6c 5f 4f 62 6a 20 2a 68 61 6e 64 6c Tcl_Obj *handl
2570: 65 50 61 64 4f 62 6a 3b 09 2f 2a 20 68 61 6e 64 ePadObj;./* hand
2580: 6c 65 27 73 20 64 69 73 74 61 6e 63 65 20 66 72 le's distance fr
2590: 6f 6d 20 65 64 67 65 20 2a 2f 0a 7d 20 53 61 73 om edge */.} Sas
25a0: 68 45 6c 65 6d 65 6e 74 3b 0a 0a 73 74 61 74 69 hElement;..stati
25b0: 63 20 63 6f 6e 73 74 20 54 74 6b 5f 45 6c 65 6d c const Ttk_Elem
25c0: 65 6e 74 4f 70 74 69 6f 6e 53 70 65 63 20 53 61 entOptionSpec Sa
25d0: 73 68 4f 70 74 69 6f 6e 73 5b 5d 20 3d 20 7b 0a shOptions[] = {.
25e0: 20 20 20 20 7b 20 22 2d 62 61 63 6b 67 72 6f 75 { "-backgrou
25f0: 6e 64 22 2c 20 54 4b 5f 4f 50 54 49 4f 4e 5f 42 nd", TK_OPTION_B
2600: 4f 52 44 45 52 2c 0a 09 6f 66 66 73 65 74 6f 66 ORDER,..offsetof
2610: 28 53 61 73 68 45 6c 65 6d 65 6e 74 2c 62 6f 72 (SashElement,bor
2620: 64 65 72 4f 62 6a 29 2c 20 44 45 46 41 55 4c 54 derObj), DEFAULT
2630: 5f 42 41 43 4b 47 52 4f 55 4e 44 20 7d 2c 0a 20 _BACKGROUND },.
2640: 20 20 20 7b 20 22 2d 73 61 73 68 72 65 6c 69 65 { "-sashrelie
2650: 66 22 2c 20 54 4b 5f 4f 50 54 49 4f 4e 5f 52 45 f", TK_OPTION_RE
2660: 4c 49 45 46 2c 0a 09 6f 66 66 73 65 74 6f 66 28 LIEF,..offsetof(
2670: 53 61 73 68 45 6c 65 6d 65 6e 74 2c 73 61 73 68 SashElement,sash
2680: 52 65 6c 69 65 66 4f 62 6a 29 2c 20 22 73 75 6e ReliefObj), "sun
2690: 6b 65 6e 22 20 7d 2c 0a 20 20 20 20 7b 20 22 2d ken" },. { "-
26a0: 73 61 73 68 74 68 69 63 6b 6e 65 73 73 22 2c 20 sashthickness",
26b0: 54 4b 5f 4f 50 54 49 4f 4e 5f 50 49 58 45 4c 53 TK_OPTION_PIXELS
26c0: 2c 0a 09 6f 66 66 73 65 74 6f 66 28 53 61 73 68 ,..offsetof(Sash
26d0: 45 6c 65 6d 65 6e 74 2c 73 61 73 68 54 68 69 63 Element,sashThic
26e0: 6b 6e 65 73 73 4f 62 6a 29 2c 20 22 36 22 20 7d knessObj), "6" }
26f0: 2c 0a 20 20 20 20 7b 20 22 2d 73 61 73 68 70 61 ,. { "-sashpa
2700: 64 22 2c 20 54 4b 5f 4f 50 54 49 4f 4e 5f 50 49 d", TK_OPTION_PI
2710: 58 45 4c 53 2c 0a 09 6f 66 66 73 65 74 6f 66 28 XELS,..offsetof(
2720: 53 61 73 68 45 6c 65 6d 65 6e 74 2c 73 61 73 68 SashElement,sash
2730: 50 61 64 4f 62 6a 29 2c 20 22 32 22 20 7d 2c 0a PadObj), "2" },.
2740: 20 20 20 20 7b 20 22 2d 68 61 6e 64 6c 65 73 69 { "-handlesi
2750: 7a 65 22 2c 20 54 4b 5f 4f 50 54 49 4f 4e 5f 50 ze", TK_OPTION_P
2760: 49 58 45 4c 53 2c 0a 09 6f 66 66 73 65 74 6f 66 IXELS,..offsetof
2770: 28 53 61 73 68 45 6c 65 6d 65 6e 74 2c 68 61 6e (SashElement,han
2780: 64 6c 65 53 69 7a 65 4f 62 6a 29 2c 20 22 38 22 dleSizeObj), "8"
2790: 20 7d 2c 0a 20 20 20 20 7b 20 22 2d 68 61 6e 64 },. { "-hand
27a0: 6c 65 70 61 64 22 2c 20 54 4b 5f 4f 50 54 49 4f lepad", TK_OPTIO
27b0: 4e 5f 50 49 58 45 4c 53 2c 0a 09 6f 66 66 73 65 N_PIXELS,..offse
27c0: 74 6f 66 28 53 61 73 68 45 6c 65 6d 65 6e 74 2c tof(SashElement,
27d0: 68 61 6e 64 6c 65 50 61 64 4f 62 6a 29 2c 20 22 handlePadObj), "
27e0: 38 22 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c 4c 8" },. { NULL
27f0: 2c 20 54 4b 5f 4f 50 54 49 4f 4e 5f 42 4f 4f 4c , TK_OPTION_BOOL
2800: 45 41 4e 2c 20 30 2c 20 4e 55 4c 4c 20 7d 0a 7d EAN, 0, NULL }.}
2810: 3b 0a 0a 73 74 61 74 69 63 20 76 6f 69 64 20 53 ;..static void S
2820: 61 73 68 45 6c 65 6d 65 6e 74 53 69 7a 65 28 0a ashElementSize(.
2830: 20 20 20 20 76 6f 69 64 20 2a 63 6c 69 65 6e 74 void *client
2840: 44 61 74 61 2c 20 76 6f 69 64 20 2a 65 6c 65 6d Data, void *elem
2850: 65 6e 74 52 65 63 6f 72 64 2c 20 54 6b 5f 57 69 entRecord, Tk_Wi
2860: 6e 64 6f 77 20 74 6b 77 69 6e 2c 0a 20 20 20 20 ndow tkwin,.
2870: 69 6e 74 20 2a 77 69 64 74 68 50 74 72 2c 20 69 int *widthPtr, i
2880: 6e 74 20 2a 68 65 69 67 68 74 50 74 72 2c 20 54 nt *heightPtr, T
2890: 74 6b 5f 50 61 64 64 69 6e 67 20 2a 70 61 64 64 tk_Padding *padd
28a0: 69 6e 67 50 74 72 29 0a 7b 0a 20 20 20 20 53 61 ingPtr).{. Sa
28b0: 73 68 45 6c 65 6d 65 6e 74 20 2a 73 61 73 68 20 shElement *sash
28c0: 3d 20 28 53 61 73 68 45 6c 65 6d 65 6e 74 20 2a = (SashElement *
28d0: 29 65 6c 65 6d 65 6e 74 52 65 63 6f 72 64 3b 0a )elementRecord;.
28e0: 20 20 20 20 69 6e 74 20 73 61 73 68 50 61 64 20 int sashPad
28f0: 3d 20 32 2c 20 73 61 73 68 54 68 69 63 6b 6e 65 = 2, sashThickne
2900: 73 73 20 3d 20 36 2c 20 68 61 6e 64 6c 65 53 69 ss = 6, handleSi
2910: 7a 65 20 3d 20 38 3b 0a 20 20 20 20 54 74 6b 5f ze = 8;. Ttk_
2920: 4f 72 69 65 6e 74 20 6f 72 69 65 6e 74 20 3d 20 Orient orient =
2930: 28 54 74 6b 5f 4f 72 69 65 6e 74 29 50 54 52 32 (Ttk_Orient)PTR2
2940: 49 4e 54 28 63 6c 69 65 6e 74 44 61 74 61 29 3b INT(clientData);
2950: 0a 20 20 20 20 28 76 6f 69 64 29 70 61 64 64 69 . (void)paddi
2960: 6e 67 50 74 72 3b 0a 20 20 20 20 28 76 6f 69 64 ngPtr;. (void
2970: 29 70 61 64 64 69 6e 67 50 74 72 3b 0a 0a 20 20 )paddingPtr;..
2980: 20 20 54 6b 5f 47 65 74 50 69 78 65 6c 73 46 72 Tk_GetPixelsFr
2990: 6f 6d 4f 62 6a 28 4e 55 4c 4c 2c 20 74 6b 77 69 omObj(NULL, tkwi
29a0: 6e 2c 20 73 61 73 68 2d 3e 73 61 73 68 54 68 69 n, sash->sashThi
29b0: 63 6b 6e 65 73 73 4f 62 6a 2c 20 26 73 61 73 68 cknessObj, &sash
29c0: 54 68 69 63 6b 6e 65 73 73 29 3b 0a 20 20 20 20 Thickness);.
29d0: 54 6b 5f 47 65 74 50 69 78 65 6c 73 46 72 6f 6d Tk_GetPixelsFrom
29e0: 4f 62 6a 28 4e 55 4c 4c 2c 20 74 6b 77 69 6e 2c Obj(NULL, tkwin,
29f0: 20 73 61 73 68 2d 3e 68 61 6e 64 6c 65 53 69 7a sash->handleSiz
2a00: 65 4f 62 6a 2c 20 26 68 61 6e 64 6c 65 53 69 7a eObj, &handleSiz
2a10: 65 29 3b 0a 20 20 20 20 54 6b 5f 47 65 74 50 69 e);. Tk_GetPi
2a20: 78 65 6c 73 46 72 6f 6d 4f 62 6a 28 4e 55 4c 4c xelsFromObj(NULL
2a30: 2c 20 74 6b 77 69 6e 2c 20 73 61 73 68 2d 3e 73 , tkwin, sash->s
2a40: 61 73 68 50 61 64 4f 62 6a 2c 20 26 73 61 73 68 ashPadObj, &sash
2a50: 50 61 64 29 3b 0a 0a 20 20 20 20 69 66 20 28 73 Pad);.. if (s
2a60: 61 73 68 54 68 69 63 6b 6e 65 73 73 20 3c 20 68 ashThickness < h
2a70: 61 6e 64 6c 65 53 69 7a 65 20 2b 20 32 2a 73 61 andleSize + 2*sa
2a80: 73 68 50 61 64 29 0a 09 73 61 73 68 54 68 69 63 shPad)..sashThic
2a90: 6b 6e 65 73 73 20 3d 20 68 61 6e 64 6c 65 53 69 kness = handleSi
2aa0: 7a 65 20 2b 20 32 2a 73 61 73 68 50 61 64 3b 0a ze + 2*sashPad;.
2ab0: 0a 20 20 20 20 69 66 20 28 6f 72 69 65 6e 74 20 . if (orient
2ac0: 3d 3d 20 54 54 4b 5f 4f 52 49 45 4e 54 5f 48 4f == TTK_ORIENT_HO
2ad0: 52 49 5a 4f 4e 54 41 4c 29 0a 09 2a 68 65 69 67 RIZONTAL)..*heig
2ae0: 68 74 50 74 72 20 3d 20 73 61 73 68 54 68 69 63 htPtr = sashThic
2af0: 6b 6e 65 73 73 3b 0a 20 20 20 20 65 6c 73 65 0a kness;. else.
2b00: 09 2a 77 69 64 74 68 50 74 72 20 3d 20 73 61 73 .*widthPtr = sas
2b10: 68 54 68 69 63 6b 6e 65 73 73 3b 0a 7d 0a 0a 73 hThickness;.}..s
2b20: 74 61 74 69 63 20 76 6f 69 64 20 53 61 73 68 45 tatic void SashE
2b30: 6c 65 6d 65 6e 74 44 72 61 77 28 0a 20 20 20 20 lementDraw(.
2b40: 76 6f 69 64 20 2a 63 6c 69 65 6e 74 44 61 74 61 void *clientData
2b50: 2c 20 76 6f 69 64 20 2a 65 6c 65 6d 65 6e 74 52 , void *elementR
2b60: 65 63 6f 72 64 2c 20 54 6b 5f 57 69 6e 64 6f 77 ecord, Tk_Window
2b70: 20 74 6b 77 69 6e 2c 0a 20 20 20 20 44 72 61 77 tkwin,. Draw
2b80: 61 62 6c 65 20 64 2c 20 54 74 6b 5f 42 6f 78 20 able d, Ttk_Box
2b90: 62 2c 20 54 74 6b 5f 53 74 61 74 65 20 73 74 61 b, Ttk_State sta
2ba0: 74 65 29 0a 7b 0a 20 20 20 20 53 61 73 68 45 6c te).{. SashEl
2bb0: 65 6d 65 6e 74 20 2a 73 61 73 68 20 3d 20 28 53 ement *sash = (S
2bc0: 61 73 68 45 6c 65 6d 65 6e 74 20 2a 29 65 6c 65 ashElement *)ele
2bd0: 6d 65 6e 74 52 65 63 6f 72 64 3b 0a 20 20 20 20 mentRecord;.
2be0: 54 6b 5f 33 44 42 6f 72 64 65 72 20 62 6f 72 64 Tk_3DBorder bord
2bf0: 65 72 20 3d 20 54 6b 5f 47 65 74 33 44 42 6f 72 er = Tk_Get3DBor
2c00: 64 65 72 46 72 6f 6d 4f 62 6a 28 74 6b 77 69 6e derFromObj(tkwin
2c10: 2c 20 73 61 73 68 2d 3e 62 6f 72 64 65 72 4f 62 , sash->borderOb
2c20: 6a 29 3b 0a 20 20 20 20 47 43 20 67 63 31 2c 67 j);. GC gc1,g
2c30: 63 32 3b 0a 20 20 20 20 69 6e 74 20 72 65 6c 69 c2;. int reli
2c40: 65 66 20 3d 20 54 4b 5f 52 45 4c 49 45 46 5f 52 ef = TK_RELIEF_R
2c50: 41 49 53 45 44 3b 0a 20 20 20 20 69 6e 74 20 68 AISED;. int h
2c60: 61 6e 64 6c 65 53 69 7a 65 20 3d 20 38 2c 20 68 andleSize = 8, h
2c70: 61 6e 64 6c 65 50 61 64 20 3d 20 38 3b 0a 20 20 andlePad = 8;.
2c80: 20 20 54 74 6b 5f 4f 72 69 65 6e 74 20 6f 72 69 Ttk_Orient ori
2c90: 65 6e 74 20 3d 20 28 54 74 6b 5f 4f 72 69 65 6e ent = (Ttk_Orien
2ca0: 74 29 50 54 52 32 49 4e 54 28 63 6c 69 65 6e 74 t)PTR2INT(client
2cb0: 44 61 74 61 29 3b 0a 20 20 20 20 54 74 6b 5f 42 Data);. Ttk_B
2cc0: 6f 78 20 68 62 3b 0a 20 20 20 20 28 76 6f 69 64 ox hb;. (void
2cd0: 29 73 74 61 74 65 3b 0a 0a 20 20 20 20 54 6b 5f )state;.. Tk_
2ce0: 47 65 74 50 69 78 65 6c 73 46 72 6f 6d 4f 62 6a GetPixelsFromObj
2cf0: 28 4e 55 4c 4c 2c 20 74 6b 77 69 6e 2c 20 73 61 (NULL, tkwin, sa
2d00: 73 68 2d 3e 68 61 6e 64 6c 65 53 69 7a 65 4f 62 sh->handleSizeOb
2d10: 6a 2c 20 26 68 61 6e 64 6c 65 53 69 7a 65 29 3b j, &handleSize);
2d20: 0a 20 20 20 20 54 6b 5f 47 65 74 50 69 78 65 6c . Tk_GetPixel
2d30: 73 46 72 6f 6d 4f 62 6a 28 4e 55 4c 4c 2c 20 74 sFromObj(NULL, t
2d40: 6b 77 69 6e 2c 20 73 61 73 68 2d 3e 68 61 6e 64 kwin, sash->hand
2d50: 6c 65 50 61 64 4f 62 6a 2c 20 26 68 61 6e 64 6c lePadObj, &handl
2d60: 65 50 61 64 29 3b 0a 20 20 20 20 54 6b 5f 47 65 ePad);. Tk_Ge
2d70: 74 52 65 6c 69 65 66 46 72 6f 6d 4f 62 6a 28 4e tReliefFromObj(N
2d80: 55 4c 4c 2c 20 73 61 73 68 2d 3e 73 61 73 68 52 ULL, sash->sashR
2d90: 65 6c 69 65 66 4f 62 6a 2c 20 26 72 65 6c 69 65 eliefObj, &relie
2da0: 66 29 3b 0a 0a 20 20 20 20 73 77 69 74 63 68 20 f);.. switch
2db0: 28 72 65 6c 69 65 66 29 20 7b 0a 09 63 61 73 65 (relief) {..case
2dc0: 20 54 4b 5f 52 45 4c 49 45 46 5f 52 41 49 53 45 TK_RELIEF_RAISE
2dd0: 44 3a 20 63 61 73 65 20 54 4b 5f 52 45 4c 49 45 D: case TK_RELIE
2de0: 46 5f 52 49 44 47 45 3a 0a 09 20 20 20 20 67 63 F_RIDGE:.. gc
2df0: 31 20 3d 20 54 6b 5f 33 44 42 6f 72 64 65 72 47 1 = Tk_3DBorderG
2e00: 43 28 74 6b 77 69 6e 2c 20 62 6f 72 64 65 72 2c C(tkwin, border,
2e10: 20 54 4b 5f 33 44 5f 4c 49 47 48 54 5f 47 43 29 TK_3D_LIGHT_GC)
2e20: 3b 0a 09 20 20 20 20 67 63 32 20 3d 20 54 6b 5f ;.. gc2 = Tk_
2e30: 33 44 42 6f 72 64 65 72 47 43 28 74 6b 77 69 6e 3DBorderGC(tkwin
2e40: 2c 20 62 6f 72 64 65 72 2c 20 54 4b 5f 33 44 5f , border, TK_3D_
2e50: 44 41 52 4b 5f 47 43 29 3b 0a 09 20 20 20 20 62 DARK_GC);.. b
2e60: 72 65 61 6b 3b 0a 09 63 61 73 65 20 54 4b 5f 52 reak;..case TK_R
2e70: 45 4c 49 45 46 5f 53 55 4e 4b 45 4e 3a 20 63 61 ELIEF_SUNKEN: ca
2e80: 73 65 20 54 4b 5f 52 45 4c 49 45 46 5f 47 52 4f se TK_RELIEF_GRO
2e90: 4f 56 45 3a 0a 09 20 20 20 20 67 63 31 20 3d 20 OVE:.. gc1 =
2ea0: 54 6b 5f 33 44 42 6f 72 64 65 72 47 43 28 74 6b Tk_3DBorderGC(tk
2eb0: 77 69 6e 2c 20 62 6f 72 64 65 72 2c 20 54 4b 5f win, border, TK_
2ec0: 33 44 5f 44 41 52 4b 5f 47 43 29 3b 0a 09 20 20 3D_DARK_GC);..
2ed0: 20 20 67 63 32 20 3d 20 54 6b 5f 33 44 42 6f 72 gc2 = Tk_3DBor
2ee0: 64 65 72 47 43 28 74 6b 77 69 6e 2c 20 62 6f 72 derGC(tkwin, bor
2ef0: 64 65 72 2c 20 54 4b 5f 33 44 5f 4c 49 47 48 54 der, TK_3D_LIGHT
2f00: 5f 47 43 29 3b 0a 09 20 20 20 20 62 72 65 61 6b _GC);.. break
2f10: 3b 0a 09 63 61 73 65 20 54 4b 5f 52 45 4c 49 45 ;..case TK_RELIE
2f20: 46 5f 53 4f 4c 49 44 3a 0a 09 20 20 20 20 67 63 F_SOLID:.. gc
2f30: 31 20 3d 20 67 63 32 20 3d 20 54 6b 5f 33 44 42 1 = gc2 = Tk_3DB
2f40: 6f 72 64 65 72 47 43 28 74 6b 77 69 6e 2c 20 62 orderGC(tkwin, b
2f50: 6f 72 64 65 72 2c 20 54 4b 5f 33 44 5f 44 41 52 order, TK_3D_DAR
2f60: 4b 5f 47 43 29 3b 0a 09 20 20 20 20 62 72 65 61 K_GC);.. brea
2f70: 6b 3b 0a 09 63 61 73 65 20 54 4b 5f 52 45 4c 49 k;..case TK_RELI
2f80: 45 46 5f 46 4c 41 54 3a 0a 09 64 65 66 61 75 6c EF_FLAT:..defaul
2f90: 74 3a 0a 09 20 20 20 20 67 63 31 20 3d 20 67 63 t:.. gc1 = gc
2fa0: 32 20 3d 20 54 6b 5f 33 44 42 6f 72 64 65 72 47 2 = Tk_3DBorderG
2fb0: 43 28 74 6b 77 69 6e 2c 20 62 6f 72 64 65 72 2c C(tkwin, border,
2fc0: 20 54 4b 5f 33 44 5f 46 4c 41 54 5f 47 43 29 3b TK_3D_FLAT_GC);
2fd0: 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 .. break;.
2fe0: 20 7d 0a 0a 20 20 20 20 2f 2a 20 44 72 61 77 20 }.. /* Draw
2ff0: 73 61 73 68 20 6c 69 6e 65 3a 0a 20 20 20 20 20 sash line:.
3000: 2a 2f 0a 20 20 20 20 69 66 20 28 6f 72 69 65 6e */. if (orien
3010: 74 20 3d 3d 20 54 54 4b 5f 4f 52 49 45 4e 54 5f t == TTK_ORIENT_
3020: 48 4f 52 49 5a 4f 4e 54 41 4c 29 20 7b 0a 09 69 HORIZONTAL) {..i
3030: 6e 74 20 79 20 3d 20 62 2e 79 20 2b 20 62 2e 68 nt y = b.y + b.h
3040: 65 69 67 68 74 2f 32 20 2d 20 31 3b 0a 09 58 44 eight/2 - 1;..XD
3050: 72 61 77 4c 69 6e 65 28 54 6b 5f 44 69 73 70 6c rawLine(Tk_Displ
3060: 61 79 28 74 6b 77 69 6e 29 2c 20 64 2c 20 67 63 ay(tkwin), d, gc
3070: 31 2c 20 62 2e 78 2c 20 79 2c 20 62 2e 78 2b 62 1, b.x, y, b.x+b
3080: 2e 77 69 64 74 68 2c 20 79 29 3b 20 2b 2b 79 3b .width, y); ++y;
3090: 0a 09 58 44 72 61 77 4c 69 6e 65 28 54 6b 5f 44 ..XDrawLine(Tk_D
30a0: 69 73 70 6c 61 79 28 74 6b 77 69 6e 29 2c 20 64 isplay(tkwin), d
30b0: 2c 20 67 63 32 2c 20 62 2e 78 2c 20 79 2c 20 62 , gc2, b.x, y, b
30c0: 2e 78 2b 62 2e 77 69 64 74 68 2c 20 79 29 3b 0a .x+b.width, y);.
30d0: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 69 6e } else {..in
30e0: 74 20 78 20 3d 20 62 2e 78 20 2b 20 62 2e 77 69 t x = b.x + b.wi
30f0: 64 74 68 2f 32 20 2d 20 31 3b 0a 09 58 44 72 61 dth/2 - 1;..XDra
3100: 77 4c 69 6e 65 28 54 6b 5f 44 69 73 70 6c 61 79 wLine(Tk_Display
3110: 28 74 6b 77 69 6e 29 2c 20 64 2c 20 67 63 31 2c (tkwin), d, gc1,
3120: 20 78 2c 20 62 2e 79 2c 20 78 2c 20 62 2e 79 2b x, b.y, x, b.y+
3130: 62 2e 68 65 69 67 68 74 29 3b 20 2b 2b 78 3b 0a b.height); ++x;.
3140: 09 58 44 72 61 77 4c 69 6e 65 28 54 6b 5f 44 69 .XDrawLine(Tk_Di
3150: 73 70 6c 61 79 28 74 6b 77 69 6e 29 2c 20 64 2c splay(tkwin), d,
3160: 20 67 63 32 2c 20 78 2c 20 62 2e 79 2c 20 78 2c gc2, x, b.y, x,
3170: 20 62 2e 79 2b 62 2e 68 65 69 67 68 74 29 3b 0a b.y+b.height);.
3180: 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 44 72 }.. /* Dr
3190: 61 77 20 68 61 6e 64 6c 65 3a 0a 20 20 20 20 20 aw handle:.
31a0: 2a 2f 0a 20 20 20 20 69 66 20 28 68 61 6e 64 6c */. if (handl
31b0: 65 53 69 7a 65 20 3e 3d 20 30 29 20 7b 0a 09 69 eSize >= 0) {..i
31c0: 66 20 28 6f 72 69 65 6e 74 20 3d 3d 20 54 54 4b f (orient == TTK
31d0: 5f 4f 52 49 45 4e 54 5f 48 4f 52 49 5a 4f 4e 54 _ORIENT_HORIZONT
31e0: 41 4c 29 20 7b 0a 09 20 20 20 20 68 62 20 3d 20 AL) {.. hb =
31f0: 54 74 6b 5f 53 74 69 63 6b 42 6f 78 28 62 2c 20 Ttk_StickBox(b,
3200: 68 61 6e 64 6c 65 53 69 7a 65 2c 20 68 61 6e 64 handleSize, hand
3210: 6c 65 53 69 7a 65 2c 20 54 54 4b 5f 53 54 49 43 leSize, TTK_STIC
3220: 4b 5f 57 29 3b 0a 09 20 20 20 20 68 62 2e 78 20 K_W);.. hb.x
3230: 2b 3d 20 68 61 6e 64 6c 65 50 61 64 3b 0a 09 7d += handlePad;..}
3240: 20 65 6c 73 65 20 7b 0a 09 20 20 20 20 68 62 20 else {.. hb
3250: 3d 20 54 74 6b 5f 53 74 69 63 6b 42 6f 78 28 62 = Ttk_StickBox(b
3260: 2c 20 68 61 6e 64 6c 65 53 69 7a 65 2c 20 68 61 , handleSize, ha
3270: 6e 64 6c 65 53 69 7a 65 2c 20 54 54 4b 5f 53 54 ndleSize, TTK_ST
3280: 49 43 4b 5f 4e 29 3b 0a 09 20 20 20 20 68 62 2e ICK_N);.. hb.
3290: 79 20 2b 3d 20 68 61 6e 64 6c 65 50 61 64 3b 0a y += handlePad;.
32a0: 09 7d 0a 09 54 6b 5f 46 69 6c 6c 33 44 52 65 63 .}..Tk_Fill3DRec
32b0: 74 61 6e 67 6c 65 28 74 6b 77 69 6e 2c 20 64 2c tangle(tkwin, d,
32c0: 20 62 6f 72 64 65 72 2c 0a 09 20 20 20 20 68 62 border,.. hb
32d0: 2e 78 2c 20 68 62 2e 79 2c 20 68 62 2e 77 69 64 .x, hb.y, hb.wid
32e0: 74 68 2c 20 68 62 2e 68 65 69 67 68 74 2c 20 31 th, hb.height, 1
32f0: 2c 20 54 4b 5f 52 45 4c 49 45 46 5f 52 41 49 53 , TK_RELIEF_RAIS
3300: 45 44 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 73 74 ED);. }.}..st
3310: 61 74 69 63 20 63 6f 6e 73 74 20 54 74 6b 5f 45 atic const Ttk_E
3320: 6c 65 6d 65 6e 74 53 70 65 63 20 53 61 73 68 45 lementSpec SashE
3330: 6c 65 6d 65 6e 74 53 70 65 63 20 3d 20 7b 0a 20 lementSpec = {.
3340: 20 20 20 54 4b 5f 53 54 59 4c 45 5f 56 45 52 53 TK_STYLE_VERS
3350: 49 4f 4e 5f 32 2c 0a 20 20 20 20 73 69 7a 65 6f ION_2,. sizeo
3360: 66 28 53 61 73 68 45 6c 65 6d 65 6e 74 29 2c 0a f(SashElement),.
3370: 20 20 20 20 53 61 73 68 4f 70 74 69 6f 6e 73 2c SashOptions,
3380: 0a 20 20 20 20 53 61 73 68 45 6c 65 6d 65 6e 74 . SashElement
3390: 53 69 7a 65 2c 0a 20 20 20 20 53 61 73 68 45 6c Size,. SashEl
33a0: 65 6d 65 6e 74 44 72 61 77 0a 7d 3b 0a 0a 2f 2a ementDraw.};../*
33b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
33c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
33d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
33e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
33f0: 2d 2d 2d 2d 2d 2d 2d 2d 0a 20 2a 20 2b 2b 2b 20 --------. * +++
3400: 57 69 64 67 65 74 20 6c 61 79 6f 75 74 73 2e 0a Widget layouts..
3410: 20 2a 2f 0a 0a 54 54 4b 5f 42 45 47 49 4e 5f 4c */..TTK_BEGIN_L
3420: 41 59 4f 55 54 5f 54 41 42 4c 45 28 4c 61 79 6f AYOUT_TABLE(Layo
3430: 75 74 54 61 62 6c 65 29 0a 0a 54 54 4b 5f 4c 41 utTable)..TTK_LA
3440: 59 4f 55 54 28 22 54 42 75 74 74 6f 6e 22 2c 0a YOUT("TButton",.
3450: 20 20 20 20 54 54 4b 5f 47 52 4f 55 50 28 22 42 TTK_GROUP("B
3460: 75 74 74 6f 6e 2e 68 69 67 68 6c 69 67 68 74 22 utton.highlight"
3470: 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 4f 54 48 2c , TTK_FILL_BOTH,
3480: 0a 20 20 20 20 20 20 20 20 54 54 4b 5f 47 52 4f . TTK_GRO
3490: 55 50 28 22 42 75 74 74 6f 6e 2e 62 6f 72 64 65 UP("Button.borde
34a0: 72 22 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 4f 54 r", TTK_FILL_BOT
34b0: 48 7c 54 54 4b 5f 42 4f 52 44 45 52 2c 0a 09 20 H|TTK_BORDER,..
34c0: 20 20 20 54 54 4b 5f 47 52 4f 55 50 28 22 42 75 TTK_GROUP("Bu
34d0: 74 74 6f 6e 2e 70 61 64 64 69 6e 67 22 2c 20 54 tton.padding", T
34e0: 54 4b 5f 46 49 4c 4c 5f 42 4f 54 48 2c 0a 09 20 TK_FILL_BOTH,..
34f0: 20 20 20 20 20 20 20 54 54 4b 5f 4e 4f 44 45 28 TTK_NODE(
3500: 22 42 75 74 74 6f 6e 2e 6c 61 62 65 6c 22 2c 20 "Button.label",
3510: 54 54 4b 5f 46 49 4c 4c 5f 42 4f 54 48 29 29 29 TTK_FILL_BOTH)))
3520: 29 29 0a 0a 54 54 4b 5f 4c 41 59 4f 55 54 28 22 ))..TTK_LAYOUT("
3530: 54 43 68 65 63 6b 62 75 74 74 6f 6e 22 2c 0a 20 TCheckbutton",.
3540: 20 20 20 54 54 4b 5f 47 52 4f 55 50 28 22 43 68 TTK_GROUP("Ch
3550: 65 63 6b 62 75 74 74 6f 6e 2e 68 69 67 68 6c 69 eckbutton.highli
3560: 67 68 74 22 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 ght", TTK_FILL_B
3570: 4f 54 48 2c 0a 20 20 20 20 20 20 20 20 54 54 4b OTH,. TTK
3580: 5f 47 52 4f 55 50 28 22 43 68 65 63 6b 62 75 74 _GROUP("Checkbut
3590: 74 6f 6e 2e 62 6f 72 64 65 72 22 2c 20 54 54 4b ton.border", TTK
35a0: 5f 46 49 4c 4c 5f 42 4f 54 48 2c 0a 09 20 20 20 _FILL_BOTH,..
35b0: 20 54 54 4b 5f 47 52 4f 55 50 28 22 43 68 65 63 TTK_GROUP("Chec
35c0: 6b 62 75 74 74 6f 6e 2e 70 61 64 64 69 6e 67 22 kbutton.padding"
35d0: 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 4f 54 48 2c , TTK_FILL_BOTH,
35e0: 0a 09 20 20 20 20 20 20 20 20 54 54 4b 5f 4e 4f .. TTK_NO
35f0: 44 45 28 22 43 68 65 63 6b 62 75 74 74 6f 6e 2e DE("Checkbutton.
3600: 69 6e 64 69 63 61 74 6f 72 22 2c 20 54 54 4b 5f indicator", TTK_
3610: 50 41 43 4b 5f 4c 45 46 54 29 0a 09 20 20 20 20 PACK_LEFT)..
3620: 20 20 20 20 54 54 4b 5f 4e 4f 44 45 28 22 43 68 TTK_NODE("Ch
3630: 65 63 6b 62 75 74 74 6f 6e 2e 6c 61 62 65 6c 22 eckbutton.label"
3640: 2c 20 54 54 4b 5f 50 41 43 4b 5f 4c 45 46 54 7c , TTK_PACK_LEFT|
3650: 54 54 4b 5f 46 49 4c 4c 5f 42 4f 54 48 29 29 29 TTK_FILL_BOTH)))
3660: 29 29 0a 0a 54 54 4b 5f 4c 41 59 4f 55 54 28 22 ))..TTK_LAYOUT("
3670: 54 52 61 64 69 6f 62 75 74 74 6f 6e 22 2c 0a 20 TRadiobutton",.
3680: 20 20 20 54 54 4b 5f 47 52 4f 55 50 28 22 52 61 TTK_GROUP("Ra
3690: 64 69 6f 62 75 74 74 6f 6e 2e 68 69 67 68 6c 69 diobutton.highli
36a0: 67 68 74 22 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 ght", TTK_FILL_B
36b0: 4f 54 48 2c 0a 20 20 20 20 20 20 20 20 54 54 4b OTH,. TTK
36c0: 5f 47 52 4f 55 50 28 22 52 61 64 69 6f 62 75 74 _GROUP("Radiobut
36d0: 74 6f 6e 2e 62 6f 72 64 65 72 22 2c 20 54 54 4b ton.border", TTK
36e0: 5f 46 49 4c 4c 5f 42 4f 54 48 2c 0a 09 20 20 20 _FILL_BOTH,..
36f0: 20 54 54 4b 5f 47 52 4f 55 50 28 22 52 61 64 69 TTK_GROUP("Radi
3700: 6f 62 75 74 74 6f 6e 2e 70 61 64 64 69 6e 67 22 obutton.padding"
3710: 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 4f 54 48 2c , TTK_FILL_BOTH,
3720: 0a 09 20 20 20 20 20 20 20 20 54 54 4b 5f 4e 4f .. TTK_NO
3730: 44 45 28 22 52 61 64 69 6f 62 75 74 74 6f 6e 2e DE("Radiobutton.
3740: 69 6e 64 69 63 61 74 6f 72 22 2c 20 54 54 4b 5f indicator", TTK_
3750: 50 41 43 4b 5f 4c 45 46 54 29 0a 09 20 20 20 20 PACK_LEFT)..
3760: 20 20 20 20 54 54 4b 5f 4e 4f 44 45 28 22 52 61 TTK_NODE("Ra
3770: 64 69 6f 62 75 74 74 6f 6e 2e 6c 61 62 65 6c 22 diobutton.label"
3780: 2c 20 54 54 4b 5f 50 41 43 4b 5f 4c 45 46 54 7c , TTK_PACK_LEFT|
3790: 54 54 4b 5f 46 49 4c 4c 5f 42 4f 54 48 29 29 29 TTK_FILL_BOTH)))
37a0: 29 29 0a 0a 54 54 4b 5f 4c 41 59 4f 55 54 28 22 ))..TTK_LAYOUT("
37b0: 54 4d 65 6e 75 62 75 74 74 6f 6e 22 2c 0a 20 20 TMenubutton",.
37c0: 20 20 54 54 4b 5f 47 52 4f 55 50 28 22 4d 65 6e TTK_GROUP("Men
37d0: 75 62 75 74 74 6f 6e 2e 68 69 67 68 6c 69 67 68 ubutton.highligh
37e0: 74 22 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 4f 54 t", TTK_FILL_BOT
37f0: 48 2c 0a 20 20 20 20 20 20 20 20 54 54 4b 5f 47 H,. TTK_G
3800: 52 4f 55 50 28 22 4d 65 6e 75 62 75 74 74 6f 6e ROUP("Menubutton
3810: 2e 62 6f 72 64 65 72 22 2c 20 54 54 4b 5f 46 49 .border", TTK_FI
3820: 4c 4c 5f 42 4f 54 48 2c 0a 09 20 20 20 20 54 54 LL_BOTH,.. TT
3830: 4b 5f 4e 4f 44 45 28 22 4d 65 6e 75 62 75 74 74 K_NODE("Menubutt
3840: 6f 6e 2e 69 6e 64 69 63 61 74 6f 72 22 2c 20 54 on.indicator", T
3850: 54 4b 5f 50 41 43 4b 5f 52 49 47 48 54 29 0a 09 TK_PACK_RIGHT)..
3860: 20 20 20 20 54 54 4b 5f 47 52 4f 55 50 28 22 4d TTK_GROUP("M
3870: 65 6e 75 62 75 74 74 6f 6e 2e 70 61 64 64 69 6e enubutton.paddin
3880: 67 22 2c 20 54 54 4b 5f 46 49 4c 4c 5f 58 2c 0a g", TTK_FILL_X,.
3890: 09 20 20 20 20 20 20 20 20 54 54 4b 5f 4e 4f 44 . TTK_NOD
38a0: 45 28 22 4d 65 6e 75 62 75 74 74 6f 6e 2e 6c 61 E("Menubutton.la
38b0: 62 65 6c 22 2c 20 30 29 29 29 29 29 0a 0a 2f 2a bel", 0)))))../*
38c0: 20 22 63 6c 61 73 73 69 63 22 20 65 6e 74 72 79 "classic" entry
38d0: 2c 20 69 6e 63 6c 75 64 65 73 20 68 69 67 68 6c , includes highl
38e0: 69 67 68 74 20 62 6f 72 64 65 72 20 2a 2f 0a 54 ight border */.T
38f0: 54 4b 5f 4c 41 59 4f 55 54 28 22 54 45 6e 74 72 TK_LAYOUT("TEntr
3900: 79 22 2c 0a 20 20 20 20 54 54 4b 5f 47 52 4f 55 y",. TTK_GROU
3910: 50 28 22 45 6e 74 72 79 2e 68 69 67 68 6c 69 67 P("Entry.highlig
3920: 68 74 22 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 4f ht", TTK_FILL_BO
3930: 54 48 2c 0a 20 20 20 20 20 20 20 20 54 54 4b 5f TH,. TTK_
3940: 47 52 4f 55 50 28 22 45 6e 74 72 79 2e 66 69 65 GROUP("Entry.fie
3950: 6c 64 22 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 4f ld", TTK_FILL_BO
3960: 54 48 7c 54 54 4b 5f 42 4f 52 44 45 52 2c 0a 09 TH|TTK_BORDER,..
3970: 20 20 20 20 54 54 4b 5f 47 52 4f 55 50 28 22 45 TTK_GROUP("E
3980: 6e 74 72 79 2e 70 61 64 64 69 6e 67 22 2c 20 54 ntry.padding", T
3990: 54 4b 5f 46 49 4c 4c 5f 42 4f 54 48 2c 0a 09 20 TK_FILL_BOTH,..
39a0: 20 20 20 20 20 20 20 54 54 4b 5f 4e 4f 44 45 28 TTK_NODE(
39b0: 22 45 6e 74 72 79 2e 74 65 78 74 61 72 65 61 22 "Entry.textarea"
39c0: 2c 20 54 54 4b 5f 46 49 4c 4c 5f 42 4f 54 48 29 , TTK_FILL_BOTH)
39d0: 29 29 29 29 0a 0a 2f 2a 20 4e 6f 74 65 62 6f 6f ))))../* Noteboo
39e0: 6b 20 74 61 62 73 20 2d 2d 20 6f 6d 69 74 20 66 k tabs -- omit f
39f0: 6f 63 75 73 20 72 69 6e 67 20 2a 2f 0a 54 54 4b ocus ring */.TTK
3a00: 5f 4c 41 59 4f 55 54 28 22 54 61 62 22 2c 0a 20 _LAYOUT("Tab",.
3a10: 20 20 20 54 54 4b 5f 47 52 4f 55 50 28 22 4e 6f TTK_GROUP("No
3a20: 74 65 62 6f 6f 6b 2e 74 61 62 22 2c 20 54 54 4b tebook.tab", TTK
3a30: 5f 46 49 4c 4c 5f 42 4f 54 48 2c 0a 09 54 54 4b _FILL_BOTH,..TTK
3a40: 5f 47 52 4f 55 50 28 22 4e 6f 74 65 62 6f 6f 6b _GROUP("Notebook
3a50: 2e 70 61 64 64 69 6e 67 22 2c 20 54 54 4b 5f 46 .padding", TTK_F
3a60: 49 4c 4c 5f 42 4f 54 48 2c 0a 09 20 20 20 20 54 ILL_BOTH,.. T
3a70: 54 4b 5f 4e 4f 44 45 28 22 4e 6f 74 65 62 6f 6f TK_NODE("Noteboo
3a80: 6b 2e 6c 61 62 65 6c 22 2c 20 54 54 4b 5f 46 49 k.label", TTK_FI
3a90: 4c 4c 5f 42 4f 54 48 29 29 29 29 0a 0a 54 54 4b LL_BOTH))))..TTK
3aa0: 5f 45 4e 44 5f 4c 41 59 4f 55 54 5f 54 41 42 4c _END_LAYOUT_TABL
3ab0: 45 0a 0a 2f 2a 20 50 4f 53 53 49 42 4c 59 3a 20 E../* POSSIBLY:
3ac0: 69 6e 63 6c 75 64 65 20 53 63 61 6c 65 20 6c 61 include Scale la
3ad0: 79 6f 75 74 73 20 77 2f 66 6f 63 75 73 20 62 6f youts w/focus bo
3ae0: 72 64 65 72 0a 20 2a 2f 0a 0a 2f 2a 2d 2d 2d 2d rder. */../*----
3af0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3b00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3b10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3b20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
3b30: 2d 2d 2d 2d 0a 20 2a 20 54 74 6b 43 6c 61 73 73 ----. * TtkClass
3b40: 69 63 54 68 65 6d 65 5f 49 6e 69 74 20 2d 2d 0a icTheme_Init --.
3b50: 20 2a 20 09 49 6e 73 74 61 6c 6c 20 63 6c 61 73 * .Install clas
3b60: 73 69 63 20 74 68 65 6d 65 2e 0a 20 2a 2f 0a 0a sic theme.. */..
3b70: 4d 4f 44 55 4c 45 5f 53 43 4f 50 45 20 69 6e 74 MODULE_SCOPE int
3b80: 20 54 74 6b 43 6c 61 73 73 69 63 54 68 65 6d 65 TtkClassicTheme
3b90: 5f 49 6e 69 74 28 54 63 6c 5f 49 6e 74 65 72 70 _Init(Tcl_Interp
3ba0: 20 2a 69 6e 74 65 72 70 29 0a 7b 0a 20 20 20 20 *interp).{.
3bb0: 54 74 6b 5f 54 68 65 6d 65 20 74 68 65 6d 65 20 Ttk_Theme theme
3bc0: 3d 20 20 54 74 6b 5f 43 72 65 61 74 65 54 68 65 = Ttk_CreateThe
3bd0: 6d 65 28 69 6e 74 65 72 70 2c 20 22 63 6c 61 73 me(interp, "clas
3be0: 73 69 63 22 2c 20 4e 55 4c 4c 29 3b 0a 0a 20 20 sic", NULL);..
3bf0: 20 20 69 66 20 28 21 74 68 65 6d 65 29 20 7b 0a if (!theme) {.
3c00: 09 72 65 74 75 72 6e 20 54 43 4c 5f 45 52 52 4f .return TCL_ERRO
3c10: 52 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a R;. }.. /*
3c20: 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 . * Register
3c30: 20 65 6c 65 6d 65 6e 74 73 3a 0a 20 20 20 20 20 elements:.
3c40: 2a 2f 0a 20 20 20 20 54 74 6b 5f 52 65 67 69 73 */. Ttk_Regis
3c50: 74 65 72 45 6c 65 6d 65 6e 74 28 69 6e 74 65 72 terElement(inter
3c60: 70 2c 20 74 68 65 6d 65 2c 20 22 68 69 67 68 6c p, theme, "highl
3c70: 69 67 68 74 22 2c 0a 09 20 20 20 20 26 48 69 67 ight",.. &Hig
3c80: 68 6c 69 67 68 74 45 6c 65 6d 65 6e 74 53 70 65 hlightElementSpe
3c90: 63 2c 20 4e 55 4c 4c 29 3b 0a 0a 20 20 20 20 54 c, NULL);.. T
3ca0: 74 6b 5f 52 65 67 69 73 74 65 72 45 6c 65 6d 65 tk_RegisterEleme
3cb0: 6e 74 28 69 6e 74 65 72 70 2c 20 74 68 65 6d 65 nt(interp, theme
3cc0: 2c 20 22 42 75 74 74 6f 6e 2e 62 6f 72 64 65 72 , "Button.border
3cd0: 22 2c 0a 09 20 20 20 20 26 42 75 74 74 6f 6e 42 ",.. &ButtonB
3ce0: 6f 72 64 65 72 45 6c 65 6d 65 6e 74 53 70 65 63 orderElementSpec
3cf0: 2c 20 4e 55 4c 4c 29 3b 0a 0a 20 20 20 20 54 74 , NULL);.. Tt
3d00: 6b 5f 52 65 67 69 73 74 65 72 45 6c 65 6d 65 6e k_RegisterElemen
3d10: 74 28 69 6e 74 65 72 70 2c 20 74 68 65 6d 65 2c t(interp, theme,
3d20: 20 22 75 70 61 72 72 6f 77 22 2c 0a 09 20 20 20 "uparrow",..
3d30: 20 26 41 72 72 6f 77 45 6c 65 6d 65 6e 74 53 70 &ArrowElementSp
3d40: 65 63 2c 20 49 4e 54 32 50 54 52 28 41 52 52 4f ec, INT2PTR(ARRO
3d50: 57 5f 55 50 29 29 3b 0a 20 20 20 20 54 74 6b 5f W_UP));. Ttk_
3d60: 52 65 67 69 73 74 65 72 45 6c 65 6d 65 6e 74 28 RegisterElement(
3d70: 69 6e 74 65 72 70 2c 20 74 68 65 6d 65 2c 20 22 interp, theme, "
3d80: 64 6f 77 6e 61 72 72 6f 77 22 2c 0a 09 20 20 20 downarrow",..
3d90: 20 26 41 72 72 6f 77 45 6c 65 6d 65 6e 74 53 70 &ArrowElementSp
3da0: 65 63 2c 20 49 4e 54 32 50 54 52 28 41 52 52 4f ec, INT2PTR(ARRO
3db0: 57 5f 44 4f 57 4e 29 29 3b 0a 20 20 20 20 54 74 W_DOWN));. Tt
3dc0: 6b 5f 52 65 67 69 73 74 65 72 45 6c 65 6d 65 6e k_RegisterElemen
3dd0: 74 28 69 6e 74 65 72 70 2c 20 74 68 65 6d 65 2c t(interp, theme,
3de0: 20 22 6c 65 66 74 61 72 72 6f 77 22 2c 0a 09 20 "leftarrow",..
3df0: 20 20 20 26 41 72 72 6f 77 45 6c 65 6d 65 6e 74 &ArrowElement
3e00: 53 70 65 63 2c 20 49 4e 54 32 50 54 52 28 41 52 Spec, INT2PTR(AR
3e10: 52 4f 57 5f 4c 45 46 54 29 29 3b 0a 20 20 20 20 ROW_LEFT));.
3e20: 54 74 6b 5f 52 65 67 69 73 74 65 72 45 6c 65 6d Ttk_RegisterElem
3e30: 65 6e 74 28 69 6e 74 65 72 70 2c 20 74 68 65 6d ent(interp, them
3e40: 65 2c 20 22 72 69 67 68 74 61 72 72 6f 77 22 2c e, "rightarrow",
3e50: 0a 09 20 20 20 20 26 41 72 72 6f 77 45 6c 65 6d .. &ArrowElem
3e60: 65 6e 74 53 70 65 63 2c 20 49 4e 54 32 50 54 52 entSpec, INT2PTR
3e70: 28 41 52 52 4f 57 5f 52 49 47 48 54 29 29 3b 0a (ARROW_RIGHT));.
3e80: 20 20 20 20 54 74 6b 5f 52 65 67 69 73 74 65 72 Ttk_Register
3e90: 45 6c 65 6d 65 6e 74 28 69 6e 74 65 72 70 2c 20 Element(interp,
3ea0: 74 68 65 6d 65 2c 20 22 61 72 72 6f 77 22 2c 0a theme, "arrow",.
3eb0: 09 20 20 20 20 26 41 72 72 6f 77 45 6c 65 6d 65 . &ArrowEleme
3ec0: 6e 74 53 70 65 63 2c 20 49 4e 54 32 50 54 52 28 ntSpec, INT2PTR(
3ed0: 41 52 52 4f 57 5f 55 50 29 29 3b 0a 0a 20 20 20 ARROW_UP));..
3ee0: 20 54 74 6b 5f 52 65 67 69 73 74 65 72 45 6c 65 Ttk_RegisterEle
3ef0: 6d 65 6e 74 28 69 6e 74 65 72 70 2c 20 74 68 65 ment(interp, the
3f00: 6d 65 2c 20 22 68 73 61 73 68 22 2c 0a 09 20 20 me, "hsash",..
3f10: 20 20 26 53 61 73 68 45 6c 65 6d 65 6e 74 53 70 &SashElementSp
3f20: 65 63 2c 20 49 4e 54 32 50 54 52 28 54 54 4b 5f ec, INT2PTR(TTK_
3f30: 4f 52 49 45 4e 54 5f 48 4f 52 49 5a 4f 4e 54 41 ORIENT_HORIZONTA
3f40: 4c 29 29 3b 0a 20 20 20 20 54 74 6b 5f 52 65 67 L));. Ttk_Reg
3f50: 69 73 74 65 72 45 6c 65 6d 65 6e 74 28 69 6e 74 isterElement(int
3f60: 65 72 70 2c 20 74 68 65 6d 65 2c 20 22 76 73 61 erp, theme, "vsa
3f70: 73 68 22 2c 0a 09 20 20 20 20 26 53 61 73 68 45 sh",.. &SashE
3f80: 6c 65 6d 65 6e 74 53 70 65 63 2c 20 49 4e 54 32 lementSpec, INT2
3f90: 50 54 52 28 54 54 4b 5f 4f 52 49 45 4e 54 5f 56 PTR(TTK_ORIENT_V
3fa0: 45 52 54 49 43 41 4c 29 29 3b 0a 0a 20 20 20 20 ERTICAL));..
3fb0: 2f 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 /*. * Regist
3fc0: 65 72 20 6c 61 79 6f 75 74 73 3a 0a 20 20 20 20 er layouts:.
3fd0: 20 2a 2f 0a 20 20 20 20 54 74 6b 5f 52 65 67 69 */. Ttk_Regi
3fe0: 73 74 65 72 4c 61 79 6f 75 74 73 28 74 68 65 6d sterLayouts(them
3ff0: 65 2c 20 4c 61 79 6f 75 74 54 61 62 6c 65 29 3b e, LayoutTable);
4000: 0a 0a 20 20 20 20 54 63 6c 5f 50 6b 67 50 72 6f .. Tcl_PkgPro
4010: 76 69 64 65 28 69 6e 74 65 72 70 2c 20 22 74 74 vide(interp, "tt
4020: 6b 3a 3a 74 68 65 6d 65 3a 3a 63 6c 61 73 73 69 k::theme::classi
4030: 63 22 2c 20 54 54 4b 5f 56 45 52 53 49 4f 4e 29 c", TTK_VERSION)
4040: 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 54 43 ;.. return TC
4050: 4c 5f 4f 4b 3b 0a 7d 0a 0a 2f 2a 45 4f 46 2a 2f L_OK;.}../*EOF*/
4060: 0a .