Developer Documentation
QtMultiViewLayout.hh
1 /*===========================================================================*\
2 * *
3 * OpenFlipper *
4  * Copyright (c) 2001-2015, RWTH-Aachen University *
5  * Department of Computer Graphics and Multimedia *
6  * All rights reserved. *
7  * www.openflipper.org *
8  * *
9  *---------------------------------------------------------------------------*
10  * This file is part of OpenFlipper. *
11  *---------------------------------------------------------------------------*
12  * *
13  * Redistribution and use in source and binary forms, with or without *
14  * modification, are permitted provided that the following conditions *
15  * are met: *
16  * *
17  * 1. Redistributions of source code must retain the above copyright notice, *
18  * this list of conditions and the following disclaimer. *
19  * *
20  * 2. Redistributions in binary form must reproduce the above copyright *
21  * notice, this list of conditions and the following disclaimer in the *
22  * documentation and/or other materials provided with the distribution. *
23  * *
24  * 3. Neither the name of the copyright holder nor the names of its *
25  * contributors may be used to endorse or promote products derived from *
26  * this software without specific prior written permission. *
27  * *
28  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39 * *
40 \*===========================================================================*/
41 
42 /*===========================================================================*\
43 * *
44 * $Revision$ *
45 * $LastChangedBy$ *
46 * $Date$ *
47 * *
48 \*===========================================================================*/
49 
50 
51 
52 
53 //=============================================================================
54 //
55 // CLASS QtMultiViewLayout - IMPLEMENTATION
56 //
57 //=============================================================================
58 
59 //== INCLUDES =================================================================
60 
62 #include <QGraphicsLayout>
63 #include <QGraphicsLayoutItem>
64 #include <QGraphicsWidget>
65 
66 //== NAMESPACES ===============================================================
67 
68 //== CLASS DEFINITION =========================================================
69 
70 
74 class DLLEXPORT QtMultiViewLayout : public QGraphicsLayout
75 {
76  public:
77 
80  /*
81  * #############
82  * # #
83  * # #
84  * # 1 #
85  * # #
86  * # #
87  * #############
88  */
89  SingleView,
90  /*
91  * #############
92  * # # #
93  * # # #
94  * # 1 # 2 #
95  * # # #
96  * # # #
97  * #############
98  */
99  DoubleView,
100  /*
101  * #############
102  * # 1 # 2 #
103  * # # #
104  * #############
105  * # 3 # 4 #
106  * # # #
107  * #############
108  */
109  Grid,
110  /*
111  * #############
112  * # # 2 #
113  * # #####
114  * # 1 # 3 #
115  * # #####
116  * # # 4 #
117  * #############
118  */
119  HSplit
120  };
121 
122  QtMultiViewLayout (QGraphicsLayoutItem * _parent = 0);
123 
125  void addItem (QGraphicsWidget *_item, unsigned int _pos);
126 
128  void setMode (MultiViewMode _mode);
129 
131  MultiViewMode mode() const { return mode_;};
132 
134  void setSpacing (unsigned int _s);
135 
137  void setPrimary (unsigned int _i);
138 
139 
141  virtual int count() const;
142  virtual QGraphicsLayoutItem * itemAt(int _i) const;
143  virtual void removeAt (int _index);
144 
145  virtual QSizeF sizeHint(Qt::SizeHint _which, const QSizeF & _constraint = QSizeF()) const;
146 
148  virtual void setGeometry(const QRectF & rect);
149 
150 
151  private:
152 
154  void reLayout ();
155 
158 
160  unsigned int spacing_;
161 
163  QGraphicsWidget *items_[4];
164 
166  unsigned int primary_;
167 
168 };
169 
170 //=============================================================================
171 
172 //=============================================================================
unsigned int primary_
Primary element.
#define DLLEXPORT
MultiViewMode mode() const
Retruns current layout modes.
MultiViewMode
MultiView display modes.
unsigned int spacing_
Spacing.
MultiViewMode mode_
current modes