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