diff options
Diffstat (limited to 'generic/tkFrame.c')
-rw-r--r-- | generic/tkFrame.c | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/generic/tkFrame.c b/generic/tkFrame.c index 63e8245..f4f0a53 100644 --- a/generic/tkFrame.c +++ b/generic/tkFrame.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkFrame.c,v 1.14 2003/01/03 22:43:45 hobbs Exp $ + * RCS: @(#) $Id: tkFrame.c,v 1.15 2003/01/22 14:32:59 dkf Exp $ */ #include "default.h" @@ -1933,3 +1933,45 @@ FrameLostSlaveProc(clientData, tkwin) } FrameWorldChanged((ClientData) framePtr); } + +/* + *-------------------------------------------------------------- + * + * TkToplevelWindowFromCommandToken -- + * + * If the given command name to the command for a toplevel window + * in the given interpreter, return the tkwin for that toplevel + * window. Note that this lookup can't be done using the + * standard tkwin internal table because the command might have + * been renamed. + * + * Results: + * A Tk_Window token, or NULL if the name does not refer to a + * toplevel window. + * + * Side effects: + * None. + * + *-------------------------------------------------------------- + */ + +Tk_Window +TkToplevelWindowForCommand(interp, cmdName) + Tcl_Interp *interp; + CONST char *cmdName; +{ + Tcl_CmdInfo cmdInfo; + Frame *framePtr; + + if (Tcl_GetCommandInfo(interp, cmdName, &cmdInfo) == 0) { + return NULL; + } + if (cmdInfo.objProc != FrameWidgetObjCmd) { + return NULL; + } + framePtr = (Frame *) cmdInfo.objClientData; + if (framePtr->type != TYPE_TOPLEVEL) { + return NULL; + } + return framePtr->tkwin; +} |