2001-12-01 Gaurav Vaish <gvaish@iitk.ac.in>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / FontInfo.cs
1 /**\r
2  * Namespace: System.Web.UI.WebControls\r
3  * Class:     FontInfo\r
4  * \r
5  * Author:  Gaurav Vaish\r
6  * Maintainer: gvaish@iitk.ac.in\r
7  * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>\r
8  * Status:  80%\r
9  * \r
10  * (C) Gaurav Vaish (2001)\r
11  */\r
12 \r
13 using System;\r
14 using System.Reflection;\r
15 using System.Web;\r
16 using System.Web.UI;\r
17 using System.Drawing;\r
18 \r
19 namespace System.Web.UI.WebControls\r
20 {\r
21         public sealed class FontInfo\r
22         {\r
23                 private bool bold;\r
24                 private bool italic;\r
25                 private bool overline;\r
26                 private bool strikeout;\r
27                 private bool underline;\r
28                 private string name;            //TODO: This will have the value of names[0] by default\r
29                 private string[] names;         //TODO: How do get the list of fonts available?\r
30                 private FontUnit size = FontUnit.Empty;\r
31                 \r
32                 internal FontInfo()\r
33                 {\r
34                         bold      = false;\r
35                         italic    = false;\r
36                         overline  = false;\r
37                         strikeout = false;\r
38                         underline = false;\r
39                         name      = string.Empty;\r
40                 }\r
41                 \r
42                 public bool Bold\r
43                 {\r
44                         get\r
45                         {\r
46                                 return bold;\r
47                         }\r
48                         set\r
49                         {\r
50                                 bold = value;\r
51                         }\r
52                 }\r
53                 \r
54                 public bool Italic\r
55                 {\r
56                         get\r
57                         {\r
58                                 return italic;\r
59                         }\r
60                         set\r
61                         {\r
62                                 italic = value;\r
63                         }\r
64                 }\r
65                 \r
66                 public bool Overline\r
67                 {\r
68                         get\r
69                         {\r
70                                 return overline;\r
71                         }\r
72                         set\r
73                         {\r
74                                 overline = value;\r
75                         }\r
76                 }\r
77                 \r
78                 public bool Strikeout\r
79                 {\r
80                         get\r
81                         {\r
82                                 return strikeout;\r
83                         }\r
84                         set\r
85                         {\r
86                                 strikeout = value;\r
87                         }\r
88                 }\r
89                 \r
90                 public bool Underline\r
91                 {\r
92                         get\r
93                         {\r
94                                 return underline;\r
95                         }\r
96                         set\r
97                         {\r
98                                 underline = value;\r
99                         }\r
100                 }\r
101                 \r
102                 public string Name\r
103                 {\r
104                         get\r
105                         {\r
106                                 return name;\r
107                         }\r
108                         set\r
109                         {\r
110                                 name = value;\r
111                         }\r
112                 }\r
113                 \r
114                 public string[] Names\r
115                 {\r
116                         get\r
117                         {\r
118                                 return names;\r
119                         }\r
120                         set\r
121                         {\r
122                                 names = value;\r
123                                 name = names[0];\r
124                         }\r
125                 }\r
126 \r
127                 //TODO: To throw exception if the index is negative\r
128                 public FontUnit Size\r
129                 {\r
130                         get\r
131                         {\r
132                                 return size;\r
133                         }\r
134                         set\r
135                         {\r
136                                 size = value;\r
137                         }\r
138                 }\r
139                 \r
140                 public void CopyFrom(FontInfo from)\r
141                 {\r
142                         //TODO: What a rubbish way to accomplish the task\r
143                         /*this.bold = from.Bold;\r
144                         this.italic = from.Italic;\r
145                         this.name = from.Name;\r
146                         this.names = from.Names;\r
147                         this.overline = from.Overline;\r
148                         this.size = from.Size;*/\r
149                         //TODO: Let me try Relflection\r
150                         Type t = from.GetType();\r
151                         MethodInfo[] fi = t.GetMethods();\r
152                         foreach(MethodInfo f in fi)\r
153                         {\r
154                                 //System.Console.WriteLine("Field: {0}", f.Name);\r
155                                 if(f.Name.StartsWith("get_"))\r
156                                 {\r
157                                         System.Console.WriteLine("\tStarts with get_");\r
158                                 }\r
159                         }\r
160                 }\r
161                 \r
162                 private void ListFields(FontInfo from)\r
163                 {\r
164                         Type t = from.GetType();\r
165                         MethodInfo[] fi = t.GetMethods();\r
166                         foreach(MethodInfo f in fi)\r
167                         {\r
168                                 System.Console.WriteLine("Field: {0}", f.Name);\r
169                                 if(f.Name.StartsWith("get_"))\r
170                                 {\r
171                                         System.Console.WriteLine("\tStarts with get_");\r
172                                 }\r
173                         }\r
174                 }\r
175 \r
176                 //TODO: after CopyFrom is implemented\r
177                 public void MergeWith(FontInfo with)\r
178                 {\r
179                 }\r
180 \r
181                 public override string ToString()\r
182                 {\r
183                         string retVal = this.name;\r
184                         if(this.size != FontUnit.Empty)\r
185                         {\r
186                                 this.name += ("," + this.size);\r
187                         }\r
188                         return retVal;\r
189                 }\r
190 \r
191                 /*\r
192                 protected object MemberwiseClone()\r
193                 {\r
194                 }\r
195 //*/\r
196 \r
197         }\r
198 }\r