void WIDGET_HOTKEY_LIST::EditItem( wxTreeListItem aItem ) { WIDGET_HOTKEY_CLIENT_DATA* hkdata = getExpectedHkClientData( aItem ); if( !hkdata ) return; wxString name = GetItemText( aItem, 0 ); wxString current_key = GetItemText( aItem, 1 ); wxKeyEvent key_event = HK_PROMPT_DIALOG::PromptForKey( GetParent(), name, current_key ); long key = MapKeypressToKeycode( key_event ); if( key ) { changeHotkey( hkdata->GetChangedHotkey(), key ); UpdateFromClientData(); } }
void WIDGET_HOTKEY_LIST::EditItem( wxTreeListItem aItem ) { WIDGET_HOTKEY_CLIENT_DATA* hkdata = GetHKClientData( aItem ); if( !hkdata ) { // Activated item was not a hotkey row return; } wxString name = GetItemText( aItem, 0 ); wxString current_key = GetItemText( aItem, 1 ); wxKeyEvent key_event = HK_PROMPT_DIALOG::PromptForKey( GetParent(), name, current_key ); long key = MapKeypressToKeycode( key_event ); if( hkdata && key ) { // See if this key code is handled in hotkeys names list bool exists; KeyNameFromKeyCode( key, &exists ); if( exists && hkdata->GetHotkey().m_KeyCode != key ) { wxString tag = hkdata->GetSectionTag(); bool canUpdate = ResolveKeyConflicts( key, tag ); if( canUpdate ) { hkdata->GetHotkey().m_KeyCode = key; } } UpdateFromClientData(); // Trigger a resize in case column widths have changed wxSizeEvent dummy_evt; OnSize( dummy_evt ); } }