summaryrefslogtreecommitdiff
path: root/inc/WNT_FontMapEntry.hxx
blob: 56b87eca73627800697bf481e6283a0745912164 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _WNT_FontMapEntry_HeaderFile
#define _WNT_FontMapEntry_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_WNT_FontMapEntry_HeaderFile
#include <Handle_WNT_FontMapEntry.hxx>
#endif

#ifndef _WNT_LogFont_HeaderFile
#include <WNT_LogFont.hxx>
#endif
#ifndef _Aspect_Handle_HeaderFile
#include <Aspect_Handle.hxx>
#endif
#ifndef _Quantity_Factor_HeaderFile
#include <Quantity_Factor.hxx>
#endif
#ifndef _Quantity_PlaneAngle_HeaderFile
#include <Quantity_PlaneAngle.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _Standard_CString_HeaderFile
#include <Standard_CString.hxx>
#endif
#ifndef _WNT_Dword_HeaderFile
#include <WNT_Dword.hxx>
#endif
#ifndef _Standard_Address_HeaderFile
#include <Standard_Address.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class WNT_FontMapEntryDefinitionError;
class WNT_WDriver;
class WNT_DDriver;


//! Defines correspondence between FontMapEntry from <br>
//!          Aspect and Windows NT font handle. Also, provides <br>
//!          some optimizations due to rotation, italics & underlining <br>
//!          of fonts. Each font can be reffered by its name which <br>
//!          is a character string. The format of the string takes <br>
//!          after format of font name of X window system but there <br>
//!          are some differences. The font name string format is: <br>
//!          "h-w-e-o-wgt-i-u-so-cs-op-cp-q-pf-face". <br>
//!           ^ ^ ^ ^  ^  ^ ^ ^  ^  ^  ^  ^ ^   ^ <br>
//!           | | | |  |  | | |  |  |  |  | |   | <br>
//!           | | | |  |  | | |  |  |  |  | |   +- name of the typeface <br>
//!           | | | |  |  | | |  |  |  |  | |      (Courier, Arial ...) <br>
//!           | | | |  |  | | |  |  |  |  | +- pitch and family <br>
//!           | | | |  |  | | |  |  |  |  +- quality <br>
//!           | | | |  |  | | |  |  |  +- clip precision <br>
//!           | | | |  |  | | |  |  +- out precision <br>
//!           | | | |  |  | | |  +- character set <br>
//!           | | | |  |  | | +- strike out <br>
//!           | | | |  |  | +- underline <br>
//!           | | | |  |  +- italic <br>
//!           | | | |  +- weight <br>
//!           | | | +- orientation <br>
//!           | | +- escapement <br>
//!           | +- width <br>
//!           +- height <br>
//!           Wildcarding is allowed by specifying '*' sign. This means <br>
//!           a default value for parameter. <br>
//!  Example: "13-8-*-*-400-*-*-*-255-1-2-*-25-courier". <br>
//!          For more detail information see Microsoft Windows manual. <br>
//!  Warning: Windows can output rotated text only if the selected for <br>
//!          drawing font is True Type. <br>
class WNT_FontMapEntry : public MMgt_TShared {

public:

  //! Creates a class and loads font. <br>
//!  Warning: Windows finds the real font that most closely matches <br>
//!          the request. In doing so, it uses a <br>
//!          "font-mapping-algorythm". So it is possible that loaded <br>
//!          font differs from font in the request. <br>
//!  Trigger: Raises if font loading failed. <br>
  Standard_EXPORT   WNT_FontMapEntry(const Standard_CString aFontName);
  //! Destroys all ressources attached to the FontMapEntry <br>
  Standard_EXPORT   virtual  void Destroy() ;
~WNT_FontMapEntry()
{
  Destroy();
}
  //! Returns handle of the font. <br>
  Standard_EXPORT     Aspect_Handle HFont() const;
  //! Sets certain attributes ( italics etc. ) for font. <br>
//!  Warning: If <aRepl> is True then creates a new handle for font. <br>
//!          In this case calling routine MUST DELETE THE FONT ITSELF <br>
//!          WHEN THE FONT BECOME NO LONGER NEEDED. <br>
  Standard_EXPORT     Aspect_Handle SetAttrib(const WNT_Dword& aFlags,const Standard_Address aData,const Standard_Boolean aRepl = Standard_False) ;
  //! Sets the font's slant and returns a previous one. <br>
        Quantity_PlaneAngle SetSlant(const Quantity_PlaneAngle aSlant) ;
  //! Sets the font's scale and returns a previous one. <br>
        Quantity_Factor SetScale(const Quantity_Factor aScale) ;
  //! Returns value of the font's slant. <br>
        Quantity_PlaneAngle Slant() const;
  //! Returns value of the font's scale. <br>
        Quantity_Factor Scale() const;
  //! Returns pointer to LogFont structure. <br>
        Standard_Address LogFont() const;

friend class WNT_WDriver;
friend class WNT_DDriver;


  DEFINE_STANDARD_RTTI(WNT_FontMapEntry)

protected:


WNT_LogFont myLogFont;
Aspect_Handle myHandle;
Quantity_Factor myScale;
Quantity_PlaneAngle mySlant;


private: 




};


#include <WNT_FontMapEntry.lxx>



// other Inline functions and methods (like "C++: function call" methods)


#endif