1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/**************************************************************************\ 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Copyright (c) 1998-2000, Microsoft Corp. All Rights Reserved. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Module Name: 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* GdiplusFont.h 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Abstract: 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* Font related declarations 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov* 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov\**************************************************************************/ 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _GDIPLUSFONT_H 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _GDIPLUSFONT_H 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::Font(IN HDC hdc) 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpFont *font = NULL; 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef DCR_USE_NEW_135429 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if ((INT) lastResult >= 10) 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = NotFound; 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeFont(font); 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef DCR_USE_NEW_127084 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::Font(IN HDC hdc, 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const HFONT hfont) 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpFont *font = NULL; 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (hfont) 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov LOGFONTA lf; 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if(GetObjectA(hfont, sizeof(LOGFONTA), &lf)) 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFontFromLogfontA(hdc, &lf, &font); 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov else 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov else 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef DCR_USE_NEW_135429 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if ((INT) lastResult >= 10) 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = NotFound; 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeFont(font); 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::Font(IN HDC hdc, 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const LOGFONTW* logfont) 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpFont *font = NULL; 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (logfont) 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFontFromLogfontW(hdc, logfont, &font); 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov else 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef DCR_USE_NEW_135429 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if ((INT) lastResult >= 10) 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = NotFound; 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeFont(font); 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::Font(IN HDC hdc, 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const LOGFONTA* logfont) 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpFont *font = NULL; 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (logfont) 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFontFromLogfontA(hdc, logfont, &font); 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov else 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFontFromDC(hdc, &font); 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef DCR_USE_NEW_135429 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if ((INT) lastResult >= 10) 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = NotFound; 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeFont(font); 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::Font( 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const FontFamily * family, 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN REAL emSize, 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN INT style, 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN Unit unit 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov) 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpFont *font = NULL; 116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFont(family ? family->nativeFamily : NULL, 118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov emSize, 119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov style, 120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov unit, 121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &font); 122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef DCR_USE_NEW_135429 124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if ((INT) lastResult >= 10) 125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = NotFound; 126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeFont(font); 129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 132ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::Font( 133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const WCHAR * familyName, 134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN REAL emSize, 135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN INT style, 136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN Unit unit, 137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN const FontCollection * fontCollection 138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov) 139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FontFamily family(familyName, fontCollection); 141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpFont * font = NULL; 143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = family.GetLastStatus(); 145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (lastResult == Ok) 147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = DllExports::GdipCreateFont(family.nativeFamily, 149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov emSize, 150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov style, 151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov unit, 152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &font); 153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 155ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef DCR_USE_NEW_135429 156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if ((INT) lastResult >= 10) 157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = NotFound; 158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 160ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeFont(font); 161ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 162ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 163ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 164ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::GetLogFontA(IN const Graphics *g, 165ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov OUT LOGFONTA *logfontA) const 166ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 167ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipGetLogFontA(nativeFont, g ? g->nativeGraphics : NULL, logfontA)); 168ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 169ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 170ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 171ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 172ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::GetLogFontW(IN const Graphics *g, 173ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov OUT LOGFONTW *logfontW) const 174ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 175ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(DllExports::GdipGetLogFontW(nativeFont, g ? g->nativeGraphics : NULL, logfontW)); 176ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 177ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 178ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 179ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Font* 180ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::Clone() const 181ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 182ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov GpFont *cloneFont = NULL; 183ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 184ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipCloneFont(nativeFont, &cloneFont)); 185ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 186ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return new Font(cloneFont, lastResult); 187ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 188ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 189ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 190ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::~Font() 191ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 192ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov DllExports::GdipDeleteFont(nativeFont); 193ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 194ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 195ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Operations 196ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 197ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline BOOL 198ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::IsAvailable() const 199ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 200ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return (nativeFont ? TRUE : FALSE); 201ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 202ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 203ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 204ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::GetFamily(OUT FontFamily *family) const 205ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 206ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (family == NULL) 207ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 208ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(InvalidParameter); 209ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 210ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 211ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov Status status = DllExports::GdipGetFamily(nativeFont, &(family->nativeFamily)); 212ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov family->SetStatus(status); 213ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 214ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return SetStatus(status); 215ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 216ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 217ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline INT 218ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::GetStyle() const 219ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 220ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov INT style; 221ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 222ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipGetFontStyle(nativeFont, &style)); 223ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 224ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return style; 225ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 226ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 227ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline REAL 228ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::GetSize() const 229ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 230ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov REAL size; 231ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipGetFontSize(nativeFont, &size)); 232ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return size; 233ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 234ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 235ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Unit 236ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::GetUnit() const 237ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 238ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov Unit unit; 239ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipGetFontUnit(nativeFont, &unit)); 240ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return unit; 241ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 242ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 243ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline REAL 244ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::GetHeight(IN const Graphics *graphics) const 245ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 246ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov REAL height; 247ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipGetFontHeight( 248ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nativeFont, 249ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov graphics ? graphics->nativeGraphics : NULL, 250ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov &height 251ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov )); 252ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return height; 253ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 254ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 255ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 256ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef DCR_USE_NEW_125467 257ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline REAL 258ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::GetHeight(IN REAL dpi = 0) const 259ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 260ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov REAL height; 261ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetStatus(DllExports::GdipGetFontHeightGivenDPI(nativeFont, dpi, &height)); 262ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return height; 263ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 264ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 265ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 266ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 267ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// protected method 268ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline 269ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::Font(IN GpFont* font, 270ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IN Status status) 271ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 272ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov lastResult = status; 273ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SetNativeFont(font); 274ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 275ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 276ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// protected method 277ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline VOID 278ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::SetNativeFont(GpFont *Font) 279ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 280ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov nativeFont = Font; 281ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 282ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 283ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 284ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::GetLastStatus(void) const 285ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 286ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return lastResult; 287ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 288ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 289ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// protected method 290ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovinline Status 291ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFont::SetStatus(IN Status status) const 292ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 293ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (status != Ok) 294ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return (lastResult = status); 295ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov else 296ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return status; 297ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 298ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 299ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 300