|
|
|
@ -157,22 +157,7 @@ public partial class MainForm : Form |
|
|
|
|
// send the keypress to the search results |
|
|
|
|
// NOTE: We could also respond to Up/Down and scroll the ChartImage vertically, |
|
|
|
|
// but that would be confusing, given that Left/Right selects a search result. |
|
|
|
|
if ( mSearchResults.Items.Count > 1 && mSearchResults.SelectedItems.Count > 0 ) { |
|
|
|
|
// check for wrap-around |
|
|
|
|
ImageListViewItem selItem = mSearchResults.SelectedItems[0] ; |
|
|
|
|
if ( keyCode == Keys.Left && Object.ReferenceEquals( selItem, mSearchResults.Items[0] ) ) { |
|
|
|
|
mSearchResults.setSelection( mSearchResults.Items.Count-1 ) ; |
|
|
|
|
return true ; |
|
|
|
|
} |
|
|
|
|
if ( keyCode == Keys.Right && Object.ReferenceEquals( selItem, mSearchResults.Items[mSearchResults.Items.Count-1] ) ) { |
|
|
|
|
mSearchResults.setSelection( 0 ) ; |
|
|
|
|
return true ; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
mSearchResults.Focus() ; |
|
|
|
|
mDisableProcessCmdKey = true ; |
|
|
|
|
SendKeys.SendWait( "{" + keyCode.ToString() + "}" ) ; |
|
|
|
|
mDisableProcessCmdKey = false ; |
|
|
|
|
selectSearchResult( keyCode ) ; |
|
|
|
|
return true ; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -296,6 +281,23 @@ public partial class MainForm : Form |
|
|
|
|
return false ; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void selectSearchResult( Keys keyCode ) |
|
|
|
|
{ |
|
|
|
|
if ( mSearchResults.Items.Count == 0 ) |
|
|
|
|
return ; |
|
|
|
|
int selIndex = 0 ; |
|
|
|
|
if ( mSearchResults.SelectedItems.Count > 0 ) { |
|
|
|
|
ImageListViewItem selItem = mSearchResults.SelectedItems[0] ; |
|
|
|
|
if ( keyCode == Keys.Left ) |
|
|
|
|
selIndex = (selItem.Index > 0) ? selItem.Index-1 : mSearchResults.Items.Count-1 ; |
|
|
|
|
else if ( keyCode == Keys.Right ) |
|
|
|
|
selIndex = (selItem.Index < mSearchResults.Items.Count-1) ? selItem.Index+1 : 0 ; |
|
|
|
|
else |
|
|
|
|
Debug.Assert( false, $"Unexpected keyCode: {keyCode}" ) ; |
|
|
|
|
} |
|
|
|
|
mSearchResults.setSelection( selIndex ) ; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private int ChartImagePanel_MaxScrollX() { return Math.Max( 0, mChartImagePanel.HorizontalScroll.Maximum-mChartImagePanel.Width) + 17 ; } |
|
|
|
|
private int ChartImagePanel_MaxScrollY() { return Math.Max( 0, mChartImagePanel.VerticalScroll.Maximum-mChartImagePanel.Height) + 17 ; } |
|
|
|
|
|
|
|
|
|