home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / qt3_emx.zip / include / private / qlayoutengine_p.h < prev    next >
C/C++ Source or Header  |  2001-10-11  |  3KB  |  110 lines

  1. /****************************************************************************
  2. ** $Id:  qt/qlayoutengine_p.h   3.0.0   edited Jun 22 12:24 $
  3. **
  4. ** Internal header file.
  5. **
  6. ** Created : 981027
  7. **
  8. ** Copyright (C) 1998-99 by Trolltech AS.  All rights reserved.
  9. **
  10. ** This file is part of the kernel module of the Qt GUI Toolkit.
  11. **
  12. ** This file may be distributed under the terms of the Q Public License
  13. ** as defined by Trolltech AS of Norway and appearing in the file
  14. ** LICENSE.QPL included in the packaging of this file.
  15. **
  16. ** This file may be distributed and/or modified under the terms of the
  17. ** GNU General Public License version 2 as published by the Free Software
  18. ** Foundation and appearing in the file LICENSE.GPL included in the
  19. ** packaging of this file.
  20. **
  21. ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
  22. ** licenses may use this file in accordance with the Qt Commercial License
  23. ** Agreement provided with the Software.
  24. **
  25. ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  26. ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  27. **
  28. ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
  29. **   information about Qt Commercial License Agreements.
  30. ** See http://www.trolltech.com/qpl/ for QPL licensing information.
  31. ** See http://www.trolltech.com/gpl/ for GPL licensing information.
  32. **
  33. ** Contact info@trolltech.com if any conditions of this licensing are
  34. ** not clear to you.
  35. **
  36. **********************************************************************/
  37.  
  38. #ifndef QLAYOUTENGINE_P_H
  39. #define QLAYOUTENGINE_P_H
  40.  
  41.  
  42. //
  43. //  W A R N I N G
  44. //  -------------
  45. //
  46. // This file is not part of the Qt API.  It exists for the convenience
  47. // of qlayout.cpp, qlayoutengine.cpp, qmainwindow.cpp and qsplitter.cpp.
  48. // This header file may change from version to version without notice,
  49. // or even be removed.
  50. //
  51. // We mean it.
  52. //
  53. //
  54.  
  55.  
  56. #ifndef QT_H
  57. #include "qabstractlayout.h"
  58. #endif // QT_H
  59.  
  60. #ifndef QT_NO_LAYOUT
  61. struct QLayoutStruct
  62. {
  63.     void init() { stretch = 0; initParameters(); }
  64.     void initParameters() { minimumSize = sizeHint = 0;
  65.     maximumSize = QWIDGETSIZE_MAX; expansive = FALSE; empty = TRUE; }
  66.     //permanent storage:
  67.     int stretch;
  68.     //parameters:
  69.     QCOORD sizeHint;
  70.     QCOORD maximumSize;
  71.     QCOORD minimumSize;
  72.     bool expansive;
  73.     bool empty;
  74.     //temporary storage:
  75.     bool done;
  76.     //result:
  77.     int pos;
  78.     int size;
  79. };
  80.  
  81.  
  82. void qGeomCalc( QMemArray<QLayoutStruct> &chain, int start, int count, int pos,
  83.               int space, int spacer );
  84.  
  85.  
  86.  
  87. /*
  88.   Modify total maximum (max) and total expansion (exp)
  89.   when adding boxmax/boxexp.
  90.  
  91.   Expansive boxes win over non-expansive boxes.
  92. */
  93. static inline void qMaxExpCalc( QCOORD & max, bool &exp,
  94.                    QCOORD boxmax, bool boxexp )
  95. {
  96.     if ( exp ) {
  97.     if ( boxexp )
  98.         max = QMAX( max, boxmax );
  99.     } else {
  100.     if ( boxexp )
  101.         max = boxmax;
  102.     else
  103.         max = QMIN( max, boxmax );
  104.     }
  105.     exp = exp || boxexp;
  106. }
  107.  
  108. #endif //QT_NO_LAYOUT
  109. #endif
  110.