| 974 | } |
| 975 | |
| 976 | LRESULT OnNavigate(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/) |
| 977 | { |
| 978 | if( (m_di.dwExtStyle & PGS_EX_NOSHEETNAVIGATION) != 0 ) return 0; |
| 979 | if( !_IsValidSelection() ) return 0; |
| 980 | int iNextCol = m_iSelectedCol; |
| 981 | // Navigate in the grid control |
| 982 | switch( wParam ) { |
| 983 | case VK_TAB: |
| 984 | SendMessage(WM_USER_PROP_NAVIGATE, VK_RIGHT); |
| 985 | break; |
| 986 | case VK_LEFT: |
| 987 | if( _IsAppendActionItem(m_iSelectedRow ) ) break; |
| 988 | iNextCol = GetColumnLeftOf(m_iSelectedCol); |
| 989 | if( m_iSelectedRow >= 0 && iNextCol != m_iSelectedCol ) { |
| 990 | // Can we navigate? |
| 991 | // Repaint old item |
| 992 | _InvalidateItem(m_iSelectedRow, m_iSelectedCol); |
| 993 | // Navigate |
| 994 | m_iSelectedCol = iNextCol; |
| 995 | // Let owner know |
| 996 | IProperty* prop = GetProperty(m_iSelectedRow, m_iSelectedCol); |
| 997 | ATLASSERT(prop); |
| 998 | NMPROPERTYITEM nmh = { m_hWnd, GetDlgCtrlID(), PIN_SELCHANGED, prop }; |
| 999 | ::SendMessage(GetParent(), WM_NOTIFY, nmh.hdr.idFrom, (LPARAM) &nmh); |
| 1000 | // Repaint new item |
| 1001 | _InvalidateItem(m_iSelectedRow, m_iSelectedCol); |
| 1002 | } |
| 1003 | break; |
| 1004 | case VK_RIGHT: |
| 1005 | if( _IsAppendActionItem(m_iSelectedRow ) ) break; |
| 1006 | iNextCol = GetColumnRightOf(m_iSelectedCol); |
| 1007 | if( m_iSelectedRow >= 0 && iNextCol != m_iSelectedCol ) { |
| 1008 | // Can we navigate? |
| 1009 | // Repaint old item |
| 1010 | _InvalidateItem(m_iSelectedRow, m_iSelectedCol); |
| 1011 | // Navigate |
| 1012 | m_iSelectedCol = iNextCol; |
| 1013 | // Let owner know |
| 1014 | IProperty* prop = GetProperty(m_iSelectedRow, m_iSelectedCol); |
| 1015 | ATLASSERT(prop); |
| 1016 | NMPROPERTYITEM nmh = { m_hWnd, GetDlgCtrlID(), PIN_SELCHANGED, prop }; |
| 1017 | ::SendMessage(GetParent(), WM_NOTIFY, nmh.hdr.idFrom, (LPARAM) &nmh); |
| 1018 | // Repaint new item |
| 1019 | _InvalidateItem(m_iSelectedRow, m_iSelectedCol); |
| 1020 | } |
| 1021 | break; |
| 1022 | case VK_UP: |
| 1023 | if( m_iSelectedRow > 0 ) SelectItem(m_iSelectedRow - 1, m_iSelectedCol); |
| 1024 | break; |
| 1025 | case VK_DOWN: |
| 1026 | if( m_iSelectedRow < GetItemCount() - 1 ) SelectItem(m_iSelectedRow + 1, m_iSelectedCol); |
| 1027 | break; |
| 1028 | } |
| 1029 | return 0; |
| 1030 | } |
| 1031 | |
| 1032 | LRESULT OnUpdateProperty(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/) |
| 1033 | { |
nothing calls this directly
no test coverage detected