Skip to content

Commit ea63ffe

Browse files
committed
resolves #80
Implemented for Shift, CapsLock, Return, Backspace, Tab, PageUp, PageDown, End and Home keys. Added checkbox "Text instead of symbols" in settings to toggle between showing text or symbols. Default is unchecked to retain default behavior.
1 parent 3a37f3d commit ea63ffe

6 files changed

Lines changed: 38 additions & 21 deletions

File tree

KeyNStroke/App.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ private void InitSettings()
9191
private void InitKeyboardInterception()
9292
{
9393
myKeyboardHook = new KeyboardHook();
94-
myKeystrokeConverter = new KeystrokeParser(myKeyboardHook);
94+
myKeystrokeConverter = new KeystrokeParser(myKeyboardHook, mySettings);
9595
}
9696

9797
#endregion

KeyNStroke/KeystrokeEvent.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,10 @@ public string AsShortcutString()
105105
public List<string> ShortcutModifiersToList()
106106
{
107107
List<string> Modifiers = new List<string>();
108-
if (OrigShift) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftShift));
109-
if (Ctrl) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftCtrl));
110-
if (Alt) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftAlt));
111-
if (Win) Modifiers.Add(SpecialkeysParser.ToString(Key.LWin));
108+
if (OrigShift) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftShift, settings));
109+
if (Ctrl) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftCtrl, settings));
110+
if (Alt) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftAlt, settings));
111+
if (Win) Modifiers.Add(SpecialkeysParser.ToString(Key.LWin, settings));
112112
return Modifiers;
113113
}
114114

@@ -184,14 +184,16 @@ public string ShortcutIdentifier()
184184
return null;
185185
}
186186

187+
private SettingsStore settings;
187188

188-
public KeystrokeEventArgs(KeyboardRawEventArgs e)
189+
public KeystrokeEventArgs(KeyboardRawEventArgs e, SettingsStore settings)
189190
{
190191
this.raw = e;
191192
this.OrigShift = e.Shift;
192193
this.OrigCaps = e.Caps;
193194
this.OrigLShift = e.LShift;
194195
this.OrigRShift = e.RShift;
196+
this.settings = settings;
195197
}
196198
}
197199

KeyNStroke/KeystrokeParser.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ namespace KeyNStroke
1313
public class KeystrokeParser : IKeystrokeEventProvider
1414
{
1515
//KeysConverter Converter = new KeysConverter();
16+
private SettingsStore settings;
1617

1718
#region Constructor
1819

19-
public KeystrokeParser(IKeyboardRawEventProvider hook)
20+
public KeystrokeParser(IKeyboardRawEventProvider hook, SettingsStore settings)
2021
{
2122
hook.KeyEvent += hook_KeyEvent;
23+
this.settings = settings;
2224
}
2325

2426
#endregion
@@ -30,7 +32,7 @@ public KeystrokeParser(IKeyboardRawEventProvider hook)
3032
/// <param name="e"></param>
3133
void hook_KeyEvent(KeyboardRawEventArgs raw_e)
3234
{
33-
KeystrokeEventArgs e = new KeystrokeEventArgs(raw_e);
35+
KeystrokeEventArgs e = new KeystrokeEventArgs(raw_e, settings);
3436

3537
e.IsAlpha = CheckIsAlpha(e.raw);
3638
e.IsNumericFromNumpad = CheckIsNumericFromNumpad(e.raw);
@@ -83,7 +85,7 @@ void hook_KeyEvent(KeyboardRawEventArgs raw_e)
8385
Log.e("KP", " e.NoModifiers > try SpecialkeysParser.ToString ");
8486
try
8587
{
86-
e.TextModeString = SpecialkeysParser.ToString(e.Key);
88+
e.TextModeString = SpecialkeysParser.ToString(e.Key, settings);
8789
}
8890
catch (NotImplementedException)
8991
{
@@ -201,7 +203,7 @@ private void ParseShortcutViaSpecialkeysParser(KeystrokeEventArgs e)
201203
{
202204
try
203205
{
204-
e.TextModeString = SpecialkeysParser.ToString(e.Key);
206+
e.TextModeString = SpecialkeysParser.ToString(e.Key, settings);
205207
}
206208
catch (NotImplementedException)
207209
{
@@ -217,7 +219,7 @@ private void ParseTexttViaSpecialkeysParser(KeystrokeEventArgs e)
217219
{
218220
try
219221
{
220-
e.TextModeString = SpecialkeysParser.ToString(e.Key);
222+
e.TextModeString = SpecialkeysParser.ToString(e.Key, settings);
221223
e.ShouldBeDisplayed = true;
222224
e.StrokeType = KeystrokeType.Text;
223225
e.RequiresNewLineAfterwards = e.Key == Key.Return;

KeyNStroke/Settings1.xaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@
129129
IsChecked="{Binding EnableWindowFade}">Hide window when empty</CheckBox>
130130
<CheckBox x:Name="cb_periodictopmost"
131131
IsChecked="{Binding PeriodicTopmost}">Put on top periodically</CheckBox>
132+
<CheckBox x:Name="cb_fulltextoverimage"
133+
IsChecked="{Binding EnableTextOverSymbol}"
134+
ToolTip="Displays text instead of symbols">Text instead of symbols</CheckBox>
132135
</StackPanel>
133136
</StackPanel>
134137
<StackPanel Margin="5"

KeyNStroke/SettingsStore.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ class Settings
203203
[DataMember] public Nullable<bool> enableHistoryTimeout = null;
204204
[DataMember] public Nullable<bool> enableWindowFade = null;
205205
[DataMember] public Nullable<bool> enableCursorIndicator = null;
206+
[DataMember] public Nullable<bool> enableTextOverSymbol = null;
206207
[DataMember] public Nullable<double> cursorIndicatorOpacity = null;
207208
[DataMember] public Nullable<double> cursorIndicatorSize = null;
208209
[DataMember] public SerializableColor2 cursorIndicatorColor = null;
@@ -416,6 +417,13 @@ public bool EnableCursorIndicator
416417
set { i.enableCursorIndicator = value; OnSettingChanged("EnableCursorIndicator"); }
417418
}
418419

420+
public bool EnableTextOverSymbolDefault = false;
421+
public bool EnableTextOverSymbol
422+
{
423+
get { return Or(i.enableTextOverSymbol, EnableTextOverSymbolDefault); }
424+
set { i.enableTextOverSymbol = value; OnSettingChanged("EnableTextOverSymbol"); }
425+
}
426+
419427
public double CursorIndicatorOpacityDefault = 0.3;
420428
public double CursorIndicatorOpacity
421429
{
@@ -694,6 +702,7 @@ public void CallPropertyChangedForAllProperties()
694702
PropertyChanged(this, new PropertyChangedEventArgs("EnableHistoryTimeout"));
695703
PropertyChanged(this, new PropertyChangedEventArgs("EnableWindowFade"));
696704
PropertyChanged(this, new PropertyChangedEventArgs("EnableCursorIndicator"));
705+
PropertyChanged(this, new PropertyChangedEventArgs("EnableTextOverSymbol"));
697706
PropertyChanged(this, new PropertyChangedEventArgs("CursorIndicatorOpacity"));
698707
PropertyChanged(this, new PropertyChangedEventArgs("CursorIndicatorSize"));
699708
PropertyChanged(this, new PropertyChangedEventArgs("CursorIndicatorColor"));
@@ -827,6 +836,7 @@ public override string ToString()
827836
EnableHistoryTimeout: {EnableHistoryTimeout}
828837
EnableWindowFade: {EnableWindowFade}
829838
EnableCursorIndicator: {EnableCursorIndicator}
839+
EnableTextOverSymbol: {EnableTextOverSymbol}
830840
CursorIndicatorOpacity: {CursorIndicatorOpacity}
831841
CursorIndicatorSize: {CursorIndicatorSize}
832842
CursorIndicatorColor: {CursorIndicatorColor}

KeyNStroke/SpecialkeysParser.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ namespace KeyNStroke
99
{
1010
class SpecialkeysParser
1111
{
12-
public static string ToString(Key k)
12+
public static string ToString(Key k, SettingsStore settings)
1313
{
1414
switch(k){
1515
case Key.LeftShift:
1616
case Key.RightShift:
17-
return "⇧";
17+
return settings.EnableTextOverSymbol ? "Shift" : "⇧";
1818
case Key.LeftCtrl:
1919
case Key.RightCtrl:
2020
return "Ctrl";
@@ -25,12 +25,12 @@ public static string ToString(Key k)
2525
case Key.RightAlt:
2626
return "Alt";
2727
case Key.CapsLock:
28-
return "⇪";
28+
return settings.EnableTextOverSymbol ? " [CapsLock] " : "⇪";
2929
case Key.LineFeed:
3030
case Key.Return:
31-
return " ⏎";
31+
return settings.EnableTextOverSymbol ? "[Return]" : " ⏎";
3232
case Key.Back:
33-
return " ⌫ ";
33+
return settings.EnableTextOverSymbol ? " [Backspace] " : " ⌫ ";
3434
case Key.Left:
3535
return " ← ";
3636
case Key.Right:
@@ -52,17 +52,17 @@ public static string ToString(Key k)
5252

5353

5454
case Key.Tab:
55-
return "↹";
55+
return settings.EnableTextOverSymbol ? " [Tab] " : "↹";
5656
case Key.Space:
5757
return "␣";
5858
case Key.PageUp:
59-
return " ↖ ";
59+
return settings.EnableTextOverSymbol ? " [PageUp] " : " ↖ ";
6060
case Key.PageDown:
61-
return " ↘ ";
61+
return settings.EnableTextOverSymbol ? " [PageDown] " : " ↘ ";
6262
case Key.End:
63-
return " ⇲ ";
63+
return settings.EnableTextOverSymbol ? " [End] " : " ⇲ ";
6464
case Key.Home:
65-
return " ⇱ ";
65+
return settings.EnableTextOverSymbol ? " [Home] " : " ⇱ ";
6666
case Key.Print:
6767
return " ⎙ ";
6868

0 commit comments

Comments
 (0)