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,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 | */ |
53 | OSplitter::OSplitter( Orientation orient, QWidget* parent, const char* name, WFlags fl ) | 53 | OSplitter::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 | */ |
71 | OSplitter::~OSplitter() { | 74 | OSplitter::~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 | */ |
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; |
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 | */ |
106 | void OSplitter::addWidget( QWidget* wid, const QString& icon, const QString& label ) { | 113 | void 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 | */ |
135 | void OSplitter::removeWidget( QWidget* w) { | 142 | void 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 | */ |
164 | void OSplitter::setCurrentWidget( QWidget* w) { | 171 | void 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 | */ |
179 | void OSplitter::setCurrentWidget( const QString& label ) { | 186 | void 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 | */ | ||
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; |
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 | */ |
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 && |
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 | ||
238 | void OSplitter::addToTab( const Opie::OSplitterContainer& con ) { | 263 | void 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 | ||
244 | void OSplitter::addToBox( const Opie::OSplitterContainer& con ) { | 269 | void 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 | ||
249 | void OSplitter::removeFromTab( QWidget* wid ) { | 274 | void OSplitter::removeFromTab( QWidget* wid ) { |
250 | m_tabWidget->removePage( wid ); | 275 | m_tabWidget->removePage( wid ); |
251 | } | 276 | } |
252 | 277 | ||
253 | void OSplitter::changeTab() { | 278 | void 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 | ||
279 | void OSplitter::changeHBox() { | 306 | void 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 | ||
294 | void OSplitter::changeVBox() { | 321 | void 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 | ||
311 | void OSplitter::commonChangeBox() { | 338 | void 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 */ |
40 | class OTabWidget; | 40 | class OTabWidget; |
41 | class QHBox; | 41 | class 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 | */ |
62 | class OSplitter : public QFrame{ | 62 | class OSplitter : public QFrame{ |
63 | Q_OBJECT | 63 | Q_OBJECT |
64 | public: | 64 | public: |
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 | ||
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& ); |
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 @@ | |||
1 | TEMPLATE = lib | 1 | TEMPLATE = lib |
2 | CONFIG += qte warn_on release | 2 | CONFIG += qte warn_on release |
3 | HEADERS = ofontmenu.h \ | 3 | HEADERS = 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 | ||
49 | SOURCES = ofontmenu.cc \ | 49 | SOURCES = 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 | ||
90 | TARGET = opie | 90 | TARGET = opie |
91 | INCLUDEPATH += $(OPIEDIR)/include | 91 | INCLUDEPATH += $(OPIEDIR)/include |
92 | DESTDIR = $(OPIEDIR)/lib$(PROJMAK) | 92 | DESTDIR = $(OPIEDIR)/lib$(PROJMAK) |
93 | 93 | ||
94 | LIBS += -lqpe | 94 | LIBS += -lqpe |
95 | 95 | ||
96 | # LIBS += -lopiesql | 96 | # LIBS += -lopiesql |
97 | 97 | ||
98 | INTERFACES = otimepickerbase.ui orecurrancebase.ui | 98 | INTERFACES = otimepickerbase.ui orecurrancebase.ui |
99 | TARGET = opie | 99 | TARGET = opie |
100 | 100 | ||
101 | TRANSLATIONS = ../i18n/de/libopie.ts \ | 101 | TRANSLATIONS = ../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 | 119 | include ( big-screen/big-screen.pro ) | |
120 | 120 | ||
121 | include ( $(OPIEDIR)/include.pro ) | 121 | include ( $(OPIEDIR)/include.pro ) |