summaryrefslogtreecommitdiff
authorsandman <sandman>2002-07-06 16:42:29 (UTC)
committer sandman <sandman>2002-07-06 16:42:29 (UTC)
commit3a422983abc7342c9229dccac825d0608fca10f3 (patch) (side-by-side diff)
treefd0d71eab4df0b286b78efe24184525ae4c819a3
parent8beb5fcdbca8110dc586a7e620bf8eae892087fb (diff)
downloadopie-3a422983abc7342c9229dccac825d0608fca10f3.zip
opie-3a422983abc7342c9229dccac825d0608fca10f3.tar.gz
opie-3a422983abc7342c9229dccac825d0608fca10f3.tar.bz2
Complete renovation of the external style API:
- created two QCom interfaces in "styleinterface.h" - moved the liquid/theme settings apps into the plugins - modified the plugin interface for all three styles - extended appearance to fully support the new API (replaces the settings apps) Additional work: - made a workaround in appearance for a Qt Bug -- now a QDialog again (this should really be fixed in Qt, but Z won't work that way)
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--Makefile4
-rw-r--r--apps/Settings/Liquid.desktop7
-rw-r--r--apps/Settings/Theme.desktop7
-rw-r--r--library/qpeapplication.cpp322
-rw-r--r--library/styleinterface.h68
-rw-r--r--noncore/styles/liquid/liquid.pro6
-rw-r--r--noncore/styles/liquid/liquidset.cpp (renamed from noncore/styles/liquid/settings/liquidset.cpp)26
-rw-r--r--noncore/styles/liquid/liquidset.h (renamed from noncore/styles/liquid/settings/liquidset.h)7
-rw-r--r--noncore/styles/liquid/opie-liquid.control2
-rw-r--r--noncore/styles/liquid/plugin.cpp106
-rw-r--r--noncore/styles/liquid/plugin.h46
-rw-r--r--noncore/styles/liquid/settings/.cvsignore2
-rw-r--r--noncore/styles/liquid/settings/main.cpp34
-rw-r--r--noncore/styles/liquid/settings/settings.pro24
-rw-r--r--noncore/styles/metal/metal.pro2
-rw-r--r--noncore/styles/metal/plugin.cpp52
-rw-r--r--noncore/styles/metal/plugin.h27
-rw-r--r--noncore/styles/theme/opie-theme.control2
-rw-r--r--noncore/styles/theme/plugin.cpp110
-rw-r--r--noncore/styles/theme/plugin.h46
-rw-r--r--noncore/styles/theme/settings/main.cpp34
-rw-r--r--noncore/styles/theme/settings/settings.pro24
-rw-r--r--noncore/styles/theme/settings/themeset.h20
-rw-r--r--noncore/styles/theme/theme.pro5
-rw-r--r--noncore/styles/theme/themeset.cpp (renamed from noncore/styles/theme/settings/themeset.cpp)11
-rw-r--r--noncore/styles/theme/themeset.h20
-rw-r--r--pics/liquid/Liquid.pngbin2771 -> 0 bytes
-rw-r--r--pics/theme/Theme.pngbin2771 -> 0 bytes
28 files changed, 705 insertions, 309 deletions
diff --git a/Makefile b/Makefile
index 0dfa22e..8fa60d8 100644
--- a/Makefile
+++ b/Makefile
@@ -50,9 +50,7 @@ NONCORESETTINGS =noncore/settings/language noncore/settings/rotation \
NONCORETOOLS = noncore/tools/calculator noncore/tools/clock \
noncore/tools/remote noncore/tools/opie-sh noncore/apps/advancedfm
-NONCORESTYLES = noncore/styles/liquid noncore/styles/liquid/settings \
- noncore/styles/theme noncore/styles/theme/settings \
- noncore/styles/metal
+NONCORESTYLES = noncore/styles/liquid noncore/styles/theme noncore/styles/metal
GAMES = noncore/games/minesweep noncore/games/solitaire \
noncore/games/tetrix noncore/games/wordgame \
diff --git a/apps/Settings/Liquid.desktop b/apps/Settings/Liquid.desktop
deleted file mode 100644
index 8a1727f..0000000
--- a/apps/Settings/Liquid.desktop
+++ b/dev/null
@@ -1,7 +0,0 @@
-[Desktop Entry]
-Type=Application
-Exec=liquid-settings
-Icon=liquid/Liquid
-Name=Liquid-Settings
-Name[de]=Liquid-Einstellungen
-
diff --git a/apps/Settings/Theme.desktop b/apps/Settings/Theme.desktop
deleted file mode 100644
index 197184f..0000000
--- a/apps/Settings/Theme.desktop
+++ b/dev/null
@@ -1,7 +0,0 @@
-[Desktop Entry]
-Type=Application
-Exec=theme-settings
-Icon=theme/Theme
-Name=Theme-Settings
-Name[de]=Thema-Einstellungen
-
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index dff8235..187a7e2 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -64,6 +64,7 @@
#include <qsignal.h>
#include "qpeapplication.h"
#include "qpestyle.h"
+#include "styleinterface.h"
#if QT_VERSION >= 300
#include <qstylefactory.h>
#else
@@ -74,7 +75,6 @@
#include "lightstyle.h"
#include <qpe/qlibrary.h>
-#include <dlfcn.h>
#endif
#include "global.h"
#include "resource.h"
@@ -105,7 +105,8 @@
#include <stdlib.h>
-class QPEApplicationData {
+class QPEApplicationData
+{
public:
QPEApplicationData() : presstimer(0), presswidget(0), rightpressed(FALSE),
kbgrabber(0), kbregrab(FALSE), notbusysent(FALSE), preloaded(FALSE),
@@ -123,10 +124,12 @@ public:
bool kbregrab;
bool notbusysent;
QString appName;
- struct QCopRec {
+ struct QCopRec
+ {
QCopRec(const QCString &ch, const QCString &msg,
const QByteArray &d) :
- channel(ch), message(msg), data(d) { }
+ channel( ch ), message( msg ), data( d )
+ { }
QCString channel;
QCString message;
@@ -153,7 +156,8 @@ public:
}
};
-class ResourceMimeFactory : public QMimeSourceFactory {
+class ResourceMimeFactory : public QMimeSourceFactory
+{
public:
ResourceMimeFactory()
{
@@ -175,7 +179,8 @@ public:
QImage img = Resource::loadImage(name);
if ( !img.isNull() )
r = new QImageDrag(img);
- } while (!r && sl>0);
+ }
+ while ( !r && sl > 0 );
}
return r;
}
@@ -200,7 +205,8 @@ static void setVolume(int t=0, int percent=-1)
ioctl(fd, MIXER_WRITE(0), &vol);
::close(fd);
}
- } break;
+ }
+ break;
}
}
@@ -219,7 +225,8 @@ static void setMic(int t=0, int percent=-1)
ioctl(fd, MIXER_WRITE(SOUND_MIXER_MIC), &mic);
::close(fd);
}
- } break;
+ }
+ break;
}
}
@@ -228,8 +235,10 @@ int qpe_sysBrightnessSteps()
#if defined(QT_QWS_IPAQ)
return 255;
#elif defined(QT_QWS_EBX)
+
return 4;
#else
+
return 255; // ?
#endif
}
@@ -242,6 +251,7 @@ static int& hack(int& i)
(void)new QUtf8Codec;
(void)new QUtf16Codec;
#endif
+
return i;
}
@@ -286,30 +296,38 @@ static void setBacklight(int bright)
cmd += QString::number(bright);
system(cmd.latin1());
#if defined(QT_QWS_EBX)
- } else if ( QFile::exists("/dev/fl") ) {
+
+ }
+ else if ( QFile::exists( "/dev/fl" ) ) {
#define FL_IOCTL_STEP_CONTRAST 100
int fd = open("/dev/fl", O_WRONLY);
if (fd >= 0 ) {
int steps = qpe_sysBrightnessSteps();
int bl = ( bright * steps + 127 ) / 255;
- if ( bright && !bl ) bl = 1;
+ if ( bright && !bl )
+ bl = 1;
bl = ioctl(fd, FL_IOCTL_STEP_CONTRAST, bl);
close(fd);
}
}
#elif defined(QT_QWS_IPAQ)
- } else if ( QFile::exists("/dev/ts") || QFile::exists("/dev/h3600_ts") ) {
+
+ }
+ else if ( QFile::exists( "/dev/ts" ) || QFile::exists( "/dev/h3600_ts" ) )
+ {
typedef struct {
unsigned char mode;
unsigned char pwr;
unsigned char brightness;
- } FLITE_IN;
+ }
+ FLITE_IN;
# ifndef FLITE_ON
# ifndef _LINUX_IOCTL_H
# include <linux/ioctl.h>
# endif
# define FLITE_ON _IOW('f', 7, FLITE_IN)
# endif
+
int fd;
if ( QFile::exists("/dev/ts") )
fd = open("/dev/ts", O_WRONLY);
@@ -329,7 +347,9 @@ static void setBacklight(int bright)
curbl = bright;
}
-void qpe_setBacklight(int bright) { setBacklight(bright); }
+void qpe_setBacklight( int bright ) {
+ setBacklight( bright );
+}
static bool dim_on = FALSE;
static bool lightoff_on = FALSE;
@@ -358,7 +378,10 @@ public:
LcdOn = TRUE;
// Make sure the LCD is in fact on, (if opie was killed while the LCD is off it would still be off)
fd=open("/dev/fb0",O_RDWR);
- if (fd != -1) { ioctl(fd,FBIOBLANK,VESA_NO_BLANKING); close(fd); }
+ if ( fd != -1 ) {
+ ioctl( fd, FBIOBLANK, VESA_NO_BLANKING );
+ close( fd );
+ }
}
void restore()
{
@@ -366,7 +389,11 @@ public:
{
int fd;
fd=open("/dev/fb0",O_RDWR);
- if (fd != -1) { ioctl(fd,FBIOBLANK,VESA_NO_BLANKING); close(fd); }
+ if ( fd != -1 )
+ {
+ ioctl( fd, FBIOBLANK, VESA_NO_BLANKING );
+ close( fd );
+ }
}
setBacklight(-1);
}
@@ -394,7 +421,11 @@ public:
if (config.readNumEntry("LcdOffOnly",0) != 0) // We're only turning off the LCD
{
fd=open("/dev/fb0",O_RDWR);
- if (fd != -1) { ioctl(fd,FBIOBLANK,VESA_POWERDOWN); close(fd); }
+ if ( fd != -1 )
+ {
+ ioctl( fd, FBIOBLANK, VESA_POWERDOWN );
+ close( fd );
+ }
LcdOn = FALSE;
}
else // We're going to suspend the whole machine
@@ -572,7 +603,8 @@ QPEApplication::QPEApplication( int& argc, char **argv, Type t )
a++;
d->preloaded = TRUE;
argc-=1;
- } else if ( qstrcmp(argv[a],"-preload-show")==0 ) {
+ }
+ else if ( qstrcmp( argv[ a ], "-preload-show" ) == 0 ) {
argv[a] = argv[a+1];
a++;
d->preloaded = TRUE;
@@ -589,6 +621,7 @@ QPEApplication::QPEApplication( int& argc, char **argv, Type t )
qwsSetDecoration( new QPEDecoration() );
#ifndef QT_NO_TRANSLATION
+
QStringList langs = Global::languageList();
for (QStringList::ConstIterator it = langs.begin(); it!=langs.end(); ++it) {
QString lang = *it;
@@ -688,8 +721,10 @@ void QPEApplication::setInputMethodHint( QWidget* w, InputMethodHint mode )
{
createInputMethodDict();
if ( mode == Normal ) {
- inputMethodDict->remove(w);
- } else {
+ inputMethodDict->remove
+ ( w );
+ }
+ else {
inputMethodDict->insert(w,(void*)mode);
}
}
@@ -697,8 +732,14 @@ void QPEApplication::setInputMethodHint( QWidget* w, InputMethodHint mode )
class HackDialog : public QDialog
{
public:
- void acceptIt() { accept(); }
- void rejectIt() { reject(); }
+ void acceptIt()
+ {
+ accept();
+ }
+ void rejectIt()
+ {
+ reject();
+ }
};
@@ -721,7 +762,9 @@ class HackWidget : public QWidget
{
public:
bool needsOk()
- { return (getWState() & WState_Reserved1 ); }
+ {
+ return ( getWState() & WState_Reserved1 );
+ }
};
/*!
@@ -764,20 +807,24 @@ bool QPEApplication::qwsEventFilter( QWSEvent *e )
HackDialog *d = (HackDialog *)active;
d->acceptIt();
return TRUE;
- } else if ( ((HackWidget *)active)->needsOk() ) {
+ }
+ else if ( ( ( HackWidget * ) active ) ->needsOk() ) {
QSignal s;
s.connect( active, SLOT( accept() ) );
s.activate();
- } else {
+ }
+ else {
// do the same as with the select key: Map to the default action of the widget:
mapToDefaultAction( ke, Qt::Key_Return );
}
}
}
- } else if ( ke->simpleData.keycode == Qt::Key_F30 ) {
+ }
+ else if ( ke->simpleData.keycode == Qt::Key_F30 ) {
// Use special "select" key to do whatever default action a widget has
mapToDefaultAction( ke, Qt::Key_Space );
- } else if ( ke->simpleData.keycode == Qt::Key_Escape &&
+ }
+ else if ( ke->simpleData.keycode == Qt::Key_Escape &&
ke->simpleData.is_press ) {
// Escape key closes app if focus on toplevel
QWidget *active = activeWindow();
@@ -788,7 +835,8 @@ bool QPEApplication::qwsEventFilter( QWSEvent *e )
HackDialog *d = (HackDialog *)active;
d->rejectIt();
return TRUE;
- } else if ( strcmp( argv()[0], "embeddedkonsole") != 0 ) {
+ }
+ else if ( strcmp( argv() [ 0 ], "embeddedkonsole" ) != 0 ) {
active->close();
}
}
@@ -800,6 +848,7 @@ bool QPEApplication::qwsEventFilter( QWSEvent *e )
if ( ((QWSKeyEvent *)e)->simpleData.keycode == Qt::Key_F4 )
return TRUE;
#endif
+
}
if ( e->type == QWSEvent::Focus ) {
QWSFocusEvent *fe = (QWSFocusEvent*)e;
@@ -814,7 +863,8 @@ bool QPEApplication::qwsEventFilter( QWSEvent *e )
ungrabKeyboard();
d->kbregrab = TRUE; // want kb back when we're active
}
- } else {
+ }
+ else {
// make sure our modal widget is ALWAYS on top
QWidget *topm = activeModalWidget();
if ( topm ) {
@@ -848,6 +898,7 @@ QPEApplication::~QPEApplication()
delete sysChannel;
delete pidChannel;
#endif
+
delete d;
}
@@ -886,11 +937,14 @@ int QPEApplication::defaultRotation()
QString d = getenv("QWS_DISPLAY");
if ( d.contains("Rot90") ) {
deforient = 90;
- } else if ( d.contains("Rot180") ) {
+ }
+ else if ( d.contains( "Rot180" ) ) {
deforient = 180;
- } else if ( d.contains("Rot270") ) {
+ }
+ else if ( d.contains( "Rot270" ) ) {
deforient = 270;
- } else {
+ }
+ else {
deforient=0;
}
}
@@ -905,7 +959,8 @@ void QPEApplication::setDefaultRotation(int r)
if ( qApp->type() == GuiServer ) {
deforient = r;
setenv("QWS_DISPLAY", QString("Transformed:Rot%1:0").arg(r).latin1(), 1);
- } else {
+ }
+ else {
QCopEnvelope("QPE/System", "setDefaultRotation(int)") << r;
}
}
@@ -950,43 +1005,52 @@ void QPEApplication::systemMessage( const QCString &msg, const QByteArray &data)
QDataStream stream( data, IO_ReadOnly );
if ( msg == "applyStyle()" ) {
applyStyle();
- } else if ( msg == "setScreenSaverInterval(int)" ) {
+ }
+ else if ( msg == "setScreenSaverInterval(int)" ) {
if ( type() == GuiServer ) {
int time;
stream >> time;
setScreenSaverInterval(time);
}
- } else if ( msg == "setScreenSaverIntervals(int,int,int)" ) {
+ }
+ else if ( msg == "setScreenSaverIntervals(int,int,int)" ) {
if ( type() == GuiServer ) {
int t1,t2,t3;
stream >> t1 >> t2 >> t3;
setScreenSaverIntervals(t1,t2,t3);
}
- } else if ( msg == "setBacklight(int)" ) {
+ }
+ else if ( msg == "setBacklight(int)" ) {
if ( type() == GuiServer ) {
int bright;
stream >> bright;
setBacklight(bright);
}
- } else if ( msg == "setDefaultRotation(int)" ) {
+ }
+ else if ( msg == "setDefaultRotation(int)" ) {
if ( type() == GuiServer ) {
int r;
stream >> r;
setDefaultRotation(r);
}
- } else if ( msg == "shutdown()" ) {
+ }
+ else if ( msg == "shutdown()" ) {
if ( type() == GuiServer )
shutdown();
- } else if ( msg == "quit()" ) {
+ }
+ else if ( msg == "quit()" ) {
if ( type() != GuiServer )
tryQuit();
- } else if ( msg == "forceQuit()" ) {
+ }
+ else if ( msg == "forceQuit()" ) {
if ( type() != GuiServer )
quit();
- } else if ( msg == "restart()" ) {
+ }
+ else if ( msg == "restart()" ) {
if ( type() == GuiServer )
restart();
- } else if ( msg == "grabKeyboard(QString)" ) {
+ }
+ else if ( msg == "grabKeyboard(QString)" ) {
QString who;
stream >> who;
if ( who.isEmpty() )
@@ -995,7 +1059,8 @@ void QPEApplication::systemMessage( const QCString &msg, const QByteArray &data)
d->kbgrabber = 1;
else
d->kbgrabber = 2;
- } else if ( msg == "language(QString)" ) {
+ }
+ else if ( msg == "language(QString)" ) {
if ( type() == GuiServer ) {
QString l;
stream >> l;
@@ -1008,7 +1073,8 @@ void QPEApplication::systemMessage( const QCString &msg, const QByteArray &data)
restart();
}
}
- } else if ( msg == "timeChange(QString)" ) {
+ }
+ else if ( msg == "timeChange(QString)" ) {
QString t;
stream >> t;
if ( t.isNull() )
@@ -1017,19 +1083,22 @@ void QPEApplication::systemMessage( const QCString &msg, const QByteArray &data)
setenv( "TZ", t.latin1(), 1 );
// emit the signal so everyone else knows...
emit timeChanged();
- } else if ( msg == "execute(QString)" ) {
+ }
+ else if ( msg == "execute(QString)" ) {
if ( type() == GuiServer ) {
QString t;
stream >> t;
Global::execute( t );
}
- } else if ( msg == "execute(QString,QString)" ) {
+ }
+ else if ( msg == "execute(QString,QString)" ) {
if ( type() == GuiServer ) {
QString t,d;
stream >> t >> d;
Global::execute( t, d );
}
- } else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) {
+ }
+ else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) {
if ( type() == GuiServer ) {
QDateTime when;
QCString channel, message;
@@ -1037,7 +1106,8 @@ void QPEApplication::systemMessage( const QCString &msg, const QByteArray &data)
stream >> when >> channel >> message >> data;
AlarmServer::addAlarm( when, channel, message, data );
}
- } else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) {
+ }
+ else if ( msg == "deleteAlarm(QDateTime,QCString,QCString,int)" ) {
if ( type() == GuiServer ) {
QDateTime when;
QCString channel, message;
@@ -1045,37 +1115,45 @@ void QPEApplication::systemMessage( const QCString &msg, const QByteArray &data)
stream >> when >> channel >> message >> data;
AlarmServer::deleteAlarm( when, channel, message, data );
}
- } else if ( msg == "clockChange(bool)" ) {
+ }
+ else if ( msg == "clockChange(bool)" ) {
int tmp;
stream >> tmp;
emit clockChanged( tmp );
- } else if ( msg == "weekChange(bool)" ) {
+ }
+ else if ( msg == "weekChange(bool)" ) {
int tmp;
stream >> tmp;
emit weekChanged( tmp );
- } else if ( msg == "setDateFormat(DateFormat)" ) {
+ }
+ else if ( msg == "setDateFormat(DateFormat)" ) {
DateFormat tmp;
stream >> tmp;
emit dateFormatChanged( tmp );
- } else if ( msg == "setVolume(int,int)" ) {
+ }
+ else if ( msg == "setVolume(int,int)" ) {
int t,v;
stream >> t >> v;
setVolume(t,v);
emit volumeChanged( muted );
- } else if ( msg == "volumeChange(bool)" ) {
+ }
+ else if ( msg == "volumeChange(bool)" ) {
stream >> muted;
setVolume();
emit volumeChanged( muted );
- } else if ( msg == "setMic(int,int)") { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com>
+ }
+ else if ( msg == "setMic(int,int)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com>
int t,v;
stream >> t >> v;
setMic(t,v);
emit micChanged( micMuted );
- } else if ( msg == "micChange(bool)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com>
+ }
+ else if ( msg == "micChange(bool)" ) { // Added: 2002-02-08 by Jeremy Cowgar <jc@cowgar.com>
stream >> micMuted;
setMic();
emit micChanged( micMuted );
- } else if ( msg == "setScreenSaverMode(int)" ) {
+ }
+ else if ( msg == "setScreenSaverMode(int)" ) {
if ( type() == GuiServer ) {
int old = disable_suspend;
stream >> disable_suspend;
@@ -1096,15 +1174,18 @@ bool QPEApplication::raiseAppropriateWindow()
// ########## raise()ing main window should raise and set active
// ########## it and then all childen. This belongs in Qt/Embedded
QWidget *top = d->qpe_main_widget;
- if ( !top ) top =mainWidget();
+ if ( !top )
+ top = mainWidget();
if ( top && d->keep_running ) {
if ( top->isVisible() )
r = TRUE;
#ifdef Q_WS_QWS
+
if ( !d->nomaximize )
top->showMaximized();
else
#endif
+
top->show();
top->raise();
top->setActiveWindow();
@@ -1125,31 +1206,39 @@ void QPEApplication::pidMessage( const QCString &msg, const QByteArray & data)
if ( msg == "quit()" ) {
tryQuit();
- } else if ( msg == "quitIfInvisible()" ) {
+ }
+ else if ( msg == "quitIfInvisible()" ) {
if ( d->qpe_main_widget && !d->qpe_main_widget->isVisible() )
quit();
- } else if ( msg == "close()" ) {
+ }
+ else if ( msg == "close()" ) {
hideOrQuit();
- } else if ( msg == "disablePreload()" ) {
+ }
+ else if ( msg == "disablePreload()" ) {
d->preloaded = FALSE;
d->keep_running = TRUE;
/* so that quit will quit */
- } else if ( msg == "enablePreload()" ) {
+ }
+ else if ( msg == "enablePreload()" ) {
d->preloaded = TRUE;
d->keep_running = TRUE;
/* so next quit won't quit */
- } else if ( msg == "raise()" ) {
+ }
+ else if ( msg == "raise()" ) {
d->keep_running = TRUE;
d->notbusysent = FALSE;
raiseAppropriateWindow();
- } else if ( msg == "flush()" ) {
+ }
+ else if ( msg == "flush()" ) {
emit flush();
// we need to tell the desktop
QCopEnvelope e( "QPE/Desktop", "flushDone(QString)" );
e << d->appName;
- } else if ( msg == "reload()" ) {
+ }
+ else if ( msg == "reload()" ) {
emit reload();
- } else if ( msg == "setDocument(QString)" ) {
+ }
+ else if ( msg == "setDocument(QString)" ) {
d->keep_running = TRUE;
QDataStream stream( data, IO_ReadOnly );
QString doc;
@@ -1159,10 +1248,12 @@ void QPEApplication::pidMessage( const QCString &msg, const QByteArray & data)
mw = d->qpe_main_widget;
if ( mw )
Global::setDocument( mw, doc );
- } else if ( msg == "nextView()" ) {
+ }
+ else if ( msg == "nextView()" ) {
if ( raiseAppropriateWindow() )
emit appMessage( msg, data);
- } else {
+ }
+ else {
emit appMessage( msg, data);
}
#endif
@@ -1213,14 +1304,17 @@ void QPEApplication::showMainWidget( QWidget* mw, bool nomaximize )
mw->showMaximized();
else
#endif
+
mw->show();
}
- } else if ( d->keep_running ) {
+ }
+ else if ( d->keep_running ) {
#ifdef Q_WS_QWS
if ( !nomaximize )
mw->showMaximized();
else
#endif
+
mw->show();
}
}
@@ -1252,14 +1346,17 @@ void QPEApplication::showMainDocumentWidget( QWidget* mw, bool nomaximize )
mw->showMaximized();
else
#endif
+
mw->show();
}
- } else if ( d->keep_running ) {
+ }
+ else if ( d->keep_running ) {
#ifdef Q_WS_QWS
if ( !nomaximize )
mw->showMaximized();
else
#endif
+
mw->show();
}
}
@@ -1301,16 +1398,20 @@ void QPEApplication::internalSetStyle( const QString &style )
#if QT_VERSION >= 300
if ( style == "QPE" ) {
setStyle( new QPEStyle );
- } else {
+ }
+ else {
QStyle *s = QStyleFactory::create(style);
- if ( s ) setStyle(s);
+ if ( s )
+ setStyle( s );
}
#else
if ( style == "Windows" ) {
setStyle( new QWindowsStyle );
- } else if ( style == "QPE" ) {
+ }
+ else if ( style == "QPE" ) {
setStyle( new QPEStyle );
- } else if ( style == "Light" ) {
+ }
+ else if ( style == "Light" ) {
setStyle( new LightStyle );
}
#ifndef QT_NO_STYLE_PLATINUM
@@ -1331,6 +1432,43 @@ void QPEApplication::internalSetStyle( const QString &style )
// HACK for Qt2 only
else {
+ QStyle *sty = 0;
+ QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/lib" + style. lower ( ) + ".so";
+
+ static QLibrary *lastlib = 0;
+ static StyleInterface *lastiface = 0;
+
+ QLibrary *lib = new QLibrary ( path );
+ StyleInterface *iface = 0;
+
+ if ( lib-> queryInterface ( IID_Style, ( QUnknownInterface ** ) &iface ) == QS_OK )
+ sty = iface-> create ( );
+
+ if ( sty ) {
+ setStyle ( sty );
+
+ qDebug ( "Got Style: %p -- iface: %p, lib: %p\n", sty, iface, lib );
+
+ if ( lastiface )
+ lastiface-> release ( );
+ lastiface = iface;
+
+
+ if ( lastlib ) {
+ lastlib-> unload ( );
+ delete lastlib;
+ }
+ lastlib = lib;
+ }
+ else {
+ if ( iface )
+ iface-> release ( );
+ delete lib;
+
+ setStyle ( new QPEStyle ( ));
+ }
+
+#if 0
// style == "Liquid Style (libliquid.so)" (or "Windows XP (libxp.so)"
int p2 = style. findRev ( ']' );
@@ -1342,18 +1480,15 @@ void QPEApplication::internalSetStyle( const QString &style )
else
style2 = "lib" + style. lower ( ) + ".so";
- // static QLibrary *currentlib = 0;
- static void *currentlib = 0;
+ static QLibrary *currentlib = 0;
QString path = QPEApplication::qpeDir ( ) + "/plugins/styles/" + style2;
do { // try/catch simulation
- // QLibrary *lib = new QLibrary ( path, QLibrary::Immediately );
- void *lib = ::dlopen ( path. local8Bit ( ), RTLD_LAZY | RTLD_GLOBAL );
+ QLibrary *lib = new QLibrary ( path, QLibrary::Immediately );
if ( lib ) {
- //QStyle * (*fpa) ( ) = (QStyle * (*) ( )) lib-> resolve ( "allocate" );
- QStyle * (*fpa) ( ) = (QStyle * (*) ( )) ::dlsym ( lib, "allocate" );
+ QStyle * ( *fpa ) ( ) = ( QStyle * ( * ) ( ) ) lib-> resolve ( "allocate" );
if ( fpa ) {
QStyle *sty = ( *fpa ) ( );
@@ -1361,23 +1496,22 @@ void QPEApplication::internalSetStyle( const QString &style )
if ( sty ) {
setStyle ( sty );
- if ( currentlib ) {
- //delete currentlib;
- ::dlclose ( currentlib );
- }
+ if ( currentlib )
+ delete currentlib;
currentlib = lib;
break;
}
}
- //delete lib;
- ::dlclose ( lib );
+ delete lib;
}
- } while ( false );
}
+ while ( false );
// HACK for Qt2 only
#endif
}
+#endif
+}
/*!
\internal
@@ -1398,7 +1532,8 @@ void QPEApplication::prepareForTermination(bool willrestart)
lblWait->showMaximized();
}
#ifndef SINGLE_APP
- { QCopEnvelope envelope("QPE/System", "forceQuit()"); }
+ { QCopEnvelope envelope( "QPE/System", "forceQuit()" );
+ }
processEvents(); // ensure the message goes out.
sleep(1); // You have 1 second to comply.
#endif
@@ -1459,9 +1594,11 @@ void QPEApplication::setStylusOperation( QWidget* w, StylusMode mode )
{
createDict();
if ( mode == LeftOnly ) {
- stylusDict->remove(w);
+ stylusDict->remove
+ ( w );
w->removeEventFilter(qApp);
- } else {
+ }
+ else {
stylusDict->insert(w,(void*)mode);
connect(w,SIGNAL(destroyed()),qApp,SLOT(removeSenderFromStylusDict()));
w->installEventFilter(qApp);
@@ -1516,7 +1653,8 @@ bool QPEApplication::eventFilter( QObject *o, QEvent *e )
;
}
}
- } else if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) {
+ }
+ else if ( e->type() == QEvent::KeyPress || e->type() == QEvent::KeyRelease ) {
QKeyEvent *ke = (QKeyEvent *)e;
if ( ke->key() == Key_Enter ) {
if ( o->isA( "QRadioButton" ) || o->isA( "QCheckBox" ) ) {
@@ -1548,7 +1686,8 @@ void QPEApplication::timerEvent( QTimerEvent *e )
void QPEApplication::removeSenderFromStylusDict()
{
- stylusDict->remove((void*)sender());
+ stylusDict->remove
+ ( ( void* ) sender() );
if ( d->presswidget == sender() )
d->presswidget = 0;
}
@@ -1704,8 +1843,7 @@ void qt_setMaxWindowRect(const QRect& r)
if ( l ) {
QWidget *w = l->first();
while ( w ) {
- if ( w->isVisible() && w->isMaximized() )
- {
+ if ( w->isVisible() && w->isMaximized() ) {
w->showMaximized();
}
w = l->next();
diff --git a/library/styleinterface.h b/library/styleinterface.h
new file mode 100644
index 0000000..9fea636
--- a/dev/null
+++ b/library/styleinterface.h
@@ -0,0 +1,68 @@
+/**********************************************************************
+** Copyright (C) 2002 Robert Griebl. All rights reserved.
+**
+** This file is part of OPIE (http://www.opie.info).
+**
+** 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 STYLEINTERFACE_H
+#define STYLEINTERFACE_H
+
+#include <qpe/qcom.h>
+
+#ifndef QT_NO_COMPONENT
+
+// {6C33B4F9-D529-453A-8FB3-DA42B21872BD}
+# ifndef IID_Style
+# define IID_Style QUuid( 0x6c33b4f9, 0xd529, 0x453a, 0x8f, 0xb3, 0xda, 0x42, 0xb2, 0x18, 0x72, 0xbd)
+#endif
+
+// {9757A252-3FD4-438F-A756-80BE4A9FB8DC}
+# ifndef IID_StyleSettings
+# define IID_StyleSettings QUuid( 0x9757a252, 0x3fd4, 0x438f, 0xa7, 0x56, 0x80, 0xbe, 0x4a, 0x9f, 0xb8, 0xdc)
+# endif
+
+#endif
+
+class QWidget;
+class QStyle;
+
+struct StyleInterface : public QUnknownInterface
+{
+ //! Return a new style.
+ virtual QStyle *create ( ) = 0;
+
+ //! Return a (longer) description for the style.
+ virtual QString description ( ) = 0;
+
+ //! Return a short name for the style.
+ virtual QString name ( ) = 0;
+
+ //! Return the library basename (libliquid.so => liquid)
+ virtual QCString key ( ) = 0;
+
+ //! QT_VERSION like 1.2.3 == 123
+ virtual unsigned int version ( ) = 0;
+};
+
+struct StyleSettingsInterface : public QUnknownInterface
+{
+ //! Return a new settings page.
+ virtual QWidget *create ( QWidget *parent, const char *name = 0 ) = 0;
+
+ //! Callback for appearance app when OK is clicked (return true when style has to re-applied).
+ virtual bool accept ( ) = 0;
+
+ //! Callback for appeaeance app when Cancel is clicked.
+ virtual void reject ( ) = 0;
+};
+
+#endif
diff --git a/noncore/styles/liquid/liquid.pro b/noncore/styles/liquid/liquid.pro
index 23dce09..a07eaf2 100644
--- a/noncore/styles/liquid/liquid.pro
+++ b/noncore/styles/liquid/liquid.pro
@@ -3,11 +3,15 @@ CONFIG = qt embedded release warn_on
SOURCES = liquid.cpp \
liquiddeco.cpp \
effects.cpp \
+ liquidset.cpp \
plugin.cpp
HEADERS = liquid.h \
liquiddeco.h \
- effects.h
+ effects.h \
+ liquidset.h \
+ plugin.h
+
LIBS += -lqpe
INCLUDEPATH += $(OPIEDIR)/include
DESTDIR = $(OPIEDIR)/plugins/styles
diff --git a/noncore/styles/liquid/settings/liquidset.cpp b/noncore/styles/liquid/liquidset.cpp
index 1479ac0..5ae19ba 100644
--- a/noncore/styles/liquid/settings/liquidset.cpp
+++ b/noncore/styles/liquid/liquidset.cpp
@@ -21,7 +21,7 @@
#include "liquidset.h"
-#include "../liquid.h"
+#include "liquid.h"
#include <qpe/qpeapplication.h>
#include <qpe/global.h>
@@ -57,8 +57,8 @@ static void changeButtonColor ( QWidget *btn, const QColor &col )
}
-LiquidSet::LiquidSet ( QWidget* parent, const char *name, WFlags fl )
- : QDialog ( parent, name, fl )
+LiquidSettings::LiquidSettings ( QWidget* parent, const char *name, WFlags fl )
+ : QWidget ( parent, name, fl )
{
setCaption ( tr( "Liquid Style" ) );
@@ -122,7 +122,7 @@ LiquidSet::LiquidSet ( QWidget* parent, const char *name, WFlags fl )
QPopupMenu *popup;
- popup = new ColorPopupMenu ( m_menucol, this );
+ popup = new ColorPopupMenu ( m_menucol, 0 );
m_menubtn-> setPopup ( popup );
m_menubtn-> setPopupDelay ( 0 );
connect ( popup, SIGNAL( colorSelected ( const QColor & )), this, SLOT( changeMenuColor ( const QColor & )));
@@ -131,7 +131,7 @@ LiquidSet::LiquidSet ( QWidget* parent, const char *name, WFlags fl )
m_textbtn = new QToolButton ( this );
grid-> addWidget ( m_textbtn, 0, 5 );
- popup = new ColorPopupMenu ( m_textcol, this );
+ popup = new ColorPopupMenu ( m_textcol, 0 );
m_textbtn-> setPopup ( popup );
m_textbtn-> setPopupDelay ( 0 );
connect ( popup, SIGNAL( colorSelected ( const QColor & )), this, SLOT( changeTextColor ( const QColor & )));
@@ -176,7 +176,7 @@ LiquidSet::LiquidSet ( QWidget* parent, const char *name, WFlags fl )
connect ( windeco, SIGNAL( toggled ( bool ) ), this, SLOT( changeDeco ( bool ) ) );
}
-void LiquidSet::changeType ( int t )
+void LiquidSettings::changeType ( int t )
{
bool custom = ( t == Custom );
@@ -190,30 +190,30 @@ void LiquidSet::changeType ( int t )
m_type = t;
}
-void LiquidSet::changeMenuColor ( const QColor &col )
+void LiquidSettings::changeMenuColor ( const QColor &col )
{
changeButtonColor ( m_menubtn, col );
m_menucol = col;
}
-void LiquidSet::changeTextColor ( const QColor &col )
+void LiquidSettings::changeTextColor ( const QColor &col )
{
changeButtonColor ( m_textbtn, col );
m_textcol = col;
}
-void LiquidSet::changeShadow ( bool b )
+void LiquidSettings::changeShadow ( bool b )
{
m_shadow = b;
}
-void LiquidSet::changeDeco ( bool b )
+void LiquidSettings::changeDeco ( bool b )
{
m_deco = b;
}
-void LiquidSet::accept ( )
+bool LiquidSettings::writeConfig ( )
{
Config config ( "qpe" );
config. setGroup ( "Liquid-Style" );
@@ -227,8 +227,6 @@ void LiquidSet::accept ( )
config. writeEntry ( "StippleContrast", m_contsld-> value ( ));
config. write ( );
- Global::applyStyle ( );
-
- QDialog::accept ( );
+ return true;
}
diff --git a/noncore/styles/liquid/settings/liquidset.h b/noncore/styles/liquid/liquidset.h
index a0f590a..7843513 100644
--- a/noncore/styles/liquid/settings/liquidset.h
+++ b/noncore/styles/liquid/liquidset.h
@@ -8,11 +8,11 @@ class QLabel;
class QToolButton;
class QSlider;
-class LiquidSet : public QDialog {
+class LiquidSettings : public QWidget {
Q_OBJECT
public:
- LiquidSet ( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 );
+ LiquidSettings ( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 );
public slots:
void changeType ( int t );
@@ -21,8 +21,7 @@ public slots:
void changeShadow ( bool b );
void changeDeco ( bool b );
-protected:
- virtual void accept ( );
+ virtual bool writeConfig ( );
private:
QColor m_menucol;
diff --git a/noncore/styles/liquid/opie-liquid.control b/noncore/styles/liquid/opie-liquid.control
index 6311dee..7b6ae71 100644
--- a/noncore/styles/liquid/opie-liquid.control
+++ b/noncore/styles/liquid/opie-liquid.control
@@ -1,4 +1,4 @@
-Files: plugins/styles/libliquid.so* bin/liquid-settings apps/Settings/Liquid.desktop pics/liquid/Liquid.png
+Files: plugins/styles/libliquid.so*
Priority: optional
Section: opie/system
Maintainer: Robert Griebl <sandman@handhelds.org>
diff --git a/noncore/styles/liquid/plugin.cpp b/noncore/styles/liquid/plugin.cpp
index d9aa8ef..f149c29 100644
--- a/noncore/styles/liquid/plugin.cpp
+++ b/noncore/styles/liquid/plugin.cpp
@@ -1,29 +1,111 @@
#include "liquid.h"
+#include "liquidset.h"
+#include "plugin.h"
-extern "C" {
- QStyle* allocate ( );
- int minor_version ( );
- int major_version ( );
- const char *description ( );
+
+LiquidInterface::LiquidInterface ( ) : ref ( 0 )
+{
+}
+
+LiquidInterface::~LiquidInterface ( )
+{
}
-QStyle* allocate ( )
+QStyle *LiquidInterface::create ( )
{
return new LiquidStyle ( );
}
-int minor_version ( )
+QString LiquidInterface::name ( )
+{
+ return QObject::tr( "Liquid", "name" );
+}
+
+QString LiquidInterface::description ( )
+{
+ return QObject::tr( "High Performance Liquid style by Mosfet", "description" );
+}
+
+QCString LiquidInterface::key ( )
{
- return 0;
+ return QCString ( "liquid" );
}
-int major_version ( )
+unsigned int LiquidInterface::version ( )
{
- return 1;
+ return 100; // 1.0.0 (\d+.\d.\d)
}
-const char *description ( )
+QRESULT LiquidInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
+{
+ static LiquidSettingsInterface *setiface = 0;
+
+ *iface = 0;
+
+ if ( uuid == IID_QUnknown )
+ *iface = this;
+ else if ( uuid == IID_Style )
+ *iface = this;
+ else if ( uuid == IID_StyleSettings ) {
+ if ( !setiface )
+ setiface = new LiquidSettingsInterface ( );
+ *iface = setiface;
+ }
+
+ if ( *iface )
+ (*iface)-> addRef ( );
+
+ return QS_OK;
+}
+
+Q_EXPORT_INTERFACE()
+{
+ Q_CREATE_INSTANCE( LiquidInterface )
+}
+
+
+LiquidSettingsInterface::LiquidSettingsInterface ( ) : ref ( 0 )
{
- return "High Performance Liquid";
+ m_widget = 0;
}
+
+LiquidSettingsInterface::~LiquidSettingsInterface ( )
+{
+}
+
+QWidget *LiquidSettingsInterface::create ( QWidget *parent, const char *name )
+{
+ m_widget = new LiquidSettings ( parent, name ? name : "LIQUID-SETTINGS" );
+
+ return m_widget;
+}
+
+bool LiquidSettingsInterface::accept ( )
+{
+ if ( !m_widget )
+ return false;
+
+ return m_widget-> writeConfig ( );
+}
+
+void LiquidSettingsInterface::reject ( )
+{
+}
+
+QRESULT LiquidSettingsInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
+{
+ *iface = 0;
+
+
+ if ( uuid == IID_QUnknown )
+ *iface = this;
+ else if ( uuid == IID_StyleSettings )
+ *iface = this;
+
+ if ( *iface )
+ (*iface)-> addRef ( );
+
+ return QS_OK;
+}
+
diff --git a/noncore/styles/liquid/plugin.h b/noncore/styles/liquid/plugin.h
new file mode 100644
index 0000000..759577f
--- a/dev/null
+++ b/noncore/styles/liquid/plugin.h
@@ -0,0 +1,46 @@
+#ifndef __OPIE_LIQUID_PLUGIN_H__
+#define __OPIE_LIQUID_PLUGIN_H__
+
+#include <qpe/styleinterface.h>
+
+class LiquidSettings;
+
+class LiquidInterface : public StyleInterface {
+public:
+ LiquidInterface ( );
+ virtual ~LiquidInterface ( );
+
+ QRESULT queryInterface ( const QUuid &, QUnknownInterface ** );
+ Q_REFCOUNT
+
+ virtual QStyle *create ( );
+
+ virtual QString description ( );
+ virtual QString name ( );
+ virtual QCString key ( );
+
+ virtual unsigned int version ( );
+
+private:
+ ulong ref;
+};
+
+class LiquidSettingsInterface : public StyleSettingsInterface {
+public:
+ LiquidSettingsInterface ( );
+ virtual ~LiquidSettingsInterface ( );
+
+ QRESULT queryInterface ( const QUuid &, QUnknownInterface ** );
+ Q_REFCOUNT
+
+ virtual QWidget *create ( QWidget *parent, const char *name = 0 );
+
+ virtual bool accept ( );
+ virtual void reject ( );
+
+private:
+ LiquidSettings *m_widget;
+ ulong ref;
+};
+
+#endif
diff --git a/noncore/styles/liquid/settings/.cvsignore b/noncore/styles/liquid/settings/.cvsignore
deleted file mode 100644
index c13418b..0000000
--- a/noncore/styles/liquid/settings/.cvsignore
+++ b/dev/null
@@ -1,2 +0,0 @@
-Makefile*
-moc_*
diff --git a/noncore/styles/liquid/settings/main.cpp b/noncore/styles/liquid/settings/main.cpp
deleted file mode 100644
index fd69007..0000000
--- a/noncore/styles/liquid/settings/main.cpp
+++ b/dev/null
@@ -1,34 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qtopia Environment.
-**
-** 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.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "liquidset.h"
-
-#include <qpe/qpeapplication.h>
-
-
-int main ( int argc, char** argv )
-{
- QPEApplication a ( argc, argv );
-
- LiquidSet dlg;
- a. showMainWidget ( &dlg );
-
- return a. exec ( );
-}
diff --git a/noncore/styles/liquid/settings/settings.pro b/noncore/styles/liquid/settings/settings.pro
deleted file mode 100644
index bfda7a4..0000000
--- a/noncore/styles/liquid/settings/settings.pro
+++ b/dev/null
@@ -1,24 +0,0 @@
-TEMPLATE = app
-CONFIG += qt warn_on release
-DESTDIR = $(OPIEDIR)/bin
-HEADERS = liquidset.h
-SOURCES = liquidset.cpp main.cpp
-INCLUDEPATH += $(OPIEDIR)/include
-DEPENDPATH += ../$(OPIEDIR)/include
-LIBS += -lqpe -lopie
-TARGET = liquid-settings
-
-TRANSLATIONS = ../../../../i18n/de/liquid-settings.ts \
- ../../../../i18n/en/liquid-settings.ts \
- ../../../../i18n/es/liquid-settings.ts \
- ../../../../i18n/fr/liquid-settings.ts \
- ../../../../i18n/hu/liquid-settings.ts \
- ../../../../i18n/ja/liquid-settings.ts \
- ../../../../i18n/ko/liquid-settings.ts \
- ../../../../i18n/no/liquid-settings.ts \
- ../../../../i18n/pl/liquid-settings.ts \
- ../../../../i18n/pt/liquid-settings.ts \
- ../../../../i18n/pt_BR/liquid-settings.ts \
- ../../../../i18n/sl/liquid-settings.ts \
- ../../../../i18n/zh_CN/liquid-settings.ts \
- ../../../../i18n/zh_TW/liquid-settings.ts
diff --git a/noncore/styles/metal/metal.pro b/noncore/styles/metal/metal.pro
index 6e99389..cf15f33 100644
--- a/noncore/styles/metal/metal.pro
+++ b/noncore/styles/metal/metal.pro
@@ -2,7 +2,7 @@ TEMPLATE = lib
CONFIG = qt embedded release warn_on
SOURCES = metal.cpp plugin.cpp
-HEADERS = metal.h
+HEADERS = metal.h plugin.h
LIBS += -lqpe
INCLUDEPATH += $(OPIEDIR)/include
DESTDIR = $(OPIEDIR)/plugins/styles
diff --git a/noncore/styles/metal/plugin.cpp b/noncore/styles/metal/plugin.cpp
index e5bee10..1db4aac 100644
--- a/noncore/styles/metal/plugin.cpp
+++ b/noncore/styles/metal/plugin.cpp
@@ -1,29 +1,57 @@
#include "metal.h"
+#include "plugin.h"
-extern "C" {
- QStyle* allocate ( );
- int minor_version ( );
- int major_version ( );
- const char *description ( );
+MetalInterface::MetalInterface ( ) : ref ( 0 )
+{
}
-QStyle* allocate ( )
+MetalInterface::~MetalInterface ( )
+{
+}
+
+QStyle *MetalInterface::create ( )
{
return new MetalStyle ( );
}
-int minor_version ( )
+QString MetalInterface::name ( )
{
- return 0;
+ return QObject::tr( "Metal", "name" );
}
-int major_version ( )
+QString MetalInterface::description ( )
{
- return 1;
+ return QObject::tr( "Metal style", "description" );
}
-const char *description ( )
+QCString MetalInterface::key ( )
{
- return "Metal style plugin";
+ return QCString ( "metal" );
}
+
+unsigned int MetalInterface::version ( )
+{
+ return 100; // 1.0.0 (\d+.\d.\d)
+}
+
+QRESULT MetalInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
+{
+ *iface = 0;
+
+ if ( uuid == IID_QUnknown )
+ *iface = this;
+ else if ( uuid == IID_Style )
+ *iface = this;
+
+ if ( *iface )
+ (*iface)-> addRef ( );
+
+ return QS_OK;
+}
+
+Q_EXPORT_INTERFACE()
+{
+ Q_CREATE_INSTANCE( MetalInterface )
+}
+
diff --git a/noncore/styles/metal/plugin.h b/noncore/styles/metal/plugin.h
new file mode 100644
index 0000000..f61c833
--- a/dev/null
+++ b/noncore/styles/metal/plugin.h
@@ -0,0 +1,27 @@
+#ifndef __OPIE_METAL_PLUGIN_H__
+#define __OPIE_METAL_PLUGIN_H__
+
+#include <qpe/styleinterface.h>
+
+
+class MetalInterface : public StyleInterface {
+public:
+ MetalInterface ( );
+ virtual ~MetalInterface ( );
+
+ QRESULT queryInterface ( const QUuid &, QUnknownInterface ** );
+ Q_REFCOUNT
+
+ virtual QStyle *create ( );
+
+ virtual QString description ( );
+ virtual QString name ( );
+ virtual QCString key ( );
+
+ virtual unsigned int version ( );
+
+private:
+ ulong ref;
+};
+
+#endif
diff --git a/noncore/styles/theme/opie-theme.control b/noncore/styles/theme/opie-theme.control
index 02739fb..adb4f4b 100644
--- a/noncore/styles/theme/opie-theme.control
+++ b/noncore/styles/theme/opie-theme.control
@@ -1,4 +1,4 @@
-Files: plugins/styles/libtheme.so* bin/theme-settings apps/Settings/Theme.desktop pics/theme/Theme.png
+Files: plugins/styles/libtheme.so*
Priority: optional
Section: opie/system
Maintainer: Robert Griebl <sandman@handhelds.org>
diff --git a/noncore/styles/theme/plugin.cpp b/noncore/styles/theme/plugin.cpp
index b334357..4383693 100644
--- a/noncore/styles/theme/plugin.cpp
+++ b/noncore/styles/theme/plugin.cpp
@@ -1,19 +1,111 @@
-//#include <klocale.h>
#include "othemestyle.h"
+#include "themeset.h"
+#include "plugin.h"
-extern "C"
+
+
+ThemeInterface::ThemeInterface ( ) : ref ( 0 )
+{
+}
+
+ThemeInterface::~ThemeInterface ( )
+{
+}
+
+QStyle *ThemeInterface::create ( )
{
- QStyle * allocate() {
return new OThemeStyle ( "" );
}
- int minor_version() {
- return 0;
+
+QString ThemeInterface::name ( )
+{
+ return QObject::tr( "Themed style", "name" );
+}
+
+QString ThemeInterface::description ( )
+{
+ return QObject::tr( "KDE2 theme compatible style engine", "description" );
+}
+
+QCString ThemeInterface::key ( )
+{
+ return QCString ( "theme" );
+}
+
+unsigned int ThemeInterface::version ( )
+{
+ return 100; // 1.0.0 (\d+.\d.\d)
+}
+
+QRESULT ThemeInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
+{
+ static ThemeSettingsInterface *setiface = 0;
+
+ *iface = 0;
+
+ if ( uuid == IID_QUnknown )
+ *iface = this;
+ else if ( uuid == IID_Style )
+ *iface = this;
+ else if ( uuid == IID_StyleSettings ) {
+ if ( !setiface )
+ setiface = new ThemeSettingsInterface ( );
+ *iface = setiface;
+ }
+
+ if ( *iface )
+ (*iface)-> addRef ( );
+
+ return QS_OK;
+}
+
+Q_EXPORT_INTERFACE()
+{
+ Q_CREATE_INSTANCE( ThemeInterface )
+}
+
+
+ThemeSettingsInterface::ThemeSettingsInterface ( ) : ref ( 0 )
+{
+ m_widget = 0;
+}
+
+ThemeSettingsInterface::~ThemeSettingsInterface ( )
+{
+}
+
+QWidget *ThemeSettingsInterface::create ( QWidget *parent, const char *name )
+{
+ m_widget = new ThemeSettings ( parent, name ? name : "THEME-SETTINGS" );
+
+ return m_widget;
}
- int major_version() {
- return 1;
+
+bool ThemeSettingsInterface::accept ( )
+{
+ if ( !m_widget )
+ return false;
+
+ return m_widget-> writeConfig ( );
}
- const char * description() {
- return ( "Theme Style" );
+
+void ThemeSettingsInterface::reject ( )
+{
}
+
+QRESULT ThemeSettingsInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface )
+{
+ *iface = 0;
+
+
+ if ( uuid == IID_QUnknown )
+ *iface = this;
+ else if ( uuid == IID_StyleSettings )
+ *iface = this;
+
+ if ( *iface )
+ (*iface)-> addRef ( );
+
+ return QS_OK;
}
diff --git a/noncore/styles/theme/plugin.h b/noncore/styles/theme/plugin.h
new file mode 100644
index 0000000..d13fc5d
--- a/dev/null
+++ b/noncore/styles/theme/plugin.h
@@ -0,0 +1,46 @@
+#ifndef __OPIE_THEME_PLUGIN_H__
+#define __OPIE_THEME_PLUGIN_H__
+
+#include <qpe/styleinterface.h>
+
+class ThemeSettings;
+
+class ThemeInterface : public StyleInterface {
+public:
+ ThemeInterface ( );
+ virtual ~ThemeInterface ( );
+
+ QRESULT queryInterface ( const QUuid &, QUnknownInterface ** );
+ Q_REFCOUNT
+
+ virtual QStyle *create ( );
+
+ virtual QString description ( );
+ virtual QString name ( );
+ virtual QCString key ( );
+
+ virtual unsigned int version ( );
+
+private:
+ ulong ref;
+};
+
+class ThemeSettingsInterface : public StyleSettingsInterface {
+public:
+ ThemeSettingsInterface ( );
+ virtual ~ThemeSettingsInterface ( );
+
+ QRESULT queryInterface ( const QUuid &, QUnknownInterface ** );
+ Q_REFCOUNT
+
+ virtual QWidget *create ( QWidget *parent, const char *name = 0 );
+
+ virtual bool accept ( );
+ virtual void reject ( );
+
+private:
+ ThemeSettings *m_widget;
+ ulong ref;
+};
+
+#endif
diff --git a/noncore/styles/theme/settings/main.cpp b/noncore/styles/theme/settings/main.cpp
deleted file mode 100644
index 94d40f3..0000000
--- a/noncore/styles/theme/settings/main.cpp
+++ b/dev/null
@@ -1,34 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qtopia Environment.
-**
-** 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.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "themeset.h"
-
-#include <qpe/qpeapplication.h>
-
-
-int main ( int argc, char** argv )
-{
- QPEApplication a ( argc, argv );
-
- ThemeSet dlg;
- a. showMainWidget ( &dlg );
-
- return a. exec ( );
-}
diff --git a/noncore/styles/theme/settings/settings.pro b/noncore/styles/theme/settings/settings.pro
deleted file mode 100644
index 85d1f7a..0000000
--- a/noncore/styles/theme/settings/settings.pro
+++ b/dev/null
@@ -1,24 +0,0 @@
-TEMPLATE = app
-CONFIG += qt warn_on release
-DESTDIR = $(OPIEDIR)/bin
-HEADERS = themeset.h
-SOURCES = themeset.cpp main.cpp
-INCLUDEPATH += $(OPIEDIR)/include
-DEPENDPATH += ../$(OPIEDIR)/include
-LIBS += -lqpe
-TARGET = theme-settings
-
-TRANSLATIONS = ../../../../i18n/de/theme-settings.ts \
- ../../../../i18n/en/theme-settings.ts \
- ../../../../i18n/es/theme-settings.ts \
- ../../../../i18n/fr/theme-settings.ts \
- ../../../../i18n/hu/theme-settings.ts \
- ../../../../i18n/ja/theme-settings.ts \
- ../../../../i18n/ko/theme-settings.ts \
- ../../../../i18n/no/theme-settings.ts \
- ../../../../i18n/pl/theme-settings.ts \
- ../../../../i18n/pt/theme-settings.ts \
- ../../../../i18n/pt_BR/theme-settings.ts \
- ../../../../i18n/sl/theme-settings.ts \
- ../../../../i18n/zh_CN/theme-settings.ts \
- ../../../../i18n/zh_TW/theme-settings.ts
diff --git a/noncore/styles/theme/settings/themeset.h b/noncore/styles/theme/settings/themeset.h
deleted file mode 100644
index 24804ce..0000000
--- a/noncore/styles/theme/settings/themeset.h
+++ b/dev/null
@@ -1,20 +0,0 @@
-#ifndef __OPIE_THEME_SET_H__
-#define __OPIE_THEME_SET_H__
-
-#include <qdialog.h>
-
-class QListView;
-
-class ThemeSet : public QDialog {
- Q_OBJECT
-
-public:
- ThemeSet ( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 );
-
-protected:
- virtual void accept ( );
-
-private:
- QListView *m_list;
-};
-#endif
diff --git a/noncore/styles/theme/theme.pro b/noncore/styles/theme/theme.pro
index fdcd20e..49c4103 100644
--- a/noncore/styles/theme/theme.pro
+++ b/noncore/styles/theme/theme.pro
@@ -3,11 +3,14 @@ CONFIG = qt embedded debug warn_on
SOURCES = ogfxeffect.cpp \
othemestyle.cpp \
othemebase.cpp \
+ themeset.cpp \
plugin.cpp
HEADERS = ogfxeffect.h \
othemebase.h \
- othemestyle.h
+ othemestyle.h \
+ themeset.h \
+ plugin.h
LIBS += -lqpe
diff --git a/noncore/styles/theme/settings/themeset.cpp b/noncore/styles/theme/themeset.cpp
index 046618e..4a4efcb 100644
--- a/noncore/styles/theme/settings/themeset.cpp
+++ b/noncore/styles/theme/themeset.cpp
@@ -59,8 +59,8 @@ public:
};
-ThemeSet::ThemeSet ( QWidget* parent, const char *name, WFlags fl )
- : QDialog ( parent, name, fl )
+ThemeSettings::ThemeSettings ( QWidget* parent, const char *name, WFlags fl )
+ : QWidget ( parent, name, fl )
{
setCaption ( tr( "Theme Style" ) );
@@ -109,16 +109,15 @@ ThemeSet::ThemeSet ( QWidget* parent, const char *name, WFlags fl )
}
}
-void ThemeSet::accept ( )
+bool ThemeSettings::writeConfig ( )
{
Config config ( "qpe" );
config. setGroup ( "Appearance" );
MyItem *it = (MyItem *) m_list-> selectedItem ( );
config. writeEntry ( "Theme", it ? it-> m_theme : QString ( "" ));
+ config. write ( );
- Global::applyStyle ( );
-
- QDialog::accept ( );
+ return true;
}
diff --git a/noncore/styles/theme/themeset.h b/noncore/styles/theme/themeset.h
new file mode 100644
index 0000000..c337cfa
--- a/dev/null
+++ b/noncore/styles/theme/themeset.h
@@ -0,0 +1,20 @@
+#ifndef __OPIE_THEME_SETTINGS_H__
+#define __OPIE_THEME_SETTINGS_H__
+
+#include <qdialog.h>
+
+class QListView;
+
+class ThemeSettings : public QWidget {
+ Q_OBJECT
+
+public:
+ ThemeSettings ( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 );
+
+public:
+ virtual bool writeConfig ( );
+
+private:
+ QListView *m_list;
+};
+#endif
diff --git a/pics/liquid/Liquid.png b/pics/liquid/Liquid.png
deleted file mode 100644
index 67647d0..0000000
--- a/pics/liquid/Liquid.png
+++ b/dev/null
Binary files differ
diff --git a/pics/theme/Theme.png b/pics/theme/Theme.png
deleted file mode 100644
index 67647d0..0000000
--- a/pics/theme/Theme.png
+++ b/dev/null
Binary files differ