summaryrefslogtreecommitdiff
path: root/library
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 /library
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 (limited to 'library') (more/less context) (show whitespace changes)
-rw-r--r--library/qpeapplication.cpp322
-rw-r--r--library/styleinterface.h68
2 files changed, 298 insertions, 92 deletions
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