summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorculler <culler>2024-05-19 03:10:36 (GMT)
committerculler <culler>2024-05-19 03:10:36 (GMT)
commitece7371623efd99ee6863545f2627a91806ea840 (patch)
tree499130bd9d208b452752592f091321ddebdff680 /generic
parentc9eed3be52a8f16837c1aaf6099edc1668739832 (diff)
parentd9d72a5c6333378bfc446491736461be56eef54b (diff)
downloadtk-ece7371623efd99ee6863545f2627a91806ea840.zip
tk-ece7371623efd99ee6863545f2627a91806ea840.tar.gz
tk-ece7371623efd99ee6863545f2627a91806ea840.tar.bz2
Merge core-8-6-branch
Diffstat (limited to 'generic')
-rw-r--r--generic/ttk/ttkClassicTheme.c49
-rw-r--r--generic/ttk/ttkDefaultTheme.c16
-rw-r--r--generic/ttk/ttkElements.c318
-rw-r--r--generic/ttk/ttkState.c6
4 files changed, 235 insertions, 154 deletions
diff --git a/generic/ttk/ttkClassicTheme.c b/generic/ttk/ttkClassicTheme.c
index 279ac1a..7a53930 100644
--- a/generic/ttk/ttkClassicTheme.c
+++ b/generic/ttk/ttkClassicTheme.c
@@ -28,7 +28,7 @@ static Ttk_ElementOptionSpec HighlightElementOptions[] = {
{ "-highlightthickness",TK_OPTION_PIXELS,
Tk_Offset(HighlightElement,highlightThicknessObj), "0" },
{ "-default", TK_OPTION_ANY,
- offsetof(HighlightElement,defaultStateObj), "disabled" },
+ Tk_Offset(HighlightElement,defaultStateObj), "disabled" },
{ NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
@@ -43,8 +43,7 @@ static void HighlightElementSize(
HighlightElement *hl = (HighlightElement *)elementRecord;
int highlightThickness = 0;
- Tk_GetPixelsFromObj(NULL, tkwin, hl->highlightThicknessObj,
- &highlightThickness);
+ Tk_GetPixelsFromObj(NULL, tkwin, hl->highlightThicknessObj, &highlightThickness);
*paddingPtr = Ttk_UniformPadding((short)highlightThickness);
}
@@ -59,14 +58,15 @@ static void HighlightElementDraw(
HighlightElement *hl = (HighlightElement *)elementRecord;
int highlightThickness = 0;
XColor *highlightColor = Tk_GetColorFromObj(tkwin, hl->highlightColorObj);
- Ttk_ButtonDefaultState defaultState = TTK_BUTTON_DEFAULT_DISABLED;
+ int defaultState = TTK_BUTTON_DEFAULT_DISABLED;
Tk_GetPixelsFromObj(NULL, tkwin, hl->highlightThicknessObj,
&highlightThickness);
if (highlightColor && highlightThickness > 0) {
+ GC gc;
Ttk_GetButtonDefaultStateFromObj(NULL, hl->defaultStateObj,
- (int *)&defaultState);
- GC gc = Tk_GCForColor(highlightColor, d);
+ &defaultState);
+ gc = Tk_GCForColor(highlightColor, d);
if (defaultState == TTK_BUTTON_DEFAULT_NORMAL) {
TkDrawInsetFocusHighlight(tkwin, gc, highlightThickness, d, 5);
} else {
@@ -173,15 +173,15 @@ static void ButtonBorderElementDraw(
inset += 5;
break;
case TTK_BUTTON_DEFAULT_ACTIVE :
- Tk_Draw3DRectangle(tkwin, d, border,
+ Tk_Draw3DRectangle(tkwin, d, border,
b.x+inset, b.y+inset, b.width - 2*inset, b.height - 2*inset,
2, TK_RELIEF_FLAT);
- inset += 2;
- Tk_Draw3DRectangle(tkwin, d, border,
+ inset += 2;
+ Tk_Draw3DRectangle(tkwin, d, border,
b.x+inset, b.y+inset, b.width - 2*inset, b.height - 2*inset,
1, TK_RELIEF_SUNKEN);
++inset;
- Tk_Draw3DRectangle(tkwin, d, border,
+ Tk_Draw3DRectangle(tkwin, d, border,
b.x+inset, b.y+inset, b.width - 2*inset, b.height - 2*inset,
2, TK_RELIEF_FLAT);
inset += 2;
@@ -451,37 +451,37 @@ TTK_BEGIN_LAYOUT_TABLE(LayoutTable)
TTK_LAYOUT("TButton",
TTK_GROUP("Button.highlight", TTK_FILL_BOTH,
- TTK_GROUP("Button.border", TTK_FILL_BOTH|TTK_BORDER,
+ TTK_GROUP("Button.border", TTK_FILL_BOTH|TTK_BORDER,
TTK_GROUP("Button.padding", TTK_FILL_BOTH,
- TTK_NODE("Button.label", TTK_FILL_BOTH)))))
+ TTK_NODE("Button.label", TTK_FILL_BOTH)))))
TTK_LAYOUT("TCheckbutton",
TTK_GROUP("Checkbutton.highlight", TTK_FILL_BOTH,
- TTK_GROUP("Checkbutton.border", TTK_FILL_BOTH,
+ TTK_GROUP("Checkbutton.border", TTK_FILL_BOTH,
TTK_GROUP("Checkbutton.padding", TTK_FILL_BOTH,
- TTK_NODE("Checkbutton.indicator", TTK_PACK_LEFT)
- TTK_NODE("Checkbutton.label", TTK_PACK_LEFT|TTK_FILL_BOTH)))))
+ TTK_NODE("Checkbutton.indicator", TTK_PACK_LEFT)
+ TTK_NODE("Checkbutton.label", TTK_PACK_LEFT|TTK_FILL_BOTH)))))
TTK_LAYOUT("TRadiobutton",
TTK_GROUP("Radiobutton.highlight", TTK_FILL_BOTH,
- TTK_GROUP("Radiobutton.border", TTK_FILL_BOTH,
+ TTK_GROUP("Radiobutton.border", TTK_FILL_BOTH,
TTK_GROUP("Radiobutton.padding", TTK_FILL_BOTH,
- TTK_NODE("Radiobutton.indicator", TTK_PACK_LEFT)
- TTK_NODE("Radiobutton.label", TTK_PACK_LEFT|TTK_FILL_BOTH)))))
+ TTK_NODE("Radiobutton.indicator", TTK_PACK_LEFT)
+ TTK_NODE("Radiobutton.label", TTK_PACK_LEFT|TTK_FILL_BOTH)))))
TTK_LAYOUT("TMenubutton",
TTK_GROUP("Menubutton.highlight", TTK_FILL_BOTH,
- TTK_GROUP("Menubutton.border", TTK_FILL_BOTH,
+ TTK_GROUP("Menubutton.border", TTK_FILL_BOTH,
TTK_NODE("Menubutton.indicator", TTK_PACK_RIGHT)
TTK_GROUP("Menubutton.padding", TTK_FILL_X,
- TTK_NODE("Menubutton.label", 0)))))
+ TTK_NODE("Menubutton.label", 0)))))
/* "classic" entry, includes highlight border */
TTK_LAYOUT("TEntry",
TTK_GROUP("Entry.highlight", TTK_FILL_BOTH,
- TTK_GROUP("Entry.field", TTK_FILL_BOTH|TTK_BORDER,
+ TTK_GROUP("Entry.field", TTK_FILL_BOTH|TTK_BORDER,
TTK_GROUP("Entry.padding", TTK_FILL_BOTH,
- TTK_NODE("Entry.textarea", TTK_FILL_BOTH)))))
+ TTK_NODE("Entry.textarea", TTK_FILL_BOTH)))))
/* "classic" combobox, includes highlight border */
TTK_LAYOUT("TCombobox",
@@ -494,7 +494,7 @@ TTK_LAYOUT("TCombobox",
/* "classic" spinbox, includes highlight border */
TTK_LAYOUT("TSpinbox",
TTK_GROUP("Spinbox.highlight", TTK_FILL_BOTH,
- TTK_GROUP("Spinbox.field", TTK_FILL_BOTH|TTK_FILL_X,
+ TTK_GROUP("Spinbox.field", TTK_FILL_BOTH|TTK_FILL_X,
TTK_GROUP("null", TTK_PACK_RIGHT,
TTK_NODE("Spinbox.uparrow", TTK_PACK_TOP|TTK_STICK_E)
TTK_NODE("Spinbox.downarrow", TTK_PACK_BOTTOM|TTK_STICK_E))
@@ -526,7 +526,8 @@ TTK_END_LAYOUT_TABLE
* Install classic theme.
*/
-MODULE_SCOPE int TtkClassicTheme_Init(Tcl_Interp *interp)
+MODULE_SCOPE int
+TtkClassicTheme_Init(Tcl_Interp *interp)
{
Ttk_Theme theme = Ttk_CreateTheme(interp, "classic", NULL);
diff --git a/generic/ttk/ttkDefaultTheme.c b/generic/ttk/ttkDefaultTheme.c
index 58bf85a..d75dbe0 100644
--- a/generic/ttk/ttkDefaultTheme.c
+++ b/generic/ttk/ttkDefaultTheme.c
@@ -339,9 +339,9 @@ static Ttk_ElementOptionSpec FieldElementOptions[] = {
"white" },
{ "-bordercolor",TK_OPTION_COLOR, Tk_Offset(FieldElement,borderColorObj),
"black" },
- { "-focuswidth", TK_OPTION_PIXELS, offsetof(FieldElement,focusWidthObj),
+ { "-focuswidth", TK_OPTION_PIXELS, Tk_Offset(FieldElement,focusWidthObj),
"2" },
- { "-focuscolor", TK_OPTION_COLOR, offsetof(FieldElement,focusColorObj),
+ { "-focuscolor", TK_OPTION_COLOR, Tk_Offset(FieldElement,focusColorObj),
"#4a6984" },
{ NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
@@ -378,6 +378,7 @@ static void FieldElementDraw(
int x1 = b.x, x2 = b.x + b.width - 1;
int y1 = b.y, y2 = b.y + b.height - 1;
int w = WIN32_XDRAWLINE_HACK;
+ GC bgGC;
/*
* Draw the outer rounded rectangle
@@ -396,7 +397,7 @@ static void FieldElementDraw(
/*
* Fill the inner rectangle
*/
- GC bgGC = Tk_3DBorderGC(tkwin, border, TK_3D_FLAT_GC);
+ bgGC = Tk_3DBorderGC(tkwin, border, TK_3D_FLAT_GC);
XFillRectangle(disp, d, bgGC, b.x+1, b.y+1, b.width-2, b.height-2);
} else {
/*
@@ -581,12 +582,15 @@ static void IndicatorElementDraw(
Ttk_GetPaddingFromObj(NULL, tkwin, indicator->marginObj, &padding);
b = Ttk_PadBox(b, padding);
+ /*
+ * Sanity check
+ */
if ( b.x < 0
|| b.y < 0
|| Tk_Width(tkwin) < b.x + spec->width
|| Tk_Height(tkwin) < b.y + spec->height)
{
- /* Oops! not enough room to display the image.
+ /* Oops! Not enough room to display the image.
* Don't draw anything.
*/
return;
@@ -778,8 +782,8 @@ static void ArrowElementDraw(
Tk_GetReliefFromObj(NULL, arrow->reliefObj, &relief);
- Tk_Fill3DRectangle(
- tkwin, d, border, b.x, b.y, b.width, b.height, 0, TK_RELIEF_FLAT);
+ Tk_Fill3DRectangle(tkwin, d, border, b.x, b.y, b.width, b.height,
+ 0, TK_RELIEF_FLAT);
DrawBorder(tkwin, d, border, borderColor, b, borderWidth, relief);
b = Ttk_PadBox(b, ArrowPadding);
diff --git a/generic/ttk/ttkElements.c b/generic/ttk/ttkElements.c
index da96c90..365314f 100644
--- a/generic/ttk/ttkElements.c
+++ b/generic/ttk/ttkElements.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Joe English
+ * Copyright (c) 2003 Joe English
*
* Default implementation for themed elements.
*
@@ -73,15 +73,19 @@ typedef struct {
static Ttk_ElementOptionSpec BackgroundElementOptions[] = {
{ "-background", TK_OPTION_BORDER,
Tk_Offset(BackgroundElement,backgroundObj), DEFAULT_BACKGROUND },
- { NULL, 0, 0, NULL }
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
static void FillElementDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ Drawable d,
+ Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- BackgroundElement *bg = elementRecord;
- Tk_3DBorder backgroundPtr = Tk_Get3DBorderFromObj(tkwin,bg->backgroundObj);
+ BackgroundElement *bg = (BackgroundElement *)elementRecord;
+ Tk_3DBorder backgroundPtr = Tk_Get3DBorderFromObj(tkwin, bg->backgroundObj);
XFillRectangle(Tk_Display(tkwin), d,
Tk_3DBorderGC(tkwin, backgroundPtr, TK_3D_FLAT_GC),
@@ -90,7 +94,9 @@ static void FillElementDraw(
static void BackgroundElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ Drawable d,
+ TCL_UNUSED(Ttk_Box),
+ Ttk_State state)
{
FillElementDraw(
clientData, elementRecord, tkwin,
@@ -130,24 +136,33 @@ static Ttk_ElementOptionSpec BorderElementOptions[] = {
Tk_Offset(BorderElement,borderWidthObj), DEFAULT_BORDERWIDTH },
{ "-relief", TK_OPTION_RELIEF,
Tk_Offset(BorderElement,reliefObj), "flat" },
- { NULL, 0, 0, NULL }
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
static void BorderElementSize(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ TCL_UNUSED(int *), /* widthPtr */
+ TCL_UNUSED(int *), /* heightPtr */
+ Ttk_Padding *paddingPtr)
{
- BorderElement *bd = elementRecord;
+ BorderElement *bd = (BorderElement *)elementRecord;
int borderWidth = 0;
+
Tk_GetPixelsFromObj(NULL, tkwin, bd->borderWidthObj, &borderWidth);
*paddingPtr = Ttk_UniformPadding((short)borderWidth);
}
static void BorderElementDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ Drawable d,
+ Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- BorderElement *bd = elementRecord;
+ BorderElement *bd = (BorderElement *)elementRecord;
Tk_3DBorder border = NULL;
int borderWidth = 1, relief = TK_RELIEF_FLAT;
@@ -157,7 +172,7 @@ static void BorderElementDraw(
if (border && borderWidth > 0 && relief != TK_RELIEF_FLAT) {
Tk_Draw3DRectangle(tkwin, d, border,
- b.x, b.y, b.width, b.height, borderWidth,relief);
+ b.x, b.y, b.width, b.height, borderWidth, relief);
}
}
@@ -186,15 +201,20 @@ static Ttk_ElementOptionSpec FieldElementOptions[] = {
{ "-borderwidth", TK_OPTION_PIXELS,
Tk_Offset(FieldElement,borderWidthObj), "2" },
{ "-focuswidth", TK_OPTION_PIXELS,
- offsetof(FieldElement,focusWidthObj), "2" },
+ Tk_Offset(FieldElement,focusWidthObj), "2" },
{ "-focuscolor", TK_OPTION_COLOR,
- offsetof(FieldElement,focusColorObj), "#4a6984" },
- { NULL, 0, 0, NULL }
+ Tk_Offset(FieldElement,focusColorObj), "#4a6984" },
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
+
static void FieldElementSize(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ TCL_UNUSED(int *), /* widthPtr */
+ TCL_UNUSED(int *), /* heightPtr */
+ Ttk_Padding *paddingPtr)
{
FieldElement *field = (FieldElement *)elementRecord;
int borderWidth = 2, focusWidth = 2;
@@ -208,8 +228,9 @@ static void FieldElementSize(
}
static void FieldElementDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, Ttk_State state)
{
FieldElement *field = (FieldElement *)elementRecord;
Tk_3DBorder border = Tk_Get3DBorderFromObj(tkwin, field->borderObj);
@@ -226,6 +247,7 @@ static void FieldElementDraw(
int x1 = b.x, x2 = b.x + b.width - 1;
int y1 = b.y, y2 = b.y + b.height - 1;
int w = WIN32_XDRAWLINE_HACK;
+ GC bgGC;
/*
* Draw the outer rounded rectangle
@@ -244,7 +266,7 @@ static void FieldElementDraw(
/*
* Fill the inner rectangle
*/
- GC bgGC = Tk_3DBorderGC(tkwin, border, TK_3D_FLAT_GC);
+ bgGC = Tk_3DBorderGC(tkwin, border, TK_3D_FLAT_GC);
XFillRectangle(disp, d, bgGC, b.x+1, b.y+1, b.width-2, b.height-2);
} else {
/*
@@ -301,21 +323,25 @@ static Ttk_ElementOptionSpec PaddingElementOptions[] = {
Tk_Offset(PaddingElement,reliefObj), "flat" },
{ "-shiftrelief", TK_OPTION_PIXELS,
Tk_Offset(PaddingElement,shiftreliefObj), "0" },
- { NULL, 0, 0, NULL }
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
static void PaddingElementSize(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ TCL_UNUSED(int *), /* widthPtr */
+ TCL_UNUSED(int *), /* heightPtr */
+ Ttk_Padding *paddingPtr)
{
- PaddingElement *padding = elementRecord;
+ PaddingElement *padding = (PaddingElement *)elementRecord;
int shiftRelief = 0;
int relief = TK_RELIEF_FLAT;
Ttk_Padding pad;
Tk_GetReliefFromObj(NULL, padding->reliefObj, &relief);
Tk_GetPixelsFromObj(NULL, tkwin, padding->shiftreliefObj, &shiftRelief);
- Ttk_GetPaddingFromObj(NULL,tkwin,padding->paddingObj,&pad);
+ Ttk_GetPaddingFromObj(NULL, tkwin, padding->paddingObj, &pad);
*paddingPtr = Ttk_RelievePadding(pad, relief, shiftRelief);
}
@@ -368,20 +394,24 @@ static void DrawFocusRing(
}
static Ttk_ElementOptionSpec FocusElementOptions[] = {
- { "-focuscolor",TK_OPTION_COLOR,
+ { "-focuscolor", TK_OPTION_COLOR,
Tk_Offset(FocusElement,focusColorObj), "black" },
- { "-focusthickness",TK_OPTION_PIXELS,
+ { "-focusthickness", TK_OPTION_PIXELS,
Tk_Offset(FocusElement,focusThicknessObj), "1" },
- { "-focussolid",TK_OPTION_BOOLEAN,
- offsetof(FocusElement,focusSolidObj), "0" },
- { NULL, 0, 0, NULL }
+ { "-focussolid", TK_OPTION_BOOLEAN,
+ Tk_Offset(FocusElement,focusSolidObj), "0" },
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
static void FocusElementSize(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ TCL_UNUSED(int *), /* widthPtr */
+ TCL_UNUSED(int *), /* heightPtr */
+ Ttk_Padding *paddingPtr)
{
- FocusElement *focus = elementRecord;
+ FocusElement *focus = (FocusElement *)elementRecord;
int focusThickness = 0;
Tk_GetPixelsFromObj(NULL, tkwin, focus->focusThicknessObj, &focusThickness);
@@ -389,10 +419,14 @@ static void FocusElementSize(
}
static void FocusElementDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ Drawable d,
+ Ttk_Box b,
+ Ttk_State state)
{
- FocusElement *focus = elementRecord;
+ FocusElement *focus = (FocusElement *)elementRecord;
int focusThickness = 0;
int focusSolid = 0;
@@ -429,21 +463,29 @@ static Ttk_ElementOptionSpec SeparatorElementOptions[] = {
Tk_Offset(SeparatorElement, orientObj), "horizontal" },
{ "-background", TK_OPTION_BORDER,
Tk_Offset(SeparatorElement,borderObj), DEFAULT_BACKGROUND },
- { NULL, 0, 0, NULL }
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
static void SeparatorElementSize(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ TCL_UNUSED(void *), /* clientData */
+ TCL_UNUSED(void *), /* elementRecord */
+ TCL_UNUSED(Tk_Window),
+ int *widthPtr,
+ int *heightPtr,
+ TCL_UNUSED(Ttk_Padding *))
{
*widthPtr = *heightPtr = 2;
}
static void HorizontalSeparatorElementDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ Drawable d,
+ Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- SeparatorElement *separator = elementRecord;
+ SeparatorElement *separator = (SeparatorElement *)elementRecord;
Tk_3DBorder border = Tk_Get3DBorderFromObj(tkwin, separator->borderObj);
GC lightGC = Tk_3DBorderGC(tkwin, border, TK_3D_LIGHT_GC);
GC darkGC = Tk_3DBorderGC(tkwin, border, TK_3D_DARK_GC);
@@ -453,10 +495,14 @@ static void HorizontalSeparatorElementDraw(
}
static void VerticalSeparatorElementDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ Drawable d,
+ Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- SeparatorElement *separator = elementRecord;
+ SeparatorElement *separator = (SeparatorElement *)elementRecord;
Tk_3DBorder border = Tk_Get3DBorderFromObj(tkwin, separator->borderObj);
GC lightGC = Tk_3DBorderGC(tkwin, border, TK_3D_LIGHT_GC);
GC darkGC = Tk_3DBorderGC(tkwin, border, TK_3D_DARK_GC);
@@ -467,10 +513,11 @@ static void VerticalSeparatorElementDraw(
static void GeneralSeparatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ Drawable d, Ttk_Box b, Ttk_State state)
{
- SeparatorElement *separator = elementRecord;
+ SeparatorElement *separator = (SeparatorElement *)elementRecord;
int orient;
+
Ttk_GetOrientFromObj(NULL, separator->orientObj, &orient);
switch (orient) {
case TTK_ORIENT_HORIZONTAL:
@@ -519,22 +566,30 @@ typedef struct {
static Ttk_ElementOptionSpec SizegripOptions[] = {
{ "-background", TK_OPTION_BORDER,
Tk_Offset(SizegripElement,backgroundObj), DEFAULT_BACKGROUND },
- {0,0,0,0}
+ {0, TK_OPTION_BOOLEAN, 0, 0}
};
static void SizegripSize(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ int *widthPtr,
+ int *heightPtr,
+ TCL_UNUSED(Ttk_Padding *))
{
int gripCount = 3, gripSpace = 2, gripThickness = 3;
*widthPtr = *heightPtr = gripCount * (gripSpace + gripThickness);
}
static void SizegripDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, Ttk_State state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ Drawable d,
+ Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- SizegripElement *grip = elementRecord;
+ SizegripElement *grip = (SizegripElement *)elementRecord;
int gripCount = 3, gripSpace = 2;
Tk_3DBorder border = Tk_Get3DBorderFromObj(tkwin, grip->backgroundObj);
GC lightGC = Tk_3DBorderGC(tkwin, border, TK_3D_LIGHT_GC);
@@ -543,9 +598,9 @@ static void SizegripDraw(
while (gripCount--) {
x1 -= gripSpace; y2 -= gripSpace;
- XDrawLine(Tk_Display(tkwin), d, darkGC, x1,y1, x2,y2); --x1; --y2;
- XDrawLine(Tk_Display(tkwin), d, darkGC, x1,y1, x2,y2); --x1; --y2;
- XDrawLine(Tk_Display(tkwin), d, lightGC, x1,y1, x2,y2); --x1; --y2;
+ XDrawLine(Tk_Display(tkwin), d, darkGC, x1, y1, x2, y2); --x1; --y2;
+ XDrawLine(Tk_Display(tkwin), d, darkGC, x1, y1, x2, y2); --x1; --y2;
+ XDrawLine(Tk_Display(tkwin), d, lightGC, x1, y1, x2, y2); --x1; --y2;
}
}
@@ -590,7 +645,7 @@ static Ttk_ElementOptionSpec IndicatorElementOptions[] = {
Tk_Offset(IndicatorElement,marginObj), "0 2 4 2" },
{ "-borderwidth", TK_OPTION_PIXELS,
Tk_Offset(IndicatorElement,borderWidthObj), DEFAULT_BORDERWIDTH },
- { NULL, 0, 0, NULL }
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
/*
@@ -622,15 +677,15 @@ static void SquareIndicatorElementDraw(
interior = Tk_Get3DBorderFromObj(tkwin, indicator->colorObj);
border = Tk_Get3DBorderFromObj(tkwin, indicator->backgroundObj);
- Tk_GetPixelsFromObj(NULL,tkwin, indicator->borderWidthObj,&borderWidth);
- Tk_GetReliefFromObj(NULL,indicator->reliefObj,&relief);
- Ttk_GetPaddingFromObj(NULL,tkwin,indicator->marginObj,&padding);
+ Tk_GetPixelsFromObj(NULL, tkwin, indicator->borderWidthObj, &borderWidth);
+ Tk_GetReliefFromObj(NULL, indicator->reliefObj, &relief);
+ Ttk_GetPaddingFromObj(NULL, tkwin, indicator->marginObj, &padding);
b = Ttk_PadBox(b, padding);
diameter = b.width < b.height ? b.width : b.height;
Tk_Fill3DRectangle(tkwin, d, interior, b.x, b.y,
- diameter, diameter,borderWidth, TK_RELIEF_FLAT);
+ diameter, diameter, borderWidth, TK_RELIEF_FLAT);
Tk_Draw3DRectangle(tkwin, d, border, b.x, b.y,
diameter, diameter, borderWidth, relief);
}
@@ -642,7 +697,7 @@ static void DiamondIndicatorElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
- IndicatorElement *indicator = elementRecord;
+ IndicatorElement *indicator = (IndicatorElement *)elementRecord;
Ttk_Padding margins;
int diameter = 0;
Ttk_GetPaddingFromObj(NULL, tkwin, indicator->marginObj, &margins);
@@ -653,9 +708,9 @@ static void DiamondIndicatorElementSize(
static void DiamondIndicatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ Drawable d, Ttk_Box b, Ttk_State state)
{
- IndicatorElement *indicator = elementRecord;
+ IndicatorElement *indicator = (IndicatorElement *)elementRecord;
Tk_3DBorder border = 0, interior = 0;
int borderWidth = 2;
int relief = TK_RELIEF_RAISED;
@@ -665,9 +720,9 @@ static void DiamondIndicatorElementDraw(
interior = Tk_Get3DBorderFromObj(tkwin, indicator->colorObj);
border = Tk_Get3DBorderFromObj(tkwin, indicator->backgroundObj);
- Tk_GetPixelsFromObj(NULL,tkwin, indicator->borderWidthObj,&borderWidth);
- Tk_GetReliefFromObj(NULL,indicator->reliefObj,&relief);
- Ttk_GetPaddingFromObj(NULL,tkwin,indicator->marginObj,&padding);
+ Tk_GetPixelsFromObj(NULL, tkwin, indicator->borderWidthObj, &borderWidth);
+ Tk_GetReliefFromObj(NULL, indicator->reliefObj, &relief);
+ Ttk_GetPaddingFromObj(NULL, tkwin, indicator->marginObj, &padding);
b = Ttk_PadBox(b, padding);
@@ -683,8 +738,8 @@ static void DiamondIndicatorElementDraw(
points[3].x = b.x + radius;
points[3].y = b.y;
- Tk_Fill3DPolygon(tkwin,d,interior,points,4,borderWidth,TK_RELIEF_FLAT);
- Tk_Draw3DPolygon(tkwin,d,border,points,4,borderWidth,relief);
+ Tk_Fill3DPolygon(tkwin, d, interior, points, 4, borderWidth, TK_RELIEF_FLAT);
+ Tk_Draw3DPolygon(tkwin, d, border, points, 4, borderWidth, relief);
}
static Ttk_ElementSpec CheckbuttonIndicatorElementSpec = {
@@ -747,7 +802,7 @@ static void MenuIndicatorElementSize(
Ttk_Padding margins;
Tk_GetPixelsFromObj(NULL, tkwin, mi->widthObj, widthPtr);
Tk_GetPixelsFromObj(NULL, tkwin, mi->heightObj, heightPtr);
- Ttk_GetPaddingFromObj(NULL,tkwin,mi->marginObj, &margins);
+ Ttk_GetPaddingFromObj(NULL, tkwin, mi->marginObj, &margins);
*widthPtr += Ttk_PaddingWidth(margins);
*heightPtr += Ttk_PaddingHeight(margins);
}
@@ -761,7 +816,7 @@ static void MenuIndicatorElementDraw(
Ttk_Padding margins;
int borderWidth = 2;
- Ttk_GetPaddingFromObj(NULL,tkwin,mi->marginObj,&margins);
+ Ttk_GetPaddingFromObj(NULL, tkwin, mi->marginObj, &margins);
b = Ttk_PadBox(b, margins);
Tk_GetPixelsFromObj(NULL, tkwin, mi->borderWidthObj, &borderWidth);
Tk_Fill3DRectangle(tkwin, d, border, b.x, b.y, b.width, b.height,
@@ -796,24 +851,25 @@ typedef struct {
static Ttk_ElementOptionSpec ArrowElementOptions[] = {
{ "-arrowsize", TK_OPTION_PIXELS,
Tk_Offset(ArrowElement,sizeObj), "14" },
- { "-arrowcolor",TK_OPTION_COLOR,
- Tk_Offset(ArrowElement,colorObj),"black"},
+ { "-arrowcolor", TK_OPTION_COLOR,
+ Tk_Offset(ArrowElement,colorObj), "black"},
{ "-background", TK_OPTION_BORDER,
Tk_Offset(ArrowElement,borderObj), DEFAULT_BACKGROUND },
{ "-borderwidth", TK_OPTION_PIXELS,
Tk_Offset(ArrowElement,borderWidthObj), "1" },
- { "-relief",TK_OPTION_RELIEF,
- Tk_Offset(ArrowElement,reliefObj),"raised"},
- { NULL, 0, 0, NULL }
+ { "-relief", TK_OPTION_RELIEF,
+ Tk_Offset(ArrowElement,reliefObj), "raised"},
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
-static Ttk_Padding ArrowPadding = { 3,3,3,3 };
+static Ttk_Padding ArrowPadding = { 3, 3, 3, 3 };
static void ArrowElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ int *widthPtr, int *heightPtr,
+ TCL_UNUSED(Ttk_Padding *))
{
- ArrowElement *arrow = elementRecord;
+ ArrowElement *arrow = (ArrowElement *)elementRecord;
int direction = *(int *)clientData;
int size = 14;
@@ -831,9 +887,10 @@ static void ArrowElementSize(
static void ArrowElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ Drawable d, Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- ArrowElement *arrow = elementRecord;
+ ArrowElement *arrow = (ArrowElement *)elementRecord;
int direction = *(int *)clientData;
Tk_3DBorder border = Tk_Get3DBorderFromObj(tkwin, arrow->borderObj);
int borderWidth = 1, relief = TK_RELIEF_RAISED;
@@ -844,8 +901,8 @@ static void ArrowElementDraw(
Tk_GetPixelsFromObj(NULL, tkwin, arrow->borderWidthObj, &borderWidth);
Tk_GetReliefFromObj(NULL, arrow->reliefObj, &relief);
- Tk_Fill3DRectangle(
- tkwin, d, border, b.x, b.y, b.width, b.height, borderWidth, relief);
+ Tk_Fill3DRectangle(tkwin, d, border, b.x, b.y, b.width, b.height,
+ borderWidth, relief);
b = Ttk_PadBox(b, ArrowPadding);
@@ -887,9 +944,10 @@ static Ttk_ElementSpec ArrowElementSpec = {
static void BoxArrowElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ int *widthPtr, int *heightPtr,
+ TCL_UNUSED(Ttk_Padding *))
{
- ArrowElement *arrow = elementRecord;
+ ArrowElement *arrow = (ArrowElement *)elementRecord;
int direction = *(int *)clientData;
int size = 14;
@@ -902,9 +960,10 @@ static void BoxArrowElementSize(
static void BoxArrowElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ Drawable d, Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- ArrowElement *arrow = elementRecord;
+ ArrowElement *arrow = (ArrowElement *)elementRecord;
int direction = *(int *)clientData;
Tk_3DBorder border = Tk_Get3DBorderFromObj(tkwin, arrow->borderObj);
int borderWidth = 1, relief = TK_RELIEF_RAISED;
@@ -915,8 +974,8 @@ static void BoxArrowElementDraw(
XColor *arrowColor = Tk_GetColorFromObj(tkwin, arrow->colorObj);
GC arrowGC = Tk_GCForColor(arrowColor, d);
- Tk_Fill3DRectangle(
- tkwin, d, border, b.x, b.y, b.width, b.height, borderWidth, relief);
+ Tk_Fill3DRectangle(tkwin, d, border, b.x, b.y, b.width, b.height,
+ borderWidth, relief);
XDrawLine(disp, d, darkGC, b.x, b.y+1, b.x, b.y+b.height-1+w);
@@ -941,7 +1000,8 @@ static Ttk_ElementSpec BoxArrowElementSpec = {
};
-/*----------------------------------------------------------------------
+/*
+ *----------------------------------------------------------------------
* +++ Trough element.
*
* Used in scrollbars and scales in place of "border".
@@ -958,14 +1018,18 @@ static Ttk_ElementOptionSpec TroughElementOptions[] = {
Tk_Offset(TroughElement,borderWidthObj), DEFAULT_BORDERWIDTH },
{ "-troughcolor", TK_OPTION_BORDER,
Tk_Offset(TroughElement,colorObj), DEFAULT_BACKGROUND },
- { "-troughrelief",TK_OPTION_RELIEF,
+ { "-troughrelief", TK_OPTION_RELIEF,
Tk_Offset(TroughElement,reliefObj), "sunken" },
- { NULL, 0, 0, NULL }
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
static void TroughElementSize(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord,
+ Tk_Window tkwin,
+ TCL_UNUSED(int *), /* widthPtr */
+ TCL_UNUSED(int *), /* heightPtr */
+ Ttk_Padding *paddingPtr)
{
TroughElement *troughPtr = elementRecord;
int borderWidth = 2;
@@ -975,10 +1039,12 @@ static void TroughElementSize(
}
static void TroughElementDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- TroughElement *troughPtr = elementRecord;
+ TroughElement *troughPtr = (TroughElement *)elementRecord;
Tk_3DBorder border = NULL;
int borderWidth = 2, relief = TK_RELIEF_SUNKEN;
@@ -1024,15 +1090,18 @@ static Ttk_ElementOptionSpec ThumbElementOptions[] = {
Tk_Offset(ThumbElement,borderObj), DEFAULT_BACKGROUND },
{ "-borderwidth", TK_OPTION_PIXELS,
Tk_Offset(ThumbElement,borderWidthObj), DEFAULT_BORDERWIDTH },
- { NULL, 0, 0, NULL }
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
static void ThumbElementSize(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr,
+ TCL_UNUSED(Ttk_Padding *))
{
- ThumbElement *thumb = elementRecord;
- int orient, thickness;
+ ThumbElement *thumb = (ThumbElement *)elementRecord;
+ int orient;
+ int thickness;
Tk_GetPixelsFromObj(NULL, tkwin, thumb->thicknessObj, &thickness);
Ttk_GetOrientFromObj(NULL, thumb->orientObj, &orient);
@@ -1047,10 +1116,12 @@ static void ThumbElementSize(
}
static void ThumbElementDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, unsigned int state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- ThumbElement *thumb = elementRecord;
+ ThumbElement *thumb = (ThumbElement *)elementRecord;
Tk_3DBorder border = Tk_Get3DBorderFromObj(tkwin, thumb->borderObj);
int borderWidth = 2, relief = TK_RELIEF_RAISED;
@@ -1208,15 +1279,18 @@ static Ttk_ElementOptionSpec PbarElementOptions[] = {
DEFAULT_BORDERWIDTH },
{ "-background", TK_OPTION_BORDER, Tk_Offset(PbarElement,borderObj),
DEFAULT_BACKGROUND },
- { NULL, 0, 0, NULL }
+ { NULL, TK_OPTION_BOOLEAN, 0, NULL }
};
static void PbarElementSize(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr,
+ TCL_UNUSED(Ttk_Padding *))
{
- PbarElement *pbar = elementRecord;
- int orient, thickness = 15, length = 30, borderWidth = 2;
+ PbarElement *pbar = (PbarElement *)elementRecord;
+ int orient;
+ int thickness = 15, length = 30, borderWidth = 2;
Ttk_GetOrientFromObj(NULL, pbar->orientObj, &orient);
Tk_GetPixelsFromObj(NULL, tkwin, pbar->thicknessObj, &thickness);
@@ -1236,10 +1310,12 @@ static void PbarElementSize(
}
static void PbarElementDraw(
- void *clientData, void *elementRecord, Tk_Window tkwin,
- Drawable d, Ttk_Box b, Ttk_State state)
+ TCL_UNUSED(void *), /* clientData */
+ void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b,
+ TCL_UNUSED(Ttk_State))
{
- PbarElement *pbar = elementRecord;
+ PbarElement *pbar = (PbarElement *)elementRecord;
Tk_3DBorder border = Tk_Get3DBorderFromObj(tkwin, pbar->borderObj);
int relief = TK_RELIEF_RAISED, borderWidth = 2;
@@ -1276,10 +1352,10 @@ static Ttk_ElementOptionSpec TabElementOptions[] = {
{ "-background", TK_OPTION_BORDER,
Tk_Offset(TabElement,backgroundObj), DEFAULT_BACKGROUND },
{ "-highlight", TK_OPTION_BOOLEAN,
- offsetof(TabElement,highlightObj), "0" },
+ Tk_Offset(TabElement,highlightObj), "0" },
{ "-highlightcolor", TK_OPTION_COLOR,
- offsetof(TabElement,highlightColorObj), "#4a6984" },
- {0,TK_OPTION_BOOLEAN,0,0}
+ Tk_Offset(TabElement,highlightColorObj), "#4a6984" },
+ {0, TK_OPTION_BOOLEAN, 0, 0}
};
static void TabElementSize(
@@ -1513,7 +1589,7 @@ static void ClientElementDraw(
Tk_GetPixelsFromObj(NULL, tkwin, ce->borderWidthObj, &borderWidth);
Tk_Fill3DRectangle(tkwin, d, border,
- b.x, b.y, b.width, b.height, borderWidth,TK_RELIEF_RAISED);
+ b.x, b.y, b.width, b.height, borderWidth, TK_RELIEF_RAISED);
}
static Ttk_ElementSpec ClientElementSpec = {
@@ -1538,7 +1614,7 @@ TtkElements_Init(Tcl_Interp *interp)
* Elements:
*/
Ttk_RegisterElement(interp, theme, "background",
- &BackgroundElementSpec,NULL);
+ &BackgroundElementSpec, NULL);
Ttk_RegisterElement(interp, theme, "fill", &FillElementSpec, NULL);
Ttk_RegisterElement(interp, theme, "border", &BorderElementSpec, NULL);
diff --git a/generic/ttk/ttkState.c b/generic/ttk/ttkState.c
index 9e5cf4b..073a406 100644
--- a/generic/ttk/ttkState.c
+++ b/generic/ttk/ttkState.c
@@ -24,9 +24,9 @@ static const char *const stateNames[] =
"invalid", /* Bad value */
"readonly", /* Editing/modification disabled */
"hover", /* Mouse cursor is over widget */
- "reserved1", /* Reserved for future extension */
- "reserved2", /* Reserved for future extension */
- "reserved3", /* Reserved for future extension */
+ "user6", /* User-definable state */
+ "user5", /* User-definable state */
+ "user4", /* User-definable state */
"user3", /* User-definable state */
"user2", /* User-definable state */
"user1", /* User-definable state */