Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


14.12.2011 17:01, Michael Meeks пишет:
On Wed, 2011-12-14 at 15:32 +0400, Ivan Timofeev wrote:
If I understood you right, the MENU_FLAG_SHOWCHECKIMAGES flag was
introduced to control whether a simple check mark [x] or an image should
be painted with a checkable menu item; if it is so, it don't work anyway.
But may be I missed some piece of logic again :)

        So - you're right; sorry for the noise ! :-) How does it look with your
fix in place ? :-)

see the attaches :)

I've tweaked menu.cxx a bit and have added "Checkable = TRUE ; \" to some (not all) indigent menu items in sw/source/ui/app/mn.src, don't know whether this is a right solution. If so, we should very carefully visit all such src files.

And somehow we should enable MENU_FLAG_SHOWCHECKIMAGES for win I think. I have not enough time to do that now, crazy pre-session weeks have started! :)

Regards,
Ivan

Attachment: refined-menu.png
Description: PNG image

diff --git a/sw/source/ui/app/mn.src b/sw/source/ui/app/mn.src
index edcaa8e..71d72ee 100644
--- a/sw/source/ui/app/mn.src
+++ b/sw/source/ui/app/mn.src
@@ -76,41 +76,50 @@
             {\
                 MenuItem\
                 {\
+                    Checkable = TRUE ; \
                     ITEM_FORMAT_ATTR_CHAR_WEIGHT\
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ; \
                     ITEM_FORMAT_ATTR_CHAR_POSTURE\
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ; \
                     ITEM_FORMAT_ATTR_CHAR_OVERLINE\
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ; \
                     ITEM_FORMAT_ATTR_CHAR_UNDERLINE\
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ; \
                     ITEM_FORMAT_ATTR_CHAR_STRIKEOUT\
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ; \
                     ITEM_FORMAT_ATTR_CHAR_SHADOWED\
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ; \
                     ITEM_FORMAT_ATTR_CHAR_CONTOUR\
                 };\
                 SEPARATOR ; \
                 MenuItem\
                 {\
+                    Checkable = TRUE ; \
                     Identifier = FN_SET_SUPER_SCRIPT ; \
                     HelpId = CMD_FN_SET_SUPER_SCRIPT ; \
                     Text [ en-US ] = "Superscript" ; \
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ; \
                     Identifier = FN_SET_SUB_SCRIPT ; \
                     HelpId = CMD_FN_SET_SUB_SCRIPT ; \
                     Text [ en-US ] = "Subscript" ; \
@@ -1141,18 +1150,22 @@ Menu MN_ANNOTATION_POPUPMENU
     {
         MenuItem\
                 {\
+                    Checkable = TRUE ;\
                     ITEM_FORMAT_ATTR_CHAR_WEIGHT\
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ;\
                     ITEM_FORMAT_ATTR_CHAR_POSTURE\
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ;\
                     ITEM_FORMAT_ATTR_CHAR_UNDERLINE\
                 };\
                 MenuItem\
                 {\
+                    Checkable = TRUE ;\
                     ITEM_FORMAT_ATTR_CHAR_STRIKEOUT\
                 };\
         SEPARATOR ;
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index e143dfe..9f6ac6e 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -2434,7 +2434,8 @@ Size Menu::ImplCalcSize( Window* pWin )
             }
 
             // Image:
-            if ( !bIsMenuBar && ( ( pData->eType == MENUITEM_IMAGE ) || ( pData->eType == 
MENUITEM_STRINGIMAGE ) ) )
+            if ( !bIsMenuBar && ( ( pData->eType == MENUITEM_IMAGE ) || ( pData->eType == 
MENUITEM_STRINGIMAGE ) ) &&
+                 ( (nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) || !pData->HasCheck() ) )
             {
                 Size aImgSz = pData->aImage.GetSizePixel();
                 aImgSz.Height() += 4; // add a border for native marks
@@ -2748,7 +2749,8 @@ void Menu::ImplPaint( Window* pWin, sal_uInt16 nBorder, long nStartY, 
MenuItemDa
                     // however do not do this if native checks will be painted since
                     // the selection color too often does not fit the theme's check and/or radio
 
-                    if( ! ( ( pData->eType == MENUITEM_IMAGE ) || ( pData->eType == 
MENUITEM_STRINGIMAGE ) ) )
+                    if( ! ( ( pData->eType == MENUITEM_IMAGE ) || ( pData->eType == 
MENUITEM_STRINGIMAGE ) ) ||
+                        (nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) == 0 )
                     {
                         if ( pWin->IsNativeControlSupported( CTRL_MENU_POPUP,
                                                              (pData->nBits & MIB_RADIOCHECK)

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.