summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/ttk/ttkButton.c52
-rw-r--r--generic/ttk/ttkClamTheme.c56
-rw-r--r--generic/ttk/ttkClassicTheme.c25
-rw-r--r--generic/ttk/ttkDefaultTheme.c5
-rw-r--r--generic/ttk/ttkElements.c264
-rw-r--r--generic/ttk/ttkFrame.c17
-rw-r--r--generic/ttk/ttkScale.c17
-rw-r--r--generic/ttk/ttkScrollbar.c25
-rw-r--r--generic/ttk/ttkSeparator.c15
-rw-r--r--generic/ttk/ttkSquare.c17
-rw-r--r--generic/ttk/ttkTheme.h4
-rw-r--r--generic/ttk/ttkTreeview.c4
12 files changed, 230 insertions, 271 deletions
diff --git a/generic/ttk/ttkButton.c b/generic/ttk/ttkButton.c
index 48dcea0..3c1651d 100644
--- a/generic/ttk/ttkButton.c
+++ b/generic/ttk/ttkButton.c
@@ -1,4 +1,4 @@
-/* $Id: ttkButton.c,v 1.6 2007/01/11 14:49:46 jenglish Exp $
+/* $Id: ttkButton.c,v 1.7 2007/10/25 07:08:26 jenglish Exp $
* Copyright (c) 2003, Joe English
*
* label, button, checkbutton, radiobutton, and menubutton widgets.
@@ -194,9 +194,8 @@ BasePostConfigure(Tcl_Interp *interp, void *recordPtr, int mask)
return status;
}
-
/*------------------------------------------------------------------------
- * +++ Label widget:
+ * +++ Label widget.
* Just a base widget that adds a few appearance-related options
*/
@@ -275,6 +274,12 @@ static WidgetSpec LabelWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(LabelLayout)
+ TTK_GROUP("Label.border", TTK_FILL_BOTH|TTK_BORDER,
+ TTK_GROUP("Label.padding", TTK_FILL_BOTH|TTK_BORDER,
+ TTK_NODE("Label.label", TTK_FILL_BOTH)))
+TTK_END_LAYOUT
+
/*------------------------------------------------------------------------
* +++ Button widget.
* Adds a new subcommand "invoke", and options "-command" and "-default"
@@ -377,6 +382,13 @@ static WidgetSpec ButtonWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(ButtonLayout)
+ TTK_GROUP("Button.border", TTK_FILL_BOTH|TTK_BORDER,
+ TTK_GROUP("Button.focus", TTK_FILL_BOTH,
+ TTK_GROUP("Button.padding", TTK_FILL_BOTH,
+ TTK_NODE("Button.label", TTK_FILL_BOTH))))
+TTK_END_LAYOUT
+
/*------------------------------------------------------------------------
* +++ Checkbutton widget.
*/
@@ -569,6 +581,13 @@ static WidgetSpec CheckbuttonWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(CheckbuttonLayout)
+ TTK_GROUP("Checkbutton.padding", TTK_FILL_BOTH,
+ TTK_NODE("Checkbutton.indicator", TTK_PACK_LEFT)
+ TTK_GROUP("Checkbutton.focus", TTK_PACK_LEFT | TTK_STICK_W,
+ TTK_NODE("Checkbutton.label", TTK_FILL_BOTH)))
+TTK_END_LAYOUT
+
/*------------------------------------------------------------------------
* +++ Radiobutton widget.
*/
@@ -740,6 +759,13 @@ static WidgetSpec RadiobuttonWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(RadiobuttonLayout)
+ TTK_GROUP("Radiobutton.padding", TTK_FILL_BOTH,
+ TTK_NODE("Radiobutton.indicator", TTK_PACK_LEFT)
+ TTK_GROUP("Radiobutton.focus", TTK_PACK_LEFT,
+ TTK_NODE("Radiobutton.label", TTK_FILL_BOTH)))
+TTK_END_LAYOUT
+
/*------------------------------------------------------------------------
* +++ Menubutton widget.
*/
@@ -802,13 +828,29 @@ static WidgetSpec MenubuttonWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
-/*
- * Initialization:
+TTK_BEGIN_LAYOUT(MenubuttonLayout)
+ TTK_GROUP("Menubutton.border", TTK_FILL_BOTH,
+ TTK_GROUP("Menubutton.focus", TTK_FILL_BOTH,
+ TTK_NODE("Menubutton.indicator", TTK_PACK_RIGHT)
+ TTK_GROUP("Menubutton.padding", TTK_PACK_LEFT|TTK_EXPAND|TTK_FILL_X,
+ TTK_NODE("Menubutton.label", TTK_PACK_LEFT))))
+TTK_END_LAYOUT
+
+/*------------------------------------------------------------------------
+ * +++ Initialization.
*/
MODULE_SCOPE
void TtkButton_Init(Tcl_Interp *interp)
{
+ Ttk_Theme theme = Ttk_GetDefaultTheme(interp);
+
+ Ttk_RegisterLayout(theme, "TLabel", LabelLayout);
+ Ttk_RegisterLayout(theme, "TButton", ButtonLayout);
+ Ttk_RegisterLayout(theme, "TCheckbutton", CheckbuttonLayout);
+ Ttk_RegisterLayout(theme, "TRadiobutton", RadiobuttonLayout);
+ Ttk_RegisterLayout(theme, "TMenubutton", MenubuttonLayout);
+
RegisterWidget(interp, "ttk::label", &LabelWidgetSpec);
RegisterWidget(interp, "ttk::button", &ButtonWidgetSpec);
RegisterWidget(interp, "ttk::checkbutton", &CheckbuttonWidgetSpec);
diff --git a/generic/ttk/ttkClamTheme.c b/generic/ttk/ttkClamTheme.c
index f64b138..1ce75e0 100644
--- a/generic/ttk/ttkClamTheme.c
+++ b/generic/ttk/ttkClamTheme.c
@@ -1,10 +1,9 @@
/*
- * $Id: ttkClamTheme.c,v 1.5 2007/01/11 19:59:26 jenglish Exp $
+ * $Id: ttkClamTheme.c,v 1.6 2007/10/25 07:08:26 jenglish Exp $
*
* Copyright (C) 2004 Joe English
*
- * Ttk widget set: another theme engine.
- * Inspired by the XFCE family of Gnome themes.
+ * "clam" theme; inspired by the XFCE family of Gnome themes.
*/
#include <tk.h>
@@ -131,7 +130,7 @@ static Ttk_ElementOptionSpec BorderElementOptions[] = {
* the excess is used as padding.
*/
-static void BorderElementGeometry(
+static void BorderElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -184,7 +183,7 @@ static Ttk_ElementSpec BorderElementSpec = {
TK_STYLE_VERSION_2,
sizeof(BorderElement),
BorderElementOptions,
- BorderElementGeometry,
+ BorderElementSize,
BorderElementDraw
};
@@ -211,7 +210,7 @@ static Ttk_ElementOptionSpec FieldElementOptions[] = {
{0,0,0}
};
-static void FieldElementGeometry(
+static void FieldElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -237,7 +236,7 @@ static Ttk_ElementSpec FieldElementSpec = {
TK_STYLE_VERSION_2,
sizeof(FieldElement),
FieldElementOptions,
- FieldElementGeometry,
+ FieldElementSize,
FieldElementDraw
};
@@ -264,7 +263,7 @@ static Ttk_ElementSpec ComboboxFieldElementSpec = {
TK_STYLE_VERSION_2,
sizeof(FieldElement),
FieldElementOptions,
- FieldElementGeometry,
+ FieldElementSize,
ComboboxFieldElementDraw
};
@@ -297,8 +296,7 @@ static Ttk_ElementOptionSpec IndicatorElementOptions[] = {
{0,0,0}
};
-static void
-IndicatorElementGeometry(
+static void IndicatorElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -309,8 +307,7 @@ IndicatorElementGeometry(
*widthPtr = *heightPtr = size;
}
-static void
-RadioIndicatorElementDraw(
+static void RadioIndicatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned state)
{
@@ -338,8 +335,7 @@ RadioIndicatorElementDraw(
}
}
-static void
-CheckIndicatorElementDraw(
+static void CheckIndicatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned state)
{
@@ -383,7 +379,7 @@ static Ttk_ElementSpec RadioIndicatorElementSpec = {
TK_STYLE_VERSION_2,
sizeof(IndicatorElement),
IndicatorElementOptions,
- IndicatorElementGeometry,
+ IndicatorElementSize,
RadioIndicatorElementDraw
};
@@ -391,7 +387,7 @@ static Ttk_ElementSpec CheckIndicatorElementSpec = {
TK_STYLE_VERSION_2,
sizeof(IndicatorElement),
IndicatorElementOptions,
- IndicatorElementGeometry,
+ IndicatorElementSize,
CheckIndicatorElementDraw
};
@@ -594,11 +590,11 @@ static Ttk_ElementSpec TroughElementSpec = {
TK_STYLE_VERSION_2,
sizeof(ScrollbarElement),
ScrollbarElementOptions,
- TtkNullElementGeometry,
+ TtkNullElementSize,
TroughElementDraw
};
-static void ThumbElementGeometry(
+static void ThumbElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -656,14 +652,14 @@ static Ttk_ElementSpec ThumbElementSpec = {
TK_STYLE_VERSION_2,
sizeof(ScrollbarElement),
ScrollbarElementOptions,
- ThumbElementGeometry,
+ ThumbElementSize,
ThumbElementDraw
};
/*------------------------------------------------------------------------
* +++ Slider element.
*/
-static void SliderElementGeometry(
+static void SliderElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -688,18 +684,18 @@ static Ttk_ElementSpec SliderElementSpec = {
TK_STYLE_VERSION_2,
sizeof(ScrollbarElement),
ScrollbarElementOptions,
- SliderElementGeometry,
+ SliderElementSize,
ThumbElementDraw
};
/*------------------------------------------------------------------------
* +++ Progress bar element
*/
-static void PbarElementGeometry(
+static void PbarElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
- SliderElementGeometry(clientData, elementRecord, tkwin,
+ SliderElementSize(clientData, elementRecord, tkwin,
widthPtr, heightPtr, paddingPtr);
*paddingPtr = Ttk_UniformPadding(2);
}
@@ -724,7 +720,7 @@ static Ttk_ElementSpec PbarElementSpec = {
TK_STYLE_VERSION_2,
sizeof(ScrollbarElement),
ScrollbarElementOptions,
- PbarElementGeometry,
+ PbarElementSize,
PbarElementDraw
};
@@ -734,7 +730,7 @@ static Ttk_ElementSpec PbarElementSpec = {
*/
static int ArrowElements[] = { ARROW_UP, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT };
-static void ArrowElementGeometry(
+static void ArrowElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -772,7 +768,7 @@ static Ttk_ElementSpec ArrowElementSpec = {
TK_STYLE_VERSION_2,
sizeof(ScrollbarElement),
ScrollbarElementOptions,
- ArrowElementGeometry,
+ ArrowElementSize,
ArrowElementDraw
};
@@ -803,7 +799,7 @@ static Ttk_ElementOptionSpec NotebookElementOptions[] = {
{0,0,0}
};
-static void TabElementGeometry(
+static void TabElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -854,11 +850,11 @@ static Ttk_ElementSpec TabElementSpec =
TK_STYLE_VERSION_2,
sizeof(NotebookElement),
NotebookElementOptions,
- TabElementGeometry,
+ TabElementSize,
TabElementDraw
};
-static void ClientElementGeometry(
+static void ClientElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -885,7 +881,7 @@ static Ttk_ElementSpec ClientElementSpec =
TK_STYLE_VERSION_2,
sizeof(NotebookElement),
NotebookElementOptions,
- ClientElementGeometry,
+ ClientElementSize,
ClientElementDraw
};
diff --git a/generic/ttk/ttkClassicTheme.c b/generic/ttk/ttkClassicTheme.c
index 19164aa..c37b62e 100644
--- a/generic/ttk/ttkClassicTheme.c
+++ b/generic/ttk/ttkClassicTheme.c
@@ -1,11 +1,9 @@
/*
- * $Id: ttkClassicTheme.c,v 1.3 2006/11/07 03:45:27 jenglish Exp $
+ * $Id: ttkClassicTheme.c,v 1.4 2007/10/25 07:08:26 jenglish Exp $
*
* Copyright (c) 2004, Joe English
*
- * Ttk widget set: classic theme.
- *
- * Implements the "classic" Motif-like Tk look.
+ * "classic" theme; implements the classic Motif-like Tk look.
*
*/
@@ -35,10 +33,9 @@ static Ttk_ElementOptionSpec HighlightElementOptions[] = {
{NULL}
};
-static void
-HighlightElementSize(
- void *clientData, void *elementRecord,
- Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+static void HighlightElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
HighlightElement *hl = elementRecord;
int highlightThickness = 0;
@@ -47,9 +44,9 @@ HighlightElementSize(
*paddingPtr = Ttk_UniformPadding((short)highlightThickness);
}
-static void
-HighlightElementDraw(void *clientData, void *elementRecord,
- Tk_Window tkwin, Drawable d, Ttk_Box b, unsigned int state)
+static void HighlightElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
HighlightElement *hl = elementRecord;
int highlightThickness = 0;
@@ -101,8 +98,7 @@ static Ttk_ElementOptionSpec ButtonBorderElementOptions[] =
{NULL}
};
-static void
-ButtonBorderElementSize(
+static void ButtonBorderElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -124,8 +120,7 @@ ButtonBorderElementSize(
* padding for default ring is drawn in the wrong color
* when the button is active.)
*/
-static void
-ButtonBorderElementDraw(
+static void ButtonBorderElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
diff --git a/generic/ttk/ttkDefaultTheme.c b/generic/ttk/ttkDefaultTheme.c
index ec3ad93..f73abd8 100644
--- a/generic/ttk/ttkDefaultTheme.c
+++ b/generic/ttk/ttkDefaultTheme.c
@@ -1,4 +1,4 @@
-/* $Id: ttkDefaultTheme.c,v 1.7 2007/01/11 19:59:26 jenglish Exp $
+/* $Id: ttkDefaultTheme.c,v 1.8 2007/10/25 07:08:26 jenglish Exp $
*
* Copyright (c) 2003, Joe English
*
@@ -276,8 +276,7 @@ static void BorderElementSize(
*paddingPtr = Ttk_UniformPadding((short)borderWidth);
}
-static void
-BorderElementDraw(
+static void BorderElementDraw(
void *clientData, void *elementRecord,
Tk_Window tkwin, Drawable d, Ttk_Box b, unsigned int state)
{
diff --git a/generic/ttk/ttkElements.c b/generic/ttk/ttkElements.c
index 3c5c4c8..958122c 100644
--- a/generic/ttk/ttkElements.c
+++ b/generic/ttk/ttkElements.c
@@ -1,4 +1,4 @@
-/* $Id: ttkElements.c,v 1.6 2007/01/11 19:59:26 jenglish Exp $
+/* $Id: ttkElements.c,v 1.7 2007/10/25 07:08:26 jenglish Exp $
*
* Copyright (c) 2003, Joe English
*
@@ -25,7 +25,7 @@
/* public */ Ttk_ElementOptionSpec TtkNullElementOptions[] = { {NULL} };
/* public */ void
-TtkNullElementGeometry(
+TtkNullElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -43,7 +43,7 @@ TtkNullElementDraw(
TK_STYLE_VERSION_2,
sizeof(NullElement),
TtkNullElementOptions,
- TtkNullElementGeometry,
+ TtkNullElementSize,
TtkNullElementDraw
};
@@ -67,15 +67,13 @@ static Ttk_ElementOptionSpec BackgroundElementOptions[] =
{NULL}
};
-static void
-BackgroundElementGeometry(
+static void BackgroundElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
}
-static void
-BackgroundElementDraw(
+static void BackgroundElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -92,7 +90,7 @@ static Ttk_ElementSpec BackgroundElementSpec =
TK_STYLE_VERSION_2,
sizeof(BackgroundElement),
BackgroundElementOptions,
- BackgroundElementGeometry,
+ BackgroundElementSize,
BackgroundElementDraw
};
@@ -108,17 +106,16 @@ typedef struct {
static Ttk_ElementOptionSpec BorderElementOptions[] =
{
- { "-background", TK_OPTION_BORDER,
+ { "-background", TK_OPTION_BORDER,
Tk_Offset(BorderElement,borderObj), DEFAULT_BACKGROUND },
- { "-borderwidth", TK_OPTION_PIXELS,
+ { "-borderwidth", TK_OPTION_PIXELS,
Tk_Offset(BorderElement,borderWidthObj), DEFAULT_BORDERWIDTH },
- { "-relief", TK_OPTION_RELIEF,
+ { "-relief", TK_OPTION_RELIEF,
Tk_Offset(BorderElement,reliefObj), "flat" },
{NULL}
};
-static void
-BorderElementGeometry(
+static void BorderElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -128,8 +125,7 @@ BorderElementGeometry(
*paddingPtr = Ttk_UniformPadding((short)borderWidth);
}
-static void
-BorderElementDraw(
+static void BorderElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -152,7 +148,7 @@ static Ttk_ElementSpec BorderElementSpec =
TK_STYLE_VERSION_2,
sizeof(BorderElement),
BorderElementOptions,
- BorderElementGeometry,
+ BorderElementSize,
BorderElementDraw
};
@@ -173,8 +169,7 @@ static Ttk_ElementOptionSpec FieldElementOptions[] = {
{NULL}
};
-static void
-FieldElementGeometry(
+static void FieldElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -184,8 +179,7 @@ FieldElementGeometry(
*paddingPtr = Ttk_UniformPadding((short)borderWidth);
}
-static void
-FieldElementDraw(
+static void FieldElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -203,7 +197,7 @@ static Ttk_ElementSpec FieldElementSpec =
TK_STYLE_VERSION_2,
sizeof(FieldElement),
FieldElementOptions,
- FieldElementGeometry,
+ FieldElementSize,
FieldElementDraw
};
@@ -213,7 +207,7 @@ static Ttk_ElementSpec FieldElementSpec =
*
* This element has no visual representation, only geometry.
* It adds a (possibly non-uniform) internal border.
- * In addition, if "-shiftrelief" is specified,
+ * In addition, if "-shiftrelief" is specified,
* adds additional pixels to shift child elements "in" or "out"
* depending on the -relief.
*/
@@ -235,8 +229,7 @@ static Ttk_ElementOptionSpec PaddingElementOptions[] =
{NULL}
};
-static void
-PaddingElementGeometry(
+static void PaddingElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -251,8 +244,7 @@ PaddingElementGeometry(
*paddingPtr = Ttk_RelievePadding(pad, relief, shiftRelief);
}
-static void
-PaddingElementDraw(
+static void PaddingElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -264,7 +256,7 @@ static Ttk_ElementSpec PaddingElementSpec =
TK_STYLE_VERSION_2,
sizeof(PaddingElement),
PaddingElementOptions,
- PaddingElementGeometry,
+ PaddingElementSize,
PaddingElementDraw
};
@@ -309,8 +301,7 @@ static Ttk_ElementOptionSpec FocusElementOptions[] = {
{NULL}
};
-static void
-FocusElementGeometry(
+static void FocusElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -321,8 +312,7 @@ FocusElementGeometry(
*paddingPtr = Ttk_UniformPadding((short)focusThickness);
}
-static void
-FocusElementDraw(
+static void FocusElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -340,7 +330,7 @@ static Ttk_ElementSpec FocusElementSpec =
TK_STYLE_VERSION_2,
sizeof(FocusElement),
FocusElementOptions,
- FocusElementGeometry,
+ FocusElementSize,
FocusElementDraw
};
@@ -366,16 +356,14 @@ static Ttk_ElementOptionSpec SeparatorElementOptions[] =
{NULL}
};
-static void
-SeparatorElementGeometry(
+static void SeparatorElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
*widthPtr = *heightPtr = 2;
}
-static void
-HorizontalSeparatorElementDraw(
+static void HorizontalSeparatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -388,8 +376,7 @@ HorizontalSeparatorElementDraw(
XDrawLine(Tk_Display(tkwin), d, lightGC, b.x, b.y+1, b.x + b.width, b.y+1);
}
-static void
-VerticalSeparatorElementDraw(
+static void VerticalSeparatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -402,8 +389,7 @@ VerticalSeparatorElementDraw(
XDrawLine(Tk_Display(tkwin), d, lightGC, b.x+1, b.y, b.x+1, b.y+b.height);
}
-static void
-GeneralSeparatorElementDraw(
+static void GeneralSeparatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -427,7 +413,7 @@ static Ttk_ElementSpec HorizontalSeparatorElementSpec =
TK_STYLE_VERSION_2,
sizeof(SeparatorElement),
SeparatorElementOptions,
- SeparatorElementGeometry,
+ SeparatorElementSize,
HorizontalSeparatorElementDraw
};
@@ -436,7 +422,7 @@ static Ttk_ElementSpec VerticalSeparatorElementSpec =
TK_STYLE_VERSION_2,
sizeof(SeparatorElement),
SeparatorElementOptions,
- SeparatorElementGeometry,
+ SeparatorElementSize,
HorizontalSeparatorElementDraw
};
@@ -445,7 +431,7 @@ static Ttk_ElementSpec SeparatorElementSpec =
TK_STYLE_VERSION_2,
sizeof(SeparatorElement),
SeparatorElementOptions,
- SeparatorElementGeometry,
+ SeparatorElementSize,
GeneralSeparatorElementDraw
};
@@ -540,8 +526,7 @@ static Ttk_ElementOptionSpec IndicatorElementOptions[] =
/*
* Checkbutton indicators (default): 3-D square.
*/
-static void
-SquareIndicatorElementGeometry(
+static void SquareIndicatorElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -552,8 +537,7 @@ SquareIndicatorElementGeometry(
*widthPtr = *heightPtr = diameter;
}
-static void
-SquareIndicatorElementDraw(
+static void SquareIndicatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -582,8 +566,7 @@ SquareIndicatorElementDraw(
/*
* Radiobutton indicators: 3-D diamond.
*/
-static void
-DiamondIndicatorElementGeometry(
+static void DiamondIndicatorElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -594,8 +577,7 @@ DiamondIndicatorElementGeometry(
*widthPtr = *heightPtr = diameter + 3;
}
-static void
-DiamondIndicatorElementDraw(
+static void DiamondIndicatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -636,7 +618,7 @@ static Ttk_ElementSpec CheckbuttonIndicatorElementSpec =
TK_STYLE_VERSION_2,
sizeof(IndicatorElement),
IndicatorElementOptions,
- SquareIndicatorElementGeometry,
+ SquareIndicatorElementSize,
SquareIndicatorElementDraw
};
@@ -645,7 +627,7 @@ static Ttk_ElementSpec RadiobuttonIndicatorElementSpec =
TK_STYLE_VERSION_2,
sizeof(IndicatorElement),
IndicatorElementOptions,
- DiamondIndicatorElementGeometry,
+ DiamondIndicatorElementSize,
DiamondIndicatorElementDraw
};
@@ -686,8 +668,7 @@ static Ttk_ElementOptionSpec MenuIndicatorElementOptions[] =
{ NULL }
};
-static void
-MenuIndicatorElementGeometry(
+static void MenuIndicatorElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -697,8 +678,7 @@ MenuIndicatorElementGeometry(
Ttk_GetPaddingFromObj(NULL,tkwin,mi->marginObj,paddingPtr);
}
-static void
-MenuIndicatorElementDraw(
+static void MenuIndicatorElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -719,7 +699,7 @@ static Ttk_ElementSpec MenuIndicatorElementSpec =
TK_STYLE_VERSION_2,
sizeof(MenuIndicatorElement),
MenuIndicatorElementOptions,
- MenuIndicatorElementGeometry,
+ MenuIndicatorElementSize,
MenuIndicatorElementDraw
};
@@ -742,7 +722,7 @@ typedef struct
static Ttk_ElementOptionSpec ArrowElementOptions[] =
{
- { "-background", TK_OPTION_BORDER,
+ { "-background", TK_OPTION_BORDER,
Tk_Offset(ArrowElement,borderObj), DEFAULT_BACKGROUND },
{ "-relief",TK_OPTION_RELIEF,
Tk_Offset(ArrowElement,reliefObj),"raised"},
@@ -750,15 +730,14 @@ static Ttk_ElementOptionSpec ArrowElementOptions[] =
Tk_Offset(ArrowElement,borderWidthObj), "1" },
{ "-arrowcolor",TK_OPTION_COLOR,
Tk_Offset(ArrowElement,colorObj),"black"},
- { "-arrowsize", TK_OPTION_PIXELS,
+ { "-arrowsize", TK_OPTION_PIXELS,
Tk_Offset(ArrowElement,sizeObj), "14" },
{ NULL }
};
static Ttk_Padding ArrowPadding = { 3,3,3,3 };
-static void
-ArrowElementGeometry(
+static void ArrowElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -772,8 +751,7 @@ ArrowElementGeometry(
*paddingPtr = ArrowPadding;
}
-static void
-ArrowElementDraw(
+static void ArrowElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -798,11 +776,10 @@ static Ttk_ElementSpec ArrowElementSpec =
TK_STYLE_VERSION_2,
sizeof(ArrowElement),
ArrowElementOptions,
- ArrowElementGeometry,
+ ArrowElementSize,
ArrowElementDraw
};
-
/*----------------------------------------------------------------------
* +++ Trough element.
*
@@ -827,8 +804,7 @@ static Ttk_ElementOptionSpec TroughElementOptions[] =
{ NULL }
};
-static void
-TroughElementGeometry(
+static void TroughElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -839,8 +815,7 @@ TroughElementGeometry(
*paddingPtr = Ttk_UniformPadding((short)borderWidth);
}
-static void
-TroughElementDraw(
+static void TroughElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -861,7 +836,7 @@ static Ttk_ElementSpec TroughElementSpec =
TK_STYLE_VERSION_2,
sizeof(TroughElement),
TroughElementOptions,
- TroughElementGeometry,
+ TroughElementSize,
TroughElementDraw
};
@@ -896,8 +871,7 @@ static Ttk_ElementOptionSpec ThumbElementOptions[] =
{ NULL }
};
-static void
-ThumbElementGeometry(
+static void ThumbElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -916,8 +890,7 @@ ThumbElementGeometry(
}
}
-static void
-ThumbElementDraw(
+static void ThumbElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -936,7 +909,7 @@ static Ttk_ElementSpec ThumbElementSpec =
TK_STYLE_VERSION_2,
sizeof(ThumbElement),
ThumbElementOptions,
- ThumbElementGeometry,
+ ThumbElementSize,
ThumbElementDraw
};
@@ -974,8 +947,7 @@ static Ttk_ElementOptionSpec SliderElementOptions[] =
{ NULL }
};
-static void
-SliderElementGeometry(
+static void SliderElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -999,8 +971,7 @@ SliderElementGeometry(
}
}
-static void
-SliderElementDraw(
+static void SliderElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -1047,7 +1018,7 @@ static Ttk_ElementSpec SliderElementSpec =
TK_STYLE_VERSION_2,
sizeof(SliderElement),
SliderElementOptions,
- SliderElementGeometry,
+ SliderElementSize,
SliderElementDraw
};
@@ -1057,7 +1028,7 @@ static Ttk_ElementSpec SliderElementSpec =
*
* -thickness specifies the size along the short axis of the bar.
* -length specifies the default size along the long axis;
- * the bar will be this long in indeterminate mode.
+ * the bar will be this long in indeterminate mode.
*/
#define DEFAULT_PBAR_THICKNESS "15"
@@ -1090,7 +1061,7 @@ static Ttk_ElementOptionSpec PbarElementOptions[] =
{ NULL }
};
-static void PbarElementGeometry(
+static void PbarElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -1136,7 +1107,7 @@ static Ttk_ElementSpec PbarElementSpec = {
TK_STYLE_VERSION_2,
sizeof(PbarElement),
PbarElementOptions,
- PbarElementGeometry,
+ PbarElementSize,
PbarElementDraw
};
@@ -1157,8 +1128,7 @@ static Ttk_ElementOptionSpec TabElementOptions[] = {
{0,0,0,0}
};
-static void
-TabElementGeometry(
+static void TabElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -1169,8 +1139,7 @@ TabElementGeometry(
paddingPtr->bottom = 0;
}
-static void
-TabElementDraw(
+static void TabElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -1227,7 +1196,7 @@ static Ttk_ElementSpec TabElementSpec =
TK_STYLE_VERSION_2,
sizeof(TabElement),
TabElementOptions,
- TabElementGeometry,
+ TabElementSize,
TabElementDraw
};
@@ -1238,8 +1207,7 @@ static Ttk_ElementSpec TabElementSpec =
typedef TabElement ClientElement;
#define ClientElementOptions TabElementOptions
-static void
-ClientElementDraw(
+static void ClientElementDraw(
void *clientData, void *elementRecord, Tk_Window tkwin,
Drawable d, Ttk_Box b, unsigned int state)
{
@@ -1253,8 +1221,7 @@ ClientElementDraw(
b.x, b.y, b.width, b.height, borderWidth,TK_RELIEF_RAISED);
}
-static void
-ClientElementGeometry(
+static void ClientElementSize(
void *clientData, void *elementRecord, Tk_Window tkwin,
int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
@@ -1269,97 +1236,13 @@ static Ttk_ElementSpec ClientElementSpec =
TK_STYLE_VERSION_2,
sizeof(ClientElement),
ClientElementOptions,
- ClientElementGeometry,
+ ClientElementSize,
ClientElementDraw
};
-
-/*------------------------------------------------------------------------
- * +++ Widget layouts.
- */
-
-TTK_BEGIN_LAYOUT(FrameLayout)
- TTK_NODE("Frame.border", TTK_FILL_BOTH)
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(LabelframeLayout)
- /* Note: labelframe widget does its own layout */
- TTK_NODE("Labelframe.border", TTK_FILL_BOTH)
- TTK_NODE("Labelframe.text", TTK_FILL_BOTH)
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(LabelLayout)
- TTK_GROUP("Label.border", TTK_FILL_BOTH|TTK_BORDER,
- TTK_GROUP("Label.padding", TTK_FILL_BOTH|TTK_BORDER,
- TTK_NODE("Label.label", TTK_FILL_BOTH)))
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(ButtonLayout)
- TTK_GROUP("Button.border", TTK_FILL_BOTH|TTK_BORDER,
- TTK_GROUP("Button.focus", TTK_FILL_BOTH,
- TTK_GROUP("Button.padding", TTK_FILL_BOTH,
- TTK_NODE("Button.label", TTK_FILL_BOTH))))
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(CheckbuttonLayout)
- TTK_GROUP("Checkbutton.padding", TTK_FILL_BOTH,
- TTK_NODE("Checkbutton.indicator", TTK_PACK_LEFT)
- TTK_GROUP("Checkbutton.focus", TTK_PACK_LEFT | TTK_STICK_W,
- TTK_NODE("Checkbutton.label", TTK_FILL_BOTH)))
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(RadiobuttonLayout)
- TTK_GROUP("Radiobutton.padding", TTK_FILL_BOTH,
- TTK_NODE("Radiobutton.indicator", TTK_PACK_LEFT)
- TTK_GROUP("Radiobutton.focus", TTK_PACK_LEFT,
- TTK_NODE("Radiobutton.label", TTK_FILL_BOTH)))
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(MenubuttonLayout)
- TTK_GROUP("Menubutton.border", TTK_FILL_BOTH,
- TTK_GROUP("Menubutton.focus", TTK_FILL_BOTH,
- TTK_NODE("Menubutton.indicator", TTK_PACK_RIGHT)
- TTK_GROUP("Menubutton.padding", TTK_PACK_LEFT|TTK_EXPAND|TTK_FILL_X,
- TTK_NODE("Menubutton.label", TTK_PACK_LEFT))))
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(VerticalScrollbarLayout)
- TTK_GROUP("Vertical.Scrollbar.trough", TTK_FILL_Y,
- TTK_NODE("Vertical.Scrollbar.uparrow", TTK_PACK_TOP)
- TTK_NODE("Vertical.Scrollbar.downarrow", TTK_PACK_BOTTOM)
- TTK_NODE(
- "Vertical.Scrollbar.thumb", TTK_PACK_TOP|TTK_EXPAND|TTK_FILL_BOTH))
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(HorizontalScrollbarLayout)
- TTK_GROUP("Horizontal.Scrollbar.trough", TTK_FILL_X,
- TTK_NODE("Horizontal.Scrollbar.leftarrow", TTK_PACK_LEFT)
- TTK_NODE("Horizontal.Scrollbar.rightarrow", TTK_PACK_RIGHT)
- TTK_NODE(
- "Horizontal.Scrollbar.thumb", TTK_PACK_LEFT|TTK_EXPAND|TTK_FILL_BOTH))
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(VerticalScaleLayout)
- TTK_GROUP("Vertical.Scale.trough", TTK_FILL_BOTH,
- TTK_NODE("Vertical.Scale.slider", TTK_PACK_TOP) )
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(HorizontalScaleLayout)
- TTK_GROUP("Horizontal.Scale.trough", TTK_FILL_BOTH,
- TTK_NODE("Horizontal.Scale.slider", TTK_PACK_LEFT) )
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(SeparatorLayout)
- TTK_NODE("Separator.separator", TTK_FILL_BOTH)
-TTK_END_LAYOUT
-
-TTK_BEGIN_LAYOUT(SizegripLayout)
- TTK_NODE("Sizegrip.sizegrip", TTK_PACK_BOTTOM|TTK_STICK_S|TTK_STICK_E)
-TTK_END_LAYOUT
-
/*----------------------------------------------------------------------
* TtkElements_Init --
- * Register elements and default layouts.
+ * Register default element implementations.
*/
MODULE_SCOPE
@@ -1406,9 +1289,9 @@ void TtkElements_Init(Tcl_Interp *interp)
Ttk_RegisterElement(interp, theme, "separator",
&SeparatorElementSpec, NULL);
- Ttk_RegisterElement(interp, theme, "hseparator",
+ Ttk_RegisterElement(interp, theme, "hseparator",
&HorizontalSeparatorElementSpec, NULL);
- Ttk_RegisterElement(interp, theme, "vseparator",
+ Ttk_RegisterElement(interp, theme, "vseparator",
&VerticalSeparatorElementSpec, NULL);
Ttk_RegisterElement(interp, theme, "sizegrip", &SizegripElementSpec, NULL);
@@ -1417,25 +1300,6 @@ void TtkElements_Init(Tcl_Interp *interp)
Ttk_RegisterElement(interp, theme, "client", &ClientElementSpec, NULL);
/*
- * Layouts:
- */
- Ttk_RegisterLayout(theme, "TFrame", FrameLayout);
- Ttk_RegisterLayout(theme, "TLabelframe", LabelframeLayout);
- Ttk_RegisterLayout(theme, "TLabel", LabelLayout);
- Ttk_RegisterLayout(theme, "TButton", ButtonLayout);
- Ttk_RegisterLayout(theme, "TCheckbutton", CheckbuttonLayout);
- Ttk_RegisterLayout(theme, "TRadiobutton", RadiobuttonLayout);
- Ttk_RegisterLayout(theme, "TMenubutton", MenubuttonLayout);
- Ttk_RegisterLayout(theme,
- "Vertical.TScrollbar", VerticalScrollbarLayout);
- Ttk_RegisterLayout(theme,
- "Horizontal.TScrollbar", HorizontalScrollbarLayout);
- Ttk_RegisterLayout(theme, "Vertical.TScale", VerticalScaleLayout);
- Ttk_RegisterLayout(theme, "Horizontal.TScale", HorizontalScaleLayout);
- Ttk_RegisterLayout(theme, "TSeparator", SeparatorLayout);
- Ttk_RegisterLayout(theme, "TSizegrip", SizegripLayout);
-
- /*
* Register "default" as a user-loadable theme (for now):
*/
Tcl_PkgProvide(interp, "ttk::theme::default", TTK_VERSION);
diff --git a/generic/ttk/ttkFrame.c b/generic/ttk/ttkFrame.c
index 08f1f7f..b6f8fe8 100644
--- a/generic/ttk/ttkFrame.c
+++ b/generic/ttk/ttkFrame.c
@@ -1,4 +1,4 @@
-/* $Id: ttkFrame.c,v 1.6 2007/06/09 21:45:44 jenglish Exp $
+/* $Id: ttkFrame.c,v 1.7 2007/10/25 07:08:26 jenglish Exp $
* Copyright (c) 2004, Joe English
*
* ttk::frame and ttk::labelframe widgets.
@@ -165,6 +165,10 @@ static WidgetSpec FrameWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(FrameLayout)
+ TTK_NODE("Frame.border", TTK_FILL_BOTH)
+TTK_END_LAYOUT
+
/* ======================================================================
* +++ Labelframe widget:
*/
@@ -587,6 +591,11 @@ static WidgetSpec LabelframeWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(LabelframeLayout)
+ TTK_NODE("Labelframe.border", TTK_FILL_BOTH)
+ TTK_NODE("Labelframe.text", TTK_FILL_BOTH)
+TTK_END_LAYOUT
+
/* ======================================================================
* +++ Initialization:
*/
@@ -594,6 +603,12 @@ static WidgetSpec LabelframeWidgetSpec =
MODULE_SCOPE
void TtkFrame_Init(Tcl_Interp *interp)
{
+ Ttk_Theme theme = Ttk_GetDefaultTheme(interp);
+
+ Ttk_RegisterLayout(theme, "TFrame", FrameLayout);
+ Ttk_RegisterLayout(theme, "TLabelframe", LabelframeLayout);
+
RegisterWidget(interp, "ttk::frame", &FrameWidgetSpec);
RegisterWidget(interp, "ttk::labelframe", &LabelframeWidgetSpec);
}
+
diff --git a/generic/ttk/ttkScale.c b/generic/ttk/ttkScale.c
index 1f32d13..063116d 100644
--- a/generic/ttk/ttkScale.c
+++ b/generic/ttk/ttkScale.c
@@ -1,4 +1,4 @@
-/* $Id: ttkScale.c,v 1.5 2007/01/11 14:49:47 jenglish Exp $
+/* $Id: ttkScale.c,v 1.6 2007/10/25 07:08:26 jenglish Exp $
* Copyright (C) 2004 Pat Thoyts <patthoyts@users.sourceforge.net>
*
* ttk::scale widget.
@@ -501,12 +501,27 @@ static WidgetSpec ScaleWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(VerticalScaleLayout)
+ TTK_GROUP("Vertical.Scale.trough", TTK_FILL_BOTH,
+ TTK_NODE("Vertical.Scale.slider", TTK_PACK_TOP) )
+TTK_END_LAYOUT
+
+TTK_BEGIN_LAYOUT(HorizontalScaleLayout)
+ TTK_GROUP("Horizontal.Scale.trough", TTK_FILL_BOTH,
+ TTK_NODE("Horizontal.Scale.slider", TTK_PACK_LEFT) )
+TTK_END_LAYOUT
+
/*
* Initialization.
*/
MODULE_SCOPE
void TtkScale_Init(Tcl_Interp *interp)
{
+ Ttk_Theme theme = Ttk_GetDefaultTheme(interp);
+
+ Ttk_RegisterLayout(theme, "Vertical.TScale", VerticalScaleLayout);
+ Ttk_RegisterLayout(theme, "Horizontal.TScale", HorizontalScaleLayout);
+
RegisterWidget(interp, "ttk::scale", &ScaleWidgetSpec);
}
diff --git a/generic/ttk/ttkScrollbar.c b/generic/ttk/ttkScrollbar.c
index c3be30f..1e744c2 100644
--- a/generic/ttk/ttkScrollbar.c
+++ b/generic/ttk/ttkScrollbar.c
@@ -1,4 +1,4 @@
-/* $Id: ttkScrollbar.c,v 1.5 2007/01/11 14:49:47 jenglish Exp $
+/* $Id: ttkScrollbar.c,v 1.6 2007/10/25 07:08:26 jenglish Exp $
* Copyright (c) 2003, Joe English
*
* ttk::scrollbar widget.
@@ -313,6 +313,22 @@ static WidgetSpec ScrollbarWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(VerticalScrollbarLayout)
+ TTK_GROUP("Vertical.Scrollbar.trough", TTK_FILL_Y,
+ TTK_NODE("Vertical.Scrollbar.uparrow", TTK_PACK_TOP)
+ TTK_NODE("Vertical.Scrollbar.downarrow", TTK_PACK_BOTTOM)
+ TTK_NODE(
+ "Vertical.Scrollbar.thumb", TTK_PACK_TOP|TTK_EXPAND|TTK_FILL_BOTH))
+TTK_END_LAYOUT
+
+TTK_BEGIN_LAYOUT(HorizontalScrollbarLayout)
+ TTK_GROUP("Horizontal.Scrollbar.trough", TTK_FILL_X,
+ TTK_NODE("Horizontal.Scrollbar.leftarrow", TTK_PACK_LEFT)
+ TTK_NODE("Horizontal.Scrollbar.rightarrow", TTK_PACK_RIGHT)
+ TTK_NODE(
+ "Horizontal.Scrollbar.thumb", TTK_PACK_LEFT|TTK_EXPAND|TTK_FILL_BOTH))
+TTK_END_LAYOUT
+
/*------------------------------------------------------------------------
* +++ Initialization.
*/
@@ -320,7 +336,12 @@ static WidgetSpec ScrollbarWidgetSpec =
MODULE_SCOPE
void TtkScrollbar_Init(Tcl_Interp *interp)
{
+ Ttk_Theme theme = Ttk_GetDefaultTheme(interp);
+
+ Ttk_RegisterLayout(theme,"Vertical.TScrollbar",VerticalScrollbarLayout);
+ Ttk_RegisterLayout(theme,"Horizontal.TScrollbar",HorizontalScrollbarLayout);
+
RegisterWidget(interp, "ttk::scrollbar", &ScrollbarWidgetSpec);
-}
+}
/*EOF*/
diff --git a/generic/ttk/ttkSeparator.c b/generic/ttk/ttkSeparator.c
index 000db13..b202c35 100644
--- a/generic/ttk/ttkSeparator.c
+++ b/generic/ttk/ttkSeparator.c
@@ -1,4 +1,4 @@
-/* $Id: ttkSeparator.c,v 1.5 2007/01/11 14:49:47 jenglish Exp $
+/* $Id: ttkSeparator.c,v 1.6 2007/10/25 07:08:26 jenglish Exp $
*
* Copyright (c) 2004, Joe English
*
@@ -78,6 +78,10 @@ static WidgetSpec SeparatorWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(SeparatorLayout)
+ TTK_NODE("Separator.separator", TTK_FILL_BOTH)
+TTK_END_LAYOUT
+
/* +++ Sizegrip widget:
* Has no options or methods other than the standard ones.
*/
@@ -108,12 +112,21 @@ static WidgetSpec SizegripWidgetSpec =
TtkWidgetDisplay /* displayProc */
};
+TTK_BEGIN_LAYOUT(SizegripLayout)
+ TTK_NODE("Sizegrip.sizegrip", TTK_PACK_BOTTOM|TTK_STICK_S|TTK_STICK_E)
+TTK_END_LAYOUT
+
/* +++ Initialization:
*/
MODULE_SCOPE
void TtkSeparator_Init(Tcl_Interp *interp)
{
+ Ttk_Theme theme = Ttk_GetDefaultTheme(interp);
+
+ Ttk_RegisterLayout(theme, "TSeparator", SeparatorLayout);
+ Ttk_RegisterLayout(theme, "TSizegrip", SizegripLayout);
+
RegisterWidget(interp, "ttk::separator", &SeparatorWidgetSpec);
RegisterWidget(interp, "ttk::sizegrip", &SizegripWidgetSpec);
}
diff --git a/generic/ttk/ttkSquare.c b/generic/ttk/ttkSquare.c
index 4f1bd0f..365cb10 100644
--- a/generic/ttk/ttkSquare.c
+++ b/generic/ttk/ttkSquare.c
@@ -2,7 +2,7 @@
*
* Minimal sample ttk widget.
*
- * $Id: ttkSquare.c,v 1.4 2007/01/11 14:49:47 jenglish Exp $
+ * $Id: ttkSquare.c,v 1.5 2007/10/25 07:08:26 jenglish Exp $
*/
#include <tk.h>
@@ -201,10 +201,9 @@ static Ttk_ElementOptionSpec SquareElementOptions[] =
* size and padding information
*/
-static void
-SquareElementGeometry(
- void *clientData, void *elementRecord,
- Tk_Window tkwin, int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
+static void SquareElementSize(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr)
{
SquareElement *square = elementRecord;
int borderWidth = 0;
@@ -219,9 +218,9 @@ SquareElementGeometry(
* Draw the element in the box provided.
*/
-static void
-SquareElementDraw(void *clientData, void *elementRecord,
- Tk_Window tkwin, Drawable d, Ttk_Box b, unsigned int state)
+static void SquareElementDraw(
+ void *clientData, void *elementRecord, Tk_Window tkwin,
+ Drawable d, Ttk_Box b, unsigned int state)
{
SquareElement *square = elementRecord;
Tk_3DBorder border = NULL, foreground = NULL;
@@ -241,7 +240,7 @@ static Ttk_ElementSpec SquareElementSpec =
TK_STYLE_VERSION_2,
sizeof(SquareElement),
SquareElementOptions,
- SquareElementGeometry,
+ SquareElementSize,
SquareElementDraw
};
diff --git a/generic/ttk/ttkTheme.h b/generic/ttk/ttkTheme.h
index 1567cd0..adca259 100644
--- a/generic/ttk/ttkTheme.h
+++ b/generic/ttk/ttkTheme.h
@@ -1,4 +1,4 @@
-/* $Id: ttkTheme.h,v 1.10 2007/10/15 15:03:41 jenglish Exp $
+/* $Id: ttkTheme.h,v 1.11 2007/10/25 07:08:26 jenglish Exp $
* Copyright (c) 2003 Joe English. Freely redistributable.
*
* Declarations for Tk theme engine.
@@ -270,7 +270,7 @@ typedef struct {
Tcl_Obj *unused;
} NullElement;
-MODULE_SCOPE void TtkNullElementGeometry
+MODULE_SCOPE void TtkNullElementSize
(void *, void *, Tk_Window, int *, int *, Ttk_Padding *);
MODULE_SCOPE void TtkNullElementDraw
(void *, void *, Tk_Window, Drawable, Ttk_Box, Ttk_State);
diff --git a/generic/ttk/ttkTreeview.c b/generic/ttk/ttkTreeview.c
index f71a163..9d03683 100644
--- a/generic/ttk/ttkTreeview.c
+++ b/generic/ttk/ttkTreeview.c
@@ -1,4 +1,4 @@
-/* $Id: ttkTreeview.c,v 1.18 2007/10/15 15:03:41 jenglish Exp $
+/* $Id: ttkTreeview.c,v 1.19 2007/10/25 07:08:26 jenglish Exp $
* Copyright (c) 2004, Joe English
*
* ttk::treeview widget implementation.
@@ -3178,7 +3178,7 @@ static Ttk_ElementSpec RowElementSpec =
TK_STYLE_VERSION_2,
sizeof(RowElement),
RowElementOptions,
- TtkNullElementGeometry,
+ TtkNullElementSize,
RowElementDraw
};