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/widgets/qtoolbararealayout_p.h

    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**
     
    5959
    6060QT_BEGIN_NAMESPACE
     61
     62static inline int pick(Qt::Orientation o, const QPoint &pos)
     63{ return o == Qt::Horizontal ? pos.x() : pos.y(); }
     64
     65static inline int pick(Qt::Orientation o, const QSize &size)
     66{ return o == Qt::Horizontal ? size.width() : size.height(); }
     67
     68static inline int &rpick(Qt::Orientation o, QPoint &pos)
     69{ return o == Qt::Horizontal ? pos.rx() : pos.ry(); }
     70
     71static inline int &rpick(Qt::Orientation o, QSize &size)
     72{ return o == Qt::Horizontal ? size.rwidth() : size.rheight(); }
     73
     74static inline QSizePolicy::Policy pick(Qt::Orientation o, const QSizePolicy &policy)
     75{ return o == Qt::Horizontal ? policy.horizontalPolicy() : policy.verticalPolicy(); }
     76
     77static inline int perp(Qt::Orientation o, const QPoint &pos)
     78{ return o == Qt::Vertical ? pos.x() : pos.y(); }
     79
     80static inline int perp(Qt::Orientation o, const QSize &size)
     81{ return o == Qt::Vertical ? size.width() : size.height(); }
     82
     83static inline int &rperp(Qt::Orientation o, QPoint &pos)
     84{ return o == Qt::Vertical ? pos.rx() : pos.ry(); }
     85
     86static inline int &rperp(Qt::Orientation o, QSize &size)
     87{ return o == Qt::Vertical ? size.rwidth() : size.rheight(); }
    6188
    6289#ifndef QT_NO_TOOLBAR
     
    7198public:
    7299    QToolBarAreaLayoutItem(QLayoutItem *item = 0)
    73         : widgetItem(item), pos(0), size(-1), extraSpace(0), gap(false) {}
     100        : widgetItem(item), pos(0), size(-1), preferredSize(-1), gap(false) {}
    74101
    75102    bool skip() const;
    76103    QSize minimumSize() const;
    77104    QSize sizeHint() const;
    78     QSize realSizeHint() const;
     105    QSize realSizeHint() const;
     106
     107    void resize(Qt::Orientation o, int newSize)
     108    {
     109        newSize = qMax(pick(o, minimumSize()), newSize);
     110        int sizeh = pick(o, sizeHint());
     111        if (newSize == sizeh) {
     112            preferredSize = -1;
     113            size = sizeh;
     114        } else {
     115            preferredSize = newSize;
     116        }
     117    }
     118
     119    void extendSize(Qt::Orientation o, int extent)
     120    {
     121        int newSize = qMax(pick(o, minimumSize()), (preferredSize > 0 ? preferredSize : pick(o, sizeHint())) + extent);
     122        int sizeh = pick(o, sizeHint());
     123        if (newSize == sizeh) {
     124            preferredSize = -1;
     125            size = sizeh;
     126        } else {
     127            preferredSize = newSize;
     128        }
     129    }
    79130
    80131    QLayoutItem *widgetItem;
    81132    int pos;
    82133    int size;
    83     int extraSpace;
     134    int preferredSize;
    84135    bool gap;
    85136};
     
    105156{
    106157public:
    107     enum { EmptyDockAreaSize = 80 }; // when a dock area is empty, how "wide" is it?
    108 
    109158    QToolBarAreaLayoutInfo(QInternal::DockPosition pos = QInternal::TopDock);
    110159
     
    123172    void moveToolBar(QToolBar *toolbar, int pos);
    124173
    125     QList<int> gapIndex(const QPoint &pos) const;
    126     bool insertGap(QList<int> path, QLayoutItem *item);
     174    QList<int> gapIndex(const QPoint &pos, int *maxDistance) const;
     175    bool insertGap(const QList<int> &path, QLayoutItem *item);
    127176    void clear();
    128     QRect itemRect(QList<int> path) const;
    129     QRect appendLineDropRect() const;
     177    QRect itemRect(const QList<int> &path) const;
     178    int distance(const QPoint &pos) const;
    130179
    131180    QRect rect;
     
    144193
    145194    QRect rect;
    146     QMainWindow *mainWindow;
     195    const QMainWindow *mainWindow;
    147196    QToolBarAreaLayoutInfo docks[4];
    148197    bool visible;
    149198
    150     QToolBarAreaLayout(QMainWindow *win);
     199    QToolBarAreaLayout(const QMainWindow *win);
    151200
    152201    QRect fitLayout();
     
    180229    QList<int> gapIndex(const QPoint &pos) const;
    181230    QList<int> currentGapIndex() const;
    182     bool insertGap(QList<int> path, QLayoutItem *item);
    183     void remove(QList<int> path);
     231    bool insertGap(const QList<int> &path, QLayoutItem *item);
     232    void remove(const QList<int> &path);
    184233    void remove(QLayoutItem *item);
    185234    void clear();
    186     QToolBarAreaLayoutItem &item(QList<int> path);
    187     QRect itemRect(QList<int> path) const;
    188     QLayoutItem *plug(QList<int> path);
    189     QLayoutItem *unplug(QList<int> path, QToolBarAreaLayout *other);
     235    QToolBarAreaLayoutItem &item(const QList<int> &path);
     236    QRect itemRect(const QList<int> &path) const;
     237    QLayoutItem *plug(const QList<int> &path);
     238    QLayoutItem *unplug(const QList<int> &path, QToolBarAreaLayout *other);
    190239
    191240    void saveState(QDataStream &stream) const;
Note: See TracChangeset for help on using the changeset viewer.