Import Tk 8.6.11

This commit is contained in:
Steve Dower
2021-03-30 00:54:10 +01:00
parent 42c69189d9
commit 070b8750b0
403 changed files with 21608 additions and 16269 deletions

View File

@@ -4,8 +4,7 @@
* ttk::frame and ttk::labelframe widgets.
*/
#include <tk.h>
#include "tkInt.h"
#include "ttkTheme.h"
#include "ttkWidget.h"
#include "ttkManager.h"
@@ -89,9 +88,12 @@ static Ttk_Padding FrameMargins(Frame *framePtr)
* The frame doesn't request a size of its own by default,
* but it does have an internal border. See also <<NOTE-SIZE>>
*/
static int FrameSize(void *recordPtr, int *widthPtr, int *heightPtr)
static int FrameSize(
void *recordPtr,
TCL_UNUSED(int *),
TCL_UNUSED(int *))
{
Frame *framePtr = recordPtr;
Frame *framePtr = (Frame *)recordPtr;
Ttk_SetMargins(framePtr->core.tkwin, FrameMargins(framePtr));
return 0;
}
@@ -112,7 +114,7 @@ static int FrameSize(void *recordPtr, int *widthPtr, int *heightPtr)
static int FrameConfigure(Tcl_Interp *interp, void *recordPtr, int mask)
{
Frame *framePtr = recordPtr;
Frame *framePtr = (Frame *)recordPtr;
int width, height;
/*
@@ -338,9 +340,12 @@ LabelframeLabelSize(Labelframe *lframePtr, int *widthPtr, int *heightPtr)
* Like the frame, this doesn't request a size of its own
* but it does have internal padding and a minimum size.
*/
static int LabelframeSize(void *recordPtr, int *widthPtr, int *heightPtr)
static int LabelframeSize(
void *recordPtr,
TCL_UNUSED(int *),
TCL_UNUSED(int *))
{
Labelframe *lframePtr = recordPtr;
Labelframe *lframePtr = (Labelframe *)recordPtr;
WidgetCore *corePtr = &lframePtr->core;
Ttk_Padding margins;
LabelframeStyle style;
@@ -385,7 +390,7 @@ static int LabelframeSize(void *recordPtr, int *widthPtr, int *heightPtr)
static Ttk_Layout LabelframeGetLayout(
Tcl_Interp *interp, Ttk_Theme theme, void *recordPtr)
{
Labelframe *lf = recordPtr;
Labelframe *lf = (Labelframe *)recordPtr;
Ttk_Layout frameLayout = TtkWidgetGetLayout(interp, theme, recordPtr);
Ttk_Layout labelLayout;
@@ -416,7 +421,7 @@ static Ttk_Layout LabelframeGetLayout(
static void LabelframeDoLayout(void *recordPtr)
{
Labelframe *lframePtr = recordPtr;
Labelframe *lframePtr = (Labelframe *)recordPtr;
WidgetCore *corePtr = &lframePtr->core;
int lw, lh; /* Label width and height */
LabelframeStyle style;
@@ -456,13 +461,13 @@ static void LabelframeDoLayout(void *recordPtr)
Ttk_PlaceLayout(
lframePtr->label.labelLayout, corePtr->state, labelParcel);
}
/* labelWidget placed in LabelframePlaceSlaves GM hook */
/* labelWidget placed in LabelframePlaceContent GM hook */
lframePtr->label.labelParcel = labelParcel;
}
static void LabelframeDisplay(void *recordPtr, Drawable d)
{
Labelframe *lframePtr = recordPtr;
Labelframe *lframePtr = (Labelframe *)recordPtr;
Ttk_DrawLayout(lframePtr->core.layout, lframePtr->core.state, d);
if (lframePtr->label.labelLayout) {
Ttk_DrawLayout(lframePtr->label.labelLayout, lframePtr->core.state, d);
@@ -472,23 +477,27 @@ static void LabelframeDisplay(void *recordPtr, Drawable d)
/* +++ Labelframe geometry manager hooks.
*/
/* LabelframePlaceSlaves --
/* LabelframePlaceContent --
* Sets the position and size of the labelwidget.
*/
static void LabelframePlaceSlaves(void *recordPtr)
static void LabelframePlaceContent(void *recordPtr)
{
Labelframe *lframe = recordPtr;
Labelframe *lframe = (Labelframe *)recordPtr;
if (Ttk_NumberSlaves(lframe->label.mgr) == 1) {
if (Ttk_NumberContent(lframe->label.mgr) == 1) {
Ttk_Box b;
LabelframeDoLayout(recordPtr);
b = lframe->label.labelParcel;
/* ASSERT: slave #0 is lframe->label.labelWidget */
Ttk_PlaceSlave(lframe->label.mgr, 0, b.x,b.y,b.width,b.height);
/* ASSERT: content #0 is lframe->label.labelWidget */
Ttk_PlaceContent(lframe->label.mgr, 0, b.x,b.y,b.width,b.height);
}
}
static int LabelRequest(void *managerData, int index, int width, int height)
static int LabelRequest(
TCL_UNUSED(void *),
TCL_UNUSED(int),
TCL_UNUSED(int),
TCL_UNUSED(int))
{
return 1;
}
@@ -498,18 +507,21 @@ static int LabelRequest(void *managerData, int index, int width, int height)
*
* <<NOTE-LABELREMOVED>>:
* This routine is also called when the widget voluntarily forgets
* the slave in LabelframeConfigure.
* the window in LabelframeConfigure.
*/
static void LabelRemoved(void *managerData, int slaveIndex)
static void LabelRemoved(
void *managerData,
TCL_UNUSED(int))
{
Labelframe *lframe = managerData;
Labelframe *lframe = (Labelframe *)managerData;
lframe->label.labelWidget = 0;
}
static Ttk_ManagerSpec LabelframeManagerSpec = {
{ "labelframe", Ttk_GeometryRequestProc, Ttk_LostSlaveProc },
{ "labelframe", Ttk_GeometryRequestProc, Ttk_LostContentProc },
LabelframeSize,
LabelframePlaceSlaves,
LabelframePlaceContent,
LabelRequest,
LabelRemoved
};
@@ -517,9 +529,11 @@ static Ttk_ManagerSpec LabelframeManagerSpec = {
/* LabelframeInitialize --
* Initialization hook.
*/
static void LabelframeInitialize(Tcl_Interp *interp, void *recordPtr)
static void LabelframeInitialize(
TCL_UNUSED(Tcl_Interp *),
void *recordPtr)
{
Labelframe *lframe = recordPtr;
Labelframe *lframe = (Labelframe *)recordPtr;
lframe->label.mgr = Ttk_CreateManager(
&LabelframeManagerSpec, lframe, lframe->core.tkwin);
@@ -533,7 +547,7 @@ static void LabelframeInitialize(Tcl_Interp *interp, void *recordPtr)
*/
static void LabelframeCleanup(void *recordPtr)
{
Labelframe *lframe = recordPtr;
Labelframe *lframe = (Labelframe *)recordPtr;
Ttk_DeleteManager(lframe->label.mgr);
if (lframe->label.labelLayout) {
Ttk_FreeLayout(lframe->label.labelLayout);
@@ -564,7 +578,7 @@ static void RaiseLabelWidget(Labelframe *lframe)
*/
static int LabelframeConfigure(Tcl_Interp *interp,void *recordPtr,int mask)
{
Labelframe *lframePtr = recordPtr;
Labelframe *lframePtr = (Labelframe *)recordPtr;
Tk_Window labelWidget = lframePtr->label.labelWidget;
Ttk_PositionSpec unused;
@@ -591,15 +605,15 @@ static int LabelframeConfigure(Tcl_Interp *interp,void *recordPtr,int mask)
/* Update -labelwidget changes, if any:
*/
if (mask & LABELWIDGET_CHANGED) {
if (Ttk_NumberSlaves(lframePtr->label.mgr) == 1) {
Ttk_ForgetSlave(lframePtr->label.mgr, 0);
if (Ttk_NumberContent(lframePtr->label.mgr) == 1) {
Ttk_ForgetContent(lframePtr->label.mgr, 0);
/* Restore labelWidget field (see <<NOTE-LABELREMOVED>>)
*/
lframePtr->label.labelWidget = labelWidget;
}
if (labelWidget) {
Ttk_InsertSlave(lframePtr->label.mgr, 0, labelWidget, NULL);
Ttk_InsertContent(lframePtr->label.mgr, 0, labelWidget, NULL);
RaiseLabelWidget(lframePtr);
}
}