fontmanager.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "fontmanager.h"
00022 #include <qfile.h>
00023 #include <stdlib.h>
00024 #include <qgfx_qws.h>
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 bool FontManager::hasUnicodeFont()
00039 {
00040 QString fontDir = getenv("QTDIR") + QString("/lib/fonts/");
00041
00042 QString suffix;
00043 if ( qt_screen->isTransformed() ) {
00044 suffix += "_t";
00045 QPoint a = qt_screen->mapToDevice(QPoint(0,0),QSize(2,2));
00046 QPoint b = qt_screen->mapToDevice(QPoint(1,1),QSize(2,2));
00047 suffix += QString::number( a.x()*8+a.y()*4+(1-b.x())*2+(1-b.y()) );
00048 }
00049 suffix += ".qpf";
00050
00051 return QFile::exists( fontDir+"cyberbit_120_50"+suffix )
00052 || QFile::exists( fontDir+"unifont_160_50"+suffix ) ||
00053 QFile::exists( fontDir+"arial_140_50" + suffix );
00054 }
00055
00056 QFont FontManager::unicodeFont( Spacing sp )
00057 {
00058 QString key;
00059 QString fontName;
00060 QString fontDir = getenv("QTDIR") + QString("/lib/fonts/");
00061
00062 int size;
00063 if ( sp == Proportional ) {
00064 fontName = "Arial";
00065 size=14;
00066 key = "arial_140_50";
00067 } else {
00068 fontName = "Unifont";
00069 size=16;
00070 key = "unifont_160_50";
00071 }
00072
00073 QString suffix;
00074 if ( qt_screen->isTransformed() ) {
00075 suffix += "_t";
00076 QPoint a = qt_screen->mapToDevice(QPoint(0,0),QSize(2,2));
00077 QPoint b = qt_screen->mapToDevice(QPoint(1,1),QSize(2,2));
00078 suffix += QString::number( a.x()*8+a.y()*4+(1-b.x())*2+(1-b.y()) );
00079 }
00080 suffix += ".qpf";
00081
00082
00083
00084 if ( !QFile::exists(fontDir+key+suffix) ) {
00085 key = (sp == Fixed ) ? "arial_140_50" : "unifont_160_50";
00086 if ( QFile::exists(fontDir+key+suffix) ) {
00087 fontName = (sp == Fixed) ? "Arial" : "Unifont";
00088 size = (sp == Fixed) ? 14 : 16;
00089 } else {
00090 key = "cyberbit_120_50";
00091 if ( QFile::exists(fontDir+key+suffix) ) {
00092 fontName = "Cyberbit";
00093 size = 12;
00094 } else {
00095 fontName = "Helvetica";
00096 size = 14;
00097 }
00098 }
00099 }
00100 return QFont(fontName,size);
00101 }
This file is part of the documentation for OPIE Version 1.5.5.