summaryrefslogtreecommitdiff
authorzecke <zecke>2003-08-29 18:04:43 (UTC)
committer zecke <zecke>2003-08-29 18:04:43 (UTC)
commit18cae99f1deb15213074a8fb96f79eae4b0c5a43 (patch) (unidiff)
tree1dc5c46deef1558b8cca0fd716c3a154c6eb6ac8
parent885c645ee48ae53467e244521c011c73bc106afb (diff)
downloadopie-18cae99f1deb15213074a8fb96f79eae4b0c5a43.zip
opie-18cae99f1deb15213074a8fb96f79eae4b0c5a43.tar.gz
opie-18cae99f1deb15213074a8fb96f79eae4b0c5a43.tar.bz2
Patch provided by mithro
I've included 2 patches need to make opie support on the fly screen resolution changing. This is done with the following, qcop "QPE/System" "setCurrentMode(int,int,int)" 480 640 16 This is good for running applications in compatibility mode on the C700. As you can see there isn't much to these patches.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp46
-rw-r--r--library/qpeapplication.h2
2 files changed, 48 insertions, 0 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index 149e6bb..71ec5b3 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -1067,6 +1067,39 @@ void QPEApplication::setDefaultRotation( int r )
1067 } 1067 }
1068} 1068}
1069 1069
1070#include <qgfx_qws.h>
1071#include <qwindowsystem_qws.h>
1072#include <qpixmapcache.h>
1073
1074extern void qws_clearLoadedFonts();
1075
1076inline void QPEApplication::setCurrentMode( int x, int y, int depth )
1077{
1078 // Reset the caches
1079 qws_clearLoadedFonts();
1080 QPixmapCache::clear();
1081
1082 // Change the screen mode
1083 qt_screen->setMode(x, y, depth);
1084
1085 if ( qApp->type() == GuiServer ) {
1086 // Reconfigure the GuiServer
1087 qwsServer->beginDisplayReconfigure();
1088 qwsServer->endDisplayReconfigure();
1089
1090 // Get all the running apps to reset
1091 QCopEnvelope env( "QPE/System", "reset()" );
1092 }
1093}
1094
1095inline void QPEApplication::reset() {
1096 // Reconnect to the screen
1097 qt_screen->disconnect();
1098 qt_screen->connect( QString::null );
1099
1100 // Redraw everything
1101 applyStyle();
1102}
1070 1103
1071/*! 1104/*!
1072 \internal 1105 \internal
@@ -1180,6 +1213,19 @@ void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data
1180 setDefaultRotation( r ); 1213 setDefaultRotation( r );
1181 } 1214 }
1182 } 1215 }
1216 else if ( msg == "setCurrentMode(int,int,int)" ) { // Added: 2003-06-11 by Tim Ansell <mithro@mithis.net>
1217 if ( type() == GuiServer ) {
1218 int x, y, depth;
1219 stream >> x;
1220 stream >> y;
1221 stream >> depth;
1222 setCurrentMode( x, y, depth );
1223 }
1224 }
1225 else if ( msg == "reset()" ) {
1226 if ( type() != GuiServer )
1227 reset();
1228 }
1183 else if ( msg == "setCurrentRotation(int)" ) { 1229 else if ( msg == "setCurrentRotation(int)" ) {
1184 int r; 1230 int r;
1185 stream >> r; 1231 stream >> r;
diff --git a/library/qpeapplication.h b/library/qpeapplication.h
index 343e0b9..42810e8 100644
--- a/library/qpeapplication.h
+++ b/library/qpeapplication.h
@@ -48,9 +48,11 @@ public:
48 static QString qpeDir(); 48 static QString qpeDir();
49 static QString documentDir(); 49 static QString documentDir();
50 void applyStyle(); 50 void applyStyle();
51 void reset();
51 static int defaultRotation(); 52 static int defaultRotation();
52 static void setDefaultRotation(int r); 53 static void setDefaultRotation(int r);
53 static void setCurrentRotation(int r); 54 static void setCurrentRotation(int r);
55 static void setCurrentMode(int x, int y, int depth );
54 static void grabKeyboard(); 56 static void grabKeyboard();
55 static void ungrabKeyboard(); 57 static void ungrabKeyboard();
56 58