OSDN Git Service

5
[psychlops/silverlight.git] / dev4 / 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, italic, oblique };\r
19                 public enum Weight { normal=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 = 18;\r
32                         weight = (int)Weight.normal;\r
33                         style = Style.normal;\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 = 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 = family_;\r
51                 }\r
52                 ~Font()\r
53                 {\r
54                 }\r
55         }\r
56 \r
57         public partial 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 { get; set; }\r
63 \r
64                 public enum HorizontalAlign { not_specified=-1, left=0, center, right };\r
65                 //public const HorizontalAlign NOT_SPECIFIED=HorizontalAlign.not_specified, TEXT_ALIGN_LEFT=HorizontalAlign.left, TEXT_ALIGN_CENTER = HorizontalAlign.center, TEXT_ALIGN_RIGHT=HorizontalAlign.right;\r
66                 public HorizontalAlign align;\r
67 \r
68                 public Letters()\r
69                 {\r
70                         fill = Color.white;\r
71                         stroke = Stroke.null_line;\r
72                         str_ = "";\r
73                         font = Font.default_font;\r
74                         align = HorizontalAlign.left;\r
75                 }\r
76                 public Letters(String init_str)\r
77                 {\r
78                         fill = Color.white;\r
79                         stroke = Stroke.null_line;\r
80                         str_ = init_str;\r
81                         font_ = Font.default_font;\r
82                         align = HorizontalAlign.center;\r
83                 }\r
84                 public Letters(String init_str, Font init_font)\r
85                 {\r
86                         fill = Color.white;\r
87                         stroke = Stroke.null_line;\r
88                         str_ = init_str;\r
89                         font_ = init_font;\r
90                         align = HorizontalAlign.right;\r
91                 }\r
92                 ~Letters()\r
93                 {\r
94                 }\r
95                 public Font font\r
96                 {\r
97                         get { return font_; }\r
98                         set { font_ = value; }\r
99                 }\r
100                 public Font getFont() { return font; }\r
101                 public string str\r
102                 {\r
103                         get { return str_; }\r
104                         set { str_ = value; }\r
105                 }\r
106                 public String getString() { return str; }\r
107                 public Figure centering(Point p)\r
108                 {\r
109                         datum = p;\r
110                         align = HorizontalAlign.center;\r
111                         return this;\r
112                 }\r
113                 public Figure shift(Point p)\r
114                 {\r
115                         datum = datum + p;\r
116                         return this;\r
117                 }\r
118                 public Letters locate(Point p)\r
119                 {\r
120                         datum = p;\r
121                         return this;\r
122                 }\r
123                 public Letters locate(double x, double y)\r
124                 {\r
125                         datum = new Point(x,y);\r
126                         return this;\r
127                 }\r
128 \r
129                 public void draw()\r
130                 {\r
131                         Main.drawable.letters(this);\r
132                 }\r
133 \r
134                 public Color fill { get; set; }\r
135                 public Stroke stroke { get; set; }\r
136 \r
137         }\r
138 \r
139 }\r