author | drw <drw> | 2002-07-16 01:08:45 (UTC) |
---|---|---|
committer | drw <drw> | 2002-07-16 01:08:45 (UTC) |
commit | b1849c87eade2706908caddeda5924866c040441 (patch) (side-by-side diff) | |
tree | f36cbfb15eaa2eeea9f20438a5655188ee6165ab | |
parent | 72eb74051ed8f1b7696041e241ab99df3af5b08d (diff) | |
download | opie-b1849c87eade2706908caddeda5924866c040441.zip opie-b1849c87eade2706908caddeda5924866c040441.tar.gz opie-b1849c87eade2706908caddeda5924866c040441.tar.bz2 |
New tab widget
-rw-r--r-- | noncore/settings/sysinfo/opie-sysinfo.control | 2 | ||||
-rw-r--r-- | noncore/settings/sysinfo/otabwidget.cpp | 71 | ||||
-rw-r--r-- | noncore/settings/sysinfo/otabwidget.h | 62 | ||||
-rw-r--r-- | noncore/settings/sysinfo/sysinfo.cpp | 18 | ||||
-rw-r--r-- | noncore/settings/sysinfo/sysinfo.pro | 2 |
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 |