diff options
Diffstat (limited to 'macosx')
-rw-r--r-- | macosx/tkMacOSXMenu.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/macosx/tkMacOSXMenu.c b/macosx/tkMacOSXMenu.c index 5ae94a7..8c95a32 100644 --- a/macosx/tkMacOSXMenu.c +++ b/macosx/tkMacOSXMenu.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXMenu.c,v 1.6.2.4 2004/02/16 00:42:34 wolfsuit Exp $ + * RCS: @(#) $Id: tkMacOSXMenu.c,v 1.6.2.5 2004/04/01 18:40:10 wolfsuit Exp $ */ #include "tkMacOSXInt.h" #include "tkMenuButton.h" @@ -141,9 +141,6 @@ typedef struct TopLevelMenubarList { #define CASCADE_CMD (0x1b) /* The special command char for cascade * menus. */ -#define SEPARATOR_TEXT "\p(-" - /* The text for a menu separator. */ - #define MENUBAR_REDRAW_PENDING 1 #define SCREEN_MARGIN 5 @@ -1079,7 +1076,9 @@ ReconfigureIndividualMenu( */ if (mePtr->type == SEPARATOR_ENTRY) { - AppendMenu(macMenuHdl, SEPARATOR_TEXT); + AppendMenuItemTextWithCFString (macMenuHdl, NULL, + kMenuItemAttrSeparator | kMenuItemAttrDisabled, + 0, NULL); } else { Tcl_DString itemTextDString; int destWrote; @@ -1087,13 +1086,12 @@ ReconfigureIndividualMenu( GetEntryText(mePtr, &itemTextDString); cf = CFStringCreateWithCString(NULL, Tcl_DStringValue(&itemTextDString), kCFStringEncodingUTF8); - AppendMenu(macMenuHdl, "\px"); if (cf != NULL) { - SetMenuItemTextWithCFString(macMenuHdl, base + index, cf); + AppendMenuItemTextWithCFString (macMenuHdl, cf, 0, 0, NULL); CFRelease(cf); } else { cf = CFSTR ("<Error>"); - SetMenuItemTextWithCFString(macMenuHdl, base + index, cf); + AppendMenuItemTextWithCFString (macMenuHdl, cf, 0, 0, NULL); } Tcl_DStringFree(&itemTextDString); @@ -2099,11 +2097,19 @@ EventuallyInvokeMenu (ClientData data) { struct MenuCommandHandlerData *realData = (struct MenuCommandHandlerData *) data; + int code; + code = TkInvokeMenu(realData->menuPtr->interp, realData->menuPtr, + realData->index); + + if (code != TCL_OK && code != TCL_CONTINUE + && code != TCL_BREAK) { + Tcl_AddErrorInfo(realData->menuPtr->interp, "\n (menu invoke)"); + Tcl_BackgroundError(realData->menuPtr->interp); + } + Tcl_Release(realData->menuPtr->interp); Tcl_Release(realData->menuPtr); - TkInvokeMenu(realData->menuPtr->interp, realData->menuPtr, - realData->index); } /* |