summaryrefslogtreecommitdiffstats
path: root/generic/tkPlace.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tkPlace.c')
-rw-r--r--generic/tkPlace.c777
1 files changed, 394 insertions, 383 deletions
diff --git a/generic/tkPlace.c b/generic/tkPlace.c
index 2b5ab2d..8d6b87e 100644
--- a/generic/tkPlace.c
+++ b/generic/tkPlace.c
@@ -17,10 +17,10 @@
* Border modes for relative placement:
*
* BM_INSIDE: relative distances computed using area inside all
- * borders of master window.
+ * borders of container window.
* BM_OUTSIDE: relative distances computed using outside area that
- * includes all borders of master.
- * BM_IGNORE: border issues are ignored: place relative to master's
+ * includes all borders of container.
+ * BM_IGNORE: border issues are ignored: place relative to container's
* actual window size.
*/
@@ -35,16 +35,16 @@ typedef enum {BM_INSIDE, BM_OUTSIDE, BM_IGNORE} BorderMode;
* structure of the following type:
*/
-typedef struct Slave {
+typedef struct Content {
Tk_Window tkwin; /* Tk's token for window. */
Tk_Window inTkwin; /* Token for the -in window. */
- struct Master *masterPtr; /* Pointer to information for window relative
+ struct Container *containerPtr; /* Pointer to information for window relative
* to which tkwin is placed. This isn't
* necessarily the logical parent of tkwin.
- * NULL means the master was deleted or never
+ * NULL means the container was deleted or never
* assigned. */
- struct Slave *nextPtr; /* Next in list of windows placed relative to
- * same master (NULL for end of list). */
+ struct Content *nextPtr; /* Next in list of windows placed relative to
+ * same container (NULL for end of list). */
Tk_OptionTable optionTable; /* Table that defines configuration options
* available for this command. */
/*
@@ -57,22 +57,22 @@ typedef struct Slave {
Tcl_Obj *xPtr, *yPtr; /* Tcl_Obj rep's of x, y coords, to keep pixel
* spec. information. */
double relX, relY; /* X and Y coordinates relative to size of
- * master. */
+ * container. */
int width, height; /* Absolute dimensions for tkwin. */
Tcl_Obj *widthPtr; /* Tcl_Obj rep of width, to keep pixel
* spec. */
Tcl_Obj *heightPtr; /* Tcl_Obj rep of height, to keep pixel
* spec. */
double relWidth, relHeight; /* Dimensions for tkwin relative to size of
- * master. */
+ * container. */
Tcl_Obj *relWidthPtr;
Tcl_Obj *relHeightPtr;
Tk_Anchor anchor; /* Which point on tkwin is placed at the given
* position. */
- BorderMode borderMode; /* How to treat borders of master window. */
+ BorderMode borderMode; /* How to treat borders of container window. */
int flags; /* Various flags; see below for bit
* definitions. */
-} Slave;
+} Content;
/*
* Type masks for options:
@@ -82,34 +82,34 @@ typedef struct Slave {
static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_ANCHOR, "-anchor", NULL, NULL, "nw", TCL_INDEX_NONE,
- offsetof(Slave, anchor), 0, 0, 0},
+ offsetof(Content, anchor), 0, 0, 0},
{TK_OPTION_STRING_TABLE, "-bordermode", NULL, NULL, "inside", TCL_INDEX_NONE,
- offsetof(Slave, borderMode), 0, borderModeStrings, 0},
- {TK_OPTION_PIXELS, "-height", NULL, NULL, "", offsetof(Slave, heightPtr),
- offsetof(Slave, height), TK_OPTION_NULL_OK, 0, 0},
- {TK_OPTION_WINDOW, "-in", NULL, NULL, "", TCL_INDEX_NONE, offsetof(Slave, inTkwin),
+ offsetof(Content, borderMode), 0, borderModeStrings, 0},
+ {TK_OPTION_PIXELS, "-height", NULL, NULL, "", offsetof(Content, heightPtr),
+ offsetof(Content, height), TK_OPTION_NULL_OK, 0, 0},
+ {TK_OPTION_WINDOW, "-in", NULL, NULL, "", TCL_INDEX_NONE, offsetof(Content, inTkwin),
0, 0, IN_MASK},
{TK_OPTION_DOUBLE, "-relheight", NULL, NULL, "",
- offsetof(Slave, relHeightPtr), offsetof(Slave, relHeight),
+ offsetof(Content, relHeightPtr), offsetof(Content, relHeight),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_DOUBLE, "-relwidth", NULL, NULL, "",
- offsetof(Slave, relWidthPtr), offsetof(Slave, relWidth),
+ offsetof(Content, relWidthPtr), offsetof(Content, relWidth),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_DOUBLE, "-relx", NULL, NULL, "0", TCL_INDEX_NONE,
- offsetof(Slave, relX), 0, 0, 0},
+ offsetof(Content, relX), 0, 0, 0},
{TK_OPTION_DOUBLE, "-rely", NULL, NULL, "0", TCL_INDEX_NONE,
- offsetof(Slave, relY), 0, 0, 0},
- {TK_OPTION_PIXELS, "-width", NULL, NULL, "", offsetof(Slave, widthPtr),
- offsetof(Slave, width), TK_OPTION_NULL_OK, 0, 0},
- {TK_OPTION_PIXELS, "-x", NULL, NULL, "0", offsetof(Slave, xPtr),
- offsetof(Slave, x), TK_OPTION_NULL_OK, 0, 0},
- {TK_OPTION_PIXELS, "-y", NULL, NULL, "0", offsetof(Slave, yPtr),
- offsetof(Slave, y), TK_OPTION_NULL_OK, 0, 0},
+ offsetof(Content, relY), 0, 0, 0},
+ {TK_OPTION_PIXELS, "-width", NULL, NULL, "", offsetof(Content, widthPtr),
+ offsetof(Content, width), TK_OPTION_NULL_OK, 0, 0},
+ {TK_OPTION_PIXELS, "-x", NULL, NULL, "0", offsetof(Content, xPtr),
+ offsetof(Content, x), TK_OPTION_NULL_OK, 0, 0},
+ {TK_OPTION_PIXELS, "-y", NULL, NULL, "0", offsetof(Content, yPtr),
+ offsetof(Content, y), TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_END, NULL, NULL, NULL, NULL, 0, TCL_INDEX_NONE, 0, 0, 0}
};
/*
- * Flag definitions for Slave structures:
+ * Flag definitions for Content structures:
*
* CHILD_WIDTH - 1 means -width was specified;
* CHILD_REL_WIDTH - 1 means -relwidth was specified.
@@ -123,25 +123,25 @@ static const Tk_OptionSpec optionSpecs[] = {
#define CHILD_REL_HEIGHT 8
/*
- * For each master window that has a slave managed by the placer there is a
+ * For each container window that has a content managed by the placer there is a
* structure of the following form:
*/
-typedef struct Master {
- Tk_Window tkwin; /* Tk's token for master window. */
- struct Slave *slavePtr; /* First in linked list of slaves placed
- * relative to this master. */
+typedef struct Container {
+ Tk_Window tkwin; /* Tk's token for container window. */
+ struct Content *contentPtr; /* First in linked list of content windowslaced
+ * relative to this container. */
int *abortPtr; /* If non-NULL, it means that there is a nested
* call to RecomputePlacement already working on
* this window. *abortPtr may be set to 1 to
* abort that nested call. This happens, for
- * example, if tkwin or any of its slaves
+ * example, if tkwin or any of its content
* is deleted. */
int flags; /* See below for bit definitions. */
-} Master;
+} Container;
/*
- * Flag definitions for masters:
+ * Flag definitions for containers:
*
* PARENT_RECONFIG_PENDING - 1 means that a call to RecomputePlacement is
* already pending via a Do_When_Idle handler.
@@ -155,34 +155,34 @@ typedef struct Master {
static void PlaceRequestProc(ClientData clientData,
Tk_Window tkwin);
-static void PlaceLostSlaveProc(ClientData clientData,
+static void PlaceLostContentProc(ClientData clientData,
Tk_Window tkwin);
static const Tk_GeomMgr placerType = {
"place", /* name */
PlaceRequestProc, /* requestProc */
- PlaceLostSlaveProc, /* lostSlaveProc */
+ PlaceLostContentProc, /* lostContentProc */
};
/*
* Forward declarations for functions defined later in this file:
*/
-static void SlaveStructureProc(ClientData clientData,
+static void ContentStructureProc(ClientData clientData,
XEvent *eventPtr);
-static int ConfigureSlave(Tcl_Interp *interp, Tk_Window tkwin,
+static int ConfigureContent(Tcl_Interp *interp, Tk_Window tkwin,
Tk_OptionTable table, int objc,
Tcl_Obj *const objv[]);
static int PlaceInfoCommand(Tcl_Interp *interp, Tk_Window tkwin);
-static Slave * CreateSlave(Tk_Window tkwin, Tk_OptionTable table);
-static void FreeSlave(Slave *slavePtr);
-static Slave * FindSlave(Tk_Window tkwin);
-static Master * CreateMaster(Tk_Window tkwin);
-static Master * FindMaster(Tk_Window tkwin);
-static void MasterStructureProc(ClientData clientData,
+static Content * CreateContent(Tk_Window tkwin, Tk_OptionTable table);
+static void FreeContent(Content *contentPtr);
+static Content * FindContent(Tk_Window tkwin);
+static Container * CreateContainer(Tk_Window tkwin);
+static Container * FindContainer(Tk_Window tkwin);
+static void PlaceStructureProc(ClientData clientData,
XEvent *eventPtr);
static void RecomputePlacement(ClientData clientData);
-static void UnlinkSlave(Slave *slavePtr);
+static void UnlinkContent(Content *contentPtr);
/*
*--------------------------------------------------------------
@@ -210,13 +210,16 @@ Tk_PlaceObjCmd(
{
Tk_Window main_win = (Tk_Window)clientData;
Tk_Window tkwin;
- Slave *slavePtr;
+ Content *contentPtr;
TkDisplay *dispPtr;
Tk_OptionTable optionTable;
static const char *const optionStrings[] = {
- "configure", "forget", "info", "slaves", NULL
+ "configure", "content", "forget", "info", "slaves", NULL
};
- enum options { PLACE_CONFIGURE, PLACE_FORGET, PLACE_INFO, PLACE_SLAVES };
+ static const char *const optionStringsNoDep[] = {
+ "configure", "content", "forget", "info", NULL
+ };
+ enum options { PLACE_CONFIGURE, PLACE_CONTENT, PLACE_FORGET, PLACE_INFO, PLACE_SLAVES };
int index;
if (objc < 3) {
@@ -247,12 +250,12 @@ Tk_PlaceObjCmd(
dispPtr = ((TkWindow *) tkwin)->dispPtr;
if (!dispPtr->placeInit) {
- Tcl_InitHashTable(&dispPtr->masterTable, TCL_ONE_WORD_KEYS);
- Tcl_InitHashTable(&dispPtr->slaveTable, TCL_ONE_WORD_KEYS);
+ Tcl_InitHashTable(&dispPtr->containerTable, TCL_ONE_WORD_KEYS);
+ Tcl_InitHashTable(&dispPtr->contentTable, TCL_ONE_WORD_KEYS);
dispPtr->placeInit = 1;
}
- return ConfigureSlave(interp, tkwin, optionTable, objc-2, objv+2);
+ return ConfigureContent(interp, tkwin, optionTable, objc-2, objv+2);
}
/*
@@ -271,13 +274,21 @@ Tk_PlaceObjCmd(
dispPtr = ((TkWindow *) tkwin)->dispPtr;
if (!dispPtr->placeInit) {
- Tcl_InitHashTable(&dispPtr->masterTable, TCL_ONE_WORD_KEYS);
- Tcl_InitHashTable(&dispPtr->slaveTable, TCL_ONE_WORD_KEYS);
+ Tcl_InitHashTable(&dispPtr->containerTable, TCL_ONE_WORD_KEYS);
+ Tcl_InitHashTable(&dispPtr->contentTable, TCL_ONE_WORD_KEYS);
dispPtr->placeInit = 1;
}
if (Tcl_GetIndexFromObjStruct(interp, objv[1], optionStrings,
sizeof(char *), "option", 0, &index) != TCL_OK) {
+ /*
+ * Call it again without the deprecated ones to get a proper error
+ * message. This works well since there can't be any ambiguity between
+ * deprecated and new options.
+ */
+
+ Tcl_GetIndexFromObjStruct(interp, objv[1], optionStringsNoDep,
+ sizeof(char *), "option", 0, &index);
return TCL_ERROR;
}
@@ -286,11 +297,11 @@ Tk_PlaceObjCmd(
if (objc == 3 || objc == 4) {
Tcl_Obj *objPtr;
- slavePtr = FindSlave(tkwin);
- if (slavePtr == NULL) {
+ contentPtr = FindContent(tkwin);
+ if (contentPtr == NULL) {
return TCL_OK;
}
- objPtr = Tk_GetOptionInfo(interp, slavePtr, optionTable,
+ objPtr = Tk_GetOptionInfo(interp, contentPtr, optionTable,
(objc == 4) ? objv[3] : NULL, tkwin);
if (objPtr == NULL) {
return TCL_ERROR;
@@ -298,29 +309,29 @@ Tk_PlaceObjCmd(
Tcl_SetObjResult(interp, objPtr);
return TCL_OK;
}
- return ConfigureSlave(interp, tkwin, optionTable, objc-3, objv+3);
+ return ConfigureContent(interp, tkwin, optionTable, objc-3, objv+3);
case PLACE_FORGET:
if (objc != 3) {
Tcl_WrongNumArgs(interp, 2, objv, "pathName");
return TCL_ERROR;
}
- slavePtr = FindSlave(tkwin);
- if (slavePtr == NULL) {
+ contentPtr = FindContent(tkwin);
+ if (contentPtr == NULL) {
return TCL_OK;
}
- if ((slavePtr->masterPtr != NULL) &&
- (slavePtr->masterPtr->tkwin != Tk_Parent(slavePtr->tkwin))) {
- Tk_UnmaintainGeometry(slavePtr->tkwin, slavePtr->masterPtr->tkwin);
+ if ((contentPtr->containerPtr != NULL) &&
+ (contentPtr->containerPtr->tkwin != Tk_Parent(contentPtr->tkwin))) {
+ Tk_UnmaintainGeometry(contentPtr->tkwin, contentPtr->containerPtr->tkwin);
}
- UnlinkSlave(slavePtr);
- Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->slaveTable,
+ UnlinkContent(contentPtr);
+ Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->contentTable,
tkwin));
- Tk_DeleteEventHandler(tkwin, StructureNotifyMask, SlaveStructureProc,
- slavePtr);
+ Tk_DeleteEventHandler(tkwin, StructureNotifyMask, ContentStructureProc,
+ contentPtr);
Tk_ManageGeometry(tkwin, NULL, NULL);
Tk_UnmapWindow(tkwin);
- FreeSlave(slavePtr);
+ FreeContent(contentPtr);
break;
case PLACE_INFO:
@@ -330,21 +341,22 @@ Tk_PlaceObjCmd(
}
return PlaceInfoCommand(interp, tkwin);
- case PLACE_SLAVES: {
- Master *masterPtr;
+ case PLACE_SLAVES:
+ case PLACE_CONTENT: {
+ Container *containerPtr;
if (objc != 3) {
Tcl_WrongNumArgs(interp, 2, objv, "pathName");
return TCL_ERROR;
}
- masterPtr = FindMaster(tkwin);
- if (masterPtr != NULL) {
+ containerPtr = FindContainer(tkwin);
+ if (containerPtr != NULL) {
Tcl_Obj *listPtr = Tcl_NewObj();
- for (slavePtr = masterPtr->slavePtr; slavePtr != NULL;
- slavePtr = slavePtr->nextPtr) {
+ for (contentPtr = containerPtr->contentPtr; contentPtr != NULL;
+ contentPtr = contentPtr->nextPtr) {
Tcl_ListObjAppendElement(NULL, listPtr,
- TkNewWindowObj(slavePtr->tkwin));
+ Tk_NewWindowObj(contentPtr->tkwin));
}
Tcl_SetObjResult(interp, listPtr);
}
@@ -358,59 +370,59 @@ Tk_PlaceObjCmd(
/*
*----------------------------------------------------------------------
*
- * CreateSlave --
+ * CreateContent --
*
- * Given a Tk_Window token, find the Slave structure corresponding to
+ * Given a Tk_Window token, find the Content structure corresponding to
* that token, creating a new one if necessary.
*
* Results:
- * Pointer to the Slave structure.
+ * Pointer to the Content structure.
*
* Side effects:
- * A new Slave structure may be created.
+ * A new Content structure may be created.
*
*----------------------------------------------------------------------
*/
-static Slave *
-CreateSlave(
- Tk_Window tkwin, /* Token for desired slave. */
+static Content *
+CreateContent(
+ Tk_Window tkwin, /* Token for desired content. */
Tk_OptionTable table)
{
Tcl_HashEntry *hPtr;
- Slave *slavePtr;
+ Content *contentPtr;
int isNew;
TkDisplay *dispPtr = ((TkWindow *) tkwin)->dispPtr;
- hPtr = Tcl_CreateHashEntry(&dispPtr->slaveTable, (char *) tkwin, &isNew);
+ hPtr = Tcl_CreateHashEntry(&dispPtr->contentTable, (char *) tkwin, &isNew);
if (!isNew) {
- return (Slave *)Tcl_GetHashValue(hPtr);
+ return (Content *)Tcl_GetHashValue(hPtr);
}
/*
- * No preexisting slave structure for that window, so make a new one and
+ * No preexisting content structure for that window, so make a new one and
* populate it with some default values.
*/
- slavePtr = (Slave *)ckalloc(sizeof(Slave));
- memset(slavePtr, 0, sizeof(Slave));
- slavePtr->tkwin = tkwin;
- slavePtr->inTkwin = NULL;
- slavePtr->anchor = TK_ANCHOR_NW;
- slavePtr->borderMode = BM_INSIDE;
- slavePtr->optionTable = table;
- Tcl_SetHashValue(hPtr, slavePtr);
- Tk_CreateEventHandler(tkwin, StructureNotifyMask, SlaveStructureProc,
- slavePtr);
- return slavePtr;
+ contentPtr = (Content *)ckalloc(sizeof(Content));
+ memset(contentPtr, 0, sizeof(Content));
+ contentPtr->tkwin = tkwin;
+ contentPtr->inTkwin = NULL;
+ contentPtr->anchor = TK_ANCHOR_NW;
+ contentPtr->borderMode = BM_INSIDE;
+ contentPtr->optionTable = table;
+ Tcl_SetHashValue(hPtr, contentPtr);
+ Tk_CreateEventHandler(tkwin, StructureNotifyMask, ContentStructureProc,
+ contentPtr);
+ return contentPtr;
}
/*
*----------------------------------------------------------------------
*
- * FreeSlave --
+ * FreeContent --
*
- * Frees the resources held by a Slave structure.
+ * Frees the resources held by a Content structure.
*
* Results:
* None
@@ -422,25 +434,25 @@ CreateSlave(
*/
static void
-FreeSlave(
- Slave *slavePtr)
+FreeContent(
+ Content *contentPtr)
{
- Tk_FreeConfigOptions((char *) slavePtr, slavePtr->optionTable,
- slavePtr->tkwin);
- ckfree(slavePtr);
+ Tk_FreeConfigOptions((char *) contentPtr, contentPtr->optionTable,
+ contentPtr->tkwin);
+ ckfree(contentPtr);
}
/*
*----------------------------------------------------------------------
*
- * FindSlave --
+ * FindContent --
*
- * Given a Tk_Window token, find the Slave structure corresponding to
+ * Given a Tk_Window token, find the Content structure corresponding to
* that token. This is purely a lookup function; it will not create a
* record if one does not yet exist.
*
* Results:
- * Pointer to Slave structure; NULL if none exists.
+ * Pointer to Content structure; NULL if none exists.
*
* Side effects:
* None.
@@ -448,121 +460,121 @@ FreeSlave(
*----------------------------------------------------------------------
*/
-static Slave *
-FindSlave(
- Tk_Window tkwin) /* Token for desired slave. */
+static Content *
+FindContent(
+ Tk_Window tkwin) /* Token for desired content. */
{
Tcl_HashEntry *hPtr;
TkDisplay *dispPtr = ((TkWindow *) tkwin)->dispPtr;
- hPtr = Tcl_FindHashEntry(&dispPtr->slaveTable, tkwin);
+ hPtr = Tcl_FindHashEntry(&dispPtr->contentTable, tkwin);
if (hPtr == NULL) {
return NULL;
}
- return (Slave *)Tcl_GetHashValue(hPtr);
+ return (Content *)Tcl_GetHashValue(hPtr);
}
/*
*----------------------------------------------------------------------
*
- * UnlinkSlave --
+ * UnlinkContent --
*
- * This function removes a slave window from the chain of slaves in its
- * master.
+ * This function removes a content window from the chain of content windows in its
+ * container.
*
* Results:
* None.
*
* Side effects:
- * The slave list of slavePtr's master changes.
+ * The content list of contentPtr's container changes.
*
*----------------------------------------------------------------------
*/
static void
-UnlinkSlave(
- Slave *slavePtr) /* Slave structure to be unlinked. */
+UnlinkContent(
+ Content *contentPtr) /* Content structure to be unlinked. */
{
- Master *masterPtr;
- Slave *prevPtr;
+ Container *containerPtr;
+ Content *prevPtr;
- masterPtr = slavePtr->masterPtr;
- if (masterPtr == NULL) {
+ containerPtr = contentPtr->containerPtr;
+ if (containerPtr == NULL) {
return;
}
- if (masterPtr->slavePtr == slavePtr) {
- masterPtr->slavePtr = slavePtr->nextPtr;
+ if (containerPtr->contentPtr == contentPtr) {
+ containerPtr->contentPtr = contentPtr->nextPtr;
} else {
- for (prevPtr = masterPtr->slavePtr; ; prevPtr = prevPtr->nextPtr) {
+ for (prevPtr = containerPtr->contentPtr; ; prevPtr = prevPtr->nextPtr) {
if (prevPtr == NULL) {
- Tcl_Panic("UnlinkSlave couldn't find slave to unlink");
+ Tcl_Panic("UnlinkContent couldn't find content to unlink");
}
- if (prevPtr->nextPtr == slavePtr) {
- prevPtr->nextPtr = slavePtr->nextPtr;
+ if (prevPtr->nextPtr == contentPtr) {
+ prevPtr->nextPtr = contentPtr->nextPtr;
break;
}
}
}
- if (masterPtr->abortPtr != NULL) {
- *masterPtr->abortPtr = 1;
+ if (containerPtr->abortPtr != NULL) {
+ *containerPtr->abortPtr = 1;
}
- slavePtr->masterPtr = NULL;
+ contentPtr->containerPtr = NULL;
}
/*
*----------------------------------------------------------------------
*
- * CreateMaster --
+ * CreateContainer --
*
- * Given a Tk_Window token, find the Master structure corresponding to
+ * Given a Tk_Window token, find the Container structure corresponding to
* that token, creating a new one if necessary.
*
* Results:
- * Pointer to the Master structure.
+ * Pointer to the Container structure.
*
* Side effects:
- * A new Master structure may be created.
+ * A new Container structure may be created.
*
*----------------------------------------------------------------------
*/
-static Master *
-CreateMaster(
- Tk_Window tkwin) /* Token for desired master. */
+static Container *
+CreateContainer(
+ Tk_Window tkwin) /* Token for desired container. */
{
Tcl_HashEntry *hPtr;
- Master *masterPtr;
+ Container *containerPtr;
int isNew;
TkDisplay *dispPtr = ((TkWindow *) tkwin)->dispPtr;
- hPtr = Tcl_CreateHashEntry(&dispPtr->masterTable, (char *) tkwin, &isNew);
+ hPtr = Tcl_CreateHashEntry(&dispPtr->containerTable, (char *)tkwin, &isNew);
if (isNew) {
- masterPtr = (Master *)ckalloc(sizeof(Master));
- masterPtr->tkwin = tkwin;
- masterPtr->slavePtr = NULL;
- masterPtr->abortPtr = NULL;
- masterPtr->flags = 0;
- Tcl_SetHashValue(hPtr, masterPtr);
- Tk_CreateEventHandler(masterPtr->tkwin, StructureNotifyMask,
- MasterStructureProc, masterPtr);
+ containerPtr = (Container *)ckalloc(sizeof(Container));
+ containerPtr->tkwin = tkwin;
+ containerPtr->contentPtr = NULL;
+ containerPtr->abortPtr = NULL;
+ containerPtr->flags = 0;
+ Tcl_SetHashValue(hPtr, containerPtr);
+ Tk_CreateEventHandler(containerPtr->tkwin, StructureNotifyMask,
+ PlaceStructureProc, containerPtr);
} else {
- masterPtr = (Master *)Tcl_GetHashValue(hPtr);
+ containerPtr = (Container *)Tcl_GetHashValue(hPtr);
}
- return masterPtr;
+ return containerPtr;
}
/*
*----------------------------------------------------------------------
*
- * FindMaster --
+ * FindContainer --
*
- * Given a Tk_Window token, find the Master structure corresponding to
+ * Given a Tk_Window token, find the Container structure corresponding to
* that token. This is simply a lookup function; a new record will not be
* created if one does not already exist.
*
* Results:
- * Pointer to the Master structure; NULL if one does not exist for the
+ * Pointer to the Container structure; NULL if one does not exist for the
* given Tk_Window token.
*
* Side effects:
@@ -571,24 +583,24 @@ CreateMaster(
*----------------------------------------------------------------------
*/
-static Master *
-FindMaster(
- Tk_Window tkwin) /* Token for desired master. */
+static Container *
+FindContainer(
+ Tk_Window tkwin) /* Token for desired container. */
{
Tcl_HashEntry *hPtr;
TkDisplay *dispPtr = ((TkWindow *) tkwin)->dispPtr;
- hPtr = Tcl_FindHashEntry(&dispPtr->masterTable, tkwin);
+ hPtr = Tcl_FindHashEntry(&dispPtr->containerTable, tkwin);
if (hPtr == NULL) {
return NULL;
}
- return (Master *)Tcl_GetHashValue(hPtr);
+ return (Container *)Tcl_GetHashValue(hPtr);
}
/*
*----------------------------------------------------------------------
*
- * ConfigureSlave --
+ * ConfigureContent --
*
* This function is called to process an argv/argc list to reconfigure
* the placement of a window.
@@ -598,26 +610,26 @@ FindMaster(
* the interp's result.
*
* Side effects:
- * Information in slavePtr may change, and slavePtr's master is scheduled
+ * Information in contentPtr may change, and contentPtr's container is scheduled
* for reconfiguration.
*
*----------------------------------------------------------------------
*/
static int
-ConfigureSlave(
+ConfigureContent(
Tcl_Interp *interp, /* Used for error reporting. */
Tk_Window tkwin, /* Token for the window to manipulate. */
Tk_OptionTable table, /* Token for option table. */
int objc, /* Number of config arguments. */
Tcl_Obj *const objv[]) /* Object values for arguments. */
{
- Master *masterPtr;
+ Container *containerPtr;
Tk_SavedOptions savedOptions;
int mask;
- Slave *slavePtr;
- Tk_Window masterWin = NULL;
- TkWindow *master;
+ Content *contentPtr;
+ Tk_Window containerWin = NULL;
+ TkWindow *container;
if (Tk_TopWinHierarchy(tkwin)) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
@@ -627,71 +639,71 @@ ConfigureSlave(
return TCL_ERROR;
}
- slavePtr = CreateSlave(tkwin, table);
+ contentPtr = CreateContent(tkwin, table);
- if (Tk_SetOptions(interp, slavePtr, table, objc, objv,
- slavePtr->tkwin, &savedOptions, &mask) != TCL_OK) {
+ if (Tk_SetOptions(interp, contentPtr, table, objc, objv,
+ contentPtr->tkwin, &savedOptions, &mask) != TCL_OK) {
goto error;
}
/*
- * Set slave flags. First clear the field, then add bits as needed.
+ * Set content flags. First clear the field, then add bits as needed.
*/
- slavePtr->flags = 0;
- if (slavePtr->heightPtr) {
- slavePtr->flags |= CHILD_HEIGHT;
+ contentPtr->flags = 0;
+ if (contentPtr->heightPtr) {
+ contentPtr->flags |= CHILD_HEIGHT;
}
- if (slavePtr->relHeightPtr) {
- slavePtr->flags |= CHILD_REL_HEIGHT;
+ if (contentPtr->relHeightPtr) {
+ contentPtr->flags |= CHILD_REL_HEIGHT;
}
- if (slavePtr->relWidthPtr) {
- slavePtr->flags |= CHILD_REL_WIDTH;
+ if (contentPtr->relWidthPtr) {
+ contentPtr->flags |= CHILD_REL_WIDTH;
}
- if (slavePtr->widthPtr) {
- slavePtr->flags |= CHILD_WIDTH;
+ if (contentPtr->widthPtr) {
+ contentPtr->flags |= CHILD_WIDTH;
}
- if (!(mask & IN_MASK) && (slavePtr->masterPtr != NULL)) {
+ if (!(mask & IN_MASK) && (contentPtr->containerPtr != NULL)) {
/*
- * If no -in option was passed and the slave is already placed then
+ * If no -in option was passed and the content is already placed then
* just recompute the placement.
*/
- masterPtr = slavePtr->masterPtr;
+ containerPtr = contentPtr->containerPtr;
goto scheduleLayout;
} else if (mask & IN_MASK) {
/* -in changed */
- Tk_Window tkwin;
+ Tk_Window win;
Tk_Window ancestor;
- tkwin = slavePtr->inTkwin;
+ win = contentPtr->inTkwin;
/*
- * Make sure that the new master is either the logical parent of the
- * slave or a descendant of that window, and that the master and slave
+ * Make sure that the new container is either the logical parent of the
+ * content window or a descendant of that window, and that the container and content
* aren't the same.
*/
- for (ancestor = tkwin; ; ancestor = Tk_Parent(ancestor)) {
- if (ancestor == Tk_Parent(slavePtr->tkwin)) {
+ for (ancestor = win; ; ancestor = Tk_Parent(ancestor)) {
+ if (ancestor == Tk_Parent(contentPtr->tkwin)) {
break;
}
if (Tk_TopWinHierarchy(ancestor)) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "can't place %s relative to %s",
- Tk_PathName(slavePtr->tkwin), Tk_PathName(tkwin)));
+ "can't place \"%s\" relative to \"%s\"",
+ Tk_PathName(contentPtr->tkwin), Tk_PathName(win)));
Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "HIERARCHY", NULL);
goto error;
}
}
- if (slavePtr->tkwin == tkwin) {
+ if (contentPtr->tkwin == win) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "can't place %s relative to itself",
- Tk_PathName(slavePtr->tkwin)));
+ "can't place \"%s\" relative to itself",
+ Tk_PathName(contentPtr->tkwin)));
Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "LOOP", NULL);
goto error;
}
@@ -700,66 +712,66 @@ ConfigureSlave(
* Check for management loops.
*/
- for (master = (TkWindow *)tkwin; master != NULL;
- master = (TkWindow *)TkGetGeomMaster(master)) {
- if (master == (TkWindow *)slavePtr->tkwin) {
+ for (container = (TkWindow *)win; container != NULL;
+ container = (TkWindow *)TkGetContainer(container)) {
+ if (container == (TkWindow *)contentPtr->tkwin) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "can't put %s inside %s, would cause management loop",
- Tk_PathName(slavePtr->tkwin), Tk_PathName(tkwin)));
+ "can't put \"%s\" inside \"%s\": would cause management loop",
+ Tk_PathName(contentPtr->tkwin), Tk_PathName(win)));
Tcl_SetErrorCode(interp, "TK", "GEOMETRY", "LOOP", NULL);
goto error;
}
}
- if (tkwin != Tk_Parent(slavePtr->tkwin)) {
- ((TkWindow *)slavePtr->tkwin)->maintainerPtr = (TkWindow *)tkwin;
+ if (win != Tk_Parent(contentPtr->tkwin)) {
+ ((TkWindow *)contentPtr->tkwin)->maintainerPtr = (TkWindow *)win;
}
- if ((slavePtr->masterPtr != NULL)
- && (slavePtr->masterPtr->tkwin == tkwin)) {
+ if ((contentPtr->containerPtr != NULL)
+ && (contentPtr->containerPtr->tkwin == win)) {
/*
- * Re-using same old master. Nothing to do.
+ * Re-using same old container. Nothing to do.
*/
- masterPtr = slavePtr->masterPtr;
+ containerPtr = contentPtr->containerPtr;
goto scheduleLayout;
}
- if ((slavePtr->masterPtr != NULL) &&
- (slavePtr->masterPtr->tkwin != Tk_Parent(slavePtr->tkwin))) {
- Tk_UnmaintainGeometry(slavePtr->tkwin, slavePtr->masterPtr->tkwin);
+ if ((contentPtr->containerPtr != NULL) &&
+ (contentPtr->containerPtr->tkwin != Tk_Parent(contentPtr->tkwin))) {
+ Tk_UnmaintainGeometry(contentPtr->tkwin, contentPtr->containerPtr->tkwin);
}
- UnlinkSlave(slavePtr);
- masterWin = tkwin;
+ UnlinkContent(contentPtr);
+ containerWin = win;
}
/*
- * If there's no master specified for this slave, use its Tk_Parent.
+ * If there's no container specified for this content, use its Tk_Parent.
*/
- if (masterWin == NULL) {
- masterWin = Tk_Parent(slavePtr->tkwin);
- slavePtr->inTkwin = masterWin;
+ if (containerWin == NULL) {
+ containerWin = Tk_Parent(contentPtr->tkwin);
+ contentPtr->inTkwin = containerWin;
}
/*
- * Manage the slave window in this master.
+ * Manage the content window in this container.
*/
- masterPtr = CreateMaster(masterWin);
- slavePtr->masterPtr = masterPtr;
- slavePtr->nextPtr = masterPtr->slavePtr;
- masterPtr->slavePtr = slavePtr;
- Tk_ManageGeometry(slavePtr->tkwin, &placerType, slavePtr);
+ containerPtr = CreateContainer(containerWin);
+ contentPtr->containerPtr = containerPtr;
+ contentPtr->nextPtr = containerPtr->contentPtr;
+ containerPtr->contentPtr = contentPtr;
+ Tk_ManageGeometry(contentPtr->tkwin, &placerType, contentPtr);
/*
- * Arrange for the master to be re-arranged at the first idle moment.
+ * Arrange for the container to be re-arranged at the first idle moment.
*/
scheduleLayout:
Tk_FreeSavedOptions(&savedOptions);
- if (!(masterPtr->flags & PARENT_RECONFIG_PENDING)) {
- masterPtr->flags |= PARENT_RECONFIG_PENDING;
- Tcl_DoWhenIdle(RecomputePlacement, masterPtr);
+ if (!(containerPtr->flags & PARENT_RECONFIG_PENDING)) {
+ containerPtr->flags |= PARENT_RECONFIG_PENDING;
+ Tcl_DoWhenIdle(RecomputePlacement, containerPtr);
}
return TCL_OK;
@@ -795,49 +807,49 @@ PlaceInfoCommand(
Tcl_Interp *interp, /* Interp into which to place result. */
Tk_Window tkwin) /* Token for the window to get info on. */
{
- Slave *slavePtr;
+ Content *contentPtr;
Tcl_Obj *infoObj;
- slavePtr = FindSlave(tkwin);
- if (slavePtr == NULL) {
+ contentPtr = FindContent(tkwin);
+ if (contentPtr == NULL) {
return TCL_OK;
}
infoObj = Tcl_NewObj();
- if (slavePtr->masterPtr != NULL) {
+ if (contentPtr->containerPtr != NULL) {
Tcl_AppendToObj(infoObj, "-in", -1);
Tcl_ListObjAppendElement(NULL, infoObj,
- TkNewWindowObj(slavePtr->masterPtr->tkwin));
+ Tk_NewWindowObj(contentPtr->containerPtr->tkwin));
Tcl_AppendToObj(infoObj, " ", -1);
}
Tcl_AppendPrintfToObj(infoObj,
"-x %d -relx %.4g -y %d -rely %.4g",
- slavePtr->x, slavePtr->relX, slavePtr->y, slavePtr->relY);
- if (slavePtr->flags & CHILD_WIDTH) {
- Tcl_AppendPrintfToObj(infoObj, " -width %d", slavePtr->width);
+ contentPtr->x, contentPtr->relX, contentPtr->y, contentPtr->relY);
+ if (contentPtr->flags & CHILD_WIDTH) {
+ Tcl_AppendPrintfToObj(infoObj, " -width %d", contentPtr->width);
} else {
Tcl_AppendToObj(infoObj, " -width {}", -1);
}
- if (slavePtr->flags & CHILD_REL_WIDTH) {
+ if (contentPtr->flags & CHILD_REL_WIDTH) {
Tcl_AppendPrintfToObj(infoObj,
- " -relwidth %.4g", slavePtr->relWidth);
+ " -relwidth %.4g", contentPtr->relWidth);
} else {
Tcl_AppendToObj(infoObj, " -relwidth {}", -1);
}
- if (slavePtr->flags & CHILD_HEIGHT) {
- Tcl_AppendPrintfToObj(infoObj, " -height %d", slavePtr->height);
+ if (contentPtr->flags & CHILD_HEIGHT) {
+ Tcl_AppendPrintfToObj(infoObj, " -height %d", contentPtr->height);
} else {
Tcl_AppendToObj(infoObj, " -height {}", -1);
}
- if (slavePtr->flags & CHILD_REL_HEIGHT) {
+ if (contentPtr->flags & CHILD_REL_HEIGHT) {
Tcl_AppendPrintfToObj(infoObj,
- " -relheight %.4g", slavePtr->relHeight);
+ " -relheight %.4g", contentPtr->relHeight);
} else {
Tcl_AppendToObj(infoObj, " -relheight {}", -1);
}
Tcl_AppendPrintfToObj(infoObj, " -anchor %s -bordermode %s",
- Tk_NameOfAnchor(slavePtr->anchor),
- borderModeStrings[slavePtr->borderMode]);
+ Tk_NameOfAnchor(contentPtr->anchor),
+ borderModeStrings[contentPtr->borderMode]);
Tcl_SetObjResult(interp, infoObj);
return TCL_OK;
}
@@ -848,7 +860,7 @@ PlaceInfoCommand(
* RecomputePlacement --
*
* This function is called as a when-idle handler. It recomputes the
- * geometries of all the slaves of a given master.
+ * geometries of all the content of a given container.
*
* Results:
* None.
@@ -861,17 +873,17 @@ PlaceInfoCommand(
static void
RecomputePlacement(
- ClientData clientData) /* Pointer to Master record. */
+ ClientData clientData) /* Pointer to Container record. */
{
- Master *masterPtr = (Master *)clientData;
- Slave *slavePtr;
+ Container *containerPtr = (Container *)clientData;
+ Content *contentPtr;
int x, y, width, height, tmp;
- int masterWidth, masterHeight, masterX, masterY;
+ int containerWidth, containerHeight, containerX, containerY;
double x1, y1, x2, y2;
int abort; /* May get set to non-zero to abort this
* placement operation. */
- masterPtr->flags &= ~PARENT_RECONFIG_PENDING;
+ containerPtr->flags &= ~PARENT_RECONFIG_PENDING;
/*
* Abort any nested call to RecomputePlacement for this window, since
@@ -879,57 +891,57 @@ RecomputePlacement(
* aborted if necessary.
*/
- if (masterPtr->abortPtr != NULL) {
- *masterPtr->abortPtr = 1;
+ if (containerPtr->abortPtr != NULL) {
+ *containerPtr->abortPtr = 1;
}
- masterPtr->abortPtr = &abort;
+ containerPtr->abortPtr = &abort;
abort = 0;
- Tcl_Preserve(masterPtr);
+ Tcl_Preserve(containerPtr);
/*
- * Iterate over all the slaves for the master. Each slave's geometry can
- * be computed independently of the other slaves. Changes to the window's
+ * Iterate over all the content windows for the container. Each content's geometry can
+ * be computed independently of the other content. Changes to the window's
* structure could cause almost anything to happen, including deleting the
* parent or child. If this happens, we'll be told to abort.
*/
- for (slavePtr = masterPtr->slavePtr; slavePtr != NULL && !abort;
- slavePtr = slavePtr->nextPtr) {
+ for (contentPtr = containerPtr->contentPtr; contentPtr != NULL && !abort;
+ contentPtr = contentPtr->nextPtr) {
/*
- * Step 1: compute size and borderwidth of master, taking into account
+ * Step 1: compute size and borderwidth of container, taking into account
* desired border mode.
*/
- masterX = masterY = 0;
- masterWidth = Tk_Width(masterPtr->tkwin);
- masterHeight = Tk_Height(masterPtr->tkwin);
- if (slavePtr->borderMode == BM_INSIDE) {
- masterX = Tk_InternalBorderLeft(masterPtr->tkwin);
- masterY = Tk_InternalBorderTop(masterPtr->tkwin);
- masterWidth -= masterX + Tk_InternalBorderRight(masterPtr->tkwin);
- masterHeight -= masterY +
- Tk_InternalBorderBottom(masterPtr->tkwin);
- } else if (slavePtr->borderMode == BM_OUTSIDE) {
- masterX = masterY = -Tk_Changes(masterPtr->tkwin)->border_width;
- masterWidth -= 2 * masterX;
- masterHeight -= 2 * masterY;
+ containerX = containerY = 0;
+ containerWidth = Tk_Width(containerPtr->tkwin);
+ containerHeight = Tk_Height(containerPtr->tkwin);
+ if (contentPtr->borderMode == BM_INSIDE) {
+ containerX = Tk_InternalBorderLeft(containerPtr->tkwin);
+ containerY = Tk_InternalBorderTop(containerPtr->tkwin);
+ containerWidth -= containerX + Tk_InternalBorderRight(containerPtr->tkwin);
+ containerHeight -= containerY +
+ Tk_InternalBorderBottom(containerPtr->tkwin);
+ } else if (contentPtr->borderMode == BM_OUTSIDE) {
+ containerX = containerY = -Tk_Changes(containerPtr->tkwin)->border_width;
+ containerWidth -= 2 * containerX;
+ containerHeight -= 2 * containerY;
}
/*
- * Step 2: compute size of slave (outside dimensions including border)
- * and location of anchor point within master.
+ * Step 2: compute size of content (outside dimensions including border)
+ * and location of anchor point within container.
*/
- x1 = slavePtr->x + masterX + (slavePtr->relX*masterWidth);
+ x1 = contentPtr->x + containerX + (contentPtr->relX*containerWidth);
x = (int) (x1 + ((x1 > 0) ? 0.5 : -0.5));
- y1 = slavePtr->y + masterY + (slavePtr->relY*masterHeight);
+ y1 = contentPtr->y + containerY + (contentPtr->relY*containerHeight);
y = (int) (y1 + ((y1 > 0) ? 0.5 : -0.5));
- if (slavePtr->flags & (CHILD_WIDTH|CHILD_REL_WIDTH)) {
+ if (contentPtr->flags & (CHILD_WIDTH|CHILD_REL_WIDTH)) {
width = 0;
- if (slavePtr->flags & CHILD_WIDTH) {
- width += slavePtr->width;
+ if (contentPtr->flags & CHILD_WIDTH) {
+ width += contentPtr->width;
}
- if (slavePtr->flags & CHILD_REL_WIDTH) {
+ if (contentPtr->flags & CHILD_REL_WIDTH) {
/*
* The code below is a bit tricky. In order to round correctly
* when both relX and relWidth are specified, compute the
@@ -938,40 +950,40 @@ RecomputePlacement(
* errors in relX and relWidth accumulate.
*/
- x2 = x1 + (slavePtr->relWidth*masterWidth);
+ x2 = x1 + (contentPtr->relWidth*containerWidth);
tmp = (int) (x2 + ((x2 > 0) ? 0.5 : -0.5));
width += tmp - x;
}
} else {
- width = Tk_ReqWidth(slavePtr->tkwin)
- + 2*Tk_Changes(slavePtr->tkwin)->border_width;
+ width = Tk_ReqWidth(contentPtr->tkwin)
+ + 2*Tk_Changes(contentPtr->tkwin)->border_width;
}
- if (slavePtr->flags & (CHILD_HEIGHT|CHILD_REL_HEIGHT)) {
+ if (contentPtr->flags & (CHILD_HEIGHT|CHILD_REL_HEIGHT)) {
height = 0;
- if (slavePtr->flags & CHILD_HEIGHT) {
- height += slavePtr->height;
+ if (contentPtr->flags & CHILD_HEIGHT) {
+ height += contentPtr->height;
}
- if (slavePtr->flags & CHILD_REL_HEIGHT) {
+ if (contentPtr->flags & CHILD_REL_HEIGHT) {
/*
* See note above for rounding errors in width computation.
*/
- y2 = y1 + (slavePtr->relHeight*masterHeight);
+ y2 = y1 + (contentPtr->relHeight*containerHeight);
tmp = (int) (y2 + ((y2 > 0) ? 0.5 : -0.5));
height += tmp - y;
}
} else {
- height = Tk_ReqHeight(slavePtr->tkwin)
- + 2*Tk_Changes(slavePtr->tkwin)->border_width;
+ height = Tk_ReqHeight(contentPtr->tkwin)
+ + 2*Tk_Changes(contentPtr->tkwin)->border_width;
}
/*
* Step 3: adjust the x and y positions so that the desired anchor
- * point on the slave appears at that position. Also adjust for the
- * border mode and master's border.
+ * point on the content appears at that position. Also adjust for the
+ * border mode and container's border.
*/
- switch (slavePtr->anchor) {
+ switch (contentPtr->anchor) {
case TK_ANCHOR_N:
x -= width/2;
break;
@@ -1010,8 +1022,8 @@ RecomputePlacement(
* height aren't zero.
*/
- width -= 2*Tk_Changes(slavePtr->tkwin)->border_width;
- height -= 2*Tk_Changes(slavePtr->tkwin)->border_width;
+ width -= 2*Tk_Changes(contentPtr->tkwin)->border_width;
+ height -= 2*Tk_Changes(contentPtr->tkwin)->border_width;
if (width <= 0) {
width = 1;
}
@@ -1020,121 +1032,121 @@ RecomputePlacement(
}
/*
- * Step 5: reconfigure the window and map it if needed. If the slave
- * is a child of the master, we do this ourselves. If the slave isn't
- * a child of the master, let Tk_MaintainGeometry do the work (it will
+ * Step 5: reconfigure the window and map it if needed. If the content
+ * is a child of the container, we do this ourselves. If the content isn't
+ * a child of the container, let Tk_MaintainGeometry do the work (it will
* re-adjust things as relevant windows map, unmap, and move).
*/
- if (masterPtr->tkwin == Tk_Parent(slavePtr->tkwin)) {
- if ((x != Tk_X(slavePtr->tkwin))
- || (y != Tk_Y(slavePtr->tkwin))
- || (width != Tk_Width(slavePtr->tkwin))
- || (height != Tk_Height(slavePtr->tkwin))) {
- Tk_MoveResizeWindow(slavePtr->tkwin, x, y, width, height);
+ if (containerPtr->tkwin == Tk_Parent(contentPtr->tkwin)) {
+ if ((x != Tk_X(contentPtr->tkwin))
+ || (y != Tk_Y(contentPtr->tkwin))
+ || (width != Tk_Width(contentPtr->tkwin))
+ || (height != Tk_Height(contentPtr->tkwin))) {
+ Tk_MoveResizeWindow(contentPtr->tkwin, x, y, width, height);
}
if (abort) {
break;
}
/*
- * Don't map the slave unless the master is mapped: the slave will
- * get mapped later, when the master is mapped.
+ * Don't map the content unless the container is mapped: the content will
+ * get mapped later, when the container is mapped.
*/
- if (Tk_IsMapped(masterPtr->tkwin)) {
- Tk_MapWindow(slavePtr->tkwin);
+ if (Tk_IsMapped(containerPtr->tkwin)) {
+ Tk_MapWindow(contentPtr->tkwin);
}
} else {
if ((width <= 0) || (height <= 0)) {
- Tk_UnmaintainGeometry(slavePtr->tkwin, masterPtr->tkwin);
- Tk_UnmapWindow(slavePtr->tkwin);
+ Tk_UnmaintainGeometry(contentPtr->tkwin, containerPtr->tkwin);
+ Tk_UnmapWindow(contentPtr->tkwin);
} else {
- Tk_MaintainGeometry(slavePtr->tkwin, masterPtr->tkwin,
+ Tk_MaintainGeometry(contentPtr->tkwin, containerPtr->tkwin,
x, y, width, height);
}
}
}
- masterPtr->abortPtr = NULL;
- Tcl_Release(masterPtr);
+ containerPtr->abortPtr = NULL;
+ Tcl_Release(containerPtr);
}
/*
*----------------------------------------------------------------------
*
- * MasterStructureProc --
+ * PlaceStructureProc --
*
* This function is invoked by the Tk event handler when StructureNotify
- * events occur for a master window.
+ * events occur for a container window.
*
* Results:
* None.
*
* Side effects:
* Structures get cleaned up if the window was deleted. If the window was
- * resized then slave geometries get recomputed.
+ * resized then content geometries get recomputed.
*
*----------------------------------------------------------------------
*/
static void
-MasterStructureProc(
- ClientData clientData, /* Pointer to Master structure for window
+PlaceStructureProc(
+ ClientData clientData, /* Pointer to Container structure for window
* referred to by eventPtr. */
XEvent *eventPtr) /* Describes what just happened. */
{
- Master *masterPtr = (Master *)clientData;
- Slave *slavePtr, *nextPtr;
- TkDisplay *dispPtr = ((TkWindow *) masterPtr->tkwin)->dispPtr;
+ Container *containerPtr = (Container *)clientData;
+ Content *contentPtr, *nextPtr;
+ TkDisplay *dispPtr = ((TkWindow *) containerPtr->tkwin)->dispPtr;
switch (eventPtr->type) {
case ConfigureNotify:
- if ((masterPtr->slavePtr != NULL)
- && !(masterPtr->flags & PARENT_RECONFIG_PENDING)) {
- masterPtr->flags |= PARENT_RECONFIG_PENDING;
- Tcl_DoWhenIdle(RecomputePlacement, masterPtr);
+ if ((containerPtr->contentPtr != NULL)
+ && !(containerPtr->flags & PARENT_RECONFIG_PENDING)) {
+ containerPtr->flags |= PARENT_RECONFIG_PENDING;
+ Tcl_DoWhenIdle(RecomputePlacement, containerPtr);
}
return;
case DestroyNotify:
- for (slavePtr = masterPtr->slavePtr; slavePtr != NULL;
- slavePtr = nextPtr) {
- slavePtr->masterPtr = NULL;
- nextPtr = slavePtr->nextPtr;
- slavePtr->nextPtr = NULL;
+ for (contentPtr = containerPtr->contentPtr; contentPtr != NULL;
+ contentPtr = nextPtr) {
+ contentPtr->containerPtr = NULL;
+ nextPtr = contentPtr->nextPtr;
+ contentPtr->nextPtr = NULL;
}
- Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->masterTable,
- masterPtr->tkwin));
- if (masterPtr->flags & PARENT_RECONFIG_PENDING) {
- Tcl_CancelIdleCall(RecomputePlacement, masterPtr);
+ Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->containerTable,
+ containerPtr->tkwin));
+ if (containerPtr->flags & PARENT_RECONFIG_PENDING) {
+ Tcl_CancelIdleCall(RecomputePlacement, containerPtr);
}
- masterPtr->tkwin = NULL;
- if (masterPtr->abortPtr != NULL) {
- *masterPtr->abortPtr = 1;
+ containerPtr->tkwin = NULL;
+ if (containerPtr->abortPtr != NULL) {
+ *containerPtr->abortPtr = 1;
}
- Tcl_EventuallyFree(masterPtr, TCL_DYNAMIC);
+ Tcl_EventuallyFree(containerPtr, TCL_DYNAMIC);
return;
case MapNotify:
/*
- * When a master gets mapped, must redo the geometry computation so
- * that all of its slaves get remapped.
+ * When a container gets mapped, must redo the geometry computation so
+ * that all of its content get remapped.
*/
- if ((masterPtr->slavePtr != NULL)
- && !(masterPtr->flags & PARENT_RECONFIG_PENDING)) {
- masterPtr->flags |= PARENT_RECONFIG_PENDING;
- Tcl_DoWhenIdle(RecomputePlacement, masterPtr);
+ if ((containerPtr->contentPtr != NULL)
+ && !(containerPtr->flags & PARENT_RECONFIG_PENDING)) {
+ containerPtr->flags |= PARENT_RECONFIG_PENDING;
+ Tcl_DoWhenIdle(RecomputePlacement, containerPtr);
}
return;
case UnmapNotify:
/*
- * Unmap all of the slaves when the master gets unmapped, so that they
+ * Unmap all of the content when the container gets unmapped, so that they
* don't keep redisplaying themselves.
*/
- for (slavePtr = masterPtr->slavePtr; slavePtr != NULL;
- slavePtr = slavePtr->nextPtr) {
- Tk_UnmapWindow(slavePtr->tkwin);
+ for (contentPtr = containerPtr->contentPtr; contentPtr != NULL;
+ contentPtr = contentPtr->nextPtr) {
+ Tk_UnmapWindow(contentPtr->tkwin);
}
return;
}
@@ -1143,10 +1155,10 @@ MasterStructureProc(
/*
*----------------------------------------------------------------------
*
- * SlaveStructureProc --
+ * ContentStructureProc --
*
* This function is invoked by the Tk event handler when StructureNotify
- * events occur for a slave window.
+ * events occur for a content window.
*
* Results:
* None.
@@ -1158,21 +1170,21 @@ MasterStructureProc(
*/
static void
-SlaveStructureProc(
- ClientData clientData, /* Pointer to Slave structure for window
+ContentStructureProc(
+ ClientData clientData, /* Pointer to Content structure for window
* referred to by eventPtr. */
XEvent *eventPtr) /* Describes what just happened. */
{
- Slave *slavePtr = (Slave *)clientData;
- TkDisplay *dispPtr = ((TkWindow *) slavePtr->tkwin)->dispPtr;
+ Content *contentPtr = (Content *)clientData;
+ TkDisplay *dispPtr = ((TkWindow *) contentPtr->tkwin)->dispPtr;
if (eventPtr->type == DestroyNotify) {
- if (slavePtr->masterPtr != NULL) {
- UnlinkSlave(slavePtr);
+ if (contentPtr->containerPtr != NULL) {
+ UnlinkContent(contentPtr);
}
- Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->slaveTable,
- slavePtr->tkwin));
- FreeSlave(slavePtr);
+ Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->contentTable,
+ contentPtr->tkwin));
+ FreeContent(contentPtr);
}
}
@@ -1181,7 +1193,7 @@ SlaveStructureProc(
*
* PlaceRequestProc --
*
- * This function is invoked by Tk whenever a slave managed by us changes
+ * This function is invoked by Tk whenever a content managed by us changes
* its requested geometry.
*
* Results:
@@ -1196,69 +1208,68 @@ SlaveStructureProc(
static void
PlaceRequestProc(
- ClientData clientData, /* Pointer to our record for slave. */
- Tk_Window tkwin) /* Window that changed its desired size. */
+ ClientData clientData, /* Pointer to our record for content. */
+ TCL_UNUSED(Tk_Window)) /* Window that changed its desired size. */
{
- Slave *slavePtr = (Slave *)clientData;
- Master *masterPtr;
- (void)tkwin;
+ Content *contentPtr = (Content *)clientData;
+ Container *containerPtr;
- if ((slavePtr->flags & (CHILD_WIDTH|CHILD_REL_WIDTH))
- && (slavePtr->flags & (CHILD_HEIGHT|CHILD_REL_HEIGHT))) {
+ if ((contentPtr->flags & (CHILD_WIDTH|CHILD_REL_WIDTH))
+ && (contentPtr->flags & (CHILD_HEIGHT|CHILD_REL_HEIGHT))) {
/*
* Send a ConfigureNotify to indicate that the size change
* request was rejected.
*/
- TkDoConfigureNotify((TkWindow *)(slavePtr->tkwin));
+ TkDoConfigureNotify((TkWindow *)(contentPtr->tkwin));
return;
}
- masterPtr = slavePtr->masterPtr;
- if (masterPtr == NULL) {
+ containerPtr = contentPtr->containerPtr;
+ if (containerPtr == NULL) {
return;
}
- if (!(masterPtr->flags & PARENT_RECONFIG_PENDING)) {
- masterPtr->flags |= PARENT_RECONFIG_PENDING;
- Tcl_DoWhenIdle(RecomputePlacement, masterPtr);
+ if (!(containerPtr->flags & PARENT_RECONFIG_PENDING)) {
+ containerPtr->flags |= PARENT_RECONFIG_PENDING;
+ Tcl_DoWhenIdle(RecomputePlacement, containerPtr);
}
}
/*
*--------------------------------------------------------------
*
- * PlaceLostSlaveProc --
+ * PlaceLostContentProc --
*
* This function is invoked by Tk whenever some other geometry claims
- * control over a slave that used to be managed by us.
+ * control over a content window that used to be managed by us.
*
* Results:
* None.
*
* Side effects:
- * Forgets all placer-related information about the slave.
+ * Forgets all placer-related information about the content window.
*
*--------------------------------------------------------------
*/
static void
-PlaceLostSlaveProc(
- ClientData clientData, /* Slave structure for slave window that was
+PlaceLostContentProc(
+ ClientData clientData, /* Content structure for content window that was
* stolen away. */
- Tk_Window tkwin) /* Tk's handle for the slave window. */
+ Tk_Window tkwin) /* Tk's handle for the content window. */
{
- Slave *slavePtr = (Slave *)clientData;
- TkDisplay *dispPtr = ((TkWindow *) slavePtr->tkwin)->dispPtr;
+ Content *contentPtr = (Content *)clientData;
+ TkDisplay *dispPtr = ((TkWindow *) contentPtr->tkwin)->dispPtr;
- if (slavePtr->masterPtr->tkwin != Tk_Parent(slavePtr->tkwin)) {
- Tk_UnmaintainGeometry(slavePtr->tkwin, slavePtr->masterPtr->tkwin);
+ if (contentPtr->containerPtr->tkwin != Tk_Parent(contentPtr->tkwin)) {
+ Tk_UnmaintainGeometry(contentPtr->tkwin, contentPtr->containerPtr->tkwin);
}
Tk_UnmapWindow(tkwin);
- UnlinkSlave(slavePtr);
- Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->slaveTable,
+ UnlinkContent(contentPtr);
+ Tcl_DeleteHashEntry(Tcl_FindHashEntry(&dispPtr->contentTable,
tkwin));
- Tk_DeleteEventHandler(tkwin, StructureNotifyMask, SlaveStructureProc,
- slavePtr);
- FreeSlave(slavePtr);
+ Tk_DeleteEventHandler(tkwin, StructureNotifyMask, ContentStructureProc,
+ contentPtr);
+ FreeContent(contentPtr);
}
/*