1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir #ifndef _SGVMAIN_HXX 29*cdf0e10cSrcweir #define _SGVMAIN_HXX 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir #include <vcl/font.hxx> 32*cdf0e10cSrcweir #include <vcl/outdev.hxx> 33*cdf0e10cSrcweir #include <vcl/virdev.hxx> 34*cdf0e10cSrcweir 35*cdf0e10cSrcweir 36*cdf0e10cSrcweir #define UCHAR unsigned char 37*cdf0e10cSrcweir 38*cdf0e10cSrcweir struct PointType { 39*cdf0e10cSrcweir sal_Int16 x; 40*cdf0e10cSrcweir sal_Int16 y; 41*cdf0e10cSrcweir }; 42*cdf0e10cSrcweir 43*cdf0e10cSrcweir #define SgfDpmm 40 44*cdf0e10cSrcweir 45*cdf0e10cSrcweir #define DtHdSize 256 46*cdf0e10cSrcweir class DtHdType { 47*cdf0e10cSrcweir public: 48*cdf0e10cSrcweir sal_uInt8 Reserved[256]; 49*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, DtHdType& rDtHd); 50*cdf0e10cSrcweir friend void DtHdOverSeek(SvStream& rInp); 51*cdf0e10cSrcweir }; 52*cdf0e10cSrcweir 53*cdf0e10cSrcweir 54*cdf0e10cSrcweir struct Seitenformat { 55*cdf0e10cSrcweir PointType Size; // 0.00mm...819.175mm (Papiergr��e) 56*cdf0e10cSrcweir sal_Int16 RandL; // links Rand auf 57*cdf0e10cSrcweir sal_Int16 RandR; // rechts dem Papier 58*cdf0e10cSrcweir sal_Int16 RandO; // oben Rand auf 59*cdf0e10cSrcweir sal_Int16 RandU; // unten dem Papier 60*cdf0e10cSrcweir sal_uInt8 PColor; // Future Use 61*cdf0e10cSrcweir sal_uInt8 PIntens; // erst recht Future use 62*cdf0e10cSrcweir // sal_Bool BorderClip; // Objekte am Rand abschneiden (Schummel wg. Allignment unter NT) 63*cdf0e10cSrcweir }; 64*cdf0e10cSrcweir 65*cdf0e10cSrcweir 66*cdf0e10cSrcweir #define PageSize 146 67*cdf0e10cSrcweir class PageType { 68*cdf0e10cSrcweir public: 69*cdf0e10cSrcweir sal_uInt32 Next; // N�chste Seite 70*cdf0e10cSrcweir sal_uInt32 nList; // Objektdaten, erster Record 71*cdf0e10cSrcweir sal_uInt32 ListEnd; // Objektdaten, letzter Record 72*cdf0e10cSrcweir Seitenformat Paper; // Papierdaten 73*cdf0e10cSrcweir sal_Bool BorderClip; // Objekte am Rand abschneiden (Schummel wg. Allignment unter NT) 74*cdf0e10cSrcweir sal_uInt8 StdPg; // welche Standardseite einblenden ? 75*cdf0e10cSrcweir PointType U; // Nullpunkt 76*cdf0e10cSrcweir sal_Int16 HlpLnH[20]; // Hilfslinien 77*cdf0e10cSrcweir sal_Int16 HlpLnV[20]; 78*cdf0e10cSrcweir sal_uInt8 LnAnzH; 79*cdf0e10cSrcweir sal_uInt8 LnAnzV; 80*cdf0e10cSrcweir UCHAR PgName[32]; // Seitenname 81*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, PageType& rPage); 82*cdf0e10cSrcweir }; 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir 85*cdf0e10cSrcweir enum ObjArtType {ObjStrk,ObjRect,ObjPoly,ObjCirc,ObjSpln, 86*cdf0e10cSrcweir ObjText,ObjGrup,ObjBmap,ObjVirt,ObjTxtX,ObjMaxi}; 87*cdf0e10cSrcweir 88*cdf0e10cSrcweir struct ObjLineType { 89*cdf0e10cSrcweir sal_uInt8 LFarbe; // [Index] 90*cdf0e10cSrcweir sal_uInt8 LBFarbe; // [Index] 91*cdf0e10cSrcweir sal_uInt8 LIntens; // [%] 92*cdf0e10cSrcweir sal_uInt8 LMuster; // [Index] inkl. Transparenz 93*cdf0e10cSrcweir sal_Int16 LMSize; // [Koeffizient/100] 94*cdf0e10cSrcweir sal_Int16 LDicke; // Strichst�rke 95*cdf0e10cSrcweir }; 96*cdf0e10cSrcweir 97*cdf0e10cSrcweir struct ObjAreaType { 98*cdf0e10cSrcweir sal_uInt8 FFarbe; // [Index] 99*cdf0e10cSrcweir sal_uInt8 FBFarbe; // [Index] 100*cdf0e10cSrcweir sal_uInt8 FIntens; // [%] 101*cdf0e10cSrcweir sal_uInt8 FDummy1; // 102*cdf0e10cSrcweir sal_Int16 FDummy2; // 103*cdf0e10cSrcweir sal_uInt16 FMuster; // [Index] inkl. Invers, Transparenz 104*cdf0e10cSrcweir }; 105*cdf0e10cSrcweir 106*cdf0e10cSrcweir #define ObjTextTypeSize 64 107*cdf0e10cSrcweir class ObjTextType { 108*cdf0e10cSrcweir public: 109*cdf0e10cSrcweir ObjLineType L; // Text-Outline (future) 110*cdf0e10cSrcweir ObjAreaType F; // Text innen 111*cdf0e10cSrcweir sal_uInt16 FontLo,FontHi;// z.B. 92500 (CG Times), zweigeteilt wegen DWordAllign in TextType. 112*cdf0e10cSrcweir sal_uInt16 Grad; // 0.5..32767.5 Pt - bei 1000 Pt sollte aber schlu� sein 113*cdf0e10cSrcweir sal_uInt16 Breite; // 1..65535% bitte nicht mehr als 500% 114*cdf0e10cSrcweir sal_uInt8 Justify; // 2 Bit Vert (Hi), 3 Bit Hor (Lo) 115*cdf0e10cSrcweir sal_uInt8 Kapit; // 1..255% 116*cdf0e10cSrcweir sal_uInt16 Schnitt; // 8 Flags 117*cdf0e10cSrcweir sal_uInt16 LnFeed; // 1..32767% vom max. Schriftgrad der Zeile 118*cdf0e10cSrcweir sal_uInt16 Slant; // Kursivwinkel 0.00..89.99� default 15.00� doppelt Breit angesehen) 119*cdf0e10cSrcweir sal_uInt8 ZAbst; // Zeichenabstand 0..255% (0=auf der Stelle; 100=normal; 200=Zeichen wird als 120*cdf0e10cSrcweir sal_sChar ChrVPos; // Zeichen V-Position default 0= on Baseline, 10= 5Pt drunter (-64..63�) 121*cdf0e10cSrcweir ObjLineType ShdL; // Schatten-Outline (neu 2.0) 122*cdf0e10cSrcweir ObjAreaType ShdF; // Schatten-innen (neu 2.0) 123*cdf0e10cSrcweir PointType ShdVers; // Schattenversatz Max.300.00% 124*cdf0e10cSrcweir sal_Bool ShdAbs; // True-> Schattenversatz ist absolut statt relativ zum Schriftgrad 125*cdf0e10cSrcweir sal_Bool NoSpc; // True-> kein Zwischenraum (f�r BackArea) 126*cdf0e10cSrcweir ObjAreaType BackF; // Hintergrundfl�che 127*cdf0e10cSrcweir sal_uInt32 GetFont(); 128*cdf0e10cSrcweir void SetFont(sal_uInt32 FontID); 129*cdf0e10cSrcweir }; 130*cdf0e10cSrcweir 131*cdf0e10cSrcweir class Obj0Type { // SuperClass f�r Apple-VMT 132*cdf0e10cSrcweir public: 133*cdf0e10cSrcweir virtual void Draw(OutputDevice& rOut); 134*cdf0e10cSrcweir virtual ~Obj0Type() {} 135*cdf0e10cSrcweir }; 136*cdf0e10cSrcweir 137*cdf0e10cSrcweir #define ObjkSize 20 /* eigentlich 21. Wg. Allignment ist Flags jedoch verschoben worden*/ 138*cdf0e10cSrcweir class ObjkType: public Obj0Type { // Grundkomponenten aller Stardraw-Objekte 139*cdf0e10cSrcweir public: 140*cdf0e10cSrcweir sal_uInt32 Last; 141*cdf0e10cSrcweir sal_uInt32 Next; 142*cdf0e10cSrcweir sal_uInt16 MemSize; // in Bytes 143*cdf0e10cSrcweir PointType ObjMin; // XY-Minimum des Objekts 144*cdf0e10cSrcweir PointType ObjMax; // XY-Maximum des Objekts 145*cdf0e10cSrcweir sal_uInt8 Art; 146*cdf0e10cSrcweir sal_uInt8 Layer; 147*cdf0e10cSrcweir // sal_uInt8 Flags; // (Schummel f�r Allignment unter NT) 148*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, ObjkType& rObjk); 149*cdf0e10cSrcweir friend sal_Bool ObjOverSeek(SvStream& rInp, ObjkType& rObjk); 150*cdf0e10cSrcweir virtual void Draw(OutputDevice& rOut); 151*cdf0e10cSrcweir }; 152*cdf0e10cSrcweir 153*cdf0e10cSrcweir 154*cdf0e10cSrcweir #define StrkSize 38 155*cdf0e10cSrcweir class StrkType: public ObjkType { 156*cdf0e10cSrcweir public: 157*cdf0e10cSrcweir sal_uInt8 Flags; // (Schummel f�r Allignment unter NT) 158*cdf0e10cSrcweir sal_uInt8 LEnden; // Linienenden 159*cdf0e10cSrcweir ObjLineType L; 160*cdf0e10cSrcweir PointType Pos1; // Anfangspunkt 161*cdf0e10cSrcweir PointType Pos2; // Endpunkt 162*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, StrkType& rStrk); 163*cdf0e10cSrcweir virtual void Draw(OutputDevice& rOut); 164*cdf0e10cSrcweir }; 165*cdf0e10cSrcweir 166*cdf0e10cSrcweir 167*cdf0e10cSrcweir #define RectSize 52 168*cdf0e10cSrcweir class RectType: public ObjkType { 169*cdf0e10cSrcweir public: 170*cdf0e10cSrcweir sal_uInt8 Flags; // (Schummel f�r Allignment unter NT) 171*cdf0e10cSrcweir sal_uInt8 Reserve; 172*cdf0e10cSrcweir ObjLineType L; 173*cdf0e10cSrcweir ObjAreaType F; 174*cdf0e10cSrcweir PointType Pos1; // LO-Ecke = Bezugspunkt 175*cdf0e10cSrcweir PointType Pos2; // R-Ecke 176*cdf0e10cSrcweir sal_Int16 Radius; // Eckenradius 177*cdf0e10cSrcweir sal_uInt16 DrehWink; // 315...<45 178*cdf0e10cSrcweir sal_uInt16 Slant; // >270...<90 179*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, RectType& rRect); 180*cdf0e10cSrcweir virtual void Draw(OutputDevice& rOut); 181*cdf0e10cSrcweir }; 182*cdf0e10cSrcweir 183*cdf0e10cSrcweir 184*cdf0e10cSrcweir #define PolySize 44 185*cdf0e10cSrcweir class PolyType: public ObjkType { // identisch mit Spline ! 186*cdf0e10cSrcweir public: 187*cdf0e10cSrcweir sal_uInt8 Flags; // (Schummel f�r Allignment unter NT) 188*cdf0e10cSrcweir sal_uInt8 LEnden; // nur f�r Polyline 189*cdf0e10cSrcweir ObjLineType L; 190*cdf0e10cSrcweir ObjAreaType F; // nicht f�r Polyline 191*cdf0e10cSrcweir sal_uInt8 nPoints; 192*cdf0e10cSrcweir sal_uInt8 Reserve; 193*cdf0e10cSrcweir sal_uInt32 SD_EckP; // Zeiger auf die Eckpunkte (StarDraw) 194*cdf0e10cSrcweir PointType* EckP; // Zeiger auf die Eckpunkte (StarView (wird nicht von Disk gelesen!)) 195*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, PolyType& rPoly); 196*cdf0e10cSrcweir virtual void Draw(OutputDevice& rOut); 197*cdf0e10cSrcweir }; 198*cdf0e10cSrcweir #define PolyClosBit 0x01 // Unterarten von Poly: 0: PolyLine 1: Polygon 199*cdf0e10cSrcweir 200*cdf0e10cSrcweir 201*cdf0e10cSrcweir #define SplnSize 44 202*cdf0e10cSrcweir class SplnType: public ObjkType { // identisch mit Poly ! 203*cdf0e10cSrcweir public: 204*cdf0e10cSrcweir sal_uInt8 Flags; // (Schummel f�r Allignment unter NT) 205*cdf0e10cSrcweir sal_uInt8 LEnden; // nur f�r nSpline 206*cdf0e10cSrcweir ObjLineType L; 207*cdf0e10cSrcweir ObjAreaType F; // nicht f�r nSpline 208*cdf0e10cSrcweir sal_uInt8 nPoints; 209*cdf0e10cSrcweir sal_uInt8 Reserve; 210*cdf0e10cSrcweir sal_uInt32 SD_EckP; // Zeiger auf die Eckpunkte (StarDraw) 211*cdf0e10cSrcweir PointType* EckP; // Zeiger auf die Eckpunkte (StarView (wird nicht von Disk gelesen!)) 212*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, SplnType& rSpln); 213*cdf0e10cSrcweir virtual void Draw(OutputDevice& rOut); 214*cdf0e10cSrcweir }; 215*cdf0e10cSrcweir // Unterarten von Spline: siehe Poly 216*cdf0e10cSrcweir 217*cdf0e10cSrcweir 218*cdf0e10cSrcweir #define CircSize 52 219*cdf0e10cSrcweir class CircType: public ObjkType { 220*cdf0e10cSrcweir public: 221*cdf0e10cSrcweir sal_uInt8 Flags; // (Schummel f�r Allignment unter NT) 222*cdf0e10cSrcweir sal_uInt8 LEnden; // nur Bogen (Kr & El) 223*cdf0e10cSrcweir ObjLineType L; 224*cdf0e10cSrcweir ObjAreaType F; // nicht f�r Bogen (Kr & El) 225*cdf0e10cSrcweir PointType Center; // Mittelpunkt 226*cdf0e10cSrcweir PointType Radius; // Radius 227*cdf0e10cSrcweir sal_uInt16 DrehWink; // nur Ellipse 228*cdf0e10cSrcweir sal_uInt16 StartWink; // � nicht f�r Vollkreis 229*cdf0e10cSrcweir sal_uInt16 RelWink; // � und Vollellipse 230*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, CircType& rCirc); 231*cdf0e10cSrcweir virtual void Draw(OutputDevice& rOut); 232*cdf0e10cSrcweir }; 233*cdf0e10cSrcweir #define CircFull 0x00 /* Unterarten von Kreis: 0: Kreis */ 234*cdf0e10cSrcweir #define CircSect 0x01 /* 1: Kreissektor */ 235*cdf0e10cSrcweir #define CircAbsn 0x02 /* 2: Kreisabschnitt */ 236*cdf0e10cSrcweir #define CircArc 0x03 /* 3: Kreisbogen */ 237*cdf0e10cSrcweir 238*cdf0e10cSrcweir 239*cdf0e10cSrcweir #define TextSize 116 240*cdf0e10cSrcweir class TextType: public ObjkType { 241*cdf0e10cSrcweir public: 242*cdf0e10cSrcweir sal_uInt8 Flags; // (Schummel f�r Allignment unter NT) 243*cdf0e10cSrcweir sal_uInt8 Reserve; // f�r Word Allign 244*cdf0e10cSrcweir ObjTextType T; // 64 Bytes << DWord-Allign bei FontID erforderlich 245*cdf0e10cSrcweir PointType Pos1; // Bezugspunkt (ObenLinks) 246*cdf0e10cSrcweir PointType Pos2; // (untenRechts) 247*cdf0e10cSrcweir sal_Int16 TopOfs; // Von Oberkante bis Textbegin (future f�r vJustify) 248*cdf0e10cSrcweir sal_uInt16 DrehWink; // 0...<360 249*cdf0e10cSrcweir sal_uInt16 BoxSlant; // >270...<90 (nur Box) 250*cdf0e10cSrcweir sal_uInt16 BufSize; // Gr��e von Buf f�r Load, Save, Copy und so 251*cdf0e10cSrcweir sal_uInt16 BufLo,BufHi;// (UCHAR*) Zeiger auf den Textbuffer << ShortArr, weil sonst DWord-Allign erforderlich 252*cdf0e10cSrcweir sal_uInt16 ExtLo,ExtHi;// (Ptr) Text �ber mehrere Rahmen << ShortArr, weil sonst DWord-Allign erforderlich 253*cdf0e10cSrcweir PointType FitSize; // Ursprungsgr��e f�r Fit2Size 254*cdf0e10cSrcweir sal_Int16 FitBreit; // Breite zum formatieren bei Fit2Size 255*cdf0e10cSrcweir UCHAR* Buffer; // Diese Variable wird nicht durch Lesen von Disk gef�llt, sondern explizit! 256*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, TextType& rText); 257*cdf0e10cSrcweir virtual void Draw(OutputDevice& rOut); 258*cdf0e10cSrcweir }; 259*cdf0e10cSrcweir #define TextOutlBit 0x01 /* 1=Sourcecode f�r Outliner (wird von DrawObjekt() ignoriert) */ 260*cdf0e10cSrcweir #define TextFitSBit 0x02 /* Bit1: 1=Text-FitToSize, auch Outliner (2.0) */ 261*cdf0e10cSrcweir #define TextFitZBit 0x08 /* Bit3: 1=Fit2Size Zeilenweise (2.0) */ 262*cdf0e10cSrcweir #define TextDrftBit 0x04 /* Bit2: 1=DraftDraw (2.0) */ 263*cdf0e10cSrcweir #define TextFitBits (TextFitSBit | TextFitZBit) 264*cdf0e10cSrcweir 265*cdf0e10cSrcweir 266*cdf0e10cSrcweir enum GrafStat {NoGraf,Pic,Pcx,Hpgl,Img,Msp,Tiff,Dxf,Lot,Usr,Sgf}; 267*cdf0e10cSrcweir 268*cdf0e10cSrcweir #define BmapSize 132 269*cdf0e10cSrcweir class BmapType: public ObjkType { 270*cdf0e10cSrcweir public: 271*cdf0e10cSrcweir sal_uInt8 Flags; // (Schummel f�r Allignment unter NT) 272*cdf0e10cSrcweir sal_uInt8 Reserve; 273*cdf0e10cSrcweir ObjAreaType F; // Farbe und Muster der 1-Plane Bitmap 274*cdf0e10cSrcweir PointType Pos1; 275*cdf0e10cSrcweir PointType Pos2; 276*cdf0e10cSrcweir sal_uInt16 DrehWink; // 315...<45 (Future) 277*cdf0e10cSrcweir sal_uInt16 Slant; // >270...<90 (Future) 278*cdf0e10cSrcweir UCHAR Filename[80]; // Pfad 279*cdf0e10cSrcweir PointType PixSize; // Gr��e in Pixel (0 bei Vektor) 280*cdf0e10cSrcweir GrafStat Format; // siehe GpmDef.Pas 281*cdf0e10cSrcweir sal_uInt8 nPlanes; // Anzahl der Bitplanes (0 bei Vektor) 282*cdf0e10cSrcweir sal_Bool RawOut; // als Raw ausgeben ? 283*cdf0e10cSrcweir sal_Bool InvOut; // invertiert ausgeben ? 284*cdf0e10cSrcweir sal_Bool LightOut; // aufhellen? (SD20) 285*cdf0e10cSrcweir sal_uInt8 GrfFlg; // (SD20) 0=nSGF 1=Pcx 2=Hpgl 4=Raw $FF=Undef(f�r Fix in DrawBmp) 286*cdf0e10cSrcweir 287*cdf0e10cSrcweir INetURLObject aFltPath; // F�r GraphicFilter 288*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, BmapType& rBmap); 289*cdf0e10cSrcweir virtual void Draw(OutputDevice& rOut); 290*cdf0e10cSrcweir void SetPaths( const INetURLObject rFltPath ); 291*cdf0e10cSrcweir }; 292*cdf0e10cSrcweir 293*cdf0e10cSrcweir 294*cdf0e10cSrcweir #define GrupSize 48 295*cdf0e10cSrcweir class GrupType: public ObjkType { 296*cdf0e10cSrcweir public: 297*cdf0e10cSrcweir sal_uInt8 Flags; // (Schummel f�r Allignment unter NT) 298*cdf0e10cSrcweir UCHAR Name[13]; // Name der Gruppe 299*cdf0e10cSrcweir sal_uInt16 SbLo,SbHi; // (Ptr) Gruppenliste << ShortArr, weil sonst DWord Allign erforderlich 300*cdf0e10cSrcweir sal_uInt16 UpLo,UpHi; // (Ptr) Vaterliste << ShortArr, weil sonst DWord Allign erforderlich 301*cdf0e10cSrcweir sal_uInt16 ChartSize; // Speicherbedarf der Diagrammstruktur Struktur 302*cdf0e10cSrcweir sal_uInt32 ChartPtr; // Diagrammstruktur 303*cdf0e10cSrcweir sal_uInt32 GetSubPtr(); // hier nur zum Checken, ob Sublist evtl. leer ist. 304*cdf0e10cSrcweir friend SvStream& operator>>(SvStream& rIStream, GrupType& rGrup); 305*cdf0e10cSrcweir // virtual void Draw(OutputDevice& rOut); 306*cdf0e10cSrcweir }; 307*cdf0e10cSrcweir 308*cdf0e10cSrcweir 309*cdf0e10cSrcweir void SetLine(ObjLineType& rLine, OutputDevice& rOut); 310*cdf0e10cSrcweir void SetArea(ObjAreaType& rArea, OutputDevice& rOut); 311*cdf0e10cSrcweir Color Sgv2SvFarbe(sal_uInt8 nFrb1, sal_uInt8 nFrb2, sal_uInt8 nInts); 312*cdf0e10cSrcweir void RotatePoint(PointType& P, sal_Int16 cx, sal_Int16 cy, double sn, double cs); 313*cdf0e10cSrcweir void RotatePoint(Point& P, sal_Int16 cx, sal_Int16 cy, double sn, double cs); 314*cdf0e10cSrcweir sal_Int16 iMulDiv(sal_Int16 a, sal_Int16 Mul, sal_Int16 Div); 315*cdf0e10cSrcweir sal_uInt16 MulDiv(sal_uInt16 a, sal_uInt16 Mul, sal_uInt16 Div); 316*cdf0e10cSrcweir 317*cdf0e10cSrcweir 318*cdf0e10cSrcweir class SgfFontOne { 319*cdf0e10cSrcweir public: 320*cdf0e10cSrcweir SgfFontOne* Next; // Zeiger f�r Listenverkettung 321*cdf0e10cSrcweir sal_uInt32 IFID; 322*cdf0e10cSrcweir sal_Bool Bold; 323*cdf0e10cSrcweir sal_Bool Ital; 324*cdf0e10cSrcweir sal_Bool Sans; 325*cdf0e10cSrcweir sal_Bool Serf; 326*cdf0e10cSrcweir sal_Bool Fixd; 327*cdf0e10cSrcweir FontFamily SVFamil; 328*cdf0e10cSrcweir CharSet SVChSet; 329*cdf0e10cSrcweir String SVFName; // z.B. "Times New Roman" = 15 Chars 330*cdf0e10cSrcweir sal_uInt16 SVWidth; // Durchschnittliche Zeichenbreite in % 331*cdf0e10cSrcweir SgfFontOne(); 332*cdf0e10cSrcweir void ReadOne( ByteString& ID, ByteString& Dsc); 333*cdf0e10cSrcweir }; 334*cdf0e10cSrcweir 335*cdf0e10cSrcweir class SgfFontLst { 336*cdf0e10cSrcweir public: 337*cdf0e10cSrcweir String FNam; // vollst�ndiger Filename des Inifiles 338*cdf0e10cSrcweir SgfFontOne* pList; // Listenanfang 339*cdf0e10cSrcweir SgfFontOne* Last; // Listenende 340*cdf0e10cSrcweir sal_uInt32 LastID; // f�r schnelleren Zugriff bei Wiederholungen 341*cdf0e10cSrcweir SgfFontOne* LastLn; // f�r schnelleren Zugriff bei Wiederholungen 342*cdf0e10cSrcweir sal_Bool Tried; 343*cdf0e10cSrcweir SgfFontLst(); 344*cdf0e10cSrcweir ~SgfFontLst(); 345*cdf0e10cSrcweir void AssignFN(const String& rFName); 346*cdf0e10cSrcweir void ReadList(); 347*cdf0e10cSrcweir void RausList(); 348*cdf0e10cSrcweir SgfFontOne* GetFontDesc(sal_uInt32 ID); 349*cdf0e10cSrcweir }; 350*cdf0e10cSrcweir 351*cdf0e10cSrcweir #endif //_SGVMAIN_HXX 352*cdf0e10cSrcweir 353*cdf0e10cSrcweir 354