add: activeBorder, x, adjustedY, width, adjustedHeight); DrawMenuEntryArrow(menuPtr, mePtr, d, gc,
context: TkpDrawMenuEntry(mePtr, d, tkfont, menuMetricsPtr, x, y, width, height, 	strictMotif, drawArrow)    TkMenuEntry *mePtr;		    /* The entry to draw */    Drawable d;			    /* What to draw into */    Tk_Font tkfont;		    /* Precalculated font for menu */    CONST Tk_FontMetrics *menuMetricsPtr;				    /* Precalculated metrics for menu */    int x;			    /* X-coordinate of topleft of entry */    int y;			    /* Y-coordinate of topleft of entry */    int width;			    /* Width of the entry rectangle */    int height;			    /* Height of the current rectangle */    int strictMotif;		    /* Boolean flag */    int drawArrow;		    /* Whether or not to draw the cascade				     * arrow for cascade items. Only applies				     * to Windows. */{    GC gc, indicatorGC;    TkMenu *menuPtr = mePtr->menuPtr;    Tk_3DBorder bgBorder, activeBorder;    CONST Tk_FontMetrics *fmPtr;    Tk_FontMetrics entryMetrics;    int padY = (menuPtr->menuType == MENUBAR) ? 3 : 0;    int adjustedY = y + padY;    int adjustedHeight = height - 2 * padY;    /*     * Choose the gc for drawing the foreground part of the entry.     */    if ((mePtr->state == ENTRY_ACTIVE) && !strictMotif) {	gc = mePtr->activeGC;	if (gc == NULL) {	    gc = menuPtr->activeGC;	}    } else {    	TkMenuEntry *cascadeEntryPtr;    	int parentDisabled = 0;	char *name;    	    	for (cascadeEntryPtr = menuPtr->menuRefPtr->parentEntryPtr;    		cascadeEntryPtr != NULL;    		cascadeEntryPtr = cascadeEntryPtr->nextCascadePtr) {	    name = Tcl_GetStringFromObj(cascadeEntryPtr->namePtr, NULL);    	    if (strcmp(name, Tk_PathName(menuPtr->tkwin)) == 0) {    	    	if (mePtr->state == ENTRY_DISABLED) {    	    	    parentDisabled = 1;    	    	}    	    	break;    	    }    	}	if (((parentDisabled || (mePtr->state == ENTRY_DISABLED)))		&& (menuPtr->disabledFgPtr != NULL)) {	    gc = mePtr->disabledGC;	    if (gc == NULL) {		gc = menuPtr->disabledGC;	    }	} else {	    gc = mePtr->textGC;	    if (gc == NULL) {		gc = menuPtr->textGC;	    }	}    }    indicatorGC = mePtr->indicatorGC;    if (indicatorGC == NULL) {	indicatorGC = menuPtr->indicatorGC;    }    bgBorder = Tk_Get3DBorderFromObj(menuPtr->tkwin,	    (mePtr->borderPtr == NULL) ? menuPtr->borderPtr	    : mePtr->borderPtr);    if (strictMotif) {	activeBorder = bgBorder;    } else {	activeBorder = Tk_Get3DBorderFromObj(menuPtr->tkwin,	    (mePtr->activeBorderPtr == NULL) ? menuPtr->activeBorderPtr	    : mePtr->activeBorderPtr);    }    if (mePtr->fontPtr == NULL) {	fmPtr = menuMetricsPtr;    } else {	tkfont = Tk_GetFontFromObj(menuPtr->tkwin, mePtr->fontPtr);	Tk_GetFontMetrics(tkfont, &entryMetrics);	fmPtr = &entryMetrics;    }    /*     * Need to draw the entire background, including padding. On Unix,     * for menubars, we have to draw the rest of the entry taking     * into account the padding.     */        DrawMenuEntryBackground(menuPtr, mePtr, d, activeBorder, 	    bgBorder, x, y, width, height);        if (mePtr->type == SEPARATOR_ENTRY) {	DrawMenuSeparator(menuPtr, mePtr, d, gc, tkfont, 		fmPtr, x, adjustedY, width, adjustedHeight);    } else if (mePtr->type == TEAROFF_ENTRY) {	DrawTearoffEntry(menuPtr, mePtr, d, gc, tkfont, fmPtr, x, adjustedY,		width, adjustedHeight);    } else {	DrawMenuEntryLabel(menuPtr, mePtr, d, gc, tkfont, fmPtr, x, adjustedY,		width, adjustedHeight);	DrawMenuEntryAccelerator(menuPtr, mePtr, d, gc, tkfont, fmPtr,		activeBorder, x, adjustedY, width, adjustedHeight, drawArrow);	if (!mePtr->hideMargin) {	    DrawMenuEntryIndicator(menuPtr, mePtr, d, gc, indicatorGC, tkfont,		    fmPtr, x, adjustedY, width, adjustedHeight);	}    }}