OSDN Git Service

3c03840934916f9d7336434a4f93386641833873
[psychlops/silverlight.git] / dev3 / psychlops / core / graphic / font.cs
1 using System;\r
2 using System.Net;\r
3 using System.Windows;\r
4 using System.Windows.Controls;\r
5 using System.Windows.Documents;\r
6 using System.Windows.Ink;\r
7 using System.Windows.Input;\r
8 using System.Windows.Media;\r
9 using System.Windows.Media.Animation;\r
10 using System.Windows.Shapes;\r
11 \r
12 namespace Psychlops\r
13 {\r
14         public class Font\r
15         {\r
16                 public static Font default_font;\r
17 \r
18                 public enum Style { normal_style, italic, oblique };\r
19                 public enum Weight { normal_weight=400, bold=700 };\r
20                 public double size;\r
21                 public int weight;\r
22                 public Style style;\r
23                 public string[] family;\r
24 \r
25                 static Font()\r
26                 {\r
27                         default_font = new Font();\r
28                 }\r
29                 public Font()\r
30                 {\r
31                         size = 24;\r
32                         weight = (int)Weight.normal_weight;\r
33                         style = Style.normal_style;\r
34                         family = new string[1];\r
35                 }\r
36                 public Font(double size_, int weight_, Style style_, string family_)\r
37                 {\r
38                         size = size_;\r
39                         weight = weight_;\r
40                         style = style_;\r
41                         family = new string[1];\r
42                         family[0] = family_;\r
43                 }\r
44                 public Font(string family_, double size_, int weight_, Style style_)\r
45                 {\r
46                         size = size_;\r
47                         weight = weight_;\r
48                         style = style_;\r
49                         family = new string[1];\r
50                         family[0] = family_;\r
51                 }\r
52                 ~Font()\r
53                 {\r
54                 }\r
55         }\r
56 \r
57         public class Letters : Shape\r
58         {\r
59                 protected string str_;\r
60                 protected Font font_;\r
61                 protected double width_, height_;\r
62                 public Point datum;\r
63 \r
64                 public enum HorizontalAlign { NOT_SPECIFIED=-1, TEXT_ALIGN_LEFT=0, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT };\r
65                 public HorizontalAlign align;\r
66 \r
67                 public Letters()\r
68                 {\r
69                         str_ = "";\r
70                         font = Font.default_font;\r
71                         align = HorizontalAlign.TEXT_ALIGN_LEFT;\r
72                 }\r
73                 public Letters(String init_str)\r
74                 {\r
75                         str_ = init_str;\r
76                         font_ = Font.default_font;\r
77                         align = HorizontalAlign.TEXT_ALIGN_LEFT;\r
78                 }\r
79                 public Letters(String init_str, Font init_font)\r
80                 {\r
81                         str_ = init_str;\r
82                         font_ = init_font;\r
83                         align = HorizontalAlign.TEXT_ALIGN_LEFT;\r
84                 }\r
85                 ~Letters()\r
86                 {\r
87                 }\r
88                 public Font font\r
89                 {\r
90                         get { return font_; }\r
91                         set { font_ = value; }\r
92                 }\r
93                 public Font getFont() { return font; }\r
94                 public string str\r
95                 {\r
96                         get { return str_; }\r
97                         set { str_ = value; }\r
98                 }\r
99                 public String getString() { return str; }\r
100                 public Figure centering(Point p)\r
101                 {\r
102                         datum = p;\r
103                         align = HorizontalAlign.TEXT_ALIGN_CENTER;\r
104                         return this;\r
105                 }\r
106                 public Figure shift(Point p)\r
107                 {\r
108                         return this;\r
109                 }\r
110                 public Letters locate(Point p)\r
111                 {\r
112                         datum = p;\r
113                         return this;\r
114                 }\r
115                 public Letters locate(double x, double y)\r
116                 {\r
117                         datum.set(x,y);\r
118                         return this;\r
119                 }\r
120 \r
121                 public void draw()\r
122                 {\r
123                         Main.drawable.letters(this, Color.white);\r
124                 }\r
125                 public void draw(Color c)\r
126                 {\r
127                         Main.drawable.letters(this, c);\r
128                 }\r
129         }\r
130 \r
131 }\r