summaryrefslogtreecommitdiff
authordrw <drw>2002-07-16 01:08:45 (UTC)
committer drw <drw>2002-07-16 01:08:45 (UTC)
commitb1849c87eade2706908caddeda5924866c040441 (patch) (side-by-side diff)
treef36cbfb15eaa2eeea9f20438a5655188ee6165ab
parent72eb74051ed8f1b7696041e241ab99df3af5b08d (diff)
downloadopie-b1849c87eade2706908caddeda5924866c040441.zip
opie-b1849c87eade2706908caddeda5924866c040441.tar.gz
opie-b1849c87eade2706908caddeda5924866c040441.tar.bz2
New tab widget
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/sysinfo/opie-sysinfo.control2
-rw-r--r--noncore/settings/sysinfo/otabwidget.cpp71
-rw-r--r--noncore/settings/sysinfo/otabwidget.h62
-rw-r--r--noncore/settings/sysinfo/sysinfo.cpp18
-rw-r--r--noncore/settings/sysinfo/sysinfo.pro2
5 files changed, 144 insertions, 11 deletions
diff --git a/noncore/settings/sysinfo/opie-sysinfo.control b/noncore/settings/sysinfo/opie-sysinfo.control
index 95acc92..415854c 100644
--- a/noncore/settings/sysinfo/opie-sysinfo.control
+++ b/noncore/settings/sysinfo/opie-sysinfo.control
@@ -1,2 +1,2 @@
-Files: bin/sysinfo apps/Applications/sysinfo.desktop
+Files: bin/sysinfo apps/Applications/sysinfo.desktop pics/sysinfo
Priority: optional
diff --git a/noncore/settings/sysinfo/otabwidget.cpp b/noncore/settings/sysinfo/otabwidget.cpp
new file mode 100644
index 0000000..5d5b3e6
--- a/dev/null
+++ b/noncore/settings/sysinfo/otabwidget.cpp
@@ -0,0 +1,71 @@
+/**********************************************************************
+** OTabWidget
+**
+** Modified tab widget control
+**
+** Copyright (C) 2002, Dan Williams
+** williamsdr@acm.org
+** http://draknor.net
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+**********************************************************************/
+
+#include "otabwidget.h"
+
+#include <qpe/resource.h>
+
+#include <qlist.h>
+#include <qtabbar.h>
+
+
+OTabWidget::OTabWidget( QWidget *parent, const char *name )
+ : QTabWidget( parent, name )
+{
+ connect( this, SIGNAL( currentChanged( QWidget * ) ),
+ this, SLOT( tabChangedSlot( QWidget * ) ) );
+}
+
+OTabWidget::~OTabWidget()
+{
+}
+
+void OTabWidget::addTab( QWidget *child, const QString &icon, const QString &label )
+{
+ Tabs.append( TabInfo( child, icon, label ) );
+ QTabWidget::addTab( child, loadSmooth( icon ), QString::null );
+}
+
+void OTabWidget::tabChangedSlot( QWidget *child )
+{
+ TabInfoList::Iterator it;
+
+ if ( CurrentTab != 0x0 )
+ {
+ changeTab( (*CurrentTab).control(), loadSmooth( (*CurrentTab).icon() ), QString::null );
+ }
+
+ for ( it = Tabs.begin(); it != Tabs.end(); ++it )
+ {
+ if ( (*it).control() == child )
+ {
+ CurrentTab = it;
+ changeTab( (*CurrentTab).control(), loadSmooth( (*CurrentTab).icon() ), (*CurrentTab).label() );
+ }
+ }
+}
+
+QPixmap OTabWidget::loadSmooth( const QString &name )
+{
+ QImage image = Resource::loadImage( name );
+ QPixmap pixmap;
+ pixmap.convertFromImage( image.smoothScale( 16, 16 ) );
+ return pixmap;
+}
+
diff --git a/noncore/settings/sysinfo/otabwidget.h b/noncore/settings/sysinfo/otabwidget.h
new file mode 100644
index 0000000..4588cb9
--- a/dev/null
+++ b/noncore/settings/sysinfo/otabwidget.h
@@ -0,0 +1,62 @@
+/**********************************************************************
+** OTabWidget
+**
+** Modified tab widget control
+**
+** Copyright (C) 2002, Dan Williams
+** williamsdr@acm.org
+** http://draknor.net
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+**********************************************************************/
+
+#ifndef OTABWIDGET_H
+#define OTABWIDGET_H
+
+#include <qtabwidget.h>
+
+class TabInfo
+{
+public:
+ TabInfo() : c( 0 ), i( 0 ), l( QString::null ) {}
+ TabInfo( QWidget *control, const QString &icon, const QString &label )
+ : c( control ), i( icon ), l( label ) {}
+ QString label() const { return l; }
+ QWidget *control() const { return c; }
+ QString icon() const { return i; }
+
+private:
+ QWidget *c;
+ QString i;
+ QString l;
+};
+
+typedef QValueList<TabInfo> TabInfoList;
+
+class OTabWidget : public QTabWidget
+{
+ Q_OBJECT
+public:
+ OTabWidget( QWidget *, const char * );
+ ~OTabWidget();
+
+ void addTab( QWidget *, const QString &, const QString & );
+
+private:
+ TabInfoList Tabs;
+ TabInfoList::Iterator CurrentTab;
+
+ QPixmap loadSmooth( const QString & );
+
+private slots:
+ void tabChangedSlot( QWidget * );
+};
+
+#endif
diff --git a/noncore/settings/sysinfo/sysinfo.cpp b/noncore/settings/sysinfo/sysinfo.cpp
index 13f810a..56ac488 100644
--- a/noncore/settings/sysinfo/sysinfo.cpp
+++ b/noncore/settings/sysinfo/sysinfo.cpp
@@ -23,3 +23,2 @@
#include "storage.h"
-//#include "graphics.h"
#include "processinfo.h"
@@ -29,2 +28,3 @@
+#include "otabwidget.h"
@@ -32,3 +32,2 @@
-#include <qtabwidget.h>
#include <qlayout.h>
@@ -41,13 +40,12 @@ SystemInfo::SystemInfo( QWidget *parent, const char *name, WFlags f )
QVBoxLayout *lay = new QVBoxLayout( this );
- QTabWidget *tab = new QTabWidget( this );
+ OTabWidget *tab = new OTabWidget( this, "tabwidget" );
lay->addWidget( tab );
- tab->addTab( new MemoryInfo( tab ), tr("Memory") );
+ tab->addTab( new MemoryInfo( tab ), "sysinfo/memorytabicon.png", tr("Memory") );
#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
- tab->addTab( new StorageInfo( tab ), tr("Storage") );
+ tab->addTab( new StorageInfo( tab ), "sysinfo/storagetabicon.png", tr("Storage") );
#endif
- tab->addTab( new LoadInfo( tab ), tr("CPU") );
-// tab->addTab( new Graphics( tab ), tr("Graphics") );
- tab->addTab( new ProcessInfo( tab ), tr("Process") );
- tab->addTab( new ModulesInfo( tab ), tr("Modules") );
- tab->addTab( new VersionInfo( tab ), tr("Version") );
+ tab->addTab( new LoadInfo( tab ), "sysinfo/cputabicon.png", tr("CPU") );
+ tab->addTab( new ProcessInfo( tab ), "sysinfo/processtabicon.png", tr("Process") );
+ tab->addTab( new ModulesInfo( tab ), "sysinfo/moduletabicon.png", tr("Modules") );
+ tab->addTab( new VersionInfo( tab ), "sysinfo/versiontabicon.png", tr("Version") );
diff --git a/noncore/settings/sysinfo/sysinfo.pro b/noncore/settings/sysinfo/sysinfo.pro
index c0cef8f..a5adb26 100644
--- a/noncore/settings/sysinfo/sysinfo.pro
+++ b/noncore/settings/sysinfo/sysinfo.pro
@@ -12,2 +12,3 @@ HEADERS = memory.h \
versioninfo.h \
+ otabwidget.h \
sysinfo.h
@@ -23,2 +24,3 @@ SOURCES = main.cpp \
versioninfo.cpp \
+ otabwidget.cpp \
sysinfo.cpp