src/gui/graphicsview/qgridlayoutengine_p.h
changeset 37 758a864f9613
parent 33 3e2da88830cd
equal deleted inserted replaced
36:ef0373b55136 37:758a864f9613
    87 enum LayoutSide {
    87 enum LayoutSide {
    88     Left,
    88     Left,
    89     Top,
    89     Top,
    90     Right,
    90     Right,
    91     Bottom
    91     Bottom
       
    92 };
       
    93 
       
    94 enum {
       
    95     NoConstraint,
       
    96     HorizontalConstraint,
       
    97     VerticalConstraint,
       
    98     UnknownConstraint,      // need to update cache
       
    99     UnfeasibleConstraint    // not feasible, it be has some items with Vertical and others with Horizontal constraints
    92 };
   100 };
    93 
   101 
    94 template <typename T>
   102 template <typename T>
    95 class QLayoutParameter
   103 class QLayoutParameter
    96 {
   104 {
   268 
   276 
   269     inline Qt::Alignment alignment() const { return q_alignment; }
   277     inline Qt::Alignment alignment() const { return q_alignment; }
   270     inline void setAlignment(Qt::Alignment alignment) { q_alignment = alignment; }
   278     inline void setAlignment(Qt::Alignment alignment) { q_alignment = alignment; }
   271 
   279 
   272     QSizePolicy::Policy sizePolicy(Qt::Orientation orientation) const;
   280     QSizePolicy::Policy sizePolicy(Qt::Orientation orientation) const;
       
   281 
       
   282     bool hasDynamicConstraint() const;
       
   283     Qt::Orientation dynamicConstraintOrientation() const;
       
   284 
   273     QSizePolicy::ControlTypes controlTypes(LayoutSide side) const;
   285     QSizePolicy::ControlTypes controlTypes(LayoutSide side) const;
   274     QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
   286     QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
   275     QGridLayoutBox box(Qt::Orientation orientation, qreal constraint = -1.0) const;
   287     QGridLayoutBox box(Qt::Orientation orientation, qreal constraint = -1.0) const;
   276     QRectF geometryWithin(qreal x, qreal y, qreal width, qreal height, qreal rowDescent) const;
   288     QRectF geometryWithin(qreal x, qreal y, qreal width, qreal height, qreal rowDescent) const;
   277 
   289 
   278     QGraphicsLayoutItem *layoutItem() const { return q_layoutItem; }
   290     QGraphicsLayoutItem *layoutItem() const { return q_layoutItem; }
   279 
   291 
   280     void setGeometry(const QRectF &rect);
   292     void setGeometry(const QRectF &rect);
   281     void transpose();
   293     void transpose();
   282     void insertOrRemoveRows(int row, int delta, Qt::Orientation orientation = Qt::Vertical);
   294     void insertOrRemoveRows(int row, int delta, Qt::Orientation orientation = Qt::Vertical);
   283     QSizeF effectiveMaxSize() const;
   295     QSizeF effectiveMaxSize(const QSizeF &constraint) const;
   284 
   296 
   285 #ifdef QT_DEBUG
   297 #ifdef QT_DEBUG
   286     void dump(int indent = 0) const;
   298     void dump(int indent = 0) const;
   287 #endif
   299 #endif
   288 
   300 
   370     void setGeometries(const QLayoutStyleInfo &styleInfo, const QRectF &contentsGeometry);
   382     void setGeometries(const QLayoutStyleInfo &styleInfo, const QRectF &contentsGeometry);
   371     QRectF cellRect(const QLayoutStyleInfo &styleInfo, const QRectF &contentsGeometry, int row,
   383     QRectF cellRect(const QLayoutStyleInfo &styleInfo, const QRectF &contentsGeometry, int row,
   372                     int column, int rowSpan, int columnSpan) const;
   384                     int column, int rowSpan, int columnSpan) const;
   373     QSizeF sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHint which,
   385     QSizeF sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHint which,
   374                     const QSizeF &constraint) const;
   386                     const QSizeF &constraint) const;
       
   387 
       
   388     // heightForWidth / widthForHeight support
       
   389     QSizeF dynamicallyConstrainedSizeHint(Qt::SizeHint which, const QSizeF &constraint) const;
       
   390     bool ensureDynamicConstraint() const;
       
   391     bool hasDynamicConstraint() const;
       
   392     Qt::Orientation constraintOrientation() const;
       
   393 
       
   394 
   375     QSizePolicy::ControlTypes controlTypes(LayoutSide side) const;
   395     QSizePolicy::ControlTypes controlTypes(LayoutSide side) const;
   376     void transpose();
   396     void transpose();
   377     void setVisualDirection(Qt::LayoutDirection direction);
   397     void setVisualDirection(Qt::LayoutDirection direction);
   378     Qt::LayoutDirection visualDirection() const;
   398     Qt::LayoutDirection visualDirection() const;
   379 #ifdef QT_DEBUG
   399 #ifdef QT_DEBUG
   403     Qt::LayoutDirection m_visualDirection;
   423     Qt::LayoutDirection m_visualDirection;
   404 
   424 
   405     // Lazily computed from the above user input
   425     // Lazily computed from the above user input
   406     mutable int q_cachedEffectiveFirstRows[NOrientations];
   426     mutable int q_cachedEffectiveFirstRows[NOrientations];
   407     mutable int q_cachedEffectiveLastRows[NOrientations];
   427     mutable int q_cachedEffectiveLastRows[NOrientations];
       
   428     mutable quint8 q_cachedConstraintOrientation : 2;
   408 
   429 
   409     // Layout item input
   430     // Layout item input
   410     mutable QLayoutStyleInfo q_cachedDataForStyleInfo;
   431     mutable QLayoutStyleInfo q_cachedDataForStyleInfo;
   411     mutable QGridLayoutRowData q_columnData;
   432     mutable QGridLayoutRowData q_columnData;
   412     mutable QGridLayoutRowData q_rowData;
   433     mutable QGridLayoutRowData q_rowData;