10
10
11
11
namespace FlashDevelop . Managers
12
12
{
13
- class ShortcutManager
13
+ static class ShortcutManager
14
14
{
15
- public static List < Keys > AllShortcuts = new List < Keys > ( ) ;
16
- public static List < ToolStripItem > SecondaryItems = new List < ToolStripItem > ( ) ;
17
- public static List < ShortcutItem > RegisteredItems = new List < ShortcutItem > ( ) ;
15
+ public static readonly List < Keys > AllShortcuts ;
16
+ public static readonly List < ToolStripItem > SecondaryItems ;
17
+ public static readonly Dictionary < String , ShortcutItem > RegisteredItems ;
18
+
19
+ static ShortcutManager ( )
20
+ {
21
+ AllShortcuts = new List < Keys > ( ) ;
22
+ SecondaryItems = new List < ToolStripItem > ( ) ;
23
+ RegisteredItems = new Dictionary < string , ShortcutItem > ( ) ;
24
+ }
18
25
19
26
/// <summary>
20
27
/// Registers a shortcut item
21
28
/// </summary>
22
29
public static void RegisterItem ( String key , Keys keys )
23
30
{
24
- ShortcutItem registered = new ShortcutItem ( key , keys ) ;
25
- RegisteredItems . Add ( registered ) ;
31
+ RegisteredItems . Add ( key , new ShortcutItem ( key , keys ) ) ;
26
32
}
27
33
28
34
/// <summary>
29
35
/// Registers a shortcut item
30
36
/// </summary>
31
37
public static void RegisterItem ( String key , ToolStripMenuItem item )
32
38
{
33
- ShortcutItem registered = new ShortcutItem ( key , item ) ;
34
- RegisteredItems . Add ( registered ) ;
39
+ RegisteredItems . Add ( key , new ShortcutItem ( key , item ) ) ;
35
40
}
36
41
37
42
/// <summary>
@@ -56,9 +61,19 @@ public static void RegisterSecondaryItem(String id, ToolStripItem item)
56
61
/// </summary>
57
62
public static ShortcutItem GetRegisteredItem ( String id )
58
63
{
59
- foreach ( ShortcutItem item in RegisteredItems )
64
+ ShortcutItem item ;
65
+ return RegisteredItems . TryGetValue ( id , out item ) ? item : null ;
66
+ }
67
+
68
+ /// <summary>
69
+ /// Gets the specified registered shortcut item
70
+ /// </summary>
71
+ public static ShortcutItem GetRegisteredItem ( Keys keys )
72
+ {
73
+ if ( keys == Keys . None ) return null ;
74
+ foreach ( ShortcutItem item in RegisteredItems . Values )
60
75
{
61
- if ( item . Id == id ) return item ;
76
+ if ( item . Custom == keys ) return item ;
62
77
}
63
78
return null ;
64
79
}
@@ -70,16 +85,11 @@ public static ToolStripItem GetSecondaryItem(String id)
70
85
{
71
86
foreach ( ToolStripItem item in SecondaryItems )
72
87
{
73
- String temp = String . Empty ;
74
- String [ ] ids = ( ( ItemData ) item . Tag ) . Id . Split ( ';' ) ;
75
- if ( ids . Length == 2 && String . IsNullOrEmpty ( ids [ 1 ] ) )
76
- {
77
- temp = StripBarManager . GetMenuItemId ( item ) ;
78
- }
79
- else if ( ids . Length == 2 ) temp = ids [ 1 ] ;
80
- if ( ! String . IsNullOrEmpty ( temp ) && temp == id )
88
+ String [ ] ids = ( ( ItemData ) item . Tag ) . Id . Split ( ';' ) ;
89
+ if ( ids . Length == 2 )
81
90
{
82
- return item ;
91
+ String temp = String . IsNullOrEmpty ( ids [ 1 ] ) ? StripBarManager . GetMenuItemId ( item ) : ids [ 1 ] ;
92
+ if ( temp == id ) return item ;
83
93
}
84
94
}
85
95
return null ;
@@ -90,7 +100,7 @@ public static ToolStripItem GetSecondaryItem(String id)
90
100
/// </summary>
91
101
public static void UpdateAllShortcuts ( )
92
102
{
93
- foreach ( ShortcutItem item in RegisteredItems )
103
+ foreach ( ShortcutItem item in RegisteredItems . Values )
94
104
{
95
105
if ( ! AllShortcuts . Contains ( item . Custom ) )
96
106
{
@@ -105,7 +115,7 @@ public static void UpdateAllShortcuts()
105
115
public static void ApplyAllShortcuts ( )
106
116
{
107
117
UpdateAllShortcuts ( ) ;
108
- foreach ( ShortcutItem item in RegisteredItems )
118
+ foreach ( ShortcutItem item in RegisteredItems . Values )
109
119
{
110
120
if ( item . Item != null )
111
121
{
@@ -134,12 +144,11 @@ public static void ApplySecondaryShortcut(ToolStripItem item)
134
144
if ( item != null && item . Tag != null )
135
145
{
136
146
String id = String . Empty ;
137
- String [ ] ids = ( ( ItemData ) item . Tag ) . Id . Split ( ';' ) ;
138
- if ( ids . Length == 2 && String . IsNullOrEmpty ( ids [ 1 ] ) )
147
+ String [ ] ids = ( ( ItemData ) item . Tag ) . Id . Split ( ';' ) ;
148
+ if ( ids . Length == 2 )
139
149
{
140
- id = StripBarManager . GetMenuItemId ( item ) ;
150
+ id = String . IsNullOrEmpty ( ids [ 1 ] ) ? StripBarManager . GetMenuItemId ( item ) : ids [ 1 ] ;
141
151
}
142
- else if ( ids . Length == 2 ) id = ids [ 1 ] ;
143
152
else return ; // No work for us here...
144
153
Keys keys = Globals . MainForm . GetShortcutItemKeys ( id ) ;
145
154
if ( keys != Keys . None )
@@ -165,7 +174,7 @@ public static void ApplySecondaryShortcut(ToolStripItem item)
165
174
}
166
175
167
176
/// <summary>
168
- /// Loads the custom shorcuts from a file
177
+ /// Loads the custom shortcuts from a file
169
178
/// </summary>
170
179
public static void LoadCustomShortcuts ( )
171
180
{
@@ -174,11 +183,11 @@ public static void LoadCustomShortcuts()
174
183
if ( File . Exists ( file ) )
175
184
{
176
185
List < Argument > shortcuts = new List < Argument > ( ) ;
177
- shortcuts = ( List < Argument > ) ObjectSerializer . Deserialize ( file , shortcuts , false ) ;
186
+ shortcuts = ( List < Argument > ) ObjectSerializer . Deserialize ( file , shortcuts , false ) ;
178
187
foreach ( Argument arg in shortcuts )
179
188
{
180
189
ShortcutItem item = GetRegisteredItem ( arg . Key ) ;
181
- if ( item != null ) item . Custom = ( Keys ) Enum . Parse ( typeof ( Keys ) , arg . Value ) ;
190
+ if ( item != null ) item . Custom = ( Keys ) Enum . Parse ( typeof ( Keys ) , arg . Value ) ;
182
191
}
183
192
}
184
193
}
@@ -189,7 +198,7 @@ public static void LoadCustomShortcuts()
189
198
public static void SaveCustomShortcuts ( )
190
199
{
191
200
List < Argument > shortcuts = new List < Argument > ( ) ;
192
- foreach ( ShortcutItem item in RegisteredItems )
201
+ foreach ( ShortcutItem item in RegisteredItems . Values )
193
202
{
194
203
if ( item . Custom != item . Default )
195
204
{
@@ -206,10 +215,10 @@ public static void SaveCustomShortcuts()
206
215
207
216
public class ShortcutItem
208
217
{
209
- public Keys Custom = Keys . None ;
210
- public Keys Default = Keys . None ;
211
- public ToolStripMenuItem Item = null ;
212
- public String Id = String . Empty ;
218
+ public String Id ;
219
+ public Keys Default ;
220
+ public Keys Custom ;
221
+ public ToolStripMenuItem Item ;
213
222
214
223
public ShortcutItem ( String id , Keys keys )
215
224
{
@@ -224,7 +233,7 @@ public ShortcutItem(String id, ToolStripMenuItem item)
224
233
this . Default = this . Custom = item . ShortcutKeys ;
225
234
}
226
235
227
- public override string ToString ( )
236
+ public override String ToString ( )
228
237
{
229
238
return Id ;
230
239
}
0 commit comments