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 
45 
46 
47 //=============================================================================
48 //
49 // CLASS QtMultiViewLayout - IMPLEMENTATION
50 //
51 //=============================================================================
52 
53 //== INCLUDES =================================================================
54 
56 #include <QGraphicsLayout>
57 #include <QGraphicsLayoutItem>
58 #include <QGraphicsWidget>
59 
60 //== NAMESPACES ===============================================================
61 
62 //== CLASS DEFINITION =========================================================
63 
64 
68 class DLLEXPORT QtMultiViewLayout : public QGraphicsLayout
69 {
70  public:
71 
74  /*
75  * #############
76  * # #
77  * # #
78  * # 1 #
79  * # #
80  * # #
81  * #############
82  */
83  SingleView,
84  /*
85  * #############
86  * # # #
87  * # # #
88  * # 1 # 2 #
89  * # # #
90  * # # #
91  * #############
92  */
93  DoubleView,
94  /*
95  * #############
96  * # 1 # 2 #
97  * # # #
98  * #############
99  * # 3 # 4 #
100  * # # #
101  * #############
102  */
103  Grid,
104  /*
105  * #############
106  * # # 2 #
107  * # #####
108  * # 1 # 3 #
109  * # #####
110  * # # 4 #
111  * #############
112  */
113  HSplit
114  };
115 
116  explicit QtMultiViewLayout (QGraphicsLayoutItem * _parent = 0);
117 
119  void addItem (QGraphicsWidget *_item, unsigned int _pos);
120 
122  void setMode (MultiViewMode _mode);
123 
125  MultiViewMode mode() const { return mode_;};
126 
128  void setSpacing (unsigned int _s);
129 
131  void setPrimary (unsigned int _i);
132 
133 
135  virtual int count() const;
136  virtual QGraphicsLayoutItem * itemAt(int _i) const;
137  virtual void removeAt (int _index);
138 
139  virtual QSizeF sizeHint(Qt::SizeHint _which, const QSizeF & _constraint = QSizeF()) const;
140 
142  virtual void setGeometry(const QRectF & rect);
143 
144 
145  private:
146 
148  void reLayout ();
149 
152 
154  unsigned int spacing_;
155 
157  QGraphicsWidget *items_[4];
158 
160  unsigned int primary_;
161 
162 };
163 
164 //=============================================================================
165 
166 //=============================================================================
unsigned int primary_
Primary element.
unsigned int spacing_
Spacing.
MultiViewMode mode_
current modes
MultiViewMode mode() const
Retruns current layout modes.
MultiViewMode
MultiView display modes.
#define DLLEXPORT