Eneboo - Documentación para desarrolladores
src/qt/src/kernel/qlayoutengine_p.h
Ir a la documentación de este archivo.
00001 /****************************************************************************
00002 ** $Id: qt/qlayoutengine_p.h   3.3.8   edited Jan 11 14:46 $
00003 **
00004 ** Internal header file.
00005 **
00006 ** Created : 981027
00007 **
00008 ** Copyright (C) 1998-2007 Trolltech ASA.  All rights reserved.
00009 **
00010 ** This file is part of the kernel module of the Qt GUI Toolkit.
00011 **
00012 ** This file may be distributed under the terms of the Q Public License
00013 ** as defined by Trolltech ASA of Norway and appearing in the file
00014 ** LICENSE.QPL included in the packaging of this file.
00015 **
00016 ** This file may be distributed and/or modified under the terms of the
00017 ** GNU General Public License version 2 as published by the Free Software
00018 ** Foundation and appearing in the file LICENSE.GPL included in the
00019 ** packaging of this file.
00020 **
00021 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
00022 ** licenses may use this file in accordance with the Qt Commercial License
00023 ** Agreement provided with the Software.
00024 **
00025 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00026 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00027 **
00028 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
00029 **   information about Qt Commercial License Agreements.
00030 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
00031 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
00032 **
00033 ** Contact info@trolltech.com if any conditions of this licensing are
00034 ** not clear to you.
00035 **
00036 **********************************************************************/
00037 
00038 #ifndef QLAYOUTENGINE_P_H
00039 #define QLAYOUTENGINE_P_H
00040 
00041 #ifndef QLAYOUT_H
00042     #error "Need to include qlayout.h before including qlayoutengine_p.h"
00043 #endif
00044 
00045 //
00046 //  W A R N I N G
00047 //  -------------
00048 //
00049 // This file is not part of the Qt API.  It exists for the convenience
00050 // of qlayout.cpp, qlayoutengine.cpp, qmainwindow.cpp and qsplitter.cpp.
00051 // This header file may change from version to version without notice,
00052 // or even be removed.
00053 //
00054 // We mean it.
00055 //
00056 //
00057 
00058 
00059 #ifndef QT_H
00060 #include "qabstractlayout.h"
00061 #endif // QT_H
00062 
00063 #ifndef QT_NO_LAYOUT
00064 
00065 struct QLayoutStruct
00066 {
00067     inline void init( int stretchFactor = 0, int spacing = 0 ) {
00068         stretch = stretchFactor;
00069         minimumSize = sizeHint = spacing;
00070         maximumSize = QLAYOUTSIZE_MAX;
00071         expansive = FALSE;
00072         empty = TRUE;
00073     }
00074 
00075     QCOORD smartSizeHint() {
00076         return ( stretch > 0 ) ? minimumSize : sizeHint;
00077     }
00078 
00079     // parameters
00080     int stretch;
00081     QCOORD sizeHint;
00082     QCOORD maximumSize;
00083     QCOORD minimumSize;
00084     bool expansive;
00085     bool empty;
00086 
00087     // temporary storage
00088     bool done;
00089 
00090     // result
00091     int pos;
00092     int size;
00093 };
00094 
00095 
00096 Q_EXPORT void qGeomCalc( QMemArray<QLayoutStruct> &chain, int start, int count,
00097                          int pos, int space, int spacer );
00098 Q_EXPORT QSize qSmartMinSize( const QWidgetItem *i );
00099 Q_EXPORT QSize qSmartMinSize( QWidget *w );
00100 Q_EXPORT QSize qSmartMaxSize( const QWidgetItem *i, int align = 0 );
00101 Q_EXPORT QSize qSmartMaxSize( QWidget *w, int align = 0 );
00102 
00103 
00104 /*
00105   Modify total maximum (max) and total expansion (exp)
00106   when adding boxmax/boxexp.
00107 
00108   Expansive boxes win over non-expansive boxes.
00109 */
00110 static inline void qMaxExpCalc( QCOORD & max, bool &exp,
00111                                 QCOORD boxmax, bool boxexp )
00112 {
00113     if ( exp ) {
00114         if ( boxexp )
00115             max = QMAX( max, boxmax );
00116     } else {
00117         if ( boxexp )
00118             max = boxmax;
00119         else
00120             max = QMIN( max, boxmax );
00121     }
00122     exp = exp || boxexp;
00123 }
00124 
00125 #endif //QT_NO_LAYOUT
00126 #endif
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'