Ignore:
Timestamp:
Feb 11, 2010, 11:19:06 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.1 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/gui/util/qsystemtrayicon_mac.mm

    r2 r561  
    22**
    33** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    4 ** Contact: Qt Software Information (qt-info@nokia.com)
     4** All rights reserved.
     5** Contact: Nokia Corporation (qt-info@nokia.com)
    56**
    67** This file is part of the QtGui module of the Qt Toolkit.
     
    2122** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    2223**
    23 ** In addition, as a special exception, Nokia gives you certain
    24 ** additional rights. These rights are described in the Nokia Qt LGPL
    25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
    26 ** package.
     24** In addition, as a special exception, Nokia gives you certain additional
     25** rights.  These rights are described in the Nokia Qt LGPL Exception
     26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
    2727**
    2828** GNU General Public License Usage
     
    3434** met: http://www.gnu.org/copyleft/gpl.html.
    3535**
    36 ** If you are unsure which license is appropriate for your use, please
    37 ** contact the sales department at qt-sales@nokia.com.
     36** If you have questions regarding the use of this file, please contact
     37** Nokia at qt-info@nokia.com.
    3838** $QT_END_LICENSE$
    3939**
     
    125125@end
    126126
    127 @interface QNSMenu : NSMenu {
     127
     128#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_5
     129
     130@protocol NSMenuDelegate <NSObject>
     131-(void)menuNeedsUpdate:(NSMenu*)menu;
     132@end
     133#endif
     134
     135
     136@interface QNSMenu : NSMenu <NSMenuDelegate> {
    128137    QMenu *qmenu;
    129138}
    130139-(QMenu*)menu;
    131140-(id)initWithQMenu:(QMenu*)qmenu;
    132 -(void)menuNeedsUpdate:(QNSMenu*)menu;
    133141-(void)selectedAction:(id)item;
    134142@end
     
    307315    Q_UNUSED(notification);
    308316    down = NO;
     317
     318    if( ![self icon]->icon().isNull() ) {
     319#ifndef QT_MAC_USE_COCOA
     320        const short scale = GetMBarHeight()-4;
     321#else
     322        CGFloat hgt = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];
     323        const short scale = hgt - 4;
     324#endif
     325        NSImage *nsimage = static_cast<NSImage *>(qt_mac_create_nsimage([self icon]->icon().pixmap(QSize(scale, scale))));
     326        [self setImage: nsimage];
     327        [nsimage release];
     328    }
     329
    309330    if([self icon]->contextMenu())
    310331        [self icon]->contextMenu()->hide();
     332
    311333    [self setNeedsDisplay:YES];
    312334}
     
    319341        [self icon]->contextMenu()->hide();
    320342    [self setNeedsDisplay:YES];
     343
     344#ifndef QT_MAC_USE_COCOA
     345    const short scale = GetMBarHeight()-4;
     346#else
     347    CGFloat hgt = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];
     348    const short scale = hgt - 4;
     349#endif
     350
     351    if( down && ![self icon]->icon().isNull() ) {
     352        NSImage *nsaltimage = static_cast<NSImage *>(qt_mac_create_nsimage([self icon]->icon().pixmap(QSize(scale, scale), QIcon::Selected)));
     353        [self setImage: nsaltimage];
     354        [nsaltimage release];
     355    }
     356
    321357
    322358    if (down)
     
    456492    return self;
    457493}
    458 -(QMenu*)menu {
    459     return qmenu;
    460 }
    461 -(void)menuNeedsUpdate:(QNSMenu*)menu {
     494-(QMenu*)menu {
     495    return qmenu;
     496}
     497-(void)menuNeedsUpdate:(NSMenu*)nsmenu {
     498    QNSMenu *menu = static_cast<QNSMenu *>(nsmenu);
    462499    emit static_cast<QSystemTrayIconQMenu*>(menu->qmenu)->doAboutToShow();
    463500    for(int i = [menu numberOfItems]-1; i >= 0; --i)
Note: See TracChangeset for help on using the changeset viewer.