Keyboard shortcut logic
This commit is contained in:
@@ -435,6 +435,45 @@ namespace Volian.Controls.Library
|
||||
{
|
||||
AddText(txt);
|
||||
}
|
||||
|
||||
private void ToggleCase()
|
||||
{
|
||||
char type = 'l';
|
||||
// do not change case on linked text
|
||||
RangeStatus rs = FindRangeStatus();
|
||||
string tmp = null;
|
||||
if (rs != RangeStatus.NoContainedLinks)
|
||||
{
|
||||
int start = SelectionStart;
|
||||
int ostart = SelectionStart;
|
||||
int end = SelectionStart + SelectionLength;
|
||||
bool processed = false;
|
||||
while (!processed && start <= end)
|
||||
{
|
||||
foreach (LinkLocation ll in LinkLocations)
|
||||
{
|
||||
if (ll.Start >= start && ll.End <= end)
|
||||
{
|
||||
processed = true;
|
||||
if (start < ll.Start)
|
||||
{
|
||||
SelectionStart = start;
|
||||
SelectionLength = ll.Start - start;
|
||||
}
|
||||
start = ll.End + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
string ostring = SelectedText;
|
||||
if ((char.IsUpper(ostring, 0) && char.IsUpper(ostring, 1)) ||
|
||||
(char.IsLower(ostring, 0) && char.IsUpper(ostring, 1))) type = 'l'; // lower case
|
||||
else if ((char.IsUpper(ostring, 0) && char.IsLower(ostring, 1))) type = 'U'; // upper case
|
||||
else type = 'T'; // Title case
|
||||
SetSelectedCase(type);
|
||||
}
|
||||
|
||||
public void SetSelectedCase(char type)
|
||||
{
|
||||
// do not change case on linked text
|
||||
@@ -1153,6 +1192,55 @@ namespace Volian.Controls.Library
|
||||
#region KeyboardHandling
|
||||
void StepRTB_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Control)
|
||||
{
|
||||
if (e.Alt)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.M:
|
||||
this.MyStepItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.btnAnnots_Click(sender, e);
|
||||
e.Handled = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (e.Shift)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.F:
|
||||
this.MyStepItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ShortCutContextMenu("InsFigure");
|
||||
e.Handled = true;
|
||||
break;
|
||||
case Keys.T:
|
||||
this.MyStepItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ShortCutContextMenu("InsTable");
|
||||
e.Handled = true;
|
||||
break;
|
||||
case Keys.N:
|
||||
this.MyStepItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ShortCutContextMenu("InsNote");
|
||||
e.Handled = true;
|
||||
break;
|
||||
case Keys.C:
|
||||
this.MyStepItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ShortCutContextMenu("InsCaution");
|
||||
e.Handled = true;
|
||||
break;
|
||||
case Keys.S:
|
||||
this.MyStepItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ShortCutContextMenu("InsSubStps");
|
||||
e.Handled = true;
|
||||
break;
|
||||
case Keys.H:
|
||||
this.MyStepItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ShortCutContextMenu("InsHLS");
|
||||
e.Handled = true;
|
||||
break;
|
||||
case Keys.R:
|
||||
this.MyStepItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ShortCutContextMenu("InsRNO");
|
||||
e.Handled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!e.Shift) return;
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
@@ -1167,6 +1255,10 @@ namespace Volian.Controls.Library
|
||||
if (e.Control) // Hardspace - Ctrl+Shift+Space
|
||||
InsertSymbol(@"\u160?");
|
||||
break;
|
||||
case Keys.F3: // shift F3
|
||||
e.Handled = true;
|
||||
ToggleCase(); // toggle through Upper, Lower, and Title case
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -1202,6 +1294,11 @@ namespace Volian.Controls.Library
|
||||
StepRTB_HomeEndPressed(e);
|
||||
e.Handled = true;
|
||||
break;
|
||||
case Keys.Enter:
|
||||
//Console.WriteLine("Ctrl+Enter - Page Break");
|
||||
this.MyStepItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.btnInsPgBrk_Click(sender, e);
|
||||
e.Handled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
switch (e.KeyCode)
|
||||
@@ -1363,6 +1460,14 @@ namespace Volian.Controls.Library
|
||||
// comment on _OverWrite
|
||||
e.Handled = true;
|
||||
break;
|
||||
case Keys.F6:
|
||||
e.Handled = true;
|
||||
SendKeys.Send("%H{ESC}");
|
||||
break;
|
||||
case Keys.Tab:
|
||||
e.SuppressKeyPress = true;
|
||||
e.Handled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
private void StepRTB_HomeEndPressed(KeyEventArgs keyargs)
|
||||
@@ -2067,6 +2172,12 @@ namespace Volian.Controls.Library
|
||||
DebugPrint(where, ": {0} {1} '{2}'", SelectionStart, SelectionLength, SelectedText);
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void StepRTB_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||
{
|
||||
if ((e.KeyCode == Keys.Tab) && (!e.Alt && !e.Control))
|
||||
e.IsInputKey = true;
|
||||
}
|
||||
}
|
||||
public partial class StepRTBModeChangeEventArgs : EventArgs
|
||||
{
|
||||
|
Reference in New Issue
Block a user