OSDN Git Service

Initial contents of nt2chview
[nt2chview/stable.git] / NT2chView45 / NTResPopupMenu.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Windows.Controls;\r
5 using System.Windows.Controls.Primitives;\r
6 using System.Windows.Documents;\r
7 using System.Windows.Media;\r
8 using System.Windows.Media.Imaging;\r
9 \r
10 namespace NT2chView\r
11 {\r
12     class NTResPopupMenu1 : Popup\r
13     {\r
14        // static NTResPopupMenu1 mPopupMenu = null;\r
15 \r
16        /* public static void closePopupMenu()\r
17         {\r
18             if (mPopupMenu != null)\r
19             {\r
20                 mPopupMenu.IsOpen = false;\r
21                 mPopupMenu = null;\r
22             }\r
23         }*/\r
24 \r
25         NTRes mRes;\r
26         MainWindow mMainWnd;\r
27         static NTResPopupMenu1 mMe = null;\r
28 \r
29         public static void Hide()\r
30         {\r
31             if (mMe != null)\r
32             {\r
33                 mMe.IsOpen = false;\r
34                 mMe = null;\r
35             }\r
36         }\r
37 \r
38         public NTResPopupMenu1(MainWindow main, NTRes res)\r
39             : base()\r
40         {\r
41             mRes = res;\r
42             mMainWnd = main;\r
43 \r
44             //closePopupMenu();\r
45 \r
46             //mPopupMenu = this;\r
47 \r
48             //this.StaysOpen = false;\r
49             //this.MouseLeave += NTResPopupMenu1_MouseLeave;\r
50             //this.LostFocus += NTResPopupMenu1_LostFocus;\r
51             \r
52             //item1.Content = new Run("TEST");\r
53 //            item1.Content = new TextBlock(new Run("TEST"));\r
54             //TextBlock tb = new TextBlock(new Run("TEST"));\r
55             //Button btn = new Button();\r
56             //Bitmap bmp = new Bitmap();\r
57 \r
58             \r
59             //try\r
60            // {\r
61                 //Image img = new Image();\r
62                // Image.\r
63                 //img.FindResource("/NT2chView;component/images/tag.png");\r
64                // BitmapImage bimg = new BitmapImage(new Uri(@"/images/tag.png", UriKind.Relative));\r
65                // img.Source = bimg;\r
66                // ImageSource.\r
67                // sp.Children.Add(img);\r
68                 \r
69            // }\r
70            // catch (Exception e)\r
71            // {\r
72            //     NTDebug.l(e.Message);\r
73            // }\r
74             //ListBox lBox = new ListBox();\r
75             StackPanel sp = new StackPanel();\r
76             sp.Orientation = Orientation.Horizontal;\r
77             StackPanel panel = new StackPanel();\r
78             Border border = new Border();\r
79             border.BorderThickness = new System.Windows.Thickness(1);\r
80             border.BorderBrush = new SolidColorBrush(Colors.DarkGray);\r
81             //border.\r
82             \r
83             if(!res.mBookmark)\r
84                 sp.Children.Add(new TextBlock(new Run("ブックマークを追加")));\r
85             else\r
86                 sp.Children.Add(new TextBlock(new Run("ブックマークを削除")));\r
87 \r
88             sp.MouseLeftButtonDown += addBookmark_MouseLeftButtonDown;\r
89 \r
90             ListBoxItem item1 = new ListBoxItem();\r
91             item1.Content = sp;\r
92             item1.Padding = new System.Windows.Thickness(10, 2, 10, 2);\r
93             item1.MouseEnter += item1_MouseEnter;\r
94             item1.MouseLeave += item1_MouseLeave;\r
95             item1.MouseLeftButtonDown += addBookmark_MouseLeftButtonDown;\r
96             item1.MouseLeftButtonUp += addBookmark_MouseLeftButtonUp;\r
97             panel.Background = new SolidColorBrush(Colors.White);\r
98             panel.Children.Add(item1);\r
99 \r
100             sp = new StackPanel();\r
101             sp.MouseLeftButtonDown += reply_with_no_MouseLeftButtonDown;\r
102             sp.Children.Add(new TextBlock(new Run("このレスに返信")));\r
103             item1 = new ListBoxItem();\r
104             item1.Content = sp;\r
105             item1.Padding = new System.Windows.Thickness(10, 2, 10, 2);\r
106             item1.MouseEnter += item1_MouseEnter;\r
107             item1.MouseLeave += item1_MouseLeave;\r
108             //item1.MouseLeftButtonDown += item1_MouseLeftButtonDown;\r
109             //item1.MouseLeftButtonUp += item1_MouseLeftButtonUp;\r
110             panel.Children.Add(item1);\r
111             sp = new StackPanel();\r
112             sp.MouseLeftButtonDown += reply_with_site_MouseLeftButtonDown;\r
113             sp.Children.Add(new TextBlock(new Run("このレスに引用して返信")));\r
114             item1 = new ListBoxItem();\r
115             item1.Padding = new System.Windows.Thickness(10, 2, 10, 2);\r
116             item1.Content = sp;\r
117             item1.MouseEnter += item1_MouseEnter;\r
118             item1.MouseLeave += item1_MouseLeave;\r
119             //item1.MouseLeftButtonDown += item1_MouseLeftButtonDown;\r
120             //item1.MouseLeftButtonUp += item1_MouseLeftButtonUp;\r
121             panel.Children.Add(item1);\r
122             sp = new StackPanel();\r
123             sp.Children.Add(new TextBlock(new Run("このレスからNGを抽出")));\r
124             sp.MouseLeftButtonDown += item1_MouseLeftButtonDown;\r
125             item1 = new ListBoxItem();\r
126             item1.Padding = new System.Windows.Thickness(10, 2, 10, 2);\r
127             item1.Content = sp;\r
128             item1.MouseEnter += item1_MouseEnter;\r
129             item1.MouseLeave += item1_MouseLeave;\r
130             item1.MouseLeftButtonDown += item1_MouseLeftButtonDown;\r
131             item1.MouseLeftButtonUp += item1_MouseLeftButtonUp;\r
132             panel.Children.Add(item1);\r
133 \r
134             //this.Child = panel;\r
135             border.Child = panel; \r
136             this.Child = border;\r
137 \r
138 \r
139         }\r
140 \r
141         void addBookmark_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
142         {\r
143             Hide();\r
144             //IsOpen = false;\r
145             //throw new NotImplementedException();\r
146         }\r
147 \r
148         \r
149         void reply_with_no_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
150         {\r
151             string siteMsg = ">"+mRes.mSeqNo.ToString();\r
152             mMainWnd.WriteRes_Invoke(mRes.mThread, siteMsg);\r
153 \r
154         }\r
155         \r
156         void reply_with_site_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
157         {\r
158             StringBuilder sb = new StringBuilder();\r
159             sb.Append('>').Append(mRes.mSeqNo.ToString()).Append("\r\n");\r
160             string  msg = NTTextFormat.removeTag(mRes.mMsg);\r
161             string [] lines = NTTextUtiles.splitLine(msg);\r
162             foreach (string line in lines)\r
163             {\r
164                 sb.Append('>').Append(line).Append("\r\n");\r
165             }\r
166             string siteMsg = sb.ToString();\r
167             mMainWnd.WriteRes_Invoke(mRes.mThread, siteMsg);\r
168         }\r
169 \r
170         void addBookmark_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
171         {\r
172             //IsOpen = false;\r
173             Hide();\r
174             /*if (mRes == null)\r
175                 return;\r
176             if (!mRes.mBookmark)\r
177                 mRes.addBookmark();\r
178             else\r
179                 mRes.removeBookmark();*/\r
180             \r
181         }\r
182 \r
183         void item1_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
184         {\r
185             Hide();\r
186             //IsOpen = false;\r
187             //throw new NotImplementedException();\r
188         }\r
189 \r
190         void item1_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
191         {\r
192             Hide();\r
193             //IsOpen = false;\r
194             //mMainWnd.NgEdit_setResSection(mRes);\r
195         }\r
196 \r
197         void item1_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)\r
198         {\r
199             ListBoxItem item = sender as ListBoxItem;\r
200             if (item == null)\r
201                 return;\r
202 \r
203             item.Background = new SolidColorBrush(Colors.White);\r
204         }\r
205 \r
206         void item1_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)\r
207         {\r
208             ListBoxItem item = sender as ListBoxItem;\r
209             if (item == null)\r
210                 return;\r
211 \r
212             item.Background = new SolidColorBrush(Colors.MistyRose);\r
213         }\r
214 \r
215         void NTResPopupMenu1_LostFocus(object sender, System.Windows.RoutedEventArgs e)\r
216         {\r
217             Hide();\r
218             //IsOpen = false;\r
219             //mPopupMenu = null;\r
220         }\r
221 \r
222         void NTResPopupMenu1_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)\r
223         {\r
224             Hide();\r
225             //IsOpen = false;\r
226             // mPopupMenu = null;\r
227         }\r
228 \r
229         public void show()\r
230         {\r
231             Hide();\r
232 \r
233             mMe = this;\r
234             IsOpen = true;\r
235             Placement = PlacementMode.Mouse;\r
236             Focus();\r
237         }\r
238 \r
239 \r
240 \r
241     }\r
242 }\r