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/dialogs/qnspanelproxy_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**
     
    145145    {
    146146#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
     147        // The following code replaces the _implementation_ for the selector we want to hack
     148        // (originalSel) with the implementation found in proxyClass. Then it creates
     149        // a new 'backup' method inside baseClass containing the old, original,
     150        // implementation (fakeSel). You can let the proxy implementation of originalSel
     151        // call fakeSel if needed (similar approach to calling a super class implementation).
     152        // fakeSel must also be implemented in proxyClass, as the signature is used
     153        // as template for the method one we add into baseClass.
     154        // NB: You will typically never create any instances of proxyClass; we use it
     155        // only for stealing its contents and put it into baseClass.
    147156        Method originalMethod = class_getInstanceMethod(baseClass, originalSel);
    148157        Method newMethod = class_getInstanceMethod(proxyClass, originalSel);
    149158        Method fakeMethod = class_getInstanceMethod(proxyClass, fakeSel);
    150159
    151         IMP originalCtorImp = method_setImplementation(originalMethod,
    152                                                        method_getImplementation(newMethod));
    153         class_addMethod(baseClass, fakeSel, originalCtorImp,
    154                         method_getTypeEncoding(fakeMethod));
     160        IMP originalImp = method_setImplementation(originalMethod, method_getImplementation(newMethod));
     161        class_addMethod(baseClass, fakeSel, originalImp, method_getTypeEncoding(fakeMethod));
    155162#endif
    156163    }
Note: See TracChangeset for help on using the changeset viewer.