From 40c9ee9aaa56cb17f1999df55178c905bdf4a3f6 Mon Sep 17 00:00:00 2001 From: "kipp%netscape.com" Date: Thu, 10 Sep 1998 23:41:25 +0000 Subject: [PATCH] Added new font intropsection methods to nsIFontMetrics git-svn-id: svn://10.0.0.236/trunk@9785 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/gfx/src/mac/nsFontMetricsMac.cpp | 24 ++++++++++++++++++++ mozilla/gfx/src/mac/nsFontMetricsMac.h | 3 +++ mozilla/gfx/src/motif/nsFontMetricsUnix.cpp | 21 +++++++++++++++++ mozilla/gfx/src/motif/nsFontMetricsUnix.h | 3 +++ mozilla/gfx/src/nsIFontMetrics.h | 19 ++++++++++++++++ mozilla/gfx/src/windows/nsFontMetricsWin.cpp | 21 +++++++++++++++++ mozilla/gfx/src/windows/nsFontMetricsWin.h | 3 +++ 7 files changed, 94 insertions(+) diff --git a/mozilla/gfx/src/mac/nsFontMetricsMac.cpp b/mozilla/gfx/src/mac/nsFontMetricsMac.cpp index 4ec254390a0..6dbf1370e95 100644 --- a/mozilla/gfx/src/mac/nsFontMetricsMac.cpp +++ b/mozilla/gfx/src/mac/nsFontMetricsMac.cpp @@ -236,6 +236,30 @@ NS_IMETHODIMP nsFontMetricsMac :: Init(const nsFont& aFont, nsIDeviceContext* aC mLeading = 0; }*/ +NS_IMETHODIMP +nsFontMetricsMac :: GetXHeight(nscoord& aResult) +{ +// aResult = mMaxAscent / 2; // XXX temporary code! + aResult = 0;/* XXX */ + return NS_OK; +} + +NS_IMETHODIMP +nsFontMetricsMac :: GetSuperscriptOffset(nscoord& aResult) +{ +// aResult = mMaxAscent / 2; // XXX temporary code! + aResult = 0;/* XXX */ + return NS_OK; +} + +NS_IMETHODIMP +nsFontMetricsMac :: GetSubscriptOffset(nscoord& aResult) +{ +// aResult = mMaxAscent / 2; // XXX temporary code! + aResult = 0;/* XXX */ + return NS_OK; +} + NS_IMETHODIMP nsFontMetricsMac :: GetWidth(char ch, nscoord &aWidth) { //if (ch < 256) diff --git a/mozilla/gfx/src/mac/nsFontMetricsMac.h b/mozilla/gfx/src/mac/nsFontMetricsMac.h index 2f452277ca3..b0605403732 100644 --- a/mozilla/gfx/src/mac/nsFontMetricsMac.h +++ b/mozilla/gfx/src/mac/nsFontMetricsMac.h @@ -41,6 +41,9 @@ public: NS_DECL_ISUPPORTS NS_IMETHOD Init(const nsFont& aFont, nsIDeviceContext* aContext); + NS_IMETHOD GetXHeight(nscoord& aResult); + NS_IMETHOD GetSuperscriptOffset(nscoord& aResult); + NS_IMETHOD GetSubscriptOffset(nscoord& aResult); NS_IMETHOD GetWidth(char aC, nscoord &aWidth); NS_IMETHOD GetWidth(PRUnichar aC, nscoord &aWidth); NS_IMETHOD GetWidth(const nsString& aString, nscoord &aWidth); diff --git a/mozilla/gfx/src/motif/nsFontMetricsUnix.cpp b/mozilla/gfx/src/motif/nsFontMetricsUnix.cpp index 8f3a09bad2a..4aec34b07d2 100644 --- a/mozilla/gfx/src/motif/nsFontMetricsUnix.cpp +++ b/mozilla/gfx/src/motif/nsFontMetricsUnix.cpp @@ -272,6 +272,27 @@ void nsFontMetricsUnix::RealizeFont() mLeading = 0; } +NS_IMETHODIMP +nsFontMetricsUnix :: GetXHeight(nscoord& aResult) +{ + aResult = mMaxAscent / 2; // XXX temporary code! + return NS_OK; +} + +NS_IMETHODIMP +nsFontMetricsUnix :: GetSuperscriptOffset(nscoord& aResult) +{ + aResult = mMaxAscent / 2; // XXX temporary code! + return NS_OK; +} + +NS_IMETHODIMP +nsFontMetricsUnix :: GetSubscriptOffset(nscoord& aResult) +{ + aResult = mMaxAscent / 2; // XXX temporary code! + return NS_OK; +} + NS_IMETHODIMP nsFontMetricsUnix :: GetWidth(char ch, nscoord &aWidth) { char buf[1]; diff --git a/mozilla/gfx/src/motif/nsFontMetricsUnix.h b/mozilla/gfx/src/motif/nsFontMetricsUnix.h index 46356b37a68..755fe30c3c0 100644 --- a/mozilla/gfx/src/motif/nsFontMetricsUnix.h +++ b/mozilla/gfx/src/motif/nsFontMetricsUnix.h @@ -45,6 +45,9 @@ public: NS_IMETHOD Init(const nsFont& aFont, nsIDeviceContext* aContext); NS_IMETHOD Destroy(); + NS_IMETHOD GetXHeight(nscoord& aResult); + NS_IMETHOD GetSuperscriptOffset(nscoord& aResult); + NS_IMETHOD GetSubscriptOffset(nscoord& aResult); NS_IMETHOD GetWidth(char aC, nscoord &aWidth); NS_IMETHOD GetWidth(PRUnichar aC, nscoord &aWidth); NS_IMETHOD GetWidth(const nsString& aString, nscoord &aWidth); diff --git a/mozilla/gfx/src/nsIFontMetrics.h b/mozilla/gfx/src/nsIFontMetrics.h index 62545159e36..de97a63850d 100644 --- a/mozilla/gfx/src/nsIFontMetrics.h +++ b/mozilla/gfx/src/nsIFontMetrics.h @@ -61,6 +61,25 @@ public: */ NS_IMETHOD Destroy() = 0; + /** + * Return the font's xheight property, scaled into app-units. + */ + NS_IMETHOD GetXHeight(nscoord& aResult) = 0; + + /** + * Return the font's superscript offset (the distance from the + * baseline to where a superscript's baseline should be placed). The + * value returned will be a positive value. + */ + NS_IMETHOD GetSuperscriptOffset(nscoord& aResult) = 0; + + /** + * Return the font's subscript offset (the distance from the + * baseline to where a subscript's baseline should be placed). The + * value returned will be a positive value. + */ + NS_IMETHOD GetSubscriptOffset(nscoord& aResult) = 0; + /** * Returns the width (in app units) of an 8-bit character */ diff --git a/mozilla/gfx/src/windows/nsFontMetricsWin.cpp b/mozilla/gfx/src/windows/nsFontMetricsWin.cpp index eb2fdc8232d..3b80b9fa9c8 100644 --- a/mozilla/gfx/src/windows/nsFontMetricsWin.cpp +++ b/mozilla/gfx/src/windows/nsFontMetricsWin.cpp @@ -233,6 +233,27 @@ nsFontMetricsWin::RealizeFont() ::ReleaseDC(win, dc); } +NS_IMETHODIMP +nsFontMetricsWin :: GetXHeight(nscoord& aResult) +{ + aResult = mMaxAscent / 2; // XXX temporary code! + return NS_OK; +} + +NS_IMETHODIMP +nsFontMetricsWin :: GetSuperscriptOffset(nscoord& aResult) +{ + aResult = mMaxAscent / 2; // XXX temporary code! + return NS_OK; +} + +NS_IMETHODIMP +nsFontMetricsWin :: GetSubscriptOffset(nscoord& aResult) +{ + aResult = mMaxAscent / 2; // XXX temporary code! + return NS_OK; +} + NS_IMETHODIMP nsFontMetricsWin :: GetWidth(char ch, nscoord& aWidth) { diff --git a/mozilla/gfx/src/windows/nsFontMetricsWin.h b/mozilla/gfx/src/windows/nsFontMetricsWin.h index cc99ce1297d..d446a8f4dbb 100644 --- a/mozilla/gfx/src/windows/nsFontMetricsWin.h +++ b/mozilla/gfx/src/windows/nsFontMetricsWin.h @@ -45,6 +45,9 @@ public: NS_IMETHOD Init(const nsFont& aFont, nsIDeviceContext* aContext); NS_IMETHOD Destroy(); + NS_IMETHOD GetXHeight(nscoord& aResult); + NS_IMETHOD GetSuperscriptOffset(nscoord& aResult); + NS_IMETHOD GetSubscriptOffset(nscoord& aResult); NS_IMETHOD GetWidth(char aC, nscoord& aWidth); NS_IMETHOD GetWidth(PRUnichar aC, nscoord& aWidth); NS_IMETHOD GetWidth(const nsString& aString, nscoord& aWidth);