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

Function Tk_MessageCmd

micropolis-activity/src/tk/tkmsg.c:176–233  ·  view source on GitHub ↗
(clientData, interp, argc, argv)

Source from the content-addressed store, hash-verified

174 *--------------------------------------------------------------
175 */
176
177int
178Tk_MessageCmd(clientData, interp, argc, argv)
179 ClientData clientData; /* Main window associated with
180 * interpreter. */
181 Tcl_Interp *interp; /* Current interpreter. */
182 int argc; /* Number of arguments. */
183 char **argv; /* Argument strings. */
184{
185 register Message *msgPtr;
186 Tk_Window new;
187 Tk_Window tkwin = (Tk_Window) clientData;
188
189 if (argc < 2) {
190 Tcl_AppendResult(interp, "wrong # args: should be \"",
191 argv[0], " pathName ?options?\"", (char *) NULL);
192 return TCL_ERROR;
193 }
194
195 new = Tk_CreateWindowFromPath(interp, tkwin, argv[1], (char *) NULL);
196 if (new == NULL) {
197 return TCL_ERROR;
198 }
199
200 msgPtr = (Message *) ckalloc(sizeof(Message));
201 msgPtr->tkwin = new;
202 msgPtr->interp = interp;
203 msgPtr->string = NULL;
204 msgPtr->textVarName = NULL;
205 msgPtr->border = NULL;
206 msgPtr->borderWidth = 0;
207 msgPtr->relief = TK_RELIEF_FLAT;
208 msgPtr->fontPtr = NULL;
209 msgPtr->fgColorPtr = NULL;
210 msgPtr->textGC = NULL;
211 msgPtr->padX = 0;
212 msgPtr->padY = 0;
213 msgPtr->width = 0;
214 msgPtr->aspect = 150;
215 msgPtr->justify = TK_JUSTIFY_LEFT;
216 msgPtr->cursor = None;
217 msgPtr->flags = 0;
218
219 Tk_SetClass(msgPtr->tkwin, "Message");
220 Tk_CreateEventHandler(msgPtr->tkwin, ExposureMask|StructureNotifyMask,
221 MessageEventProc, (ClientData) msgPtr);
222 Tcl_CreateCommand(interp, Tk_PathName(msgPtr->tkwin), MessageWidgetCmd,
223 (ClientData) msgPtr, (void (*)()) NULL);
224 if (ConfigureMessage(interp, msgPtr, argc-2, argv+2, 0) != TCL_OK) {
225 goto error;
226 }
227
228 interp->result = Tk_PathName(msgPtr->tkwin);
229 return TCL_OK;
230
231 error:
232 Tk_DestroyWindow(msgPtr->tkwin);
233 return TCL_ERROR;

Callers

nothing calls this directly

Calls 6

Tcl_AppendResultFunction · 0.85
Tk_CreateWindowFromPathFunction · 0.85
Tk_SetClassFunction · 0.85
ConfigureMessageFunction · 0.85
Tk_DestroyWindowFunction · 0.85
Tcl_CreateCommandFunction · 0.50

Tested by

no test coverage detected