void WIDGET_HOTKEY_LIST::UpdateFromClientData() { for( wxTreeListItem i = GetFirstItem(); i.IsOk(); i = GetNextItem( i ) ) { WIDGET_HOTKEY_CLIENT_DATA* hkdata = GetHKClientData( i ); if( hkdata ) { const auto& changed_hk = hkdata->GetChangedHotkey(); const EDA_HOTKEY& hk = changed_hk.GetCurrentValue(); wxString key_text = KeyNameFromKeyCode( hk.m_KeyCode ); // mark unsaved changes if( changed_hk.HasUnsavedChange() ) key_text += " *"; SetItemText( i, 0, wxGetTranslation( hk.m_InfoMsg ) ); SetItemText( i, 1, key_text); } } // Trigger a resize in case column widths have changed wxSizeEvent dummy_evt; TWO_COLUMN_TREE_LIST::OnSize( dummy_evt ); }
void WIDGET_HOTKEY_LIST::ResetItemToDefault( wxTreeListItem aItem ) { WIDGET_HOTKEY_CLIENT_DATA* hkdata = getExpectedHkClientData( aItem ); if( !hkdata ) return; auto& changed_hk = hkdata->GetChangedHotkey(); changeHotkey( changed_hk, changed_hk.GetCurrentValue().GetDefaultKeyCode() ); UpdateFromClientData(); }
void WIDGET_HOTKEY_LIST::ResetItem( wxTreeListItem aItem ) { WIDGET_HOTKEY_CLIENT_DATA* hkdata = getExpectedHkClientData( aItem ); if( !hkdata ) return; auto& changed_hk = hkdata->GetChangedHotkey(); const auto& orig_hk = changed_hk.GetOriginalValue(); changeHotkey( changed_hk, orig_hk.m_KeyCode ); UpdateFromClientData(); }
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(); } }