00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef koGlobal_h
00022
#define koGlobal_h
00023
00024
#include <qstringlist.h>
00025
#include <koUnit.h>
00026
#include <qfont.h>
00027
class KConfig;
00028
00029
00030
00031
#define PG_A3_WIDTH 297.0
00032
#define PG_A3_HEIGHT 420.0
00033
#define PG_A4_WIDTH 210.0
00034
#define PG_A4_HEIGHT 297.0
00035
#define PG_A5_WIDTH 148.0
00036
#define PG_A5_HEIGHT 210.0
00037
#define PG_B5_WIDTH 182.0
00038
#define PG_B5_HEIGHT 257.0
00039
#define PG_US_LETTER_WIDTH 216.0
00040
#define PG_US_LETTER_HEIGHT 279.0
00041
#define PG_US_LEGAL_WIDTH 216.0
00042
#define PG_US_LEGAL_HEIGHT 356.0
00043
#define PG_US_EXECUTIVE_WIDTH 191.0
00044
#define PG_US_EXECUTIVE_HEIGHT 254.0
00045
00051
enum KoFormat {
00052 PG_DIN_A3 = 0,
00053 PG_DIN_A4 = 1,
00054 PG_DIN_A5 = 2,
00055 PG_US_LETTER = 3,
00056 PG_US_LEGAL = 4,
00057 PG_SCREEN = 5,
00058 PG_CUSTOM = 6,
00059 PG_DIN_B5 = 7,
00060 PG_US_EXECUTIVE = 8,
00061 PG_DIN_A0 = 9,
00062 PG_DIN_A1 = 10,
00063 PG_DIN_A2 = 11,
00064 PG_DIN_A6 = 12,
00065 PG_DIN_A7 = 13,
00066 PG_DIN_A8 = 14,
00067 PG_DIN_A9 = 15,
00068 PG_DIN_B0 = 16,
00069 PG_DIN_B1 = 17,
00070 PG_DIN_B10 = 18,
00071 PG_DIN_B2 = 19,
00072 PG_DIN_B3 = 20,
00073 PG_DIN_B4 = 21,
00074 PG_DIN_B6 = 22,
00075 PG_ISO_C5 = 23,
00076 PG_US_COMM10 = 24,
00077 PG_ISO_DL = 25,
00078 PG_US_FOLIO = 26,
00079 PG_US_LEDGER = 27,
00080 PG_US_TABLOID = 28,
00081
00082 PG_LAST_FORMAT = PG_US_TABLOID
00083 };
00084
00088
enum KoOrientation {
00089 PG_PORTRAIT = 0,
00090 PG_LANDSCAPE = 1
00091 };
00092
00093
namespace KoPageFormat
00094 {
00102
int printerPageSize( KoFormat format );
00103
00104
00109
double width( KoFormat format, KoOrientation orientation );
00110
00115
double height( KoFormat format, KoOrientation orientation );
00116
00121
QString formatString( KoFormat format );
00122
00127 KoFormat formatFromString(
const QString & string );
00128
00133
QString name( KoFormat format );
00134
00138
QStringList allFormats();
00139
00144 KoFormat guessFormat(
double width,
double height );
00145 }
00146
00147
00158
enum KoHFType {
00159 HF_SAME = 0,
00160 HF_FIRST_EO_DIFF = 1,
00161 HF_FIRST_DIFF = 2,
00162 HF_EO_DIFF = 3
00163 };
00164
00169 struct KoPageLayout
00170 {
00172 KoFormat
format;
00174 KoOrientation
orientation;
00175
00177 double ptWidth;
00179 double ptHeight;
00181 double ptLeft;
00183 double ptRight;
00185 double ptTop;
00187 double ptBottom;
00188
00189
bool operator==(
const KoPageLayout& l )
const {
00190
return (
ptWidth == l.
ptWidth &&
00191
ptHeight == l.
ptHeight &&
00192
ptLeft == l.
ptLeft &&
00193
ptRight == l.
ptHeight &&
00194
ptTop == l.
ptTop &&
00195
ptBottom == l.
ptBottom );
00196 }
00197
bool operator!=(
const KoPageLayout& l )
const {
00198
return !( *
this == l );
00199 }
00200 };
00201
00203 struct KoHeadFoot
00204 {
00205
QString headLeft;
00206
QString headMid;
00207
QString headRight;
00208
QString footLeft;
00209
QString footMid;
00210
QString footRight;
00211 };
00212
00214 struct KoColumns
00215 {
00216
int columns;
00217
double ptColumnSpacing;
00218
bool operator==(
const KoColumns& rhs )
const {
00219
return columns == rhs.
columns &&
00220 QABS(ptColumnSpacing - rhs.
ptColumnSpacing) <= 1E-10;
00221 }
00222
bool operator!=(
const KoColumns& rhs )
const {
00223
return columns != rhs.
columns ||
00224 QABS(ptColumnSpacing - rhs.
ptColumnSpacing) > 1E-10;
00225 }
00226 };
00227
00229 struct KoKWHeaderFooter
00230 {
00231 KoHFType header;
00232 KoHFType footer;
00233
double ptHeaderBodySpacing;
00234
double ptFooterBodySpacing;
00235
double ptFootNoteBodySpacing;
00236
bool operator==(
const KoKWHeaderFooter& rhs )
const {
00237
return header == rhs.
header && footer == rhs.
footer &&
00238 QABS(ptHeaderBodySpacing - rhs.
ptHeaderBodySpacing) <= 1E-10 &&
00239 QABS(ptFooterBodySpacing - rhs.
ptFooterBodySpacing) <= 1E-10 &&
00240 QABS(ptFootNoteBodySpacing - rhs.
ptFootNoteBodySpacing) <= 1E-10;
00241 }
00242
bool operator!=(
const KoKWHeaderFooter& rhs )
const {
00243
return !( *
this == rhs );
00244 }
00245 };
00246
00247
00248
class KoGlobal
00249 {
00250
public:
00252
static void initialize() {
00253 (
void)
self();
00254 }
00261
static QFont defaultFont() {
00262
return self()->_defaultFont();
00263 }
00264
00271
static KConfig* kofficeConfig() {
00272
return self()->_kofficeConfig();
00273 }
00274
00276
00277
static QStringList listOfLanguages() {
00278
return self()->_listOfLanguages();
00279 }
00280
static QStringList listTagOfLanguages() {
00281
return self()->_listTagOfLanguages();
00282 }
00283
static QString tagOfLanguage(
const QString & _lang );
00284
static int languageIndexFromTag(
const QString &_lang );
00285
static QString languageFromTag(
const QString &_lang );
00286
00287 ~KoGlobal();
00288
00289
private:
00290
static KoGlobal*
self();
00291 KoGlobal();
00292
QFont _defaultFont();
00293
QStringList _listOfLanguages();
00294
QStringList _listTagOfLanguages();
00295 KConfig* _kofficeConfig();
00296
void createListOfLanguages();
00297
00298
int m_pointSize;
00299
QStringList m_languageList;
00300
QStringList m_languageTag;
00301 KConfig* m_kofficeConfig;
00302
00303
00304
00305
00306
static KoGlobal* s_global;
00307
friend class this_is_a_singleton;
00308 };
00309
00310
#endif // koGlobal