summaryrefslogtreecommitdiffstats
path: root/win/ttkWinTheme.c
diff options
context:
space:
mode:
authorjenglish@flightlab.com <jenglish>2007-10-25 07:08:25 (GMT)
committerjenglish@flightlab.com <jenglish>2007-10-25 07:08:25 (GMT)
commit8432b1c2f54de4ea2d194fa410113a0efad36359 (patch)
treecc3ec59b3743ffde75e375f9a9f2c21fcfbf95a2 /win/ttkWinTheme.c
parent82d2040671447e9314544a6d93f93a98ae969f8e (diff)
downloadtk-8432b1c2f54de4ea2d194fa410113a0efad36359.zip
tk-8432b1c2f54de4ea2d194fa410113a0efad36359.tar.gz
tk-8432b1c2f54de4ea2d194fa410113a0efad36359.tar.bz2
Move widget layout registration from TtkElements_Init()
to widget *_Init() routines. Renaming/consistency: s/...ElementGeometry()/...ElementSize()/
Diffstat (limited to 'win/ttkWinTheme.c')
-rw-r--r--win/ttkWinTheme.c444
1 files changed, 167 insertions, 277 deletions
diff --git a/win/ttkWinTheme.c b/win/ttkWinTheme.c
index a05c0de..41754ee 100644
--- a/win/ttkWinTheme.c
+++ b/win/ttkWinTheme.c
@@ -1,6 +1,6 @@
/* winTheme.c - Copyright (C) 2004 Pat Thoyts <patthoyts@users.sf.net>
*
- * $Id: ttkWinTheme.c,v 1.7 2007/09/08 16:13:45 dkf Exp $
+ * $Id: ttkWinTheme.c,v 1.8 2007/10/25 07:08:26 jenglish Exp $
*/
#ifdef _MSC_VER
@@ -16,18 +16,14 @@
#endif
#include "ttk/ttkTheme.h"
-
+
/*
* BoxToRect --
* Helper routine. Converts a Ttk_Box to a Win32 RECT.
*/
-
-static RECT
-BoxToRect(
- Ttk_Box b)
+static RECT BoxToRect(Ttk_Box b)
{
RECT rc;
-
rc.top = b.y;
rc.left = b.x;
rc.bottom = b.y + b.height;
@@ -37,39 +33,31 @@ BoxToRect(
/*
* ReliefToEdge --
- * Convert a Tk "relief" value into an Windows "edge" value. NB: Caller
- * must check for RELIEF_FLAT and RELIEF_SOLID, which must be handled
- * specially.
+ * Convert a Tk "relief" value into an Windows "edge" value.
+ * NB: Caller must check for RELIEF_FLAT and RELIEF_SOLID,
+ * which must be handled specially.
*
- * Passing the BF_FLAT flag to DrawEdge() yields something similar to
- * TK_RELIEF_SOLID. TK_RELIEF_FLAT can be implemented by not drawing
- * anything.
+ * Passing the BF_FLAT flag to DrawEdge() yields something similar
+ * to TK_RELIEF_SOLID. TK_RELIEF_FLAT can be implemented by not
+ * drawing anything.
*/
-
-static unsigned int
-ReliefToEdge(
- int relief)
+static unsigned int ReliefToEdge(int relief)
{
switch (relief) {
- case TK_RELIEF_RAISED:
- return EDGE_RAISED;
- case TK_RELIEF_SUNKEN:
- return EDGE_SUNKEN;
- case TK_RELIEF_RIDGE:
- return EDGE_BUMP;
- case TK_RELIEF_GROOVE:
- return EDGE_ETCHED;
- case TK_RELIEF_SOLID:
- return BDR_RAISEDOUTER;
- default:
- case TK_RELIEF_FLAT:
- return BDR_RAISEDOUTER;
+ case TK_RELIEF_RAISED: return EDGE_RAISED;
+ case TK_RELIEF_SUNKEN: return EDGE_SUNKEN;
+ case TK_RELIEF_RIDGE: return EDGE_BUMP;
+ case TK_RELIEF_GROOVE: return EDGE_ETCHED;
+ case TK_RELIEF_SOLID: return BDR_RAISEDOUTER;
+ default:
+ case TK_RELIEF_FLAT: return BDR_RAISEDOUTER;
}
}
/* ---------------------------------------------------------------------- */
-static Ttk_StateTable checkbutton_statemap[] = {
+static Ttk_StateTable checkbutton_statemap[] =
+{
{ DFCS_CHECKED|DFCS_INACTIVE, TTK_STATE_SELECTED|TTK_STATE_DISABLED, 0 },
{ DFCS_CHECKED|DFCS_PUSHED, TTK_STATE_SELECTED|TTK_STATE_PRESSED, 0 },
{ DFCS_CHECKED, TTK_STATE_SELECTED, 0 },
@@ -78,24 +66,27 @@ static Ttk_StateTable checkbutton_statemap[] = {
{ 0, 0, 0 }
};
-static Ttk_StateTable pushbutton_statemap[] = {
+static Ttk_StateTable pushbutton_statemap[] =
+{
{ DFCS_INACTIVE, TTK_STATE_DISABLED, 0 },
{ DFCS_PUSHED, TTK_STATE_PRESSED, 0 },
{ DFCS_HOT, TTK_STATE_ACTIVE, 0 },
{ 0, 0, 0 }
};
-static Ttk_StateTable arrow_statemap[] = {
+static Ttk_StateTable arrow_statemap[] =
+{
{ DFCS_INACTIVE, TTK_STATE_DISABLED, 0 },
{ DFCS_PUSHED | DFCS_FLAT, TTK_STATE_PRESSED, 0 },
{ 0, 0, 0 }
};
-
+
/*------------------------------------------------------------------------
* +++ FrameControlElement --
* General-purpose element for things drawn with DrawFrameControl
*/
-typedef struct {
+typedef struct
+{
const char *name; /* element name */
int classId; /* class id for DrawFrameControl */
int partId; /* part id for DrawFrameControl */
@@ -105,7 +96,8 @@ typedef struct {
Ttk_Padding padding; /* additional placement padding */
} FrameControlElementData;
-static FrameControlElementData FrameControlElements[] = {
+static FrameControlElementData FrameControlElements[] =
+{
{ "Checkbutton.indicator",
DFC_BUTTON, DFCS_BUTTONCHECK, SM_CYMENUCHECK, SM_CYMENUCHECK,
checkbutton_statemap, {0,0,4,0} },
@@ -133,55 +125,46 @@ static FrameControlElementData FrameControlElements[] = {
/* ---------------------------------------------------------------------- */
-static void
-FrameControlElementGeometry(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- int *widthPtr,
- int *heightPtr,
- Ttk_Padding *paddingPtr)
+static void FrameControlElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
FrameControlElementData *elementData = clientData;
-
*widthPtr = GetSystemMetrics(elementData->cxId);
*heightPtr = GetSystemMetrics(elementData->cyId);
*paddingPtr = elementData->padding;
}
-static void
-FrameControlElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void FrameControlElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
FrameControlElementData *elementData = clientData;
RECT rc = BoxToRect(b);
TkWinDCState dcState;
HDC hdc = TkWinGetDrawableDC(Tk_Display(tkwin), d, &dcState);
- DrawFrameControl(hdc, &rc, elementData->classId,
- elementData->partId|Ttk_StateTableLookup(elementData->stateMap,state));
+ DrawFrameControl(hdc, &rc,
+ elementData->classId,
+ elementData->partId|Ttk_StateTableLookup(elementData->stateMap, state));
TkWinReleaseDrawableDC(d, hdc, &dcState);
}
-static Ttk_ElementSpec FrameControlElementSpec = {
+static Ttk_ElementSpec FrameControlElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(NullElement),
TtkNullElementOptions,
- FrameControlElementGeometry,
+ FrameControlElementSize,
FrameControlElementDraw
};
-
+
/*----------------------------------------------------------------------
* +++ Border element implementation.
*/
typedef struct {
- Tcl_Obj *reliefObj;
+ Tcl_Obj *reliefObj;
} BorderElement;
static Ttk_ElementOptionSpec BorderElementOptions[] = {
@@ -189,27 +172,17 @@ static Ttk_ElementOptionSpec BorderElementOptions[] = {
{NULL}
};
-static void
-BorderElementGeometry(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- int *widthPtr,
- int *heightPtr,
- Ttk_Padding *paddingPtr)
+static void BorderElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
paddingPtr->left = paddingPtr->right = GetSystemMetrics(SM_CXEDGE);
paddingPtr->top = paddingPtr->bottom = GetSystemMetrics(SM_CYEDGE);
}
-static void
-BorderElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void BorderElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
BorderElement *border = elementRecord;
RECT rc = BoxToRect(b);
@@ -221,57 +194,49 @@ BorderElementDraw(
if (relief != TK_RELIEF_FLAT) {
UINT xFlags = (relief == TK_RELIEF_SOLID) ? BF_FLAT : 0;
-
hdc = TkWinGetDrawableDC(Tk_Display(tkwin), d, &dcState);
DrawEdge(hdc, &rc, ReliefToEdge(relief), BF_RECT | xFlags);
TkWinReleaseDrawableDC(d, hdc, &dcState);
}
}
-static Ttk_ElementSpec BorderElementSpec = {
+static Ttk_ElementSpec BorderElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(BorderElement),
BorderElementOptions,
- BorderElementGeometry,
+ BorderElementSize,
BorderElementDraw
};
-
+
/*
* Entry field borders:
* Sunken border; also fill with window color.
*/
-typedef struct {
- Tcl_Obj *backgroundObj;
+typedef struct
+{
+ Tcl_Obj *backgroundObj;
} FieldElement;
-static Ttk_ElementOptionSpec FieldElementOptions[] = {
+static Ttk_ElementOptionSpec FieldElementOptions[] =
+{
{ "-fieldbackground", TK_OPTION_BORDER,
Tk_Offset(FieldElement,backgroundObj), "white" },
{NULL}
};
-static void
-FieldElementGeometry(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- int *widthPtr,
- int *heightPtr,
- Ttk_Padding *paddingPtr)
+static void FieldElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
paddingPtr->left = paddingPtr->right = GetSystemMetrics(SM_CXEDGE);
paddingPtr->top = paddingPtr->bottom = GetSystemMetrics(SM_CYEDGE);
}
-static void
-FieldElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void FieldElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
FieldElement *field = elementRecord;
Tk_3DBorder bg = Tk_Get3DBorderFromObj(tkwin, field->backgroundObj);
@@ -279,32 +244,32 @@ FieldElementDraw(
TkWinDCState dcState;
HDC hdc;
- Tk_Fill3DRectangle(tkwin, d, bg, b.x, b.y, b.width, b.height, 0,
- TK_RELIEF_FLAT);
+ Tk_Fill3DRectangle(
+ tkwin, d, bg, b.x, b.y, b.width, b.height, 0, TK_RELIEF_FLAT);
hdc = TkWinGetDrawableDC(Tk_Display(tkwin), d, &dcState);
DrawEdge(hdc, &rc, EDGE_SUNKEN, BF_RECT);
TkWinReleaseDrawableDC(d, hdc, &dcState);
}
-static Ttk_ElementSpec FieldElementSpec = {
+static Ttk_ElementSpec FieldElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(FieldElement),
FieldElementOptions,
- FieldElementGeometry,
+ FieldElementSize,
FieldElementDraw
};
-
+
/*------------------------------------------------------------------------
* +++ Button borders.
* Drawn with DrawFrameControl instead of DrawEdge;
* Also draw default indicator and focus ring.
*/
-
typedef struct {
- Tcl_Obj *reliefObj;
- Tcl_Obj *highlightColorObj;
- Tcl_Obj *defaultStateObj;
+ Tcl_Obj *reliefObj;
+ Tcl_Obj *highlightColorObj;
+ Tcl_Obj *defaultStateObj;
} ButtonBorderElement;
static Ttk_ElementOptionSpec ButtonBorderElementOptions[] = {
@@ -317,14 +282,9 @@ static Ttk_ElementOptionSpec ButtonBorderElementOptions[] = {
{NULL}
};
-static void
-ButtonBorderElementGeometry(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- int *widthPtr,
- int *heightPtr,
- Ttk_Padding *paddingPtr)
+static void ButtonBorderElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
ButtonBorderElement *bd = elementRecord;
int relief = TK_RELIEF_RAISED;
@@ -339,8 +299,7 @@ ButtonBorderElementGeometry(
/* Space for default indicator:
*/
if (defaultState != TTK_BUTTON_DEFAULT_DISABLED) {
- ++cx;
- ++cy;
+ ++cx; ++cy;
}
/* Space for focus ring:
@@ -351,14 +310,9 @@ ButtonBorderElementGeometry(
*paddingPtr = Ttk_MakePadding(cx,cy,cx,cy);
}
-static void
-ButtonBorderElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void ButtonBorderElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
ButtonBorderElement *bd = elementRecord;
int relief = TK_RELIEF_FLAT;
@@ -372,7 +326,7 @@ ButtonBorderElementDraw(
if (defaultState == TTK_BUTTON_DEFAULT_ACTIVE) {
XColor *highlightColor =
- Tk_GetColorFromObj(tkwin, bd->highlightColorObj);
+ Tk_GetColorFromObj(tkwin, bd->highlightColorObj);
GC gc = Tk_GCForColor(highlightColor, d);
XDrawRectangle(Tk_Display(tkwin), d, gc, b.x,b.y,b.width-1,b.height-1);
}
@@ -383,69 +337,60 @@ ButtonBorderElementDraw(
hdc = TkWinGetDrawableDC(Tk_Display(tkwin), d, &dcState);
rc = BoxToRect(b);
- DrawFrameControl(hdc, &rc, DFC_BUTTON, /* classId */
- DFCS_BUTTONPUSH|Ttk_StateTableLookup(pushbutton_statemap, state));
+ DrawFrameControl(hdc, &rc,
+ DFC_BUTTON, /* classId */
+ DFCS_BUTTONPUSH | Ttk_StateTableLookup(pushbutton_statemap, state));
/* Draw focus ring:
*/
if (state & TTK_STATE_FOCUS) {
short int borderWidth = 3; /* @@@ Use GetSystemMetrics?*/
-
rc = BoxToRect(Ttk_PadBox(b, Ttk_UniformPadding(borderWidth)));
DrawFocusRect(hdc, &rc);
}
TkWinReleaseDrawableDC(d, hdc, &dcState);
}
-static Ttk_ElementSpec ButtonBorderElementSpec = {
+static Ttk_ElementSpec ButtonBorderElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(ButtonBorderElement),
ButtonBorderElementOptions,
- ButtonBorderElementGeometry,
+ ButtonBorderElementSize,
ButtonBorderElementDraw
};
-
+
/*------------------------------------------------------------------------
* +++ Focus element.
* Draw dashed focus rectangle.
*/
-static void
-FocusElementGeometry(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- int *widthPtr,
- int *heightPtr,
- Ttk_Padding *paddingPtr)
+static void FocusElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
*paddingPtr = Ttk_UniformPadding(1);
}
-static void
-FocusElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void FocusElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
if (state & TTK_STATE_FOCUS) {
RECT rc = BoxToRect(b);
TkWinDCState dcState;
HDC hdc = TkWinGetDrawableDC(Tk_Display(tkwin), d, &dcState);
-
DrawFocusRect(hdc, &rc);
TkWinReleaseDrawableDC(d, hdc, &dcState);
}
}
-static Ttk_ElementSpec FocusElementSpec = {
+static Ttk_ElementSpec FocusElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(NullElement),
TtkNullElementOptions,
- FocusElementGeometry,
+ FocusElementSize,
FocusElementDraw
};
@@ -464,17 +409,11 @@ static Ttk_ElementOptionSpec FillFocusElementOptions[] = {
};
/* @@@ FIX THIS */
-static void
-FillFocusElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void FillFocusElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
FillFocusElement *focus = elementRecord;
-
if (state & TTK_STATE_FOCUS) {
RECT rc = BoxToRect(b);
TkWinDCState dcState;
@@ -493,77 +432,61 @@ FillFocusElementDraw(
* ComboboxFocusElement --
* Read-only comboboxes have a filled focus ring, editable ones do not.
*/
-
-static void
-ComboboxFocusElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void ComboboxFocusElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
if (state & TTK_STATE_READONLY) {
FillFocusElementDraw(clientData, elementRecord, tkwin, d, b, state);
}
}
-static Ttk_ElementSpec ComboboxFocusElementSpec = {
+static Ttk_ElementSpec ComboboxFocusElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(FillFocusElement),
FillFocusElementOptions,
- FocusElementGeometry,
+ FocusElementSize,
ComboboxFocusElementDraw
};
-
+
/*----------------------------------------------------------------------
* +++ Scrollbar trough element.
*
* The native windows scrollbar is drawn using a pattern brush giving a
- * stippled appearance when the trough might otherwise be invisible. We can
- * deal with this here.
+ * stippled appearance when the trough might otherwise be invisible.
+ * We can deal with this here.
*/
-typedef struct { /* clientData for Trough element */
- HBRUSH PatternBrush;
- HBITMAP PatternBitmap;
+typedef struct { /* clientData for Trough element */
+ HBRUSH PatternBrush;
+ HBITMAP PatternBitmap;
} TroughClientData;
static const WORD Pattern[] = {
0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa
};
-static void
-TroughClientDataDeleteProc(
- void *clientData)
+static void TroughClientDataDeleteProc(void *clientData)
{
TroughClientData *cd = clientData;
-
DeleteObject(cd->PatternBrush);
DeleteObject(cd->PatternBitmap);
ckfree(clientData);
}
-static TroughClientData *
-TroughClientDataInit(
- Tcl_Interp *interp)
+static TroughClientData *TroughClientDataInit(Tcl_Interp *interp)
{
- TroughClientData *cd = (TroughClientData *) ckalloc(sizeof(*cd));
-
+ TroughClientData *cd = (TroughClientData*)ckalloc(sizeof(*cd));
cd->PatternBitmap = CreateBitmap(8, 8, 1, 1, Pattern);
- cd->PatternBrush = CreatePatternBrush(cd->PatternBitmap);
+ cd->PatternBrush = CreatePatternBrush(cd->PatternBitmap);
Ttk_RegisterCleanup(interp, cd, TroughClientDataDeleteProc);
return cd;
}
-static void
-TroughElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void TroughElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
TroughClientData *cd = clientData;
TkWinDCState dcState;
@@ -589,34 +512,33 @@ TroughElementDraw(
TkWinReleaseDrawableDC(d, hdc, &dcState);
}
-static Ttk_ElementSpec TroughElementSpec = {
+static Ttk_ElementSpec TroughElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(NullElement),
TtkNullElementOptions,
- TtkNullElementGeometry,
+ TtkNullElementSize,
TroughElementDraw
};
-
+
/*------------------------------------------------------------------------
* +++ Thumb element.
*/
-typedef struct {
+typedef struct
+{
Tcl_Obj *orientObj;
} ThumbElement;
-static Ttk_ElementOptionSpec ThumbElementOptions[] = {
+static Ttk_ElementOptionSpec ThumbElementOptions[] =
+{
{ "-orient", TK_OPTION_ANY,Tk_Offset(ThumbElement,orientObj),"horizontal"},
{ NULL }
};
-static void ThumbElementGeometry(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- int *widthPtr,
- int *heightPtr,
- Ttk_Padding *paddingPtr)
+static void ThumbElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
ThumbElement *thumbPtr = elementRecord;
int orient;
@@ -631,60 +553,52 @@ static void ThumbElementGeometry(
}
}
-static void
-ThumbElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void ThumbElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
RECT rc = BoxToRect(b);
TkWinDCState dcState;
HDC hdc;
/* Windows doesn't show a thumb when the scrollbar is disabled */
- if (state & TTK_STATE_DISABLED) {
+ if (state & TTK_STATE_DISABLED)
return;
- }
hdc = TkWinGetDrawableDC(Tk_Display(tkwin), d, &dcState);
DrawEdge(hdc, &rc, EDGE_RAISED, BF_RECT | BF_MIDDLE);
TkWinReleaseDrawableDC(d, hdc, &dcState);
}
-static Ttk_ElementSpec ThumbElementSpec = {
+static Ttk_ElementSpec ThumbElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(ThumbElement),
ThumbElementOptions,
- ThumbElementGeometry,
+ ThumbElementSize,
ThumbElementDraw
};
-
+
/* ----------------------------------------------------------------------
* The slider element is the shaped thumb used in the slider widget.
* Windows likes to call this a trackbar.
*/
-typedef struct {
+typedef struct
+{
Tcl_Obj *orientObj; /* orientation of the slider widget */
} SliderElement;
-static Ttk_ElementOptionSpec SliderElementOptions[] = {
+static Ttk_ElementOptionSpec SliderElementOptions[] =
+{
{ "-orient", TK_OPTION_ANY, Tk_Offset(SliderElement,orientObj),
"horizontal" },
{ NULL }
};
-static void
-SliderElementGeometry(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- int *widthPtr,
- int *heightPtr,
- Ttk_Padding *paddingPtr)
+static void SliderElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
SliderElement *slider = elementRecord;
int orient;
@@ -699,14 +613,9 @@ SliderElementGeometry(
}
}
-static void
-SliderElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void SliderElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
RECT rc = BoxToRect(b);
TkWinDCState dcState;
@@ -717,56 +626,47 @@ SliderElementDraw(
TkWinReleaseDrawableDC(d, hdc, &dcState);
}
-static Ttk_ElementSpec SliderElementSpec = {
+static Ttk_ElementSpec SliderElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(SliderElement),
SliderElementOptions,
- SliderElementGeometry,
+ SliderElementSize,
SliderElementDraw
};
-
+
/*------------------------------------------------------------------------
* +++ Notebook elements.
*/
-static void
-ClientElementGeometry(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- int *widthPtr,
- int *heightPtr,
- Ttk_Padding *paddingPtr)
+static void ClientElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
paddingPtr->left = paddingPtr->right = GetSystemMetrics(SM_CXEDGE);
paddingPtr->top = paddingPtr->bottom = GetSystemMetrics(SM_CYEDGE);
}
-static void
-ClientElementDraw(
- void *clientData,
- void *elementRecord,
- Tk_Window tkwin,
- Drawable d,
- Ttk_Box b,
- unsigned int state)
+static void ClientElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
RECT rc = BoxToRect(b);
TkWinDCState dcState;
HDC hdc = TkWinGetDrawableDC(Tk_Display(tkwin), d, &dcState);
-
DrawEdge(hdc, &rc, EDGE_RAISED, BF_RECT | BF_SOFT);
TkWinReleaseDrawableDC(d, hdc, &dcState);
}
-static Ttk_ElementSpec ClientElementSpec = {
+static Ttk_ElementSpec ClientElementSpec =
+{
TK_STYLE_VERSION_2,
sizeof(NullElement),
TtkNullElementOptions,
- ClientElementGeometry,
+ ClientElementSize,
ClientElementDraw
};
-
+
/*------------------------------------------------------------------------
* +++ Layouts.
*/
@@ -784,13 +684,11 @@ TTK_BEGIN_LAYOUT(ComboboxLayout)
TTK_GROUP("Combobox.focus", TTK_PACK_LEFT|TTK_EXPAND|TTK_FILL_BOTH,
TTK_NODE("Combobox.textarea", TTK_FILL_BOTH))))
TTK_END_LAYOUT
-
+
+
/* ---------------------------------------------------------------------- */
-MODULE_SCOPE int
-TtkWinTheme_Init(
- Tcl_Interp *interp,
- HWND hwnd)
+MODULE_SCOPE int TtkWinTheme_Init(Tcl_Interp *interp, HWND hwnd)
{
Ttk_Theme themePtr, parentPtr;
FrameControlElementData *fce = FrameControlElements;
@@ -803,15 +701,15 @@ TtkWinTheme_Init(
Ttk_RegisterElementSpec(themePtr, "border", &BorderElementSpec, NULL);
Ttk_RegisterElementSpec(themePtr, "Button.border",
- &ButtonBorderElementSpec, NULL);
+ &ButtonBorderElementSpec, NULL);
Ttk_RegisterElementSpec(themePtr, "field", &FieldElementSpec, NULL);
Ttk_RegisterElementSpec(themePtr, "focus", &FocusElementSpec, NULL);
Ttk_RegisterElementSpec(themePtr, "Combobox.focus",
- &ComboboxFocusElementSpec, NULL);
+ &ComboboxFocusElementSpec, NULL);
Ttk_RegisterElementSpec(themePtr, "thumb", &ThumbElementSpec, NULL);
Ttk_RegisterElementSpec(themePtr, "slider", &SliderElementSpec, NULL);
Ttk_RegisterElementSpec(themePtr, "Scrollbar.trough", &TroughElementSpec,
- TroughClientDataInit(interp));
+ TroughClientDataInit(interp));
Ttk_RegisterElementSpec(themePtr, "client", &ClientElementSpec, NULL);
@@ -826,11 +724,3 @@ TtkWinTheme_Init(
Tcl_PkgProvide(interp, "ttk::theme::winnative", TTK_VERSION);
return TCL_OK;
}
-
-/*
- * Local Variables:
- * mode: c
- * c-basic-offset: 4
- * fill-column: 78
- * End:
- */