Money Manager Ex Development related posts for both Android and Desktop
Moderator: Renato
Nikolay
Developer
Posts: 1535 Joined: Sat Dec 06, 2008 2:27 pm
Are you a spam bot?: No
Location: Sankt-Petersburg, Russia
Post
by Nikolay » Tue Sep 22, 2009 12:36 pm
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();
}
Attachments
HKEYS.zip
(11.05 KiB) Downloaded 551 times
elliswr
Super User
Posts: 102 Joined: Tue May 05, 2009 8:21 am
Are you a spam bot?: No
Location: Granbury, TX
Post
by elliswr » Wed Sep 23, 2009 11:07 am
Yep, that breaks hotkeys on Mac. The only thing that allows hotkeys to work is when I edit out the OnChar method.
Nikolay
Developer
Posts: 1535 Joined: Sat Dec 06, 2008 2:27 pm
Are you a spam bot?: No
Location: Sankt-Petersburg, Russia
Post
by Nikolay » Wed Sep 23, 2009 11:32 am
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
elliswr
Super User
Posts: 102 Joined: Tue May 05, 2009 8:21 am
Are you a spam bot?: No
Location: Granbury, TX
Post
by elliswr » Thu Sep 24, 2009 2:12 am
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
Nikolay
Developer
Posts: 1535 Joined: Sat Dec 06, 2008 2:27 pm
Are you a spam bot?: No
Location: Sankt-Petersburg, Russia
Post
by Nikolay » Thu Sep 24, 2009 6:23 pm
Hi wes,
Good news, thanks.
Regards,
Nikolay
Nikolay
Developer
Posts: 1535 Joined: Sat Dec 06, 2008 2:27 pm
Are you a spam bot?: No
Location: Sankt-Petersburg, Russia
Post
by Nikolay » Fri Sep 25, 2009 7:14 am
Updated to SVN revision 479.
Attachments
cp_hotkeys.zip
(1.08 KiB) Downloaded 523 times