Sfoglia il codice sorgente

added support for windows key in shortcut keys, short cut key for pasting only text
[SAB]


git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@156 595ec19a-5cb4-439b-94a8-42fb3063c22c

sabrogden 21 anni fa
parent
commit
396ccc01f4
7 ha cambiato i file con 121 aggiunte e 49 eliminazioni
  1. 45 18
      CP_Main.rc
  2. 27 0
      Misc.cpp
  3. 2 2
      Misc.h
  4. 25 25
      OptionsKeyBoard.cpp
  5. 1 2
      ProcessCopy.cpp
  6. 8 1
      QPasteWnd.cpp
  7. 13 1
      Resource.h

+ 45 - 18
CP_Main.rc

@@ -303,7 +303,8 @@ BEGIN
         END
         MENUITEM "View Full Description\tF3",   ID_MENU_VIEWFULLDESCRIPTION
         MENUITEM "View Groups\tCtrl-G",         ID_MENU_VIEWGROUPS
-        MENUITEM "Paste Plain Text Only",       ID_MENU_PASTEPLAINTEXTONLY
+        MENUITEM "Paste Plain Text Only\tShift-Enter", 
+                                                ID_MENU_PASTEPLAINTEXTONLY
         MENUITEM SEPARATOR
         MENUITEM "Delete Entry\tDel",           ID_MENU_DELETE
         MENUITEM SEPARATOR
@@ -435,38 +436,64 @@ BEGIN
                     293,10
 END
 
-IDD_OPTIONS_KEYSTROKES DIALOG DISCARDABLE  0, 0, 302, 206
+IDD_OPTIONS_KEYSTROKES DIALOG DISCARDABLE  0, 0, 350, 206
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "Keyboard Shortcuts"
 FONT 8, "MS Sans Serif"
 BEGIN
     CONTROL         "HotKey1",IDC_HOTKEY,"msctls_hotkey32",WS_BORDER | 
                     WS_TABSTOP,73,13,80,14
+    CONTROL         "Win",IDC_CHECK_WIN_DITTO,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,156,13,33,14
     CONTROL         "HotKey1",IDC_NAMED_COPY,"msctls_hotkey32",WS_BORDER | 
                     WS_TABSTOP,73,29,80,14
-    CONTROL         "Send Paste (Otherwise it will just load the item on the clipboard)",
-                    IDC_CHECK_SEND_PASTE,"Button",BS_AUTOCHECKBOX | 
-                    WS_TABSTOP,19,60,257,13
+    CONTROL         "Win",IDC_CHECK_WIN_NAMED_COPY,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,156,29,33,14
     CONTROL         "HotKey1",IDC_HOTKEY1,"msctls_hotkey32",WS_BORDER | 
                     WS_TABSTOP,66,74,80,14
+    CONTROL         "Win",IDC_CHECK_WIN1,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,146,74,33,14
     CONTROL         "HotKey1",IDC_HOTKEY2,"msctls_hotkey32",WS_BORDER | 
                     WS_TABSTOP,66,89,80,14
+    CONTROL         "Win",IDC_CHECK_WIN2,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,146,89,33,14
     CONTROL         "HotKey1",IDC_HOTKEY3,"msctls_hotkey32",WS_BORDER | 
                     WS_TABSTOP,66,104,80,14
+    CONTROL         "Win",IDC_CHECK_WIN3,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,147,104,33,14
     CONTROL         "HotKey1",IDC_HOTKEY4,"msctls_hotkey32",WS_BORDER | 
                     WS_TABSTOP,66,119,80,14
+    CONTROL         "Win",IDC_CHECK_WIN4,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,146,119,33,14
     CONTROL         "HotKey1",IDC_HOTKEY5,"msctls_hotkey32",WS_BORDER | 
                     WS_TABSTOP,66,134,80,14
+    CONTROL         "Win",IDC_CHECK_WIN5,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,146,134,33,14
     CONTROL         "HotKey1",IDC_HOTKEY6,"msctls_hotkey32",WS_BORDER | 
-                    WS_TABSTOP,203,74,80,14
+                    WS_TABSTOP,229,74,80,14
+    CONTROL         "Win",IDC_CHECK_WIN6,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,309,74,27,14
     CONTROL         "HotKey1",IDC_HOTKEY7,"msctls_hotkey32",WS_BORDER | 
-                    WS_TABSTOP,203,89,80,14
+                    WS_TABSTOP,229,89,80,14
+    CONTROL         "Win",IDC_CHECK_WIN7,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,309,89,26,14
     CONTROL         "HotKey1",IDC_HOTKEY8,"msctls_hotkey32",WS_BORDER | 
-                    WS_TABSTOP,203,104,80,14
+                    WS_TABSTOP,229,104,80,14
+    CONTROL         "Win",IDC_CHECK_WIN8,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,310,104,26,14
     CONTROL         "HotKey1",IDC_HOTKEY9,"msctls_hotkey32",WS_BORDER | 
-                    WS_TABSTOP,203,119,80,14
+                    WS_TABSTOP,229,119,80,14
+    CONTROL         "Win",IDC_CHECK_WIN9,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,309,119,27,14
     CONTROL         "HotKey1",IDC_HOTKEY10,"msctls_hotkey32",WS_BORDER | 
-                    WS_TABSTOP,203,134,80,14
+                    WS_TABSTOP,229,134,80,14
+    CONTROL         "Win",IDC_CHECK_WIN10,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,309,134,27,14
+    GROUPBOX        "Global Hot Keys for Last Ten Items Copied",IDC_STATIC,7,
+                    49,336,106
+    CONTROL         "Send Paste (Otherwise it will just load the item on the clipboard)",
+                    IDC_CHECK_SEND_PASTE,"Button",BS_AUTOCHECKBOX | 
+                    WS_TABSTOP,19,60,257,13
     LTEXT           "Activate Ditto",IDC_STATIC,19,16,44,8
     LTEXT           "Named Copy",IDC_STATIC,19,34,42,8
     LTEXT           "Position 1",IDC_STATIC,19,74,32,14,SS_CENTERIMAGE
@@ -474,13 +501,13 @@ BEGIN
     LTEXT           "Position 3",IDC_STATIC,19,104,32,14,SS_CENTERIMAGE
     LTEXT           "Position 4",IDC_STATIC,19,119,32,14,SS_CENTERIMAGE
     LTEXT           "Position 5",IDC_STATIC,19,134,32,14,SS_CENTERIMAGE
-    LTEXT           "Position 6",IDC_STATIC,158,74,32,14,SS_CENTERIMAGE
-    LTEXT           "Position 7",IDC_STATIC,158,89,32,14,SS_CENTERIMAGE
-    LTEXT           "Position 8",IDC_STATIC,158,104,32,14,SS_CENTERIMAGE
-    LTEXT           "Position 9",IDC_STATIC,158,119,32,14,SS_CENTERIMAGE
-    LTEXT           "Position 10",IDC_STATIC,158,134,36,14,SS_CENTERIMAGE
-    GROUPBOX        "Global Hot Keys for Last Ten Items Copied",IDC_STATIC,7,
-                    49,288,106
+    LTEXT           "Position 6",IDC_STATIC,184,74,32,14,SS_CENTERIMAGE
+    LTEXT           "Position 7",IDC_STATIC,184,89,32,14,SS_CENTERIMAGE
+    LTEXT           "Position 8",IDC_STATIC,184,104,32,14,SS_CENTERIMAGE
+    LTEXT           "Position 9",IDC_STATIC,184,119,32,14,SS_CENTERIMAGE
+    LTEXT           "Position 10",IDC_STATIC,184,134,36,14,SS_CENTERIMAGE
+    LTEXT           "Check the ""Win"" Button to include the windows keyboard key in your hot key.",
+                    IDC_STATIC,7,159,336,25
 END
 
 IDD_OPTIONS_GENERAL DIALOG DISCARDABLE  0, 0, 294, 199
@@ -786,7 +813,7 @@ BEGIN
     IDD_OPTIONS_KEYSTROKES, DIALOG
     BEGIN
         LEFTMARGIN, 7
-        RIGHTMARGIN, 295
+        RIGHTMARGIN, 343
         TOPMARGIN, 7
         BOTTOMMARGIN, 199
     END

+ 27 - 0
Misc.cpp

@@ -1325,6 +1325,33 @@ BOOL CHotKey::ValidateHotKey(DWORD dwHotKey)
 	return bResult;
 }
 
+void CHotKey::CopyFromCtrl(CHotKeyCtrl& ctrl, HWND hParent, int nWindowsCBID) 
+{ 
+	long lHotKey = ctrl.GetHotKey();
+
+	short sKeyKode = LOBYTE(lHotKey);
+	short sModifers = HIBYTE(lHotKey);
+
+	if(lHotKey && ::IsDlgButtonChecked(hParent, nWindowsCBID))
+	{
+		sModifers |= HOTKEYF_EXT;
+	}
+
+	SetKey(MAKEWORD(sKeyKode, sModifers)); 
+}
+
+void CHotKey::CopyToCtrl(CHotKeyCtrl& ctrl, HWND hParent, int nWindowsCBID)
+{
+	long lModifiers = HIBYTE(m_Key);
+
+	ctrl.SetHotKey(LOBYTE(m_Key), lModifiers); 
+
+	if(lModifiers & HOTKEYF_EXT)
+	{
+		::CheckDlgButton(hParent, nWindowsCBID, BST_CHECKED);
+	}
+}
+
 UINT CHotKey::GetModifier(DWORD dwHotKey)
 {
 	UINT uMod = 0;

+ 2 - 2
Misc.h

@@ -366,8 +366,8 @@ public:
 	void LoadKey();
 	bool SaveKey();
 
-	void CopyFromCtrl( CHotKeyCtrl& ctrl ) { SetKey( ctrl.GetHotKey() ); }
-	void CopyToCtrl( CHotKeyCtrl& ctrl )   { ctrl.SetHotKey(LOBYTE(m_Key),HIBYTE(m_Key)); }
+	void CopyFromCtrl(CHotKeyCtrl& ctrl, HWND hParent, int nWindowsCBID);
+	void CopyToCtrl(CHotKeyCtrl& ctrl, HWND hParent, int nWindowsCBID);
 
 //	CString GetKeyAsText();
 //	void SetKeyFromText( CString text );

+ 25 - 25
OptionsKeyBoard.cpp

@@ -60,19 +60,19 @@ BOOL COptionsKeyBoard::OnInitDialog()
 
 	m_pParent = (COptionsSheet *)GetParent();
 
-	theApp.m_pDittoHotKey->CopyToCtrl( m_HotKey );
-	theApp.m_pCopyHotKey->CopyToCtrl( m_NamedCopy );
-
-	theApp.m_pPosOne->CopyToCtrl( m_One );
-	theApp.m_pPosTwo->CopyToCtrl( m_Two );
-	theApp.m_pPosThree->CopyToCtrl( m_Three );
-	theApp.m_pPosFour->CopyToCtrl( m_Four );
-	theApp.m_pPosFive->CopyToCtrl( m_Five );
-	theApp.m_pPosSix->CopyToCtrl( m_Six );
-	theApp.m_pPosSeven->CopyToCtrl( m_Seven );
-	theApp.m_pPosEight->CopyToCtrl( m_Eight );
-	theApp.m_pPosNine->CopyToCtrl( m_Nine );
-	theApp.m_pPosTen->CopyToCtrl( m_Ten );
+	theApp.m_pDittoHotKey->CopyToCtrl(m_HotKey, m_hWnd, IDC_CHECK_WIN_DITTO);
+	theApp.m_pCopyHotKey->CopyToCtrl(m_NamedCopy, m_hWnd, IDC_CHECK_WIN_NAMED_COPY);
+
+	theApp.m_pPosOne->CopyToCtrl(m_One, m_hWnd, IDC_CHECK_WIN1);
+	theApp.m_pPosTwo->CopyToCtrl(m_Two, m_hWnd, IDC_CHECK_WIN2);
+	theApp.m_pPosThree->CopyToCtrl(m_Three, m_hWnd, IDC_CHECK_WIN3);
+	theApp.m_pPosFour->CopyToCtrl(m_Four, m_hWnd, IDC_CHECK_WIN4);
+	theApp.m_pPosFive->CopyToCtrl(m_Five, m_hWnd, IDC_CHECK_WIN5);
+	theApp.m_pPosSix->CopyToCtrl(m_Six, m_hWnd, IDC_CHECK_WIN6);
+	theApp.m_pPosSeven->CopyToCtrl(m_Seven, m_hWnd, IDC_CHECK_WIN7);
+	theApp.m_pPosEight->CopyToCtrl(m_Eight, m_hWnd, IDC_CHECK_WIN8);
+	theApp.m_pPosNine->CopyToCtrl(m_Nine, m_hWnd, IDC_CHECK_WIN9);
+	theApp.m_pPosTen->CopyToCtrl(m_Ten, m_hWnd, IDC_CHECK_WIN10);
 
 	//Unregister hotkeys and Reregister them on cancel or ok
 	g_HotKeys.UnregisterAll();
@@ -104,19 +104,19 @@ BOOL COptionsKeyBoard::OnApply()
 	
 	g_HotKeys.GetKeys( keys ); // save old keys just in case new ones are invalid
 	
-	theApp.m_pDittoHotKey->CopyFromCtrl(m_HotKey);
-	theApp.m_pCopyHotKey->CopyFromCtrl(m_NamedCopy);
+	theApp.m_pDittoHotKey->CopyFromCtrl(m_HotKey, m_hWnd, IDC_CHECK_WIN_DITTO);
+	theApp.m_pCopyHotKey->CopyFromCtrl(m_NamedCopy, m_hWnd, IDC_CHECK_WIN_NAMED_COPY);
 	
-	theApp.m_pPosOne->CopyFromCtrl(m_One);
-	theApp.m_pPosTwo->CopyFromCtrl(m_Two);
-	theApp.m_pPosThree->CopyFromCtrl(m_Three);
-	theApp.m_pPosFour->CopyFromCtrl(m_Four);
-	theApp.m_pPosFive->CopyFromCtrl(m_Five);
-	theApp.m_pPosSix->CopyFromCtrl(m_Six);
-	theApp.m_pPosSeven->CopyFromCtrl(m_Seven);
-	theApp.m_pPosEight->CopyFromCtrl(m_Eight);
-	theApp.m_pPosNine->CopyFromCtrl(m_Nine);
-	theApp.m_pPosTen->CopyFromCtrl(m_Ten);
+	theApp.m_pPosOne->CopyFromCtrl(m_One, m_hWnd, IDC_CHECK_WIN1);
+	theApp.m_pPosTwo->CopyFromCtrl(m_Two, m_hWnd, IDC_CHECK_WIN2);
+	theApp.m_pPosThree->CopyFromCtrl(m_Three, m_hWnd, IDC_CHECK_WIN3);
+	theApp.m_pPosFour->CopyFromCtrl(m_Four, m_hWnd, IDC_CHECK_WIN4);
+	theApp.m_pPosFive->CopyFromCtrl(m_Five, m_hWnd, IDC_CHECK_WIN5);
+	theApp.m_pPosSix->CopyFromCtrl(m_Six, m_hWnd, IDC_CHECK_WIN6);
+	theApp.m_pPosSeven->CopyFromCtrl(m_Seven, m_hWnd, IDC_CHECK_WIN7);
+	theApp.m_pPosEight->CopyFromCtrl(m_Eight, m_hWnd, IDC_CHECK_WIN8);
+	theApp.m_pPosNine->CopyFromCtrl(m_Nine, m_hWnd, IDC_CHECK_WIN9);
+	theApp.m_pPosTen->CopyFromCtrl(m_Ten, m_hWnd, IDC_CHECK_WIN10);
 
 	ARRAY NewKeys;
 	g_HotKeys.GetKeys(NewKeys);

+ 1 - 2
ProcessCopy.cpp

@@ -681,7 +681,6 @@ bool CClip::LoadFormats( long lID, CClipFormats& formats, bool bOnlyLoad_CF_TEXT
 	
 	try
 	{
-		BOOL bShiftIsDown = ((GetKeyState(VK_SHIFT) & 0x8000) || bOnlyLoad_CF_TEXT);
 		CDataTable recset;
 		
 		//Open the data table for all that have the parent id
@@ -697,7 +696,7 @@ bool CClip::LoadFormats( long lID, CClipFormats& formats, bool bOnlyLoad_CF_TEXT
 		{
 			cf.m_cfType = GetFormatID( recset.m_strClipBoardFormat );
 			
-			if(bShiftIsDown)
+			if(bOnlyLoad_CF_TEXT)
 			{
 				if(cf.m_cfType != CF_TEXT)
 				{

+ 8 - 1
QPasteWnd.cpp

@@ -434,7 +434,14 @@ BOOL CQPasteWnd::OpenID(long lID, bool bOnlyLoad_CF_TEXT)
 {
 	if( theApp.EnterGroupID(lID) )
 		return TRUE;
-	
+
+	if(GetKeyState(VK_SHIFT) & 0x8000)
+	{
+		bOnlyLoad_CF_TEXT = true;
+		keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
+		//Sleep(300);
+	}
+
 	// else, it is a clip, so paste it
 	CProcessPaste paste;
 	paste.m_bOnlyPaste_CF_TEXT = bOnlyLoad_CF_TEXT;

+ 13 - 1
Resource.h

@@ -138,6 +138,18 @@
 #define IDC_HOTKEY10                    2033
 #define IDC_EDIT_PLAY_SOUND             2033
 #define IDC_BUTTON_PLAY                 2034
+#define IDC_CHECK_WIN_DITTO             2035
+#define IDC_CHECK_WIN_NAMED_COPY        2036
+#define IDC_CHECK_WIN6                  2037
+#define IDC_CHECK_WIN7                  2038
+#define IDC_CHECK_WIN8                  2039
+#define IDC_CHECK_WIN9                  2040
+#define IDC_CHECK_WIN10                 2041
+#define IDC_CHECK_WIN1                  2042
+#define IDC_CHECK_WIN2                  2043
+#define IDC_CHECK_WIN3                  2044
+#define IDC_CHECK_WIN4                  2045
+#define IDC_CHECK_WIN5                  2046
 #define ID_FIRST_OPTION                 32771
 #define ID_FIRST_EXIT                   32772
 #define ID_FIRST_SHOWQUICKPASTE         32773
@@ -218,7 +230,7 @@
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        157
 #define _APS_NEXT_COMMAND_VALUE         32847
-#define _APS_NEXT_CONTROL_VALUE         2035
+#define _APS_NEXT_CONTROL_VALUE         2036
 #define _APS_NEXT_SYMED_VALUE           101
 #endif
 #endif