(clientData, interp, argc, argv)
| 174 | *-------------------------------------------------------------- |
| 175 | */ |
| 176 | |
| 177 | int |
| 178 | Tk_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; |
nothing calls this directly
no test coverage detected