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,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 */
86void OSplitter::setSizeChange( int width_height ) { 93void 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 */
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;
@@ -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 */
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 &&
@@ -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
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& );
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 119include ( big-screen/big-screen.pro )
120 120
121include ( $(OPIEDIR)/include.pro ) 121include ( $(OPIEDIR)/include.pro )