summaryrefslogtreecommitdiff
path: root/vcl/inc/win
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2014-11-13 17:59:39 +0100
committerJan Holesovsky <kendy@collabora.com>2014-11-14 00:07:05 +0100
commit48fa9f1e191ffec9be2dfd41061173c488276705 (patch)
treedd17be18318e810e1bab5454999fb0b34e452f56 /vcl/inc/win
parentf2be14cdba8dbe0128751007acf9e82bde3e60a0 (diff)
Revert "vcl: Abstract the Windows text rendering into a TextRenderImpl descendant."
Turns out it might be easier to actually subclass only the various SalLayout's - let's try it first, and re-introduce this code again if not. This reverts commit 309257ddadfdc3e46506036ed81f6e0695211ebe.
Diffstat (limited to 'vcl/inc/win')
-rw-r--r--vcl/inc/win/salgdi.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h
index 18709e150d81..69ea4cfde2cb 100644
--- a/vcl/inc/win/salgdi.h
+++ b/vcl/inc/win/salgdi.h
@@ -25,9 +25,7 @@
#include "outfont.hxx"
#include "PhysicalFontFace.hxx"
#include "impfont.hxx"
-#include <textrender.hxx>
#include <vcl/fontcapabilities.hxx>
-#include <win/svsys.h>
#include <boost/scoped_ptr.hpp>
#include <boost/unordered_set.hpp>
@@ -150,7 +148,6 @@ class WinSalGraphics : public SalGraphics
friend class ScopedFont;
private:
boost::scoped_ptr<SalGraphicsImpl> mpImpl;
- boost::scoped_ptr<TextRenderImpl> mpTextRenderImpl;
HDC mhLocalDC; // HDC
bool mbPrinter : 1; // is Printer
@@ -159,13 +156,26 @@ private:
bool mbScreen : 1; // is Screen compatible
HWND mhWnd; // Window-Handle, when Window-Graphics
+ HFONT mhFonts[ MAX_FALLBACK ]; // Font + Fallbacks
+ const ImplWinFontData* mpWinFontData[ MAX_FALLBACK ]; // pointer to the most recent font face
+ ImplWinFontEntry* mpWinFontEntry[ MAX_FALLBACK ]; // pointer to the most recent font instance
+ float mfFontScale[ MAX_FALLBACK ]; // allows metrics emulation of huge font sizes
+ float mfCurrentFontScale;
HRGN mhRegion; // vcl::Region Handle
HPEN mhDefPen; // DefaultPen
HBRUSH mhDefBrush; // DefaultBrush
+ HFONT mhDefFont; // DefaultFont
HPALETTE mhDefPal; // DefaultPalette
COLORREF mnTextColor; // TextColor
RGNDATA* mpClipRgnData; // ClipRegion-Data
RGNDATA* mpStdClipRgnData; // Cache Standard-ClipRegion-Data
+ LOGFONTA* mpLogFont; // LOG-Font which is currently selected (only W9x)
+ ImplFontAttrCache* mpFontAttrCache; // Cache font attributes from files in so/share/fonts
+ BYTE* mpFontCharSets; // All Charsets for the current font
+ BYTE mnFontCharSetCount; // Number of Charsets of the current font; 0 - if not queried
+ bool mbFontKernInit; // FALSE: FontKerns must be queried
+ KERNINGPAIR* mpFontKernPairs; // Kerning Pairs of the current Font
+ sal_uIntPtr mnFontKernPairCount;// Number of Kerning Pairs of the current Font
int mnPenWidth; // Linienbreite
public:
@@ -275,6 +285,12 @@ protected:
const SalBitmap* pAlphaBitmap);
virtual bool drawAlphaRect( long nX, long nY, long nWidth, long nHeight, sal_uInt8 nTransparency );
+private:
+ // local helpers
+
+ // get kernign pairs of the current font
+ sal_uLong GetKernPairs();
+
public:
// public SalGraphics methods, the interface to the independent vcl part
@@ -366,6 +382,7 @@ public:
bool bVertical,
Int32Vector& rWidths,
Ucs2UIntMap& rUnicodeEnc );
+ virtual int GetMinKashidaWidth();
virtual bool GetGlyphBoundRect( sal_GlyphId, Rectangle& );
virtual bool GetGlyphOutline( sal_GlyphId, ::basegfx::B2DPolyPolygon& );