MCPcopy Create free account
hub / github.com/SimHacker/micropolis / Tk_PackCmd

Function Tk_PackCmd

micropolis-activity/src/tk/tkpack.c:132–287  ·  view source on GitHub ↗
(clientData, interp, argc, argv)

Source from the content-addressed store, hash-verified

130 *--------------------------------------------------------------
131 */
132
133int
134Tk_PackCmd(clientData, interp, argc, argv)
135 ClientData clientData; /* Main window associated with
136 * interpreter. */
137 Tcl_Interp *interp; /* Current interpreter. */
138 int argc; /* Number of arguments. */
139 char **argv; /* Argument strings. */
140{
141 Tk_Window tkwin = (Tk_Window) clientData;
142 int length;
143 char c;
144
145 if (argc < 3) {
146 Tcl_AppendResult(interp, "wrong # args: should be \"",
147 argv[0], " option arg ?arg ...?\"", (char *) NULL);
148 return TCL_ERROR;
149 }
150 c = argv[1][0];
151 length = strlen(argv[1]);
152 if ((c == 'a') && (length >= 2)
153 && (strncmp(argv[1], "after", length) == 0)) {
154 Packer *prevPtr;
155 Tk_Window tkwin2;
156
157 tkwin2 = Tk_NameToWindow(interp, argv[2], tkwin);
158 if (tkwin2 == NULL) {
159 return TCL_ERROR;
160 }
161 prevPtr = GetPacker(tkwin2);
162 if (prevPtr->parentPtr == NULL) {
163 Tcl_AppendResult(interp, "window \"", argv[2],
164 "\" isn't packed", (char *) NULL);
165 return TCL_ERROR;
166 }
167 return PackAfter(interp, prevPtr, prevPtr->parentPtr, argc-3, argv+3);
168 } else if ((c == 'a') && (length >= 2)
169 && (strncmp(argv[1], "append", length) == 0)) {
170 Packer *parentPtr;
171 register Packer *prevPtr;
172 Tk_Window tkwin2;
173
174 tkwin2 = Tk_NameToWindow(interp, argv[2], tkwin);
175 if (tkwin2 == NULL) {
176 return TCL_ERROR;
177 }
178 parentPtr = GetPacker(tkwin2);
179 prevPtr = parentPtr->childPtr;
180 if (prevPtr != NULL) {
181 while (prevPtr->nextPtr != NULL) {
182 prevPtr = prevPtr->nextPtr;
183 }
184 }
185 return PackAfter(interp, prevPtr, parentPtr, argc-3, argv+3);
186 } else if ((c == 'b') && (strncmp(argv[1], "before", length) == 0)) {
187 Packer *packPtr, *parentPtr;
188 register Packer *prevPtr;
189 Tk_Window tkwin2;

Callers

nothing calls this directly

Calls 7

Tcl_AppendResultFunction · 0.85
Tk_NameToWindowFunction · 0.85
PackAfterFunction · 0.85
panicFunction · 0.85
Tk_ManageGeometryFunction · 0.85
UnlinkFunction · 0.85
Tk_UnmapWindowFunction · 0.85

Tested by

no test coverage detected