[Libreoffice-commits] core.git: vcl/source
Luc Castermans
luc.castermans at gmail.com
Sun Jan 19 23:58:49 PST 2014
vcl/source/filter/sgvmain.cxx | 97 ++++++--------
vcl/source/filter/sgvmain.hxx | 289 ++++++++++++++++++++----------------------
2 files changed, 191 insertions(+), 195 deletions(-)
New commits:
commit e4f82812bb623ec98e6580c5fadaa9a8af64ac89
Author: Luc Castermans <luc.castermans at gmail.com>
Date: Sun Jan 19 15:04:16 2014 +0100
Translated German comments (in 20 yr old code...)
Change-Id: Ie25a734bee8e2cfe3a8fb0a6471ab9988e9c915a
Reviewed-on: https://gerrit.libreoffice.org/7528
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/vcl/source/filter/sgvmain.cxx b/vcl/source/filter/sgvmain.cxx
index bc3cc48..c176675 100644
--- a/vcl/source/filter/sgvmain.cxx
+++ b/vcl/source/filter/sgvmain.cxx
@@ -85,27 +85,23 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
//
-// Einschraenkungen:
-//
-// - Flaechenmuster werden den unter StarView verfuegbaren Mustern angenaehert.
-// - Linienenden werden unter StarView immer rund dargestellt und gehen ueber
-// den Endpunkt der Linie hinaus.
-// - Linienmuster werden den unter StarView verfuegbaren Mustern angenaehert.
-// Transparent/Opak wird zur Zeit noch nicht beruecksichtigt.
-// - Keine gedrehten Ellipsen
-//
-//
+// Restrictions:
//
+// - area patterns are matched to the available ones in Starview.
+// - line ends are always rounded in StarView and continue past the end of line.
+// - line patterns are matched to the available ones in Starview.
+// transparency/opacity is not taken into account
+// - no rotated ellipses
//
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
-// Fuer Fontuebersetzung ///////////////////////////////////////////////////////////////////////////
+// for font translation ///////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
SgfFontLst* pSgfFonts = 0;
////////////////////////////////////////////////////////////////////////////////////////////////////
-// Fuer Kreisunterarten, Text und gedrehte Rechtecke ///////////////////////////////////////////////
+// for circle kinds, text and rotated rectangles ///////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
void RotatePoint(PointType& P, sal_Int16 cx, sal_Int16 cy, double sn, double cs)
{
@@ -179,7 +175,8 @@ void ObjkOverSeek(SvStream& rInp, ObjkType& rObjk)
}
SvStream& operator>>(SvStream& rInp, ObjkType& rObjk)
-{ // Die Fileposition im Stream bleibt unveraendert!
+{
+ // fileposition in stream is not changed!
sal_uLong nPos;
nPos=rInp.Tell();
rInp.Read((char*)&rObjk.Last,ObjkSize);
@@ -188,11 +185,11 @@ SvStream& operator>>(SvStream& rInp, ObjkType& rObjk)
#endif
#ifdef InArbeit
sal_uLong nPos1=rInp.Tell();
- if(nPos == nPos1) InfoBox( NULL, "tellg funkt nich" ).Execute();
+ if(nPos == nPos1) InfoBox( NULL, "tellg is not working" ).Execute();
#endif
rInp.Seek(nPos);
#ifdef InArbeit
- if (rInp.Tell() != nPos) InfoBox( NULL, "seekg funkt nich" ).Execute();
+ if (rInp.Tell() != nPos) InfoBox( NULL, "seekg is not working" ).Execute();
#endif
return rInp;
}
@@ -317,23 +314,23 @@ Color Sgv2SvFarbe(sal_uInt8 nFrb1, sal_uInt8 nFrb2, sal_uInt8 nInts)
sal_uInt8 nInt2=100-nInts;
switch(nFrb1 & 0x07) {
case 0: r1=0xFF; g1=0xFF; b1=0xFF; break;
- case 1: r1=0xFF; g1=0xFF; break;
+ case 1: r1=0xFF; g1=0xFF; break;
case 2: g1=0xFF; b1=0xFF; break;
- case 3: g1=0xFF; break;
+ case 3: g1=0xFF; break;
case 4: r1=0xFF; b1=0xFF; break;
- case 5: r1=0xFF; break;
+ case 5: r1=0xFF; break;
case 6: b1=0xFF; break;
- case 7: break;
+ case 7: break;
}
switch(nFrb2 & 0x07) {
case 0: r2=0xFF; g2=0xFF; b2=0xFF; break;
- case 1: r2=0xFF; g2=0xFF; break;
+ case 1: r2=0xFF; g2=0xFF; break;
case 2: g2=0xFF; b2=0xFF; break;
- case 3: g2=0xFF; break;
+ case 3: g2=0xFF; break;
case 4: r2=0xFF; b2=0xFF; break;
- case 5: r2=0xFF; break;
+ case 5: r2=0xFF; break;
case 6: b2=0xFF; break;
- case 7: break;
+ case 7: break;
}
r1=(sal_uInt16)((sal_uInt32)r1*nInts/100+(sal_uInt32)r2*nInt2/100);
g1=(sal_uInt16)((sal_uInt32)g1*nInts/100+(sal_uInt32)g2*nInt2/100);
@@ -447,7 +444,7 @@ void DrawSlideRect(sal_Int16 x1, sal_Int16 y1, sal_Int16 x2, sal_Int16 y2, ObjAr
rOut.DrawRect(Rectangle(i0,y1,x2,y2));
} break;
- case 0x18: case 0x38: { // Kreis
+ case 0x18: case 0x38: { // circle
Region ClipMerk=rOut.GetClipRegion();
double a;
@@ -473,7 +470,7 @@ void DrawSlideRect(sal_Int16 x1, sal_Int16 y1, sal_Int16 x2, sal_Int16 y2, ObjAr
SgfAreaColorIntens(F.FMuster,(sal_uInt8)Col1,(sal_uInt8)Col2,(sal_uInt8)Int1,rOut);
rOut.DrawEllipse(Rectangle(cx-i0,cy-i0,cx+i0,cy+i0));
rOut.SetClipRegion(ClipMerk);
- } break; // Kreis
+ } break; // circle
}
}
}
@@ -481,7 +478,7 @@ void DrawSlideRect(sal_Int16 x1, sal_Int16 y1, sal_Int16 x2, sal_Int16 y2, ObjAr
void RectType::Draw(OutputDevice& rOut)
{
- if (L.LMuster!=0) L.LMuster=1; // keine Linienmuster hier, nur an oder aus
+ if (L.LMuster!=0) L.LMuster=1; // no line separator here, only on or off
SetArea(F,rOut);
if (DrehWink==0) {
if ((F.FBFarbe & 0x38)==0 || Radius!=0) {
@@ -580,7 +577,7 @@ void DrawSlideCirc(sal_Int16 cx, sal_Int16 cy, sal_Int16 rx, sal_Int16 ry, ObjAr
} else {
b0=Int1;
switch (F.FBFarbe & 0x38) {
- case 0x08: { // vertikal
+ case 0x08: { // vertical
Region ClipMerk=rOut.GetClipRegion();
i0=y1;
i=y1;
@@ -619,7 +616,7 @@ void DrawSlideCirc(sal_Int16 cx, sal_Int16 cy, sal_Int16 rx, sal_Int16 ry, ObjAr
rOut.SetClipRegion(ClipMerk);
} break;
- case 0x18: case 0x38: { // Kreis
+ case 0x18: case 0x38: { // circle
sal_Int16 MaxR;
if (rx<1) rx=1;
@@ -641,7 +638,7 @@ void DrawSlideCirc(sal_Int16 cx, sal_Int16 cy, sal_Int16 rx, sal_Int16 ry, ObjAr
}
SgfAreaColorIntens(F.FMuster,(sal_uInt8)Col1,(sal_uInt8)Col2,(sal_uInt8)Int1,rOut);
rOut.DrawEllipse(Rectangle(cx-i0,cy-i0,cx+i0,cy+i0));
- } break; // Kreis
+ } break; // circle
}
}
}
@@ -651,7 +648,7 @@ void CircType::Draw(OutputDevice& rOut)
{
Rectangle aRect(Center.x-Radius.x,Center.y-Radius.y,Center.x+Radius.x,Center.y+Radius.y);
- if (L.LMuster!=0) L.LMuster=1; // keine Linienmuster hier, nur an oder aus
+ if (L.LMuster!=0) L.LMuster=1; // no line pattern here, only on or off
SetArea(F,rOut);
if ((Flags & 0x03)==CircFull) {
if ((F.FBFarbe & 0x38)==0) {
@@ -781,7 +778,7 @@ void DrawObjkList( SvStream& rInp, OutputDevice& rOut )
TextType aText;
rInp>>aText;
if (!rInp.GetError()) {
- aText.Buffer=new UCHAR[aText.BufSize+1]; // Ein mehr fuer LookAhead bei CK-Trennung
+ aText.Buffer=new UCHAR[aText.BufSize+1]; // add one for LookAhead at CK-separation
rInp.Read((char* )aText.Buffer,aText.BufSize);
if (!rInp.GetError()) aText.Draw(rOut);
delete[] aText.Buffer;
@@ -824,13 +821,13 @@ void DrawObjkList( SvStream& rInp, OutputDevice& rOut )
GrupType aGrup;
rInp>>aGrup;
if (!rInp.GetError()) {
- rInp.Seek(rInp.Tell()+aGrup.Last); // Obj-Anhaengsel
- if(aGrup.GetSubPtr()!=0L) nGrpCnt++;// DrawObjkList(rInp,rOut );
+ rInp.Seek(rInp.Tell()+aGrup.Last); // object appendix
+ if(aGrup.GetSubPtr()!=0L) nGrpCnt++; // DrawObjkList(rInp,rOut );
}
} break;
default: {
- aObjk.Draw(rOut); // Objektbezeichnung auf 2. Screen
- ObjkOverSeek(rInp,aObjk); // zum naechsten Objekt
+ aObjk.Draw(rOut); // object name on 2. Screen
+ ObjkOverSeek(rInp,aObjk); // to next object
}
}
} // if rInp
@@ -840,7 +837,7 @@ void DrawObjkList( SvStream& rInp, OutputDevice& rOut )
else nGrpCnt--;
}
} else {
- bEnde=true; // Lesefehler
+ bEnde=true; // read error
}
} while (!bEnde);
}
@@ -859,10 +856,10 @@ void SkipObjkList(SvStream& rInp)
if(aObjk.Art==ObjGrup) {
GrupType aGrup;
rInp>>aGrup;
- rInp.Seek(rInp.Tell()+aGrup.Last); // Obj-Anhaengsel
+ rInp.Seek(rInp.Tell()+aGrup.Last); // object appendix
if(aGrup.GetSubPtr()!=0L) SkipObjkList(rInp);
} else {
- ObjkOverSeek(rInp,aObjk); // zum naechsten Objekt
+ ObjkOverSeek(rInp,aObjk); // to next object
}
} while (aObjk.Next!=0L && !rInp.GetError());
}
@@ -883,15 +880,15 @@ bool SgfFilterSDrw( SvStream& rInp, SgfHeader&, SgfEntry&, GDIMetaFile& rMtf )
sal_uInt16 Num;
pOutDev=&aOutDev;
- DtHdOverSeek(rInp); // DataHeader weglesen
+ DtHdOverSeek(rInp); // read dataheader
nStdPos=rInp.Tell();
- do { // Standardseiten weglesen
+ do { // read standard page
rInp>>aPage;
if (aPage.nList!=0) SkipObjkList(rInp);
} while (aPage.Next!=0L && !rInp.GetError());
-// ShowMsg("Zeichnungseite(n)\n");
+// ShowMsg("Drawingpage(n)\n");
nZchPos=rInp.Tell();
rInp>>aPage;
@@ -899,7 +896,7 @@ bool SgfFilterSDrw( SvStream& rInp, SgfHeader&, SgfEntry&, GDIMetaFile& rMtf )
Num=aPage.StdPg;
if (Num!=0) {
rInp.Seek(nStdPos);
- while(Num>1 && aPage.Next!=0L && !rInp.GetError()) { // Standardseite suchen
+ while(Num>1 && aPage.Next!=0L && !rInp.GetError()) { // search standard page
rInp>>aPage;
if (aPage.nList!=0) SkipObjkList(rInp);
Num--;
@@ -930,16 +927,16 @@ bool SgfFilterSDrw( SvStream& rInp, SgfHeader&, SgfEntry&, GDIMetaFile& rMtf )
*************************************************************************/
bool SgfSDrwFilter(SvStream& rInp, GDIMetaFile& rMtf, INetURLObject aIniPath )
{
-#if OSL_DEBUG_LEVEL > 1 // Recordgroessen checken. Neuer Compiler hat vielleichte anderes Alignment!
+#if OSL_DEBUG_LEVEL > 1 // check record size. New compiler possibly aligns different!
if (sizeof(ObjTextType)!=ObjTextTypeSize) return false;
#endif
- sal_uLong nFileStart; // Offset des SgfHeaders. Im allgemeinen 0.
- SgfHeader aHead;
- SgfEntry aEntr;
- sal_uLong nNext;
- bool bRdFlag=false; // Grafikentry gelesen ?
- bool bRet=false; // Returncode
+ sal_uLong nFileStart; // offset of SgfHeaders. In general 0.
+ SgfHeader aHead;
+ SgfEntry aEntr;
+ sal_uLong nNext;
+ bool bRdFlag=false; // graphic entry read ?
+ bool bRet=false; // return value
aIniPath.Append(OUString("sgf.ini"));
@@ -959,7 +956,7 @@ bool SgfSDrwFilter(SvStream& rInp, GDIMetaFile& rMtf, INetURLObject aIniPath )
}
} // while(nNext)
if (bRdFlag) {
- if (!rInp.GetError()) bRet=true; // Scheinbar Ok
+ if (!rInp.GetError()) bRet=true; // seems ok
}
}
delete pSgfFonts;
diff --git a/vcl/source/filter/sgvmain.hxx b/vcl/source/filter/sgvmain.hxx
index 04791e9..8dbc595 100644
--- a/vcl/source/filter/sgvmain.hxx
+++ b/vcl/source/filter/sgvmain.hxx
@@ -42,30 +42,30 @@ public:
};
struct Seitenformat {
- PointType Size; // 0.00mm...819.175mm (Papiergr"u"ue)
- sal_Int16 RandL; // links Rand auf
- sal_Int16 RandR; // rechts dem Papier
- sal_Int16 RandO; // oben Rand auf
- sal_Int16 RandU; // unten dem Papier
- sal_uInt8 PColor; // Future Use
- sal_uInt8 PIntens; // erst recht Future use
+ PointType Size; // 0.00mm...819.175mm (papersize)
+ sal_Int16 RandL; // left border on
+ sal_Int16 RandR; // right paper
+ sal_Int16 RandO; // upper border on
+ sal_Int16 RandU; // lower paper
+ sal_uInt8 PColor; // future use
+ sal_uInt8 PIntens; // future use
};
#define PageSize 146
class PageType {
public:
- sal_uInt32 Next; // N"uchste Seite
- sal_uInt32 nList; // Objektdaten, erster Record
- sal_uInt32 ListEnd; // Objektdaten, letzter Record
- Seitenformat Paper; // Papierdaten
- sal_Bool BorderClip; // Objekte am Rand abschneiden (Schummel wg. Allignment unter NT)
- sal_uInt8 StdPg; // welche Standardseite einblenden ?
- PointType U; // Nullpunkt
- sal_Int16 HlpLnH[20]; // Hilfslinien
+ sal_uInt32 Next; // next page
+ sal_uInt32 nList; // objectdata, first record
+ sal_uInt32 ListEnd; // objectdata, last record
+ Seitenformat Paper; // data of paper
+ sal_Bool BorderClip; // clip objects at border (cheat due to alignment in NT)
+ sal_uInt8 StdPg; // insert which standardpage ?
+ PointType U; // origin
+ sal_Int16 HlpLnH[20]; // guides
sal_Int16 HlpLnV[20];
- sal_uInt8 LnAnzH;
- sal_uInt8 LnAnzV;
- UCHAR PgName[32]; // Seitenname
+ sal_uInt8 LnAnzH;
+ sal_uInt8 LnAnzV;
+ UCHAR PgName[32]; // page name
friend SvStream& operator>>(SvStream& rIStream, PageType& rPage);
};
@@ -73,70 +73,70 @@ enum ObjArtType {ObjStrk,ObjRect,ObjPoly,ObjCirc,ObjSpln,
ObjText,ObjGrup,ObjBmap,ObjVirt,ObjTxtX,ObjMaxi};
struct ObjLineType {
- sal_uInt8 LFarbe; // [Index]
- sal_uInt8 LBFarbe; // [Index]
- sal_uInt8 LIntens; // [%]
- sal_uInt8 LMuster; // [Index] inkl. Transparenz
- sal_Int16 LMSize; // [Koeffizient/100]
- sal_Int16 LDicke; // Strichst"urke
+ sal_uInt8 LFarbe; // [Index]
+ sal_uInt8 LBFarbe; // [Index]
+ sal_uInt8 LIntens; // [%]
+ sal_uInt8 LMuster; // [Index] including transparency
+ sal_Int16 LMSize; // [coefficient/100]
+ sal_Int16 LDicke; // line thickness
};
struct ObjAreaType {
- sal_uInt8 FFarbe; // [Index]
- sal_uInt8 FBFarbe; // [Index]
- sal_uInt8 FIntens; // [%]
+ sal_uInt8 FFarbe; // [Index]
+ sal_uInt8 FBFarbe; // [Index]
+ sal_uInt8 FIntens; // [%]
// Despite the "Dummy" in the name, and not being used anywhere in
// the code, these two fields are *essential*. These structs are
// 1:1 mappings of actual on-disk/wire file format structures...
// So don't clean the "unused dummy" fields away. (Actually it
// might well be that many other fields around here are never used
// in our code either.)
- sal_uInt8 FDummy1; //
- sal_Int16 FDummy2; //
- sal_uInt16 FMuster; // [Index] inkl. Invers, Transparenz
+ sal_uInt8 FDummy1; //
+ sal_Int16 FDummy2; //
+ sal_uInt16 FMuster; // [Index] incl. Invers, transparency
};
#define ObjTextTypeSize 64
class ObjTextType {
public:
- ObjLineType L; // Text-Outline (future)
- ObjAreaType F; // Text innen
- sal_uInt16 FontLo,FontHi;// z.B. 92500 (CG Times), zweigeteilt wegen DWordAllign in TextType.
- sal_uInt16 Grad; // 0.5..32767.5 Pt - bei 1000 Pt sollte aber schlu"u sein
- sal_uInt16 Breite; // 1..65535% bitte nicht mehr als 500%
- sal_uInt8 Justify; // 2 Bit Vert (Hi), 3 Bit Hor (Lo)
- sal_uInt8 Kapit; // 1..255%
- sal_uInt16 Schnitt; // 8 Flags
- sal_uInt16 LnFeed; // 1..32767% vom max. Schriftgrad der Zeile
- sal_uInt16 Slant; // Kursivwinkel 0.00..89.99"u default 15.00"u doppelt Breit angesehen)
- sal_uInt8 ZAbst; // Zeichenabstand 0..255% (0=auf der Stelle; 100=normal; 200=Zeichen wird als
- signed char ChrVPos; // Zeichen V-Position default 0= on Baseline, 10= 5Pt drunter (-64..63"u)
- ObjLineType ShdL; // Schatten-Outline (neu 2.0)
- ObjAreaType ShdF; // Schatten-innen (neu 2.0)
- PointType ShdVers; // Schattenversatz Max.300.00%
- sal_Bool ShdAbs; // True-> Schattenversatz ist absolut statt relativ zum Schriftgrad
- sal_Bool NoSpc; // True-> kein Zwischenraum (f"ur BackArea)
- ObjAreaType BackF; // Hintergrundfl"uche
+ ObjLineType L; // text outline (future)
+ ObjAreaType F; // inner text
+ sal_uInt16 FontLo,FontHi; // e.g. 92500 (CG Times), split due to DWordAllign in TextType.
+ sal_uInt16 Grad; // 0.5..32767.5 pt - we should stop at 1000 pt
+ sal_uInt16 Breite; // 1..65535% please not more as 500%
+ sal_uInt8 Justify; // 2 bit vertical (Hi), 3 bit horizontal (Lo)
+ sal_uInt8 Kapit; // 1..255%
+ sal_uInt16 Schnitt; // 8 flags
+ sal_uInt16 LnFeed; // 1..32767% of max font size of the line
+ sal_uInt16 Slant; // slant angle 0.00..89.99deg default 15.00deg viewed double width)
+ sal_uInt8 ZAbst; // character spacing 0..255% (0=on the line; 100=normal; 200=Zeichen wird als
+ signed char ChrVPos; // vertical position of char. Default 0=on baseline, 10=5Pt below (-64..63")
+ ObjLineType ShdL; // shadow outline (new 2.0)
+ ObjAreaType ShdF; // shadow inside (new 2.0)
+ PointType ShdVers; // shadow offset max. 300.00%
+ sal_Bool ShdAbs; // True-> shadow offset is absolute instead of relative to font size
+ sal_Bool NoSpc; // True-> no space (for background area)
+ ObjAreaType BackF; // background area
sal_uInt32 GetFont();
void SetFont(sal_uInt32 FontID);
};
-class Obj0Type { // SuperClass f"ur Apple-VMT
+class Obj0Type { // SuperClass for Apple-VMT
public:
virtual void Draw(OutputDevice& rOut);
virtual ~Obj0Type() {}
};
-#define ObjkSize 20 /* eigentlich 21. Wg. Allignment ist Flags jedoch verschoben worden*/
-class ObjkType: public Obj0Type { // Grundkomponenten aller Stardraw-Objekte
+#define ObjkSize 20 /* should be 21. due to allignment we shifted the flag */
+class ObjkType: public Obj0Type { // basic componenents of all Stardraw objects
public:
sal_uInt32 Last;
sal_uInt32 Next;
- sal_uInt16 MemSize; // in Bytes
- PointType ObjMin; // XY-Minimum des Objekts
- PointType ObjMax; // XY-Maximum des Objekts
- sal_uInt8 Art;
- sal_uInt8 Layer;
+ sal_uInt16 MemSize; // in bytes
+ PointType ObjMin; // XY minimum of the object
+ PointType ObjMax; // XY maximum of the object
+ sal_uInt8 Art;
+ sal_uInt8 Layer;
friend SvStream& operator>>(SvStream& rIStream, ObjkType& rObjk);
friend sal_Bool ObjOverSeek(SvStream& rInp, ObjkType& rObjk);
virtual void Draw(OutputDevice& rOut);
@@ -145,11 +145,11 @@ public:
#define StrkSize 38
class StrkType: public ObjkType {
public:
- sal_uInt8 Flags; // (Schummel f"ur Allignment unter NT)
- sal_uInt8 LEnden; // Linienenden
- ObjLineType L;
- PointType Pos1; // Anfangspunkt
- PointType Pos2; // Endpunkt
+ sal_uInt8 Flags; // (cheat due to alignment in NT)
+ sal_uInt8 LEnden; // line ends
+ ObjLineType L;
+ PointType Pos1; // start point
+ PointType Pos2; // end point
friend SvStream& operator>>(SvStream& rIStream, StrkType& rStrk);
virtual void Draw(OutputDevice& rOut);
};
@@ -157,13 +157,13 @@ public:
#define RectSize 52
class RectType: public ObjkType {
public:
- sal_uInt8 Flags; // (Schummel f"ur Allignment unter NT)
- sal_uInt8 Reserve;
- ObjLineType L;
- ObjAreaType F;
- PointType Pos1; // LO-Ecke = Bezugspunkt
- PointType Pos2; // R-Ecke
- sal_Int16 Radius; // Eckenradius
+ sal_uInt8 Flags; // (cheat due to alignment in NT)
+ sal_uInt8 Reserve;
+ ObjLineType L;
+ ObjAreaType F;
+ PointType Pos1; // lower left corner = reference point
+ PointType Pos2; // right corner
+ sal_Int16 Radius; // radius of corner
sal_uInt16 DrehWink; // 315...<45
sal_uInt16 Slant; // >270...<90
friend SvStream& operator>>(SvStream& rIStream, RectType& rRect);
@@ -171,81 +171,81 @@ public:
};
#define PolySize 44
-class PolyType: public ObjkType { // identisch mit Spline !
+class PolyType: public ObjkType { // identical to spline !
public:
- sal_uInt8 Flags; // (Schummel f"ur Allignment unter NT)
- sal_uInt8 LEnden; // nur f"ur Polyline
- ObjLineType L;
- ObjAreaType F; // nicht f"ur Polyline
+ sal_uInt8 Flags; // (cheat due to alignment in NT)
+ sal_uInt8 LEnden; // only for polyline
+ ObjLineType L;
+ ObjAreaType F; // not for polyline
sal_uInt8 nPoints;
sal_uInt8 Reserve;
- sal_uInt32 SD_EckP; // Zeiger auf die Eckpunkte (StarDraw)
- PointType* EckP; // Zeiger auf die Eckpunkte (StarView (wird nicht von Disk gelesen!))
+ sal_uInt32 SD_EckP; // pointer to corner point (StarDraw)
+ PointType* EckP; // pointer to corner points (StarView (is not read from disk!))
friend SvStream& operator>>(SvStream& rIStream, PolyType& rPoly);
virtual void Draw(OutputDevice& rOut);
};
-#define PolyClosBit 0x01 // Unterarten von Poly: 0: PolyLine 1: Polygon
+#define PolyClosBit 0x01 // kinds of Poly: 0: polyLine 1: polygon
#define SplnSize 44
-class SplnType: public ObjkType { // identisch mit Poly !
+class SplnType: public ObjkType { // identical to Poly !
public:
- sal_uInt8 Flags; // (Schummel f"ur Allignment unter NT)
- sal_uInt8 LEnden; // nur f"ur nSpline
+ sal_uInt8 Flags; // (cheat due to alignment in NT)
+ sal_uInt8 LEnden; // only for nSpline
ObjLineType L;
- ObjAreaType F; // nicht f"ur nSpline
+ ObjAreaType F; // not for nSpline
sal_uInt8 nPoints;
sal_uInt8 Reserve;
- sal_uInt32 SD_EckP; // Zeiger auf die Eckpunkte (StarDraw)
- PointType* EckP; // Zeiger auf die Eckpunkte (StarView (wird nicht von Disk gelesen!))
+ sal_uInt32 SD_EckP; // pointer to corner points (StarDraw)
+ PointType* EckP; // pointer to corner points (StarView (is not read from disk!))
friend SvStream& operator>>(SvStream& rIStream, SplnType& rSpln);
virtual void Draw(OutputDevice& rOut);
};
-// Unterarten von Spline: siehe Poly
+// kinds of Spline: see Poly
#define CircSize 52
class CircType: public ObjkType {
public:
- sal_uInt8 Flags; // (Schummel f"ur Allignment unter NT)
- sal_uInt8 LEnden; // nur Bogen (Kr & El)
- ObjLineType L;
- ObjAreaType F; // nicht f"ur Bogen (Kr & El)
- PointType Center; // Mittelpunkt
- PointType Radius; // Radius
- sal_uInt16 DrehWink; // nur Ellipse
- sal_uInt16 StartWink; // "u nicht f"ur Vollkreis
- sal_uInt16 RelWink; // "u und Vollellipse
+ sal_uInt8 Flags; // (cheat due to alignment in NT)
+ sal_uInt8 LEnden; // only arcs (circle & ellips)
+ ObjLineType L;
+ ObjAreaType F; // not for arcs (circly & ellips)
+ PointType Center; // center
+ PointType Radius; // radius
+ sal_uInt16 DrehWink; // only ellipses
+ sal_uInt16 StartWink; // and not for full circles
+ sal_uInt16 RelWink; // and full ellipses
friend SvStream& operator>>(SvStream& rIStream, CircType& rCirc);
virtual void Draw(OutputDevice& rOut);
};
-#define CircFull 0x00 /* Unterarten von Kreis: 0: Kreis */
-#define CircSect 0x01 /* 1: Kreissektor */
-#define CircAbsn 0x02 /* 2: Kreisabschnitt */
-#define CircArc 0x03 /* 3: Kreisbogen */
+#define CircFull 0x00 /* kinds of circle: 0: full circle */
+#define CircSect 0x01 /* 1: circle sector */
+#define CircAbsn 0x02 /* 2: circle segment */
+#define CircArc 0x03 /* 3: circle arc */
#define TextSize 116
class TextType: public ObjkType {
public:
- sal_uInt8 Flags; // (Schummel f"ur Allignment unter NT)
- sal_uInt8 Reserve; // f"ur Word Allign
- ObjTextType T; // 64 Bytes << DWord-Allign bei FontID erforderlich
- PointType Pos1; // Bezugspunkt (ObenLinks)
- PointType Pos2; // (untenRechts)
- sal_Int16 TopOfs; // Von Oberkante bis Textbegin (future f"ur vJustify)
- sal_uInt16 DrehWink; // 0...<360
- sal_uInt16 BoxSlant; // >270...<90 (nur Box)
- sal_uInt16 BufSize; // Gr"u"ue von Buf f"ur Load, Save, Copy und so
- sal_uInt16 BufLo,BufHi;// (UCHAR*) Zeiger auf den Textbuffer << ShortArr, weil sonst DWord-Allign erforderlich
- sal_uInt16 ExtLo,ExtHi;// (Ptr) Text "uber mehrere Rahmen << ShortArr, weil sonst DWord-Allign erforderlich
- PointType FitSize; // Ursprungsgr"u"ue f"ur Fit2Size
- sal_Int16 FitBreit; // Breite zum formatieren bei Fit2Size
- UCHAR* Buffer; // Diese Variable wird nicht durch Lesen von Disk gef"ullt, sondern explizit!
+ sal_uInt8 Flags; // (cheat due to alignment in NT)
+ sal_uInt8 Reserve; // for Word Allign
+ ObjTextType T; // 64 bytes << DWord-Allign needed for FontID
+ PointType Pos1; // reference point (upper left)
+ PointType Pos2; // (lower right)
+ sal_Int16 TopOfs; // from upper side to start of text (future for vJustify)
+ sal_uInt16 DrehWink; // 0...<360
+ sal_uInt16 BoxSlant; // >270...<90 (only Box)
+ sal_uInt16 BufSize; // size of buffer for Load, Save, Copy etc.
+ sal_uInt16 BufLo,BufHi; // (UCHAR*) pointer to Textbuffer << ShortArr, otherwise DWord-Allign needed
+ sal_uInt16 ExtLo,ExtHi; // (Ptr) text over more frames << ShortArr, otherwise DWord-Allign needed
+ PointType FitSize; // size of origin for Fit2Size
+ sal_Int16 FitBreit; // width to format for Fit2Size
+ UCHAR* Buffer; // this variable is not set by reading from disk, but explicit!
friend SvStream& operator>>(SvStream& rIStream, TextType& rText);
virtual void Draw(OutputDevice& rOut);
};
-#define TextOutlBit 0x01 /* 1=Sourcecode f"ur Outliner (wird von DrawObjekt() ignoriert) */
-#define TextFitSBit 0x02 /* Bit1: 1=Text-FitToSize, auch Outliner (2.0) */
-#define TextFitZBit 0x08 /* Bit3: 1=Fit2Size Zeilenweise (2.0) */
-#define TextDrftBit 0x04 /* Bit2: 1=DraftDraw (2.0) */
+#define TextOutlBit 0x01 /* 1=Sourcecode for outliner (ignored byDrawObjekt()) */
+#define TextFitSBit 0x02 /* Bit1: 1=Text-Fit2Size, also outliner (2.0) */
+#define TextDrftBit 0x04 /* Bit2: 1=DraftDraw (2.0) */
+#define TextFitZBit 0x08 /* Bit3: 1=Fit2Size line by line (2.0) */
#define TextFitBits (TextFitSBit | TextFitZBit)
enum GrafStat {NoGraf,Pic,Pcx,Hpgl,Img,Msp,Tiff,Dxf,Lot,Usr,Sgf};
@@ -253,23 +253,22 @@ enum GrafStat {NoGraf,Pic,Pcx,Hpgl,Img,Msp,Tiff,Dxf,Lot,Usr,Sgf};
#define BmapSize 132
class BmapType: public ObjkType {
public:
- sal_uInt8 Flags; // (Schummel f"ur Allignment unter NT)
- sal_uInt8 Reserve;
- ObjAreaType F; // Farbe und Muster der 1-Plane Bitmap
+ sal_uInt8 Flags; // (cheat due to alignment in NT)
+ sal_uInt8 Reserve;
+ ObjAreaType F; // colour and pattern of first plane bitmap
PointType Pos1;
PointType Pos2;
- sal_uInt16 DrehWink; // 315...<45 (Future)
- sal_uInt16 Slant; // >270...<90 (Future)
- UCHAR Filename[80]; // Pfad
- PointType PixSize; // Gr"u"ue in Pixel (0 bei Vektor)
- GrafStat Format; // siehe GpmDef.Pas
- sal_uInt8 nPlanes; // Anzahl der Bitplanes (0 bei Vektor)
- sal_Bool RawOut; // als Raw ausgeben ?
- sal_Bool InvOut; // invertiert ausgeben ?
- sal_Bool LightOut; // aufhellen? (SD20)
- sal_uInt8 GrfFlg; // (SD20) 0=nSGF 1=Pcx 2=Hpgl 4=Raw $FF=Undef(f"ur Fix in DrawBmp)
-
- INetURLObject aFltPath; // F"ur GraphicFilter
+ sal_uInt16 DrehWink; // 315...<45 (future)
+ sal_uInt16 Slant; // >270...<90 (future)
+ UCHAR Filename[80]; // path
+ PointType PixSize; // size in Pixel (0 for vector)
+ GrafStat Format; // see: GpmDef.Pas
+ sal_uInt8 nPlanes; // number of bitplanes (0 for vector)
+ sal_Bool RawOut; // output as raw ?
+ sal_Bool InvOut; // output inverted ?
+ sal_Bool LightOut; // brighten? (SD20)
+ sal_uInt8 GrfFlg; // (SD20) 0=nSGF 1=Pcx 2=HPGL 4=Raw $FF=Undef (to fix DrawBmp)
+ INetURLObject aFltPath; // for GraphicFilter
friend SvStream& operator>>(SvStream& rIStream, BmapType& rBmap);
virtual void Draw(OutputDevice& rOut);
void SetPaths( const INetURLObject rFltPath );
@@ -278,13 +277,13 @@ public:
#define GrupSize 48
class GrupType: public ObjkType {
public:
- sal_uInt8 Flags; // (Schummel f"ur Allignment unter NT)
- UCHAR Name[13]; // Name der Gruppe
- sal_uInt16 SbLo,SbHi; // (Ptr) Gruppenliste << ShortArr, weil sonst DWord Allign erforderlich
- sal_uInt16 UpLo,UpHi; // (Ptr) Vaterliste << ShortArr, weil sonst DWord Allign erforderlich
- sal_uInt16 ChartSize; // Speicherbedarf der Diagrammstruktur Struktur
- sal_uInt32 ChartPtr; // Diagrammstruktur
- sal_uInt32 GetSubPtr(); // hier nur zum Checken, ob Sublist evtl. leer ist.
+ sal_uInt8 Flags; // (cheat due to alignment in NT)
+ UCHAR Name[13]; // name of group
+ sal_uInt16 SbLo,SbHi; // (Ptr) group list << ShortArr, as otherwise DWord alignment needed
+ sal_uInt16 UpLo,UpHi; // (Ptr) parent list << ShortArr, as otherwise DWord alignment needed
+ sal_uInt16 ChartSize; // required amount of memory for structure of diagram structure
+ sal_uInt32 ChartPtr; // diagram structure
+ sal_uInt32 GetSubPtr(); // only to check if Sublist is empty
friend SvStream& operator>>(SvStream& rIStream, GrupType& rGrup);
};
@@ -298,7 +297,7 @@ sal_uInt16 MulDiv(sal_uInt16 a, sal_uInt16 Mul, sal_uInt16 Div);
class SgfFontOne {
public:
- SgfFontOne* Next; // Zeiger f"ur Listenverkettung
+ SgfFontOne* Next; // pointer to list
sal_uInt32 IFID;
sal_Bool Bold;
sal_Bool Ital;
@@ -307,19 +306,19 @@ public:
sal_Bool Fixd;
FontFamily SVFamil;
rtl_TextEncoding SVChSet;
- OUString SVFName; // z.B. "Times New Roman" = 15 Chars
- sal_uInt16 SVWidth; // Durchschnittliche Zeichenbreite in %
- SgfFontOne();
+ OUString SVFName; // e.g. "Times New Roman" = 15 chars
+ sal_uInt16 SVWidth; // average character width in %
+ SgfFontOne();
void ReadOne(const OString& rID, OString& rDsc);
};
class SgfFontLst {
public:
- OUString FNam; // vollst"undiger Filename des Inifiles
- SgfFontOne* pList; // Listenanfang
- SgfFontOne* Last; // Listenende
- sal_uInt32 LastID; // f"ur schnelleren Zugriff bei Wiederholungen
- SgfFontOne* LastLn; // f"ur schnelleren Zugriff bei Wiederholungen
+ OUString FNam; // complete filename of the Ini-file
+ SgfFontOne* pList; // start of list
+ SgfFontOne* Last; // end of list
+ sal_uInt32 LastID; // for faster access during repeats
+ SgfFontOne* LastLn; // for faster access during repeats
bool Tried;
SgfFontLst();
~SgfFontLst();
More information about the Libreoffice-commits
mailing list