Page 4 of 4

Re: Checking panel hot key improvement (MS Windows)

Posted: Tue Sep 22, 2009 12:36 pm
by Nikolay
My last code. Are there reasons it does not work on MAC?

Code: Select all

void MyListCtrl::OnChar(wxKeyEvent& event)
{	if (wxGetKeyState(WXK_ALT) || 
		wxGetKeyState(WXK_COMMAND) ||
		wxGetKeyState(WXK_UP) || 
		wxGetKeyState(WXK_DOWN) || 
		wxGetKeyState(WXK_LEFT) || 
		wxGetKeyState(WXK_RIGHT) || 
		wxGetKeyState(WXK_HOME) || 
		wxGetKeyState(WXK_END) ||
		wxGetKeyState(WXK_PAGEUP) || 
		wxGetKeyState(WXK_PAGEDOWN) || 
		wxGetKeyState(WXK_NUMPAD_UP) ||
		wxGetKeyState(WXK_NUMPAD_DOWN) ||
		wxGetKeyState(WXK_NUMPAD_LEFT) ||
		wxGetKeyState(WXK_NUMPAD_RIGHT) ||
		wxGetKeyState(WXK_NUMPAD_PAGEDOWN) ||
		wxGetKeyState(WXK_NUMPAD_PAGEUP) ||
		wxGetKeyState(WXK_NUMPAD_HOME) ||
		wxGetKeyState(WXK_NUMPAD_END) 
		)
	event.Skip();
  }

void MyListCtrl::OnListKeyDown(wxListEvent& event)
{
	if (!wxGetKeyState(WXK_COMMAND) && !wxGetKeyState(WXK_ALT))
 {
	switch ( event.GetKeyCode())
    {
		case WXK_DELETE:
		case WXK_NUMPAD_DELETE:
            {
                wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, MENU_TREEPOPUP_DELETE);
                OnDeleteTransaction(evt);
            }
            break;

        case 'V':
            {
                wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, MENU_TREEPOPUP_MARKVOID);
                OnMarkTransaction(evt);
            }
            break;

        case 'R':
            {
                wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, MENU_TREEPOPUP_MARKRECONCILED);
                OnMarkTransaction(evt);
            }
            break;

        case 'U':
            {
                 wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, MENU_TREEPOPUP_MARKUNRECONCILED);
                 OnMarkTransaction(evt);
            }
            break;

        case 'F':
            {
                 wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, MENU_TREEPOPUP_MARK_ADD_FLAG_FOLLOWUP);
                 OnMarkTransaction(evt);
            }
            break;
		case 'D':
            {
                 wxCommandEvent evt(wxEVT_COMMAND_MENU_SELECTED, MENU_TREEPOPUP_MARKDUPLICATE);
                 OnMarkTransaction(evt);
			}
            break;
	
	}
	}
	event.Skip();
	
}

Re: Checking panel hot key improvement (MS Windows)

Posted: Wed Sep 23, 2009 11:07 am
by elliswr
Yep, that breaks hotkeys on Mac. The only thing that allows hotkeys to work is when I edit out the OnChar method.

Re: Checking panel hot key improvement (MS Windows)

Posted: Wed Sep 23, 2009 11:32 am
by Nikolay
And if we make a bit change in the mmcheckingpanel.cpp:

Code: Select all

    EVT_MENU(MENU_ON_COPY_TRANSACTION, MyListCtrl::OnCopy) 
    EVT_MENU(MENU_ON_PASTE_TRANSACTION, MyListCtrl::OnPaste) 
    EVT_MENU(MENU_ON_NEW_TRANSACTION, MyListCtrl::OnNewTransaction) 
  
#if defined (__WXMSW__)
	EVT_CHAR(MyListCtrl::OnChar)
#endif
    EVT_LIST_KEY_DOWN(ID_PANEL_CHECKING_LISTCTRL_ACCT, MyListCtrl::OnListKeyDown)
???
PS Please, say YES :)

Re: Checking panel hot key improvement (MS Windows)

Posted: Thu Sep 24, 2009 2:12 am
by elliswr
Nik,

So, you'll never believe this, but I got your code to work just fine on Mac without #if and #endif statements. You see, I broke the golden rule of troubleshooting and changed more than one thing at a time. If I edit out the OnChar method without changing anything else, keystrokes worked. So I jumped to the conclusion that it was your code that was the problem. At the same time, I was battling with the lack of response to clicks that the same wxlistctrl was giving me in mmcheckingpanel.

I found out how to implement the generic version of wxlistctrl and the clicks worked (in other words, native wxlistctrl is broken on Mac in 2.8.10). When I updated to the new source from the branch 0.9.5, I forgot to re-imlement the generic version of wxlistctrl, and thus your code wouldn't work no matter what I did. Sorry for all this, it now works on Windows and Mac.

Lets commit that code.

Wes

Re: Checking panel hot key improvement (MS Windows)

Posted: Thu Sep 24, 2009 6:23 pm
by Nikolay
Hi wes,

Good news, thanks.

Regards,
Nikolay

Re: Checking panel hot key improvement (MS Windows)

Posted: Fri Sep 25, 2009 7:14 am
by Nikolay
Updated to SVN revision 479.