OSDN Git Service

Release 2.3.6.5
[nt2chview/stable.git] / NT2chView45 / NTFavoriteBoard.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Windows;\r
5 using System.Windows.Controls;\r
6 using System.Windows.Controls.Primitives;\r
7 using System.Windows.Media;\r
8 using NT2chView.NtUI;\r
9 \r
10 namespace NT2chView\r
11 {\r
12     public class NTFavoriteBoard\r
13     {\r
14         Button mButton;\r
15         Point mMouseObservePoint;\r
16         bool mMousePressed = false;\r
17         string mBoardName;\r
18         Brush mFavoriteBKBrush;\r
19         Brush mFavoriteDragOverBKBrush;\r
20         public NTFavoriteBoard(string boardName)\r
21         {\r
22             mBoardName = boardName;\r
23             mFavoriteDragOverBKBrush = (Brush)\r
24                NTAppState.getMainWindow().TryFindResource("FavoriteBoardDragOverBKBrush");\r
25             mFavoriteBKBrush = (Brush)\r
26                 NTAppState.getMainWindow().TryFindResource("FavoritePanelBKBrush");\r
27         }\r
28 \r
29         public void setDragOverBrush(bool isOver)\r
30         {\r
31             if (isOver)\r
32             {\r
33                 if (mFavoriteDragOverBKBrush != null)\r
34                     mButton.Background = mFavoriteDragOverBKBrush;\r
35             }\r
36             else\r
37             {\r
38                 if (mFavoriteBKBrush != null)\r
39                     mButton.Background = mFavoriteBKBrush;\r
40             }\r
41         }\r
42 \r
43         public string BoardName\r
44         {\r
45             get { return mBoardName; }\r
46         }\r
47 \r
48         public void setButton (Button button){\r
49             mButton = button;\r
50             //button.MouseLeftButtonDown += button_MouseLeftButtonDown;\r
51             button.PreviewMouseLeftButtonDown += button_PreviewMouseLeftButtonDown;\r
52             button.PreviewMouseMove += button_PreviewMouseMove;\r
53             //button.MouseLeftButtonUp += button_MouseLeftButtonUp;\r
54             //button.MouseMove += button_MouseMove;            \r
55         }\r
56 \r
57 \r
58 \r
59         public static List<string> getStringArray(List<NTFavoriteBoard> boardList)\r
60         {\r
61             List<string> list = new List<string>();\r
62             foreach (NTFavoriteBoard fb in boardList)\r
63             {\r
64                 list.Add(fb.mBoardName);\r
65             }\r
66             return list;\r
67         }\r
68 \r
69         /*void button_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)\r
70         {\r
71         }*/\r
72         void button_PreviewMouseMove(object sender, System.Windows.Input.MouseEventArgs e)\r
73         {\r
74             if (!mMousePressed)\r
75                 return;\r
76 \r
77             Button btn = sender as Button;\r
78             if (btn == null)\r
79                 return;\r
80 \r
81             Point point = e.GetPosition(btn);\r
82             NTDebug.l("Point (" + point.X + "," + point.Y + ")");\r
83             Vector v = Point.Subtract(point, mMouseObservePoint);\r
84             if (v.Length > NTDragDrop.DRAG_START_MOVE_DELTA)\r
85             {\r
86                 startDrag();\r
87                 e.Handled = true;\r
88                 mMousePressed = false;\r
89             }\r
90         }\r
91 \r
92         /*void button_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
93         {\r
94             mMousePressed = false;\r
95         }\r
96 \r
97         void button_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
98         {\r
99         }*/\r
100         void button_PreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)\r
101         {\r
102             //throw new NotImplementedException();\r
103             Button btn = sender as Button;\r
104             if (btn == null)\r
105                 return;\r
106 \r
107             mMousePressed = true;\r
108             //e.Handled = true;\r
109             mMouseObservePoint = e.GetPosition(btn);\r
110         }\r
111         void startDrag()\r
112         {\r
113             NTDebug.l("*** Drag Start!!! ***");\r
114             NTDragDrop.BoardData data = new NTDragDrop.BoardData(mBoardName);\r
115             DataObject dObj = new DataObject(NTDragDrop.BOARD_DRAG_DATA_FORMAT, data);\r
116 \r
117             DragDrop.DoDragDrop(mButton, dObj, DragDropEffects.All);\r
118         }\r
119     }\r
120 }\r