Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

resolves Phaiax/Key-n-Stroke#80 #90

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions KeyNStroke/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ private void InitSettings()
private void InitKeyboardInterception()
{
myKeyboardHook = new KeyboardHook();
myKeystrokeConverter = new KeystrokeParser(myKeyboardHook);
myKeystrokeConverter = new KeystrokeParser(myKeyboardHook, mySettings.EnableTextOverSymbol);
}

#endregion
Expand Down Expand Up @@ -225,6 +225,9 @@ private void OnSettingChanged(object sender, PropertyChangedEventArgs e)
case "EnableCursorIndicator":
OnCursorIndicatorSettingChanged();
break;
case "EnableTextOverSymbol":
OnEnableTextOverSymbolSettingChanged();
break;
case "ButtonIndicator":
OnButtonIndicatorSettingChanged();
break;
Expand Down Expand Up @@ -374,9 +377,13 @@ private void DisableCursorIndicator()
Log.e("CI", "DisableCursorIndicator");
}


#endregion

private void OnEnableTextOverSymbolSettingChanged()
{
myKeystrokeConverter.EnableTextOverSymbol = mySettings.EnableTextOverSymbol;
}

#region Annotate Line

AnnotateLine AnnotateLineWindow;
Expand Down
14 changes: 9 additions & 5 deletions KeyNStroke/KeystrokeEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,10 @@ public string AsShortcutString()
public List<string> ShortcutModifiersToList()
{
List<string> Modifiers = new List<string>();
if (OrigShift) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftShift));
if (Ctrl) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftCtrl));
if (Alt) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftAlt));
if (Win) Modifiers.Add(SpecialkeysParser.ToString(Key.LWin));
if (OrigShift) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftShift, EnableTextOverSymbol));
if (Ctrl) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftCtrl, EnableTextOverSymbol));
if (Alt) Modifiers.Add(SpecialkeysParser.ToString(Key.LeftAlt, EnableTextOverSymbol));
if (Win) Modifiers.Add(SpecialkeysParser.ToString(Key.LWin, EnableTextOverSymbol));
return Modifiers;
}

Expand Down Expand Up @@ -184,21 +184,25 @@ public string ShortcutIdentifier()
return null;
}

private bool EnableTextOverSymbol;

public KeystrokeEventArgs(KeyboardRawEventArgs e)
public KeystrokeEventArgs(KeyboardRawEventArgs e, bool enableTextOverSymbol)
{
this.raw = e;
this.OrigShift = e.Shift;
this.OrigCaps = e.Caps;
this.OrigLShift = e.LShift;
this.OrigRShift = e.RShift;
this.EnableTextOverSymbol = enableTextOverSymbol;
}
}

public delegate void KeystrokeEventHandler(KeystrokeEventArgs e);

public interface IKeystrokeEventProvider
{
bool EnableTextOverSymbol { get; set; }

event KeystrokeEventHandler KeystrokeEvent;
}
}
13 changes: 7 additions & 6 deletions KeyNStroke/KeystrokeParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ namespace KeyNStroke
public class KeystrokeParser : IKeystrokeEventProvider
{
//KeysConverter Converter = new KeysConverter();
public bool EnableTextOverSymbol { get; set; }

#region Constructor

public KeystrokeParser(IKeyboardRawEventProvider hook)
public KeystrokeParser(IKeyboardRawEventProvider hook, bool enableTextOverSymbol)
{
hook.KeyEvent += hook_KeyEvent;
EnableTextOverSymbol = enableTextOverSymbol;
}

#endregion
Expand All @@ -30,7 +32,7 @@ public KeystrokeParser(IKeyboardRawEventProvider hook)
/// <param name="e"></param>
void hook_KeyEvent(KeyboardRawEventArgs raw_e)
{
KeystrokeEventArgs e = new KeystrokeEventArgs(raw_e);
KeystrokeEventArgs e = new KeystrokeEventArgs(raw_e, EnableTextOverSymbol);

e.IsAlpha = CheckIsAlpha(e.raw);
e.IsNumericFromNumpad = CheckIsNumericFromNumpad(e.raw);
Expand Down Expand Up @@ -83,7 +85,7 @@ void hook_KeyEvent(KeyboardRawEventArgs raw_e)
Log.e("KP", " e.NoModifiers > try SpecialkeysParser.ToString ");
try
{
e.TextModeString = SpecialkeysParser.ToString(e.Key);
e.TextModeString = SpecialkeysParser.ToString(e.Key, EnableTextOverSymbol);
}
catch (NotImplementedException)
{
Expand Down Expand Up @@ -168,7 +170,6 @@ void hook_KeyEvent(KeyboardRawEventArgs raw_e)

}


private KeystrokeEventArgs lastDeadKeyEvent;

private void BackupDeadKey(KeystrokeEventArgs e)
Expand Down Expand Up @@ -201,7 +202,7 @@ private void ParseShortcutViaSpecialkeysParser(KeystrokeEventArgs e)
{
try
{
e.TextModeString = SpecialkeysParser.ToString(e.Key);
e.TextModeString = SpecialkeysParser.ToString(e.Key, EnableTextOverSymbol);
}
catch (NotImplementedException)
{
Expand All @@ -217,7 +218,7 @@ private void ParseTexttViaSpecialkeysParser(KeystrokeEventArgs e)
{
try
{
e.TextModeString = SpecialkeysParser.ToString(e.Key);
e.TextModeString = SpecialkeysParser.ToString(e.Key, EnableTextOverSymbol);
e.ShouldBeDisplayed = true;
e.StrokeType = KeystrokeType.Text;
e.RequiresNewLineAfterwards = e.Key == Key.Return;
Expand Down
3 changes: 3 additions & 0 deletions KeyNStroke/Settings1.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@
IsChecked="{Binding EnableWindowFade}">Hide window when empty</CheckBox>
<CheckBox x:Name="cb_periodictopmost"
IsChecked="{Binding PeriodicTopmost}">Put on top periodically</CheckBox>
<CheckBox x:Name="cb_fulltextoverimage"
IsChecked="{Binding EnableTextOverSymbol}"
ToolTip="Displays text instead of symbols">Text instead of symbols</CheckBox>
</StackPanel>
</StackPanel>
<StackPanel Margin="5"
Expand Down
10 changes: 10 additions & 0 deletions KeyNStroke/SettingsStore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ class Settings
[DataMember] public Nullable<bool> enableHistoryTimeout = null;
[DataMember] public Nullable<bool> enableWindowFade = null;
[DataMember] public Nullable<bool> enableCursorIndicator = null;
[DataMember] public Nullable<bool> enableTextOverSymbol = null;
[DataMember] public Nullable<double> cursorIndicatorOpacity = null;
[DataMember] public Nullable<double> cursorIndicatorSize = null;
[DataMember] public SerializableColor2 cursorIndicatorColor = null;
Expand Down Expand Up @@ -416,6 +417,13 @@ public bool EnableCursorIndicator
set { i.enableCursorIndicator = value; OnSettingChanged("EnableCursorIndicator"); }
}

public bool EnableTextOverSymbolDefault = false;
public bool EnableTextOverSymbol
{
get { return Or(i.enableTextOverSymbol, EnableTextOverSymbolDefault); }
set { i.enableTextOverSymbol = value; OnSettingChanged("EnableTextOverSymbol"); }
}

public double CursorIndicatorOpacityDefault = 0.3;
public double CursorIndicatorOpacity
{
Expand Down Expand Up @@ -694,6 +702,7 @@ public void CallPropertyChangedForAllProperties()
PropertyChanged(this, new PropertyChangedEventArgs("EnableHistoryTimeout"));
PropertyChanged(this, new PropertyChangedEventArgs("EnableWindowFade"));
PropertyChanged(this, new PropertyChangedEventArgs("EnableCursorIndicator"));
PropertyChanged(this, new PropertyChangedEventArgs("EnableTextOverSymbol"));
PropertyChanged(this, new PropertyChangedEventArgs("CursorIndicatorOpacity"));
PropertyChanged(this, new PropertyChangedEventArgs("CursorIndicatorSize"));
PropertyChanged(this, new PropertyChangedEventArgs("CursorIndicatorColor"));
Expand Down Expand Up @@ -827,6 +836,7 @@ public override string ToString()
EnableHistoryTimeout: {EnableHistoryTimeout}
EnableWindowFade: {EnableWindowFade}
EnableCursorIndicator: {EnableCursorIndicator}
EnableTextOverSymbol: {EnableTextOverSymbol}
CursorIndicatorOpacity: {CursorIndicatorOpacity}
CursorIndicatorSize: {CursorIndicatorSize}
CursorIndicatorColor: {CursorIndicatorColor}
Expand Down
20 changes: 10 additions & 10 deletions KeyNStroke/SpecialkeysParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ namespace KeyNStroke
{
class SpecialkeysParser
{
public static string ToString(Key k)
public static string ToString(Key k, bool enableTextOverSymbol)
{
switch(k){
case Key.LeftShift:
case Key.RightShift:
return "⇧";
return enableTextOverSymbol ? " [Shift] " : "⇧";
case Key.LeftCtrl:
case Key.RightCtrl:
return "Ctrl";
Expand All @@ -25,12 +25,12 @@ public static string ToString(Key k)
case Key.RightAlt:
return "Alt";
case Key.CapsLock:
return "⇪";
return enableTextOverSymbol ? " [CapsLock] " : "⇪";
case Key.LineFeed:
case Key.Return:
return " ⏎";
return enableTextOverSymbol ? " [Return] " : " ⏎";
case Key.Back:
return " ⌫ ";
return enableTextOverSymbol ? " [Backspace] " : " ⌫ ";
case Key.Left:
return " ← ";
case Key.Right:
Expand All @@ -52,17 +52,17 @@ public static string ToString(Key k)


case Key.Tab:
return "↹";
return enableTextOverSymbol ? " [Tab] " : "↹";
case Key.Space:
return "␣";
case Key.PageUp:
return " ↖ ";
return enableTextOverSymbol ? " [PageUp] " : " ↖ ";
case Key.PageDown:
return " ↘ ";
return enableTextOverSymbol ? " [PageDown] " : " ↘ ";
case Key.End:
return " ⇲ ";
return enableTextOverSymbol ? " [End] " : " ⇲ ";
case Key.Home:
return " ⇱ ";
return enableTextOverSymbol ? " [Home] " : " ⇱ ";
case Key.Print:
return " ⎙ ";

Expand Down