author | zecke <zecke> | 2003-09-01 16:29:42 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-09-01 16:29:42 (UTC) |
commit | 4513097a6eb827a9bf91b96d098cb392442c77f3 (patch) (unidiff) | |
tree | 4dcfa31739ba093fb3a8962769e6acb1fde4b28e | |
parent | a1119a2cdb040e0e783a04ccd2a9da21f49c10b9 (diff) | |
download | opie-4513097a6eb827a9bf91b96d098cb392442c77f3.zip opie-4513097a6eb827a9bf91b96d098cb392442c77f3.tar.gz opie-4513097a6eb827a9bf91b96d098cb392442c77f3.tar.bz2 |
Add big-screen extension to libopie
-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 | ||||
-rw-r--r-- | libopie/libopie.pro | 2 |
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 @@ | |||
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,9 +1,9 @@ | |||
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, |
@@ -56,13 +56,16 @@ OSplitter::OSplitter( Orientation orient, QWidget* parent, const char* name, WFl | |||
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 |
@@ -74,14 +77,18 @@ OSplitter::~OSplitter() { | |||
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 | */ |
86 | void OSplitter::setSizeChange( int width_height ) { | 93 | void OSplitter::setSizeChange( int width_height ) { |
87 | m_size_policy = width_height; | 94 | m_size_policy = width_height; |
@@ -184,12 +191,24 @@ void OSplitter::setCurrentWidget( const QString& label ) { | |||
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 | */ | ||
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 | */ |
193 | QWidget* OSplitter::currentWidget() { | 212 | QWidget* OSplitter::currentWidget() { |
194 | if ( m_hbox ) | 213 | if ( m_hbox ) |
195 | return 0l; | 214 | return 0l; |
@@ -200,29 +219,35 @@ QWidget* OSplitter::currentWidget() { | |||
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 | */ |
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 | /** |
214 | * @reimplemented for internal reasons | 239 | * @reimplemented for internal reasons |
215 | */ | 240 | */ |
216 | void OSplitter::resizeEvent( QResizeEvent* res ) { | 241 | void 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 && |
@@ -260,12 +285,14 @@ void OSplitter::changeTab() { | |||
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 | ||
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,9 +1,9 @@ | |||
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, |
@@ -71,15 +71,24 @@ public: | |||
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 | ||
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* ); |
83 | 92 | ||
84 | private: | 93 | private: |
85 | void addToTab( const Opie::OSplitterContainer& ); | 94 | void addToTab( const Opie::OSplitterContainer& ); |
diff --git a/libopie/libopie.pro b/libopie/libopie.pro index 6fbd449..2148233 100644 --- a/libopie/libopie.pro +++ b/libopie/libopie.pro | |||
@@ -113,9 +113,9 @@ TRANSLATIONS = ../i18n/de/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 | 119 | include ( big-screen/big-screen.pro ) | |
120 | 120 | ||
121 | include ( $(OPIEDIR)/include.pro ) | 121 | include ( $(OPIEDIR)/include.pro ) |