summaryrefslogtreecommitdiff
authorsandman <sandman>2002-12-03 01:11:05 (UTC)
committer sandman <sandman>2002-12-03 01:11:05 (UTC)
commit5a3a7cb4b7d0c1b569e68fa1cde43b9c10376e80 (patch) (unidiff)
tree512867937241ef5a50ea7ac86499d534226d3013
parentee1180d2aa5e59db52078aa5dee06477093b3d35 (diff)
downloadopie-5a3a7cb4b7d0c1b569e68fa1cde43b9c10376e80.zip
opie-5a3a7cb4b7d0c1b569e68fa1cde43b9c10376e80.tar.gz
opie-5a3a7cb4b7d0c1b569e68fa1cde43b9c10376e80.tar.bz2
Two additional functions preloaded to make HancomWord happy ...
1) the old pointSizes() problem in the FontDatabase (bic change from qt/e 2.3.3 -> 2.3.4) 2) the QPalette for the text widget has to be adjusted (hancom uses QPainter::eraseRect(), which doesn't work with background pixmaps, like e.g. in liquid)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/libpreload/libpreload.pro2
-rw-r--r--core/launcher/libpreload/preload.cpp45
2 files changed, 45 insertions, 2 deletions
diff --git a/core/launcher/libpreload/libpreload.pro b/core/launcher/libpreload/libpreload.pro
index 7630d01..ed426da 100644
--- a/core/launcher/libpreload/libpreload.pro
+++ b/core/launcher/libpreload/libpreload.pro
@@ -1,11 +1,11 @@
1TEMPLATE = lib 1TEMPLATE = lib
2 2
3CONFIG = release warn_on 3CONFIG = qt release warn_on
4 4
5SOURCES = preload.cpp 5SOURCES = preload.cpp
6 6
7HEADERS = 7HEADERS =
8 8
9INCLUDEPATH += $(QTDIR)/include 9INCLUDEPATH += $(QTDIR)/include
10 10
11DESTDIR = $(QTDIR)/lib 11DESTDIR = $(QTDIR)/lib
diff --git a/core/launcher/libpreload/preload.cpp b/core/launcher/libpreload/preload.cpp
index cc1baac..345620b 100644
--- a/core/launcher/libpreload/preload.cpp
+++ b/core/launcher/libpreload/preload.cpp
@@ -1,33 +1,37 @@
1 1
2#define _GNU_SOURCE 2#define _GNU_SOURCE
3//#define private public 3//#define private public
4//#define protected public 4//#define protected public
5 5
6#include <qapplication.h>
6#include <qwsdecoration_qws.h> 7#include <qwsdecoration_qws.h>
7#include <qcommonstyle.h> 8#include <qcommonstyle.h>
8 9
9//#include <qapplication.h> 10//#include <qapplication.h>
10//#include <qfont.h> 11//#include <qfont.h>
11 12
12//class QStyle; 13//class QStyle;
13class QApplication; 14//class QApplication;
14class QFont; 15class QFont;
15//class QWSDecoration; 16//class QWSDecoration;
17class QFontDatabase;
16 18
17#include <dlfcn.h> 19#include <dlfcn.h>
18#include <unistd.h> 20#include <unistd.h>
19#include <stdio.h> 21#include <stdio.h>
20#include <stdlib.h> 22#include <stdlib.h>
21 23
22 24
23typedef void ( *qapp_setstyle_t ) ( QStyle * ); 25typedef void ( *qapp_setstyle_t ) ( QStyle * );
24typedef void ( *qapp_setdeco_t ) ( QWSDecoration * ); 26typedef void ( *qapp_setdeco_t ) ( QWSDecoration * );
25typedef void ( *qapp_setfont_t ) ( const QFont &, bool, const char * ); 27typedef void ( *qapp_setfont_t ) ( const QFont &, bool, const char * );
28typedef void ( *qapp_polish_t ) ( QApplication *, QWidget * );
29typedef QValueList <int> ( *qfdb_pointsizes_t ) ( QFontDatabase *, QString const &, QString const &, QString const & );
26 30
27 31
28static int *opie_block_style_p = 0; 32static int *opie_block_style_p = 0;
29 33
30extern "C" { 34extern "C" {
31 35
32extern void __gmon_start ( ) __attribute(( weak )); 36extern void __gmon_start ( ) __attribute(( weak ));
33 37
@@ -40,16 +44,55 @@ static void *resolve_symbol ( const char *sym )
40 void *adr = ::dlsym ( RTLD_NEXT, sym ); 44 void *adr = ::dlsym ( RTLD_NEXT, sym );
41 45
42 if ( !adr ) 46 if ( !adr )
43 ::fprintf ( stderr, "PANIC: Could not resolve symbol \"%s\"\n", sym ); 47 ::fprintf ( stderr, "PANIC: Could not resolve symbol \"%s\"\n", sym );
44 48
45 return adr; 49 return adr;
46} 50}
47 51
52void polish__12QApplicationP7QWidget ( QApplication *that, QWidget *w )
53{
54 static qapp_polish_t qpolish = 0;
55
56 if ( !qpolish )
57 qpolish = (qapp_polish_t) resolve_symbol ( "polish__12QApplicationP7QWidget" );
58
59 if ( qpolish )
60 ( *qpolish ) ( that, w );
61
62 if (( ::strcmp ( qApp-> argv ( ) [0], "HancomMobileWord" ) == 0 ) && ( w-> inherits ( "HTextEdit" ))) {
63 QPalette pal = w-> palette ( );
64 pal. setColor ( QColorGroup::Background, pal. color ( QPalette::Active, QColorGroup::Base ));
65 w-> setPalette ( pal );
66 // w-> setPalette ( w-> palette ( ). active ( ). color ( QColorGroup::Base ));
67 }
68}
69
70extern QValueList <int> pointSizes__13QFontDatabaseRC7QStringN21 ( QFontDatabase *that, QString const &family, QString const &style, QString const &charset )
71{
72 static qfdb_pointsizes_t qpointsizes = 0;
73
74 if ( !qpointsizes )
75 qpointsizes = (qfdb_pointsizes_t) resolve_symbol ( "pointSizes__13QFontDatabaseRC7QStringN21" );
76
77 QValueList <int> sl;
78
79 if ( qpointsizes ) {
80 sl = ( *qpointsizes ) ( that, family, style, charset );
81
82 if ( ::strcmp ( qApp-> argv ( ) [0], "HancomMobileWord" ) == 0 ) {
83 for ( QValueList <int>::Iterator it = sl. begin ( ); it != sl. end ( ); ++it )
84 *it *= 10;
85 }
86 }
87
88 return sl;
89}
90
48extern void setStyle__12QApplicationP6QStyle ( QStyle *style ) 91extern void setStyle__12QApplicationP6QStyle ( QStyle *style )
49{ 92{
50 static qapp_setstyle_t qsetstyle = 0; 93 static qapp_setstyle_t qsetstyle = 0;
51 94
52 if ( !qsetstyle ) 95 if ( !qsetstyle )
53 qsetstyle = (qapp_setstyle_t) resolve_symbol ( "setStyle__12QApplicationP6QStyle" ); 96 qsetstyle = (qapp_setstyle_t) resolve_symbol ( "setStyle__12QApplicationP6QStyle" );
54 97
55 if ( !opie_block_style_p ) 98 if ( !opie_block_style_p )