summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/big-screen/big-screen.pro2
-rw-r--r--libopie/big-screen/osplitter.cpp35
-rw-r--r--libopie/big-screen/osplitter.h11
-rw-r--r--libopie/libopie.pro2
4 files changed, 44 insertions, 6 deletions
diff --git a/libopie/big-screen/big-screen.pro b/libopie/big-screen/big-screen.pro
new file mode 100644
index 0000000..e5111f2
--- a/dev/null
+++ b/libopie/big-screen/big-screen.pro
@@ -0,0 +1,2 @@
1HEADERS += big-screen/obigscreen_p.h big-screen/osplitter.h
2SOURCES += big-screen/osplitter.cpp \ No newline at end of file
diff --git a/libopie/big-screen/osplitter.cpp b/libopie/big-screen/osplitter.cpp
index ce53ee1..1cd0fd5 100644
--- a/libopie/big-screen/osplitter.cpp
+++ b/libopie/big-screen/osplitter.cpp
@@ -1,318 +1,345 @@
1/* 1/*
2               =. This file is part of the OPIE Project 2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 hOlgAr <zecke@handhelds.org> 3             .=l. Copyright (c) 2003 hOlgAr <zecke@handhelds.org>
4           .>+-= 4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can 5 _;:,     .>    :=|. This library is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under 6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 7:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that 12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with 21  -_. . .   )=.  = Library General Public License along with
22    --        :-=` this library; see the file COPYING.LIB. 22    --        :-=` this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation, 23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330, 24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29#include <qvaluelist.h> 29#include <qvaluelist.h>
30#include <qvbox.h> 30#include <qvbox.h>
31 31
32#include <opie/otabwidget.h> 32#include <opie/otabwidget.h>
33 33
34#include "osplitter.h" 34#include "osplitter.h"
35 35
36 36
37/** 37/**
38 * 38 *
39 * This is the constructor of OSplitter 39 * This is the constructor of OSplitter
40 * You might want to call setSizeChange to tell 40 * You might want to call setSizeChange to tell
41 * OSplitter to change its layout when a specefic 41 * OSplitter to change its layout when a specefic
42 * mark was crossed. OSplitter sets a default value. 42 * mark was crossed. OSplitter sets a default value.
43 * 43 *
44 * You cann add widget with addWidget to the OSplitter. 44 * You cann add widget with addWidget to the OSplitter.
45 * 45 *
46 * @param orient The orientation wether to layout horizontal or vertical 46 * @param orient The orientation wether to layout horizontal or vertical
47 * @param parent The parent of this widget 47 * @param parent The parent of this widget
48 * @param name The name passed on to QObject 48 * @param name The name passed on to QObject
49 * @param fl Additional widgets flags passed to QWidget 49 * @param fl Additional widgets flags passed to QWidget
50 * 50 *
51 * @short single c'tor of the OSplitter 51 * @short single c'tor of the OSplitter
52 */ 52 */
53OSplitter::OSplitter( Orientation orient, QWidget* parent, const char* name, WFlags fl ) 53OSplitter::OSplitter( Orientation orient, QWidget* parent, const char* name, WFlags fl )
54 : QFrame( parent, name, fl ) 54 : QFrame( parent, name, fl )
55{ 55{
56 m_orient = orient; 56 m_orient = orient;
57 m_hbox = 0; 57 m_hbox = 0;
58 m_size_policy = 330; 58 m_size_policy = 330;
59 setFontPropagation( AllChildren ); 59 setFontPropagation( AllChildren );
60 setPalettePropagation( AllChildren ); 60 setPalettePropagation( AllChildren );
61 61
62 m_tabWidget = new OTabWidget(this); 62 /* start by default with the tab widget */
63 m_tabWidget = 0;
64 changeTab();
65
63} 66}
64 67
65 68
66/** 69/**
67 * Destructor destructs this object and cleans up. All child 70 * Destructor destructs this object and cleans up. All child
68 * widgets will be deleted 71 * widgets will be deleted
69 * @see addWidget 72 * @see addWidget
70 */ 73 */
71OSplitter::~OSplitter() { 74OSplitter::~OSplitter() {
72 delete m_hbox; 75 delete m_hbox;
73 delete m_tabWidget; 76 delete m_tabWidget;
74} 77}
75 78
76 79
77/** 80/**
78 * This function sets the size change policy of the splitter. 81 * This function sets the size change policy of the splitter.
79 * If this size marked is crossed the splitter will relayout. 82 * If this size marked is crossed the splitter will relayout.
80 * Note that depending on the set Orientation it'll either look 83 * Note: that depending on the set Orientation it'll either look
81 * at the width or height. 84 * at the width or height.
85 * Note: If you want to from side to side view to tabbed view you need
86 * to make sure that the size you supply is not smaller than the minimum
87 * size of your added widgets. Note that if you use widgets like QComboBoxes
88 * you need to teach them to accept smaller sizes as well @see QWidget::setSizePolicy
82 * 89 *
83 * @param width_height The mark that will be watched. Interpreted depending on the Orientation of the Splitter. 90 * @param width_height The mark that will be watched. Interpreted depending on the Orientation of the Splitter.
84 * @return void 91 * @return void
85 */ 92 */
86void OSplitter::setSizeChange( int width_height ) { 93void OSplitter::setSizeChange( int width_height ) {
87 m_size_policy = width_height; 94 m_size_policy = width_height;
88 QSize sz(width(), height() ); 95 QSize sz(width(), height() );
89 QResizeEvent ev(sz, sz ); 96 QResizeEvent ev(sz, sz );
90 resizeEvent(&ev); 97 resizeEvent(&ev);
91} 98}
92 99
93/** 100/**
94 * Adds a widget to the Splitter. The widgets gets inserted 101 * Adds a widget to the Splitter. The widgets gets inserted
95 * at the end of either the Box or TabWidget. 102 * at the end of either the Box or TabWidget.
96 * Ownership gets transfered and the widgets gets reparented. 103 * Ownership gets transfered and the widgets gets reparented.
97 * Note: icon and label is only available on small screensizes 104 * Note: icon and label is only available on small screensizes
98 * if size is smaller than the mark 105 * if size is smaller than the mark
99 * Warning: No null checking of the widget is done. Only on debug 106 * Warning: No null checking of the widget is done. Only on debug
100 * a message will be outputtet 107 * a message will be outputtet
101 * 108 *
102 * @param wid The widget which will be added 109 * @param wid The widget which will be added
103 * @param icon The icon of the possible Tab 110 * @param icon The icon of the possible Tab
104 * @param label The label of the possible Tab 111 * @param label The label of the possible Tab
105 */ 112 */
106void OSplitter::addWidget( QWidget* wid, const QString& icon, const QString& label ) { 113void OSplitter::addWidget( QWidget* wid, const QString& icon, const QString& label ) {
107#ifdef DEBUG 114#ifdef DEBUG
108 if (!wid ) { 115 if (!wid ) {
109 qWarning("Widget is not valid!"); 116 qWarning("Widget is not valid!");
110 return; 117 return;
111 } 118 }
112#endif 119#endif
113 Opie::OSplitterContainer cont; 120 Opie::OSplitterContainer cont;
114 cont.widget = wid; 121 cont.widget = wid;
115 cont.icon =icon; 122 cont.icon =icon;
116 cont.name = label; 123 cont.name = label;
117 124
118 m_container.append( cont ); 125 m_container.append( cont );
119 126
120 if (m_hbox ) 127 if (m_hbox )
121 addToBox( cont ); 128 addToBox( cont );
122 else 129 else
123 addToTab( cont ); 130 addToTab( cont );
124} 131}
125 132
126 133
127/** 134/**
128 * Removes the widget from the tab widgets if necessary. 135 * Removes the widget from the tab widgets if necessary.
129 * OSplitter drops ownership of this widget and the widget 136 * OSplitter drops ownership of this widget and the widget
130 * will be reparented i tto 0. 137 * will be reparented i tto 0.
131 * The widget will not be deleted. 138 * The widget will not be deleted.
132 * 139 *
133 * @param w The widget to be removed 140 * @param w The widget to be removed
134 */ 141 */
135void OSplitter::removeWidget( QWidget* w) { 142void OSplitter::removeWidget( QWidget* w) {
136 ContainerList::Iterator it; 143 ContainerList::Iterator it;
137 for ( it = m_container.begin(); it != m_container.end(); ++it ) 144 for ( it = m_container.begin(); it != m_container.end(); ++it )
138 if ( (*it).widget == w ) 145 if ( (*it).widget == w )
139 break; 146 break;
140 147
141 if (it == m_container.end() ) 148 if (it == m_container.end() )
142 return; 149 return;
143 150
144 151
145 /* only tab needs to be removed.. box recognizes it */ 152 /* only tab needs to be removed.. box recognizes it */
146 if ( !m_hbox ) 153 if ( !m_hbox )
147 removeFromTab( w ); 154 removeFromTab( w );
148 155
149 156
150 /* Find reparent it and remove it from our list */ 157 /* Find reparent it and remove it from our list */
151 158
152 w->reparent( 0, 0, QPoint(0, 0)); 159 w->reparent( 0, 0, QPoint(0, 0));
153 it = m_container.remove( it ); 160 it = m_container.remove( it );
154 161
155} 162}
156 163
157 164
158/** 165/**
159 * This method will give focus to the widget. If in a tabwidget 166 * This method will give focus to the widget. If in a tabwidget
160 * the tabbar will be changed 167 * the tabbar will be changed
161 * 168 *
162 * @param w The widget which will be set the current one 169 * @param w The widget which will be set the current one
163 */ 170 */
164void OSplitter::setCurrentWidget( QWidget* w) { 171void OSplitter::setCurrentWidget( QWidget* w) {
165 if (m_tabWidget ) 172 if (m_tabWidget )
166 m_tabWidget->setCurrentTab( w ); 173 m_tabWidget->setCurrentTab( w );
167// else 174// else
168 // m_hbox->setFocus( w ); 175 // m_hbox->setFocus( w );
169 176
170} 177}
171 178
172/** 179/**
173 * This is an overloaded member function and only differs in the 180 * This is an overloaded member function and only differs in the
174 * argument it takes. 181 * argument it takes.
175 * Searches list of widgets for label. It'll pick the first label it finds 182 * Searches list of widgets for label. It'll pick the first label it finds
176 * 183 *
177 * @param label Label to look for. First match will be taken 184 * @param label Label to look for. First match will be taken
178 */ 185 */
179void OSplitter::setCurrentWidget( const QString& label ) { 186void OSplitter::setCurrentWidget( const QString& label ) {
180 ContainerList::Iterator it; 187 ContainerList::Iterator it;
181 for (it = m_container.begin(); it != m_container.end(); ++it ) { 188 for (it = m_container.begin(); it != m_container.end(); ++it ) {
182 if ( (*it).name == label ) { 189 if ( (*it).name == label ) {
183 setCurrentWidget( (*it).widget ); 190 setCurrentWidget( (*it).widget );
184 break; 191 break;
185 } 192 }
186 } 193 }
187} 194}
188 195
189/** 196/**
197 * This will only work when the TabWidget is active
198 * If everything is visible this signal is kindly ignored
199 * @see OTabWidget::setCurrentTab(int)
200 *
201 * @param tab The tab to make current
202 */
203void OSplitter::setCurrentWidget( int tab ) {
204 if (m_tabWidget )
205 m_tabWidget->setCurrentTab( tab );
206}
207
208/**
190 * return the currently activated widget if in tab widget mode 209 * return the currently activated widget if in tab widget mode
191 * or null because all widgets are visible 210 * or null because all widgets are visible
192 */ 211 */
193QWidget* OSplitter::currentWidget() { 212QWidget* OSplitter::currentWidget() {
194 if ( m_hbox ) 213 if ( m_hbox )
195 return 0l; 214 return 0l;
196 else 215 else
197 return m_tabWidget->currentWidget(); 216 return m_tabWidget->currentWidget();
198} 217}
199 218
200#if 0 219#if 0
201/** 220/**
202 * @reimplented for internal reasons 221 * @reimplented for internal reasons
203 * returns the sizeHint of one of its sub widgets 222 * returns the sizeHint of one of its sub widgets
204 */ 223 */
205QSize OSplitter::sizeHint()const { 224QSize OSplitter::sizeHint()const {
225 return QSize(10, 10);
226
206 if (m_hbox ) 227 if (m_hbox )
207 return m_hbox->sizeHint(); 228 return m_hbox->sizeHint();
208 else 229 else
209 return m_tabWidget->sizeHint(); 230 return m_tabWidget->sizeHint();
210} 231}
232
233QSize OSplitter::minimumSizeHint()const {
234 return QSize(10, 10 );
235}
211#endif 236#endif
212 237
213/** 238/**
214 * @reimplemented for internal reasons 239 * @reimplemented for internal reasons
215 */ 240 */
216void OSplitter::resizeEvent( QResizeEvent* res ) { 241void OSplitter::resizeEvent( QResizeEvent* res ) {
217 QFrame::resizeEvent( res ); 242 QFrame::resizeEvent( res );
218 /* 243 /*
219 * 244 *
220 */ 245 */
221// qWarning("Old size was width = %d height = %d", res->oldSize().width(), res->oldSize().height() ); 246// qWarning("Old size was width = %d height = %d", res->oldSize().width(), res->oldSize().height() );
222// qWarning("New size is width = %d height = %d", res->size().width(), res->size().height() ); 247 qWarning("New size is width = %d height = %d", res->size().width(), res->size().height() );
223 if ( res->size().width() > m_size_policy && 248 if ( res->size().width() > m_size_policy &&
224 m_orient == Horizontal ) { 249 m_orient == Horizontal ) {
225 changeHBox(); 250 changeHBox();
226 }else if ( (res->size().width() <= m_size_policy && 251 }else if ( (res->size().width() <= m_size_policy &&
227 m_orient == Horizontal ) || 252 m_orient == Horizontal ) ||
228 (res->size().height() <= m_size_policy && 253 (res->size().height() <= m_size_policy &&
229 m_orient == Vertical ) ) { 254 m_orient == Vertical ) ) {
230 changeTab(); 255 changeTab();
231 }else if ( res->size().height() > m_size_policy && 256 }else if ( res->size().height() > m_size_policy &&
232 m_size_policy == Vertical ) { 257 m_size_policy == Vertical ) {
233 changeVBox(); 258 changeVBox();
234 } 259 }
235} 260}
236 261
237 262
238void OSplitter::addToTab( const Opie::OSplitterContainer& con ) { 263void OSplitter::addToTab( const Opie::OSplitterContainer& con ) {
239 QWidget *wid = con.widget; 264 QWidget *wid = con.widget;
240// not needed widgetstack will reparent as well wid.reparent(m_tabWidget, wid->getWFlags(), QPoint(0, 0) ); 265// not needed widgetstack will reparent as well wid.reparent(m_tabWidget, wid->getWFlags(), QPoint(0, 0) );
241 m_tabWidget->addTab( wid, con.icon, con.name ); 266 m_tabWidget->addTab( wid, con.icon, con.name );
242} 267}
243 268
244void OSplitter::addToBox( const Opie::OSplitterContainer& con ) { 269void OSplitter::addToBox( const Opie::OSplitterContainer& con ) {
245 QWidget* wid = con.widget; 270 QWidget* wid = con.widget;
246 wid->reparent(m_hbox, 0, QPoint(0, 0) ); 271 wid->reparent(m_hbox, 0, QPoint(0, 0) );
247} 272}
248 273
249void OSplitter::removeFromTab( QWidget* wid ) { 274void OSplitter::removeFromTab( QWidget* wid ) {
250 m_tabWidget->removePage( wid ); 275 m_tabWidget->removePage( wid );
251} 276}
252 277
253void OSplitter::changeTab() { 278void OSplitter::changeTab() {
254 if (m_tabWidget ) { 279 if (m_tabWidget ) {
255 m_tabWidget->setGeometry( frameRect() ); 280 m_tabWidget->setGeometry( frameRect() );
256 return; 281 return;
257 } 282 }
258 283
259 qWarning(" New Tab Widget "); 284 qWarning(" New Tab Widget ");
260 /* 285 /*
261 * and add all widgets this will reparent them 286 * and add all widgets this will reparent them
262 * delete m_hbox set it to 0 287 * delete m_hbox set it to 0
263 * 288 *
264 */ 289 */
265 m_tabWidget = new OTabWidget( this ); 290 m_tabWidget = new OTabWidget( this );
291 connect(m_tabWidget, SIGNAL(currentChanged(QWidget*) ),
292 this, SIGNAL(currentChanged(QWidget*) ) );
266 293
267 for ( ContainerList::Iterator it = m_container.begin(); it != m_container.end(); ++it ) { 294 for ( ContainerList::Iterator it = m_container.begin(); it != m_container.end(); ++it ) {
268 qWarning("Widget is %s", (*it).name.latin1() ); 295 qWarning("Widget is %s", (*it).name.latin1() );
269 addToTab( (*it) ); 296 addToTab( (*it) );
270 } 297 }
271 298
272 delete m_hbox; 299 delete m_hbox;
273 m_hbox = 0; 300 m_hbox = 0;
274 m_tabWidget->setGeometry( frameRect() ); 301 m_tabWidget->setGeometry( frameRect() );
275 m_tabWidget->show(); 302 m_tabWidget->show();
276 303
277} 304}
278 305
279void OSplitter::changeHBox() { 306void OSplitter::changeHBox() {
280 if (m_hbox ) { 307 if (m_hbox ) {
281 m_hbox->setGeometry( frameRect() ); 308 m_hbox->setGeometry( frameRect() );
282 return; 309 return;
283 } 310 }
284 311
285 qWarning("new HBox"); 312 qWarning("new HBox");
286 m_hbox = new QHBox( this ); 313 m_hbox = new QHBox( this );
287 commonChangeBox(); 314 commonChangeBox();
288 delete m_tabWidget; 315 delete m_tabWidget;
289 m_tabWidget = 0; 316 m_tabWidget = 0;
290 m_hbox->setGeometry( frameRect() ); 317 m_hbox->setGeometry( frameRect() );
291 m_hbox->show(); 318 m_hbox->show();
292} 319}
293 320
294void OSplitter::changeVBox() { 321void OSplitter::changeVBox() {
295 if (m_hbox ) { 322 if (m_hbox ) {
296 m_hbox->setGeometry( frameRect() ); 323 m_hbox->setGeometry( frameRect() );
297 return; 324 return;
298 } 325 }
299 326
300 qWarning("New VBOX"); 327 qWarning("New VBOX");
301 m_hbox = new QVBox( this ); 328 m_hbox = new QVBox( this );
302 329
303 commonChangeBox(); 330 commonChangeBox();
304 delete m_tabWidget; 331 delete m_tabWidget;
305 m_tabWidget = 0; 332 m_tabWidget = 0;
306 m_hbox->setGeometry( frameRect() ); 333 m_hbox->setGeometry( frameRect() );
307 m_hbox->show(); 334 m_hbox->show();
308} 335}
309 336
310 337
311void OSplitter::commonChangeBox() { 338void OSplitter::commonChangeBox() {
312 for (ContainerList::Iterator it = m_container.begin(); it != m_container.end(); ++it ) { 339 for (ContainerList::Iterator it = m_container.begin(); it != m_container.end(); ++it ) {
313 qWarning("Adding to box %s", (*it).name.latin1() ); 340 qWarning("Adding to box %s", (*it).name.latin1() );
314 addToBox( (*it) ); 341 addToBox( (*it) );
315 } 342 }
316 delete m_tabWidget; 343 delete m_tabWidget;
317 m_tabWidget = 0; 344 m_tabWidget = 0;
318} 345}
diff --git a/libopie/big-screen/osplitter.h b/libopie/big-screen/osplitter.h
index bc4f80b..db69fc6 100644
--- a/libopie/big-screen/osplitter.h
+++ b/libopie/big-screen/osplitter.h
@@ -1,104 +1,113 @@
1/* 1/*
2               =. This file is part of the OPIE Project 2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 hOlgAr <zecke@handhelds.org> 3             .=l. Copyright (c) 2003 hOlgAr <zecke@handhelds.org>
4           .>+-= 4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can 5 _;:,     .>    :=|. This library is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under 6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 7:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that 12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with 21  -_. . .   )=.  = Library General Public License along with
22    --        :-=` this library; see the file COPYING.LIB. 22    --        :-=` this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation, 23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330, 24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29#ifndef OPIE_SPLITTER_H 29#ifndef OPIE_SPLITTER_H
30#define OPIE_SPLITTER_H 30#define OPIE_SPLITTER_H
31 31
32#include <qstring.h> 32#include <qstring.h>
33 33
34#include <qframe.h> 34#include <qframe.h>
35#include <qvaluelist.h> 35#include <qvaluelist.h>
36 36
37#include "obigscreen_p.h" 37#include "obigscreen_p.h"
38 38
39/* forward declarations */ 39/* forward declarations */
40class OTabWidget; 40class OTabWidget;
41class QHBox; 41class QHBox;
42//template class QValueList<Opie::OSplitterContainer>; 42//template class QValueList<Opie::OSplitterContainer>;
43 43
44 44
45/** 45/**
46 * 46 *
47 * If you've widgets that could be placed side by side but you think 47 * If you've widgets that could be placed side by side but you think
48 * on small resolutions is not enough place but it would really make sense 48 * on small resolutions is not enough place but it would really make sense
49 * on bigger resolutions this class will help you. 49 * on bigger resolutions this class will help you.
50 * You can add as many widgets you want to it. Set a poliy on which width/height it 50 * You can add as many widgets you want to it. Set a poliy on which width/height it
51 * should switch the layout. 51 * should switch the layout.
52 * You can either say to place widgets vertical or horizontal. 52 * You can either say to place widgets vertical or horizontal.
53 * This class uses QHBox, QVBox and QTAbWidget internally. 53 * This class uses QHBox, QVBox and QTAbWidget internally.
54 * OSplitter takes ownership of the widgets 54 * OSplitter takes ownership of the widgets
55 * 55 *
56 * @since 1.2 56 * @since 1.2
57 * 57 *
58 * @short a small dynamically changing its layout to store two or more widgets side by side 58 * @short a small dynamically changing its layout to store two or more widgets side by side
59 * @version 0.1 59 * @version 0.1
60 * @author zecke 60 * @author zecke
61 */ 61 */
62class OSplitter : public QFrame{ 62class OSplitter : public QFrame{
63 Q_OBJECT 63 Q_OBJECT
64public: 64public:
65 typedef QValueList<Opie::OSplitterContainer> ContainerList; 65 typedef QValueList<Opie::OSplitterContainer> ContainerList;
66 OSplitter( Qt::Orientation = Horizontal, QWidget *parent = 0, 66 OSplitter( Qt::Orientation = Horizontal, QWidget *parent = 0,
67 const char* name = 0, WFlags fl = 0 ); 67 const char* name = 0, WFlags fl = 0 );
68 ~OSplitter(); 68 ~OSplitter();
69 69
70 void setSizeChange( int width_height ); 70 void setSizeChange( int width_height );
71 71
72 void addWidget( QWidget* wid, const QString& icon, const QString& label ); 72 void addWidget( QWidget* wid, const QString& icon, const QString& label );
73 void removeWidget( QWidget* ); 73 void removeWidget( QWidget* );
74 74
75 void setCurrentWidget( QWidget* ); 75 void setCurrentWidget( QWidget* );
76 void setCurrentWidget( const QString& label ); 76 void setCurrentWidget( const QString& label );
77 void setCurrentWidget( int );
77 QWidget* currentWidget(); 78 QWidget* currentWidget();
78 79
80signals:
81 /**
82 * Emitted if in tab and comes directly from the tab widget
83 *
84 */
85 void currentChanged( QWidget* );
86public:
79// QSize sizeHint()const; 87// QSize sizeHint()const;
88// QSize minimumSizeHint()const;
80 89
81protected: 90protected:
82 void resizeEvent( QResizeEvent* ); 91 void resizeEvent( QResizeEvent* );
83 92
84private: 93private:
85 void addToTab( const Opie::OSplitterContainer& ); 94 void addToTab( const Opie::OSplitterContainer& );
86 void addToBox( const Opie::OSplitterContainer& ); 95 void addToBox( const Opie::OSplitterContainer& );
87 void removeFromTab( QWidget* ); 96 void removeFromTab( QWidget* );
88 void changeTab(); 97 void changeTab();
89 void changeHBox(); 98 void changeHBox();
90 void changeVBox(); 99 void changeVBox();
91 void commonChangeBox(); 100 void commonChangeBox();
92 QHBox *m_hbox; 101 QHBox *m_hbox;
93 OTabWidget *m_tabWidget; 102 OTabWidget *m_tabWidget;
94 Orientation m_orient; 103 Orientation m_orient;
95 int m_size_policy; 104 int m_size_policy;
96 105
97 ContainerList m_container; 106 ContainerList m_container;
98 107
99 struct Private; 108 struct Private;
100 Private *d; 109 Private *d;
101}; 110};
102 111
103 112
104#endif 113#endif
diff --git a/libopie/libopie.pro b/libopie/libopie.pro
index 6fbd449..2148233 100644
--- a/libopie/libopie.pro
+++ b/libopie/libopie.pro
@@ -1,121 +1,121 @@
1TEMPLATE = lib 1TEMPLATE = lib
2CONFIG += qte warn_on release 2CONFIG += qte warn_on release
3HEADERS = ofontmenu.h \ 3HEADERS = ofontmenu.h \
4 ocolorbutton.h \ 4 ocolorbutton.h \
5 ofiledialog.h ofileselector.h \ 5 ofiledialog.h ofileselector.h \
6 ofileselector_p.h \ 6 ofileselector_p.h \
7 ocheckitem.h \ 7 ocheckitem.h \
8 xmltree.h \ 8 xmltree.h \
9 colordialog.h colorpopupmenu.h \ 9 colordialog.h colorpopupmenu.h \
10 oclickablelabel.h oprocctrl.h \ 10 oclickablelabel.h oprocctrl.h \
11 oprocess.h odevice.h odevicebutton.h \ 11 oprocess.h odevice.h odevicebutton.h \
12 otimepicker.h otabwidget.h \ 12 otimepicker.h otabwidget.h \
13 otabbar.h otabinfo.h \ 13 otabbar.h otabinfo.h \
14 ofontselector.h \ 14 ofontselector.h \
15 pim/opimrecord.h \ 15 pim/opimrecord.h \
16 pim/otodo.h \ 16 pim/otodo.h \
17 pim/orecordlist.h \ 17 pim/orecordlist.h \
18 pim/opimaccesstemplate.h \ 18 pim/opimaccesstemplate.h \
19 pim/opimaccessbackend.h \ 19 pim/opimaccessbackend.h \
20 pim/otodoaccess.h \ 20 pim/otodoaccess.h \
21 pim/otodoaccessbackend.h \ 21 pim/otodoaccessbackend.h \
22 pim/oconversion.h \ 22 pim/oconversion.h \
23 pim/ocontact.h \ 23 pim/ocontact.h \
24 pim/ocontactaccess.h \ 24 pim/ocontactaccess.h \
25 pim/ocontactaccessbackend.h \ 25 pim/ocontactaccessbackend.h \
26 pim/ocontactaccessbackend_xml.h \ 26 pim/ocontactaccessbackend_xml.h \
27 pim/ocontactaccessbackend_vcard.h \ 27 pim/ocontactaccessbackend_vcard.h \
28 pim/obackendfactory.h \ 28 pim/obackendfactory.h \
29 pim/opimcache.h \ 29 pim/opimcache.h \
30 pim/otodoaccessvcal.h \ 30 pim/otodoaccessvcal.h \
31 pim/orecur.h \ 31 pim/orecur.h \
32 pim/opimstate.h \ 32 pim/opimstate.h \
33 pim/opimxrefpartner.h \ 33 pim/opimxrefpartner.h \
34 pim/opimxref.h \ 34 pim/opimxref.h \
35 pim/opimxrefmanager.h \ 35 pim/opimxrefmanager.h \
36 pim/opimmaintainer.h \ 36 pim/opimmaintainer.h \
37 pim/opimnotify.h \ 37 pim/opimnotify.h \
38 pim/opimnotifymanager.h \ 38 pim/opimnotifymanager.h \
39 pim/opimmainwindow.h \ 39 pim/opimmainwindow.h \
40 pim/opimresolver.h \ 40 pim/opimresolver.h \
41 pim/oevent.h \ 41 pim/oevent.h \
42 pim/otimezone.h \ 42 pim/otimezone.h \
43 pim/odatebookaccess.h \ 43 pim/odatebookaccess.h \
44 pim/odatebookaccessbackend.h \ 44 pim/odatebookaccessbackend.h \
45 pim/odatebookaccessbackend_xml.h \ 45 pim/odatebookaccessbackend_xml.h \
46 orecurrancewidget.h \ 46 orecurrancewidget.h \
47 oticker.h owait.h 47 oticker.h owait.h
48 48
49SOURCES = ofontmenu.cc \ 49SOURCES = ofontmenu.cc \
50 ocolorbutton.cpp \ 50 ocolorbutton.cpp \
51 sharp_compat.cpp \ 51 sharp_compat.cpp \
52 xmltree.cc \ 52 xmltree.cc \
53 ofiledialog.cc ofileselector.cpp \ 53 ofiledialog.cc ofileselector.cpp \
54 ocheckitem.cpp \ 54 ocheckitem.cpp \
55 colordialog.cpp \ 55 colordialog.cpp \
56 colorpopupmenu.cpp oclickablelabel.cpp \ 56 colorpopupmenu.cpp oclickablelabel.cpp \
57 oprocctrl.cpp oprocess.cpp \ 57 oprocctrl.cpp oprocess.cpp \
58 odevice.cpp odevicebutton.cpp otimepicker.cpp \ 58 odevice.cpp odevicebutton.cpp otimepicker.cpp \
59 otabwidget.cpp otabbar.cpp \ 59 otabwidget.cpp otabbar.cpp \
60 ofontselector.cpp \ 60 ofontselector.cpp \
61 pim/otodo.cpp \ 61 pim/otodo.cpp \
62 pim/opimrecord.cpp \ 62 pim/opimrecord.cpp \
63 pim/otodoaccess.cpp \ 63 pim/otodoaccess.cpp \
64 pim/otodoaccessbackend.cpp \ 64 pim/otodoaccessbackend.cpp \
65 pim/otodoaccessxml.cpp \ 65 pim/otodoaccessxml.cpp \
66 pim/oconversion.cpp \ 66 pim/oconversion.cpp \
67 pim/ocontact.cpp \ 67 pim/ocontact.cpp \
68 pim/ocontactaccess.cpp \ 68 pim/ocontactaccess.cpp \
69 pim/ocontactaccessbackend_vcard.cpp \ 69 pim/ocontactaccessbackend_vcard.cpp \
70 pim/ocontactaccessbackend_xml.cpp \ 70 pim/ocontactaccessbackend_xml.cpp \
71 pim/otodoaccessvcal.cpp \ 71 pim/otodoaccessvcal.cpp \
72 pim/orecur.cpp \ 72 pim/orecur.cpp \
73 pim/opimstate.cpp \ 73 pim/opimstate.cpp \
74 pim/opimxrefpartner.cpp \ 74 pim/opimxrefpartner.cpp \
75 pim/opimxref.cpp \ 75 pim/opimxref.cpp \
76 pim/opimxrefmanager.cpp \ 76 pim/opimxrefmanager.cpp \
77 pim/opimmaintainer.cpp \ 77 pim/opimmaintainer.cpp \
78 pim/opimnotify.cpp \ 78 pim/opimnotify.cpp \
79 pim/opimnotifymanager.cpp \ 79 pim/opimnotifymanager.cpp \
80 pim/opimmainwindow.cpp \ 80 pim/opimmainwindow.cpp \
81 pim/opimresolver.cpp \ 81 pim/opimresolver.cpp \
82 pim/oevent.cpp \ 82 pim/oevent.cpp \
83 pim/otimezone.cpp \ 83 pim/otimezone.cpp \
84 pim/odatebookaccess.cpp \ 84 pim/odatebookaccess.cpp \
85 pim/odatebookaccessbackend.cpp \ 85 pim/odatebookaccessbackend.cpp \
86 pim/odatebookaccessbackend_xml.cpp \ 86 pim/odatebookaccessbackend_xml.cpp \
87 orecurrancewidget.cpp \ 87 orecurrancewidget.cpp \
88 oticker.cpp owait.cpp 88 oticker.cpp owait.cpp
89 89
90TARGET = opie 90TARGET = opie
91INCLUDEPATH += $(OPIEDIR)/include 91INCLUDEPATH += $(OPIEDIR)/include
92DESTDIR = $(OPIEDIR)/lib$(PROJMAK) 92DESTDIR = $(OPIEDIR)/lib$(PROJMAK)
93 93
94LIBS += -lqpe 94LIBS += -lqpe
95 95
96# LIBS += -lopiesql 96# LIBS += -lopiesql
97 97
98INTERFACES = otimepickerbase.ui orecurrancebase.ui 98INTERFACES = otimepickerbase.ui orecurrancebase.ui
99TARGET = opie 99TARGET = opie
100 100
101TRANSLATIONS = ../i18n/de/libopie.ts \ 101TRANSLATIONS = ../i18n/de/libopie.ts \
102 ../i18n/nl/libopie.ts \ 102 ../i18n/nl/libopie.ts \
103 ../i18n/xx/libopie.ts \ 103 ../i18n/xx/libopie.ts \
104 ../i18n/en/libopie.ts \ 104 ../i18n/en/libopie.ts \
105 ../i18n/es/libopie.ts \ 105 ../i18n/es/libopie.ts \
106 ../i18n/fr/libopie.ts \ 106 ../i18n/fr/libopie.ts \
107 ../i18n/hu/libopie.ts \ 107 ../i18n/hu/libopie.ts \
108 ../i18n/ja/libopie.ts \ 108 ../i18n/ja/libopie.ts \
109 ../i18n/ko/libopie.ts \ 109 ../i18n/ko/libopie.ts \
110 ../i18n/no/libopie.ts \ 110 ../i18n/no/libopie.ts \
111 ../i18n/pl/libopie.ts \ 111 ../i18n/pl/libopie.ts \
112 ../i18n/pt/libopie.ts \ 112 ../i18n/pt/libopie.ts \
113 ../i18n/pt_BR/libopie.ts \ 113 ../i18n/pt_BR/libopie.ts \
114 ../i18n/sl/libopie.ts \ 114 ../i18n/sl/libopie.ts \
115 ../i18n/zh_CN/libopie.ts \ 115 ../i18n/zh_CN/libopie.ts \
116 ../i18n/zh_TW/libopie.ts \ 116 ../i18n/zh_TW/libopie.ts \
117 ../i18n/da/libopie.ts 117 ../i18n/da/libopie.ts
118 118
119 119include ( big-screen/big-screen.pro )
120 120
121include ( $(OPIEDIR)/include.pro ) 121include ( $(OPIEDIR)/include.pro )