Browse Source

Latest changes for custom key strokes

Scott Brogden 9 years ago
parent
commit
8abf8e694e
13 changed files with 224 additions and 111 deletions
  1. 1 1
      Accels.cpp
  2. 2 1
      ActionEnums.cpp
  3. 101 10
      CP_Main.rc
  4. 35 35
      EditWithButton.cpp
  5. 1 1
      OptionsSheet.cpp
  6. 0 26
      QListCtrl.cpp
  7. 1 4
      QListCtrl.h
  8. 49 24
      QPasteWnd.cpp
  9. 7 2
      QPasteWnd.h
  10. 20 4
      QuickPasteKeyboard.cpp
  11. 2 0
      QuickPasteKeyboard.h
  12. 4 2
      Resource.h
  13. 1 1
      SearchEditBox.cpp

+ 1 - 1
Accels.cpp

@@ -17,7 +17,7 @@ void CAccels::AddAccel(DWORD cmd, DWORD key, DWORD key2)
 {
 	CAccel a(key, cmd);
 	
-	if(key2 > 0)
+	if((int)key2 > 0)
 	{
 		a.SecondKey = true;
 		m_Map2.SetAt(key2, a);

+ 2 - 1
ActionEnums.cpp

@@ -150,6 +150,8 @@ int ActionEnums::GetDefaultShortCutKeyA(ActionEnumValues value, int pos)
 			return ACCEL_MAKEKEY(VK_RETURN, HOTKEYF_SHIFT);
 		case ActionEnums::COMPARE_SELECTED_CLIPS:
 			return ACCEL_MAKEKEY(VK_F2, HOTKEYF_CONTROL);
+		case ActionEnums::PASTE_SELECTED:
+			return VK_RETURN;
 		}
 		break;
 	case 1:
@@ -190,7 +192,6 @@ bool ActionEnums::UserConfigurable(ActionEnumValues value)
 	case ActionEnums::MOVEFIRST:
 	case ActionEnums::MOVELAST:
 	case ActionEnums::BACKGRROUP:
-	case ActionEnums::PASTE_SELECTED:
 	case ActionEnums::DELETE_SELECTED:
 	case ActionEnums::TOGGLEFILELOGGING:
 	case ActionEnums::TOGGLEOUTPUTDEBUGSTRING:

+ 101 - 10
CP_Main.rc

@@ -66,34 +66,56 @@ END
 // Icon with lowest ID value placed first to ensure application icon
 // remains consistent on all systems.
 IDR_MAINFRAME           ICON                    "res\\Ditto2.ico"
+
 IDR_CP_MAITYPE          ICON                    "res\\CP_MainDoc.ico"
+
 IDI_DITTO_NOCOPYCB      ICON                    "res\\Ditto2_NoCopyCb.ico"
 
+
 /////////////////////////////////////////////////////////////////////////////
 //
 // Bitmap
 //
 
 IDR_MAINFRAME           BITMAP                  "res\\Toolbar.bmp"
+
 IDB_CLOSED_FOLDER       BITMAP                  "res\\bitmap1.bmp"
+
 IDB_CLOSED_FOLDER_PRESSED BITMAP                  "res\\closed_f.bmp"
+
 IDB_CLOSED_FOLDER_FOCUSED BITMAP                  "res\\bmp00001.bmp"
+
 IDB_OPEN_FOLDER         BITMAP                  "res\\bmp00002.bmp"
+
 IDB_OPEN_FOLDER_FOCUSED BITMAP                  "res\\open_fol.bmp"
+
 IDB_OPEN_FOLDER_PRESSED BITMAP                  "res\\bmp00003.bmp"
+
 IDB_BACK                BITMAP                  "res\\back.bmp"
+
 IDB_BACK_PRESSED        BITMAP                  "res\\back1.bmp"
+
 IDB_BACK_FOCUSED        BITMAP                  "res\\back2.bmp"
+
 IDR_EDIT_WND            BITMAP                  "res\\mainfram.bmp"
+
 IDB_BITMAP_SEARCH_NORMAL BITMAP                  "res\\search_normal.bmp"
+
 IDB_BITMAP_SEARCH_CLOSE BITMAP                  "res\\search_close.bmp"
+
 IDB_BITMAP_SEARCH_NORMAL_125 BITMAP                  "res\\search_normal_125.bmp"
+
 IDB_BITMAP_SEARCH_CLOSE_125 BITMAP                  "res\\search_close_125.bmp"
+
 IDB_BITMAP_SEARCH_CLOSE_150 BITMAP                  "res\\search_close_150.bmp"
+
 IDB_BITMAP_SEARCH_NORMAL_150 BITMAP                  "res\\search_normal_150.bmp"
+
 IDB_BITMAP_SEARCH_CLOSE_200 BITMAP                  "res\\search_close_200.bmp"
+
 IDB_BITMAP_SEARCH_NORMAL_200 BITMAP                  "res\\search_normal_200.bmp"
 
+
 /////////////////////////////////////////////////////////////////////////////
 //
 // Toolbar
@@ -872,25 +894,25 @@ END
 
 IDD_OPTIONS_QUICK_PASTE_KEYBOARD DIALOGEX 0, 0, 375, 265
 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Dialog"
+CAPTION " "
 FONT 8, "MS Shell Dlg", 400, 0, 0x1
 BEGIN
     CONTROL         "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,361,115
-    CONTROL         "",IDC_HOTKEY1,"msctls_hotkey32",WS_BORDER | WS_TABSTOP,35,183,80,14
+    CONTROL         "",IDC_HOTKEY1,"msctls_hotkey32",WS_BORDER | WS_TABSTOP,25,183,80,14
     PUSHBUTTON      "Assign",IDC_ASSIGN,318,244,50,14
     CONTROL         "",IDC_HOTKEY2,"msctls_hotkey32",WS_BORDER | WS_TABSTOP,202,185,80,14
-    CONTROL         "Keyboard Shortcut",IDC_RADIO_KEYBOARD,"Button",BS_AUTORADIOBUTTON,18,170,76,10
-    CONTROL         "Enter Key",IDC_RADIO_ENTER,"Button",BS_AUTORADIOBUTTON,18,205,47,10
-    CONTROL         "Mouse Click",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,18,236,53,10
+    CONTROL         "Keyboard Shortcut",IDC_RADIO_KEYBOARD,"Button",BS_AUTORADIOBUTTON | WS_GROUP,18,170,76,10
+    CONTROL         "Mouse Click",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,18,207,53,10
     COMBOBOX        IDC_COMBO_ALL_ASSIGNED,8,139,253,99,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     PUSHBUTTON      "Remove",IDC_BUTTON_REMOVE,265,138,50,14
     PUSHBUTTON      "Add",IDC_BUTTON_ADD,318,138,50,14
     LTEXT           "Shortcuts for selected command:",IDC_STATIC,8,128,106,8
-    GROUPBOX        "First Keypress",IDC_STATIC,7,157,137,93
-    CONTROL         "Keyboard Shortcut",IDC_RADIO_KEYBOARD2,"Button",BS_AUTORADIOBUTTON,183,171,76,10
-    CONTROL         "Enter Key",IDC_RADIO_ENTER2,"Button",BS_AUTORADIOBUTTON,183,206,47,10
-    CONTROL         "Mouse Click",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,183,238,53,10
-    GROUPBOX        "Second Keypress",IDC_STATIC,172,158,126,93
+    GROUPBOX        "First Keypress",IDC_STATIC,7,157,151,93
+    CONTROL         "Keyboard Shortcut",IDC_RADIO_KEYBOARD2,"Button",BS_AUTORADIOBUTTON | WS_GROUP,183,171,76,10
+    CONTROL         "Mouse Click",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,183,209,53,10
+    GROUPBOX        "Second Keypress",IDC_STATIC,172,158,168,93
+    PUSHBUTTON      "Enter Key",IDC_BUTTON_ENTER,109,183,44,14
+    PUSHBUTTON      "Enter Key",IDC_BUTTON_ENTER2,286,185,44,14
 END
 
 
@@ -1106,69 +1128,138 @@ END
 
 IDR_FILE_COPY           AVI                     "res\\FILECOPY.AVI"
 
+
 /////////////////////////////////////////////////////////////////////////////
 //
 // PNG
 //
 
 IDB_OPEN_FOLDER_PNG     PNG                     "res\\folder_open.png"
+
 IDB_COG_16_16           PNG                     "res\\cog_16_16.png"
+
 IDB_OPEN_FOLDER_16_16   PNG                     "res\\opened_folder_16_16.png"
+
 IDB_OPEN_FOLDER_20_20   PNG                     "res\\opened_folder_20_20.png"
+
 IDB_OPEN_FOLDER_24_24   PNG                     "res\\opened_folder_24_24.png"
+
 IDB_OPEN_FOLDER_32_32   PNG                     "res\\opened_folder_32_32.png"
+
 IDB_COG_20_20           PNG                     "res\\cog_20_20.png"
+
 IDB_COG_24_24           PNG                     "res\\cog_24_24.png"
+
 IDB_COG_32_32           PNG                     "res\\cog_32_32.png"
+
 IDB_LEFT_ARROW_16_16    PNG                     "res\\left_arrow_16_16.png"
+
 IDB_LEFT_ARROW_20_20    PNG                     "res\\left_arrow_20_20.png"
+
 IDB_LEFT_ARROW_24_24    PNG                     "res\\left_arrow_24_24.png"
+
 IDB_LEFT_ARROW_32_32    PNG                     "res\\left_arrow_32_32.png"
+
 IDB_CLOSE_8_8           PNG                     "res\\close_8_8.png"
+
 IDB_CLOSE_10_10         PNG                     "res\\close_10_10.png"
+
 IDB_CLOSE_12_13         PNG                     "res\\close_12_12.png"
+
 IDB_CLOSE_16_16         PNG                     "res\\close_16_16.png"
+
 IDB_CHEVRON_RIGHT_8_8   PNG                     "res\\chevron_right_8_8.png"
+
 IDB_CHEVRON_RIGHT_10_10 PNG                     "res\\chevron_right_10_10.png"
+
 IDB_CHEVRON_RIGHT_12_12 PNG                     "res\\chevron_right_12_12.png"
+
 IDB_CHEVRON_RIGHT_16_16 PNG                     "res\\chevron_right_16_16.png"
+
 IDB_CHEVRON_LEFT_8_8    PNG                     "res\\chevron_left_8_8.png"
+
 IDB_CHEVRON_LEFT_10_10  PNG                     "res\\chevron_left_10_10.png"
+
 IDB_CHEVRON_LEFT_12_12  PNG                     "res\\chevron_left_12_12.png"
+
 IDB_CHEVRON_LEFT_16_16  PNG                     "res\\chevron_left_16_16.png"
+
 IDB_CHEVRON_TOP_8_8     PNG                     "res\\chevron_top_8_8.png"
+
 IDB_CHEVRON_TOP_10_10   PNG                     "res\\chevron_top_10_10.png"
+
 IDB_CHEVRON_TOP_12_12   PNG                     "res\\chevron_top_12_12.png"
+
 IDB_CHEVRON_TOP_16_16   PNG                     "res\\chevron_top_16_16.png"
+
 IDB_CHEVRON_BOTTOM_8_8  PNG                     "res\\chevron_bottom_8_8.png"
+
 IDB_CHEVRON_BOTTOM_10_10 PNG                     "res\\chevron_bottom_10_10.png"
+
 IDB_CHEVRON_BOTTOM_12_12 PNG                     "res\\chevron_bottom_12_12.png"
+
 IDB_CHEVRON_BOTTOM_16_16 PNG                     "res\\chevron_bottom_16_16.png"
+
 IDB_MAXIMIZE_8_8        PNG                     "res\\maximize_8_8.png"
+
 IDB_MAXIMIZE_10_10      PNG                     "res\\maximize_10_10.png"
+
 IDB_MAXIMIZE_12_12      PNG                     "res\\maximize_12_12.png"
+
 IDB_MAXIMIZE_16_16      PNG                     "res\\maximize_16_16.png"
+
 IDB_YELLOW_STAR_32_32   PNG                     "res\\yellow_star_32_32.png"
+
 IDB_YELLOW_STAR_24_24   PNG                     "res\\yellow_star_24_24.png"
+
 IDB_YELLOW_STAR_20_20   PNG                     "res\\yellow_star_20_20.png"
+
 IDB_YELLOW_STAR_16_16   PNG                     "res\\yellow_star_16_16.png"
+
 IDB_IN_FOLDER_32_32     PNG                     "res\\in_folder_32_32.png"
+
 IDB_IN_FOLDER_24_24     PNG                     "res\\in_folder_24_24.png"
+
 IDB_IN_FOLDER_20_20     PNG                     "res\\in_folder_20_20.png"
+
 IDB_IN_FOLDER_16_16     PNG                     "res\\in_folder_16_16.png"
+
 IDB_KEY_32_32           PNG                     "res\\key_stroke_32_32.png"
+
 IDB_KEY_24_24           PNG                     "res\\key_stroke_24_24.png"
+
 IDB_KEY_20_20           PNG                     "res\\key_stroke_20_20.png"
+
 IDB_KEY_16_16           PNG                     "res\\key_stroke_16_16.png"
+
 IDB_STICKY_32_32        PNG                     "res\\Sticky_32_32.png"
+
 IDB_STICKY_24_24        PNG                     "res\\Sticky_24_24.png"
+
 IDB_STICKY_20_20        PNG                     "res\\Sticky_20_20.png"
+
 IDB_STICKY_16_16        PNG                     "res\\Sticky_16_16.png"
+
 IDB_SYSTEM_MENU_16_16   PNG                     "res\\system_menu_16_16.png"
+
 IDB_SYSTEM_MENU_20_20   PNG                     "res\\system_menu_20_20.png"
+
 IDB_SYSTEM_MENU_24_24   PNG                     "res\\system_menu_24_24.png"
+
 IDB_SYSTEM_MENU_32_32   PNG                     "res\\system_menu_32_32.png"
 
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// AFX_DIALOG_LAYOUT
+//
+
+IDD_OPTIONS_QUICK_PASTE_KEYBOARD AFX_DIALOG_LAYOUT
+BEGIN
+    0
+END
+
+
 /////////////////////////////////////////////////////////////////////////////
 //
 // String Table

+ 35 - 35
EditWithButton.cpp

@@ -80,41 +80,41 @@ BOOL CEditWithButton::PreTranslateMessage(MSG* pMsg)
 		}
 	}
 
-	switch(pMsg->message) 
-	{
-	case WM_KEYDOWN:
-		{
-			if(pMsg->wParam == VK_RETURN)
-			{
-				CWnd *pWnd = GetParent();
-				if(pWnd)
-				{
-					if(g_Opt.m_bFindAsYouType)
-					{
-						pWnd->SendMessage(NM_SELECT, 0, 0);
-					}
-					else
-					{
-						//Send a message to the parent to refill the lb from the search
-						pWnd->PostMessage(CB_SEARCH, 0, 0);
-					}
-				}
-
-				return TRUE;
-			}	
-			else if (pMsg->wParam == VK_DOWN ||
-					pMsg->wParam == VK_UP ||
-					pMsg->wParam == VK_F3)
-			{
-				CWnd *pWnd = GetParent();
-				if(pWnd)
-				{
-					pWnd->SendMessage(CB_UPDOWN, pMsg->wParam, pMsg->lParam);
-					return TRUE;
-				}
-			}
-			break;
-		}
+	switch(pMsg->message) 
+	{
+	case WM_KEYDOWN:
+		{
+			if(pMsg->wParam == VK_RETURN)
+			{
+				CWnd *pWnd = GetParent();
+				if(pWnd)
+				{
+					if(g_Opt.m_bFindAsYouType)
+					{
+						pWnd->SendMessage(NM_DBL_CLICK, 0, 0);
+					}
+					else
+					{
+						//Send a message to the parent to refill the lb from the search
+						pWnd->PostMessage(CB_SEARCH, 0, 0);
+					}
+				}
+
+				return TRUE;
+			}	
+			else if (pMsg->wParam == VK_DOWN ||
+					pMsg->wParam == VK_UP ||
+					pMsg->wParam == VK_F3)
+			{
+				CWnd *pWnd = GetParent();
+				if(pWnd)
+				{
+					pWnd->SendMessage(CB_UPDOWN, pMsg->wParam, pMsg->lParam);
+					return TRUE;
+				}
+			}
+			break;
+		}
 	}
 
 	return CEdit::PreTranslateMessage(pMsg);

+ 1 - 1
OptionsSheet.cpp

@@ -19,7 +19,7 @@
 #define new DEBUG_NEW
 #undef THIS_FILE
 static char THIS_FILE[] = __FILE__;
-#endif
+#endif 
 
 
 /////////////////////////////////////////////////////////////////////////////

+ 0 - 26
QListCtrl.cpp

@@ -133,7 +133,6 @@ int CQListCtrl::GetFirstTenIndex( int num )
 BEGIN_MESSAGE_MAP(CQListCtrl, CListCtrl)
 //{{AFX_MSG_MAP(CQListCtrl)
 	ON_NOTIFY_REFLECT(LVN_KEYDOWN, OnKeydown)
-	ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
 	ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomdrawList)
 	ON_WM_MOUSEMOVE()
 	ON_WM_SYSKEYDOWN()
@@ -167,31 +166,6 @@ DROPEFFECT CQListCtrl::OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState,
 	return DROPEFFECT_COPY;
 }
 
-void CQListCtrl::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) 
-{
-	LPNMITEMACTIVATE lpnmItem = (LPNMITEMACTIVATE) pNMHDR;
-	
-	UINT Flags;
-	int nItem = -1;
-	if ((nItem = HitTest(lpnmItem->ptAction, &Flags)) != -1)
-	{
-		if (Flags | LVHT_ONITEM)
-			SendSelection(nItem);
-	}
-	
-	*pResult = 0;
-}
-
-void CQListCtrl::SendSelection(int nItem)
-{
-	GetParent()->SendMessage(NM_SELECT, 1, (LPARAM) &nItem);
-}
-
-void CQListCtrl::SendSelection(ARRAY &arrItems)
-{
-	GetParent()->SendMessage(NM_SELECT, arrItems.GetSize(), (LPARAM) arrItems.GetData());
-}
-
 void CQListCtrl::GetSelectionIndexes(ARRAY &arr)
 {
 	arr.RemoveAll();

+ 1 - 4
QListCtrl.h

@@ -14,7 +14,7 @@
 #include "Accels.h"
 #include "GdiImageDrawer.h"
 
-#define NM_SELECT					WM_USER+0x100
+#define NM_DBL_CLICK				WM_USER+0x100
 #define NM_RIGHT					WM_USER+0x101
 #define NM_LEFT						WM_USER+0x102
 #define NM_END						WM_USER+0x103
@@ -150,9 +150,7 @@ public:
 	void SetSearchText(CString text);
 
 protected:
-	void SendSelection(int nItem);;
 	void LoadCopyOrCutToClipboard();
-	void SendSelection(ARRAY &arrItems);
 	BOOL GetClipData(int nItem, CClipFormat &Clip);
 	BOOL DrawBitMap(int nItem, CRect &crRect, CDC *pDC, const CString &csDescription);
 	void LoadDittoCopyBufferHotkeys();
@@ -186,7 +184,6 @@ protected:
 protected:
 	//{{AFX_MSG(CQListCtrl)
 	afx_msg void OnKeydown(NMHDR* pNMHDR, LRESULT* pResult);
-	afx_msg void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
 	afx_msg void OnCustomdrawList(NMHDR* pNMHDR, LRESULT* pResult);
 	afx_msg void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
 	afx_msg BOOL OnEraseBkgnd(CDC* pDC);

+ 49 - 24
QPasteWnd.cpp

@@ -93,7 +93,6 @@ ON_COMMAND(ID_MENU_TRANSPARENCY_30, OnMenuTransparency30)
 ON_COMMAND(ID_MENU_TRANSPARENCY_40, OnMenuTransparency40)
 ON_COMMAND(ID_MENU_TRANSPARENCY_5, OnMenuTransparency5)
 ON_COMMAND(ID_MENU_TRANSPARENCY_NONE, OnMenuTransparencyNone)
-ON_NOTIFY(NM_RCLICK, ID_LIST_HEADER, OnRclickQuickPaste)
 ON_COMMAND(ID_MENU_DELETE, OnMenuDelete)
 ON_COMMAND(ID_MENU_POSITIONING_ATCARET, OnMenuPositioningAtcaret)
 ON_COMMAND(ID_MENU_POSITIONING_ATCURSOR, OnMenuPositioningAtcursor)
@@ -164,7 +163,7 @@ ON_COMMAND(ID_QUICKOPTIONS_ELEVATEPREVILEGESTOPASTEINTOELEVATEDAPPS, OnElevateAp
 ON_WM_DESTROY()
 
 //}}AFX_MSG_MAP
-ON_MESSAGE(NM_SELECT, OnListSelect)
+ON_MESSAGE(NM_DBL_CLICK, OnListDblClick)
 ON_MESSAGE(NM_END, OnListEnd)
 ON_MESSAGE(CB_SEARCH, OnSearch)
 ON_MESSAGE(NM_DELETE, OnDelete)
@@ -262,6 +261,10 @@ ON_COMMAND(ID_SPECIALPASTE_PASTE32919, &CQPasteWnd::OnSpecialpastePaste32919)
 ON_UPDATE_COMMAND_UI(ID_SPECIALPASTE_PASTE32919, &CQPasteWnd::OnUpdateSpecialpastePaste32919)
 ON_COMMAND(ID_SPECIALPASTE_TYPOGLYCEMIA, &CQPasteWnd::OnSpecialpasteTypoglycemia)
 ON_UPDATE_COMMAND_UI(ID_SPECIALPASTE_TYPOGLYCEMIA, &CQPasteWnd::OnUpdateSpecialpasteTypoglycemia)
+ON_NOTIFY(NM_CLICK, ID_LIST_HEADER, &CQPasteWnd::OnNMClickList1)
+ON_NOTIFY(NM_DBLCLK, ID_LIST_HEADER, &CQPasteWnd::OnNMDblclkList1)
+ON_NOTIFY(NM_RCLICK, ID_LIST_HEADER, &CQPasteWnd::OnNMRClickList1)
+ON_NOTIFY(NM_RDBLCLK, ID_LIST_HEADER, &CQPasteWnd::OnNMRDblclkList1)
 END_MESSAGE_MAP()
 
 
@@ -432,7 +435,6 @@ void CQPasteWnd::LoadShortcuts()
 	m_actions.AddAccel(ActionEnums::MOVEFIRST, VK_HOME);
 	m_actions.AddAccel(ActionEnums::MOVELAST, VK_END);
 	m_actions.AddAccel(ActionEnums::BACKGRROUP, VK_BACK);
-	m_actions.AddAccel(ActionEnums::PASTE_SELECTED, VK_RETURN);
 	m_actions.AddAccel(ActionEnums::DELETE_SELECTED, VK_DELETE);
 	m_actions.AddAccel(ActionEnums::TOGGLEFILELOGGING, ACCEL_MAKEKEY(VK_F5, HOTKEYF_CONTROL));
 	m_actions.AddAccel(ActionEnums::TOGGLEOUTPUTDEBUGSTRING, VK_F5);
@@ -448,10 +450,10 @@ void CQPasteWnd::LoadShortcuts()
 		{
 			for (int i = 0; i < 10; i++)
 			{
-				DWORD a = g_Opt.GetActionShortCutA(action, i);
+				int a = g_Opt.GetActionShortCutA(action, i);
 				if (a > 0)
 				{
-					DWORD b = g_Opt.GetActionShortCutB(action, i);
+					int b = g_Opt.GetActionShortCutB(action, i);
 					m_actions.AddAccel(action, a, b);
 				}
 			}
@@ -955,11 +957,9 @@ LRESULT CQPasteWnd::OnListSelect_Index(WPARAM wParam, LPARAM lParam)
     return TRUE;
 }
 
-LRESULT CQPasteWnd::OnListSelect(WPARAM wParam, LPARAM lParam)
+LRESULT CQPasteWnd::OnListDblClick(WPARAM wParam, LPARAM lParam)
 {
-	CSpecialPasteOptions pasteOptions;
-    OpenSelection(pasteOptions);
-
+	DoAction(ActionEnums::PASTE_SELECTED);
     return TRUE;
 }
 
@@ -1327,8 +1327,7 @@ BOOL CQPasteWnd::FillList(CString csSQLSearch /*=""*/)
     return TRUE;
 }
 
-
-void CQPasteWnd::OnRclickQuickPaste(NMHDR *pNMHDR, LRESULT *pResult)
+void CQPasteWnd::ShowRightClickMenu()
 {
     POINT pp;
     CMenu cmPopUp;
@@ -1343,15 +1342,12 @@ void CQPasteWnd::OnRclickQuickPaste(NMHDR *pNMHDR, LRESULT *pResult)
             return ;
         }
 
-        if(pNMHDR == NULL)
-        {
-            int nItem = m_lstHeader.GetCaret();
-            CRect rc;
-            m_lstHeader.GetItemRect(nItem, rc, LVIR_BOUNDS);
-            ClientToScreen(rc);
-            pp.x = rc.left;
-            pp.y = rc.bottom;
-        }
+       /* int nItem = m_lstHeader.GetCaret();
+        CRect rc;
+        m_lstHeader.GetItemRect(nItem, rc, LVIR_BOUNDS);
+        ClientToScreen(rc);
+        pp.x = rc.left;
+        pp.y = rc.bottom;*/
 
         theApp.m_Addins.AddPrePasteAddinsToMenu(cmSubMenu);
         
@@ -1361,8 +1357,6 @@ void CQPasteWnd::OnRclickQuickPaste(NMHDR *pNMHDR, LRESULT *pResult)
 
         cmSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON, pp.x, pp.y, this, NULL);
     }
-
-    *pResult = 0;
 }
 
 void CQPasteWnd::HideMenuGroup(CMenu* menu, CString text)
@@ -2921,8 +2915,7 @@ bool CQPasteWnd::DoActionPrevDescription()
 
 bool CQPasteWnd::DoActionShowMenu()
 {
-	LRESULT lRet;
-	OnRclickQuickPaste(NULL, &lRet);
+	ShowRightClickMenu();
 
 	return true;
 }
@@ -5536,3 +5529,35 @@ void CQPasteWnd::OnUpdateSpecialpasteTypoglycemia(CCmdUI *pCmdUI)
 
 	UpdateMenuShortCut(pCmdUI, ActionEnums::PASTE_TYPOGLYCEMIA);
 }
+
+void CQPasteWnd::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)
+{
+	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
+	//DoAction(ActionEnums::PASTE_SELECTED);
+	*pResult = 0;
+}
+
+
+void CQPasteWnd::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
+{
+	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
+	
+	DoAction(ActionEnums::PASTE_SELECTED);
+
+	*pResult = 0;
+}
+
+
+void CQPasteWnd::OnNMRClickList1(NMHDR *pNMHDR, LRESULT *pResult)
+{
+	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
+	DoAction(ActionEnums::SHOWMENU);
+	*pResult = 0;
+}
+
+void CQPasteWnd::OnNMRDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)
+{
+	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
+	// TODO: Add your control notification handler code here
+	*pResult = 0;
+}

+ 7 - 2
QPasteWnd.h

@@ -263,6 +263,8 @@ public:
 
 	void LoadShortcuts();
 
+	void ShowRightClickMenu();;
+
     // Generated message map functions
 protected:
     //{{AFX_MSG(CQPasteWnd)
@@ -284,7 +286,6 @@ protected:
     afx_msg void OnMenuTransparency40();
     afx_msg void OnMenuTransparency5();
     afx_msg void OnMenuTransparencyNone();
-    afx_msg void OnRclickQuickPaste(NMHDR *pNMHDR, LRESULT *pResult);
     afx_msg void OnMenuDelete();
     afx_msg void OnMenuPositioningAtcaret();
     afx_msg void OnMenuPositioningAtcursor();
@@ -350,7 +351,7 @@ protected:
     afx_msg void OnUpdateMenuDelete(CCmdUI *pCmdUI);
     afx_msg void OnUpdateMenuProperties(CCmdUI *pCmdUI);
     afx_msg void OnDestroy();
-    afx_msg LRESULT OnListSelect(WPARAM wParam, LPARAM lParam);
+    afx_msg LRESULT OnListDblClick(WPARAM wParam, LPARAM lParam);
     afx_msg LRESULT OnListEnd(WPARAM wParam, LPARAM lParam);
     afx_msg LRESULT OnSearch(WPARAM wParam, LPARAM lParam);
     afx_msg LRESULT OnDelete(WPARAM wParam, LPARAM lParam);
@@ -448,4 +449,8 @@ public:
 	afx_msg void OnUpdateSpecialpastePaste32919(CCmdUI *pCmdUI);
 	afx_msg void OnSpecialpasteTypoglycemia();
 	afx_msg void OnUpdateSpecialpasteTypoglycemia(CCmdUI *pCmdUI);
+	afx_msg void OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult);
+	afx_msg void OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult);
+	afx_msg void OnNMRClickList1(NMHDR *pNMHDR, LRESULT *pResult);
+	afx_msg void OnNMRDblclkList1(NMHDR *pNMHDR, LRESULT *pResult);
 };

+ 20 - 4
QuickPasteKeyboard.cpp

@@ -44,6 +44,8 @@ BEGIN_MESSAGE_MAP(CQuickPasteKeyboard, CPropertyPage)
 	ON_CBN_KILLFOCUS(IDC_COMBO_ENTER_MODIFYER, &CQuickPasteKeyboard::OnCbnKillfocusComboEnterModifyer)
 	ON_EN_KILLFOCUS(IDC_HOTKEY1, &CQuickPasteKeyboard::OnEnKillfocusEdit1)
 	ON_WM_KILLFOCUS()
+	ON_BN_CLICKED(IDC_BUTTON_ENTER, &CQuickPasteKeyboard::OnBnClickedButtonEnter)
+	ON_BN_CLICKED(IDC_BUTTON_ENTER2, &CQuickPasteKeyboard::OnBnClickedButtonEnter2)
 END_MESSAGE_MAP()
 
 
@@ -225,7 +227,7 @@ void CQuickPasteKeyboard::OnBnClickedAssign()
 	int row = SelectedCommandRow();
 
 	if (id > 0 &&
-		id < m_map.size() &&
+		id < (int)m_map.size() &&
 		shortCutId >= 0 &&
 		shortCutId < 10)
 	{
@@ -274,7 +276,7 @@ void CQuickPasteKeyboard::OnCbnSelchangeComboAllAssigned()
 	int id = SelectedCommandId();
 
 	if (id > 0 &&
-		id < m_map.size() &&
+		id < (int)m_map.size() &&
 		shortCutId >= 0 &&
 		shortCutId < 10)
 	{
@@ -289,7 +291,7 @@ void CQuickPasteKeyboard::OnBnClickedButtonRemove()
 	int id = SelectedCommandId();
 
 	if (id > 0 &&
-		id < m_map.size() &&
+		id < (int)m_map.size() &&
 		shortCutId >= 0 &&
 		shortCutId < 10)
 	{
@@ -329,7 +331,7 @@ void CQuickPasteKeyboard::OnBnClickedButtonAdd()
 	if (count < 10)
 	{
 		int id = SelectedCommandId();
-		if (id > 0 && id < m_map.size())
+		if (id > 0 && id < (int)m_map.size())
 		{
 			CString shortcut;
 			int pos = m_assignedCombo.AddString(shortcut);
@@ -488,3 +490,17 @@ BOOL CQuickPasteKeyboard::OnCommand(WPARAM wParam, LPARAM lParam)
 
 	return CPropertyPage::OnCommand(wParam, lParam);
 }
+
+
+void CQuickPasteKeyboard::OnBnClickedButtonEnter()
+{
+	DWORD hk = m_hotKey1.GetHotKey();
+	m_hotKey1.SetHotKey(VK_RETURN, (HIBYTE((DWORD)hk)));
+}
+
+
+void CQuickPasteKeyboard::OnBnClickedButtonEnter2()
+{
+	DWORD hk = m_hotKey2.GetHotKey();
+	m_hotKey2.SetHotKey(VK_RETURN, (HIBYTE((DWORD)hk)));
+}

+ 2 - 0
QuickPasteKeyboard.h

@@ -77,4 +77,6 @@ public:
 	virtual BOOL PreTranslateMessage(MSG* pMsg);
 	virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
 	virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
+	afx_msg void OnBnClickedButtonEnter();
+	afx_msg void OnBnClickedButtonEnter2();
 };

+ 4 - 2
Resource.h

@@ -404,7 +404,9 @@
 #define IDC_RADIO_KEYBOARD2             2133
 #define IDC_RADIO_ENTER2                2134
 #define IDC_COMBO_ENTER_MODIFYER2       2135
+#define IDC_BUTTON_ENTER                2135
 #define IDC_RADIO4                      2136
+#define IDC_BUTTON_ENTER2               2137
 #define ID_FIRST_OPTION                 32771
 #define ID_FIRST_EXIT                   32772
 #define ID_FIRST_SHOWQUICKPASTE         32773
@@ -554,9 +556,9 @@
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
-#define _APS_NEXT_RESOURCE_VALUE        250
+#define _APS_NEXT_RESOURCE_VALUE        251
 #define _APS_NEXT_COMMAND_VALUE         32923
-#define _APS_NEXT_CONTROL_VALUE         2133
+#define _APS_NEXT_CONTROL_VALUE         2136
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif

+ 1 - 1
SearchEditBox.cpp

@@ -45,7 +45,7 @@ BOOL CSearchEditBox::PreTranslateMessage(MSG* pMsg)
 				{
 					if(g_Opt.m_bFindAsYouType)
 					{
-						pWnd->SendMessage(NM_SELECT, 0, 0);
+						pWnd->SendMessage(NM_DBL_CLICK, 0, 0);
 					}
 					else
 					{