From d29e8db2badac2db52e78d1726b1cd2f105e64e6 Mon Sep 17 00:00:00 2001 From: hobbs Date: Mon, 3 May 2004 23:23:14 +0000 Subject: * win/tkWinMenu.c, unix/tkUnixMenu.c (DrawMenuEntryLabel): place images of compound menu entries in indicator space if not a radio of checkbutton. [Bug #756952] (eserte) --- ChangeLog | 4 ++++ unix/tkUnixMenu.c | 15 ++++++++++++++- win/tkWinMenu.c | 28 ++++++++++++---------------- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3631f72..bc0d81e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2004-05-03 Jeff Hobbs + * win/tkWinMenu.c, unix/tkUnixMenu.c (DrawMenuEntryLabel): place + images of compound menu entries in indicator space if not a radio + of checkbutton. [Bug #756952] (eserte) + * win/tkWinX.c: fix drawing of unicode chars in menu * win/tkWinInt.h (TkWinProcs): titles. [Bug #904371] (riefenstahl) * win/tkWinMenu.c (ReconfigureWindowsMenu): diff --git a/unix/tkUnixMenu.c b/unix/tkUnixMenu.c index 1e6a682..c96dd9b 100644 --- a/unix/tkUnixMenu.c +++ b/unix/tkUnixMenu.c @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkUnixMenu.c,v 1.9 2003/08/14 12:30:11 dkf Exp $ + * RCS: @(#) $Id: tkUnixMenu.c,v 1.10 2004/05/03 23:23:14 hobbs Exp $ */ #include "tkPort.h" @@ -763,10 +763,23 @@ DrawMenuEntryLabel(menuPtr, mePtr, d, gc, tkfont, fmPtr, x, y, width, height) break; } case COMPOUND_LEFT: { + /* + * Position image in the indicator space to the left of the + * entries, unless this entry is a radio|check button because + * then the indicator space will be used. + */ textXOffset = imageWidth + 2; textYOffset = 0; imageXOffset = 0; imageYOffset = 0; + if ((mePtr->type != CHECK_BUTTON_ENTRY) + && (mePtr->type != RADIO_BUTTON_ENTRY)) { + textXOffset -= indicatorSpace; + if (textXOffset < 0) { + textXOffset = 0; + } + imageXOffset = -indicatorSpace; + } break; } case COMPOUND_RIGHT: { diff --git a/win/tkWinMenu.c b/win/tkWinMenu.c index 69f8eb7..203389e 100644 --- a/win/tkWinMenu.c +++ b/win/tkWinMenu.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: tkWinMenu.c,v 1.32 2004/05/03 22:40:30 hobbs Exp $ + * RCS: @(#) $Id: tkWinMenu.c,v 1.33 2004/05/03 23:23:14 hobbs Exp $ */ #define OEMRESOURCE @@ -2116,26 +2116,22 @@ DrawMenuEntryLabel( } case COMPOUND_LEFT: { /* - * The standard image position on Windows is - * in the indicator space to the left of - * the entries. Of course if this entry is - * a radio/check button, we can't do that - * because the indicator space will be used. + * The standard image position on Windows is in the indicator + * space to the left of the entries, unless this entry is a + * radio|check button because then the indicator space will + * be used. */ - if ((mePtr->type == CHECK_BUTTON_ENTRY) - || (mePtr->type == RADIO_BUTTON_ENTRY)) { - textXOffset = imageWidth + 2; - textYOffset = 0; - imageXOffset = 0; - imageYOffset = 0; - } else { - textXOffset = imageWidth + 2 - indicatorSpace; + textXOffset = imageWidth + 2; + textYOffset = 0; + imageXOffset = 0; + imageYOffset = 0; + if ((mePtr->type != CHECK_BUTTON_ENTRY) + && (mePtr->type != RADIO_BUTTON_ENTRY)) { + textXOffset -= indicatorSpace; if (textXOffset < 0) { textXOffset = 0; } - textYOffset = 0; imageXOffset = -indicatorSpace; - imageYOffset = 0; } break; } -- cgit v0.12