-rw-r--r-- | libopie/big-screen/big-screen.pro | 2 | ||||
-rw-r--r-- | libopie/big-screen/osplitter.cpp | 35 | ||||
-rw-r--r-- | libopie/big-screen/osplitter.h | 11 |
3 files changed, 43 insertions, 5 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 @@ | |||
1 | HEADERS += big-screen/obigscreen_p.h big-screen/osplitter.h | ||
2 | SOURCES += 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,6 +1,6 @@ | |||
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 |
@@ -59,7 +59,10 @@ OSplitter::OSplitter( Orientation orient, QWidget* parent, const char* name, WFl | |||
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 | ||
@@ -77,8 +80,12 @@ OSplitter::~OSplitter() { | |||
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 |
@@ -187,6 +194,18 @@ void OSplitter::setCurrentWidget( const QString& label ) { | |||
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 | */ | ||
203 | void 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 | */ |
@@ -203,11 +222,17 @@ QWidget* OSplitter::currentWidget() { | |||
203 | * returns the sizeHint of one of its sub widgets | 222 | * returns the sizeHint of one of its sub widgets |
204 | */ | 223 | */ |
205 | QSize OSplitter::sizeHint()const { | 224 | QSize 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 | |||
233 | QSize OSplitter::minimumSizeHint()const { | ||
234 | return QSize(10, 10 ); | ||
235 | } | ||
211 | #endif | 236 | #endif |
212 | 237 | ||
213 | /** | 238 | /** |
@@ -219,7 +244,7 @@ void OSplitter::resizeEvent( QResizeEvent* res ) { | |||
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(); |
@@ -263,6 +288,8 @@ void OSplitter::changeTab() { | |||
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() ); |
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,6 +1,6 @@ | |||
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 |
@@ -74,9 +74,18 @@ public: | |||
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 | ||
80 | signals: | ||
81 | /** | ||
82 | * Emitted if in tab and comes directly from the tab widget | ||
83 | * | ||
84 | */ | ||
85 | void currentChanged( QWidget* ); | ||
86 | public: | ||
79 | // QSize sizeHint()const; | 87 | // QSize sizeHint()const; |
88 | // QSize minimumSizeHint()const; | ||
80 | 89 | ||
81 | protected: | 90 | protected: |
82 | void resizeEvent( QResizeEvent* ); | 91 | void resizeEvent( QResizeEvent* ); |