浏览代码

added options to delete clip data screen to view data, properties and save to file

Scott Brogden 1 月之前
父节点
当前提交
5d7aa3a87a

+ 4 - 0
Addins/DittoUtil/DittoUtil.vcxproj.user

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup />
+</Project>

+ 11 - 1
CP_Main.rc

@@ -469,6 +469,16 @@ BEGIN
     END
 END
 
+IDR_MENU_DELETE_CLIP_DATA MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "View Full Description\tF3",   ID__VIEWFULLDESCRIPTION
+        MENUITEM "Save To File",                ID__SAVETOFILE
+        MENUITEM "Properties\tAlt + Enter",     ID__PROPERTIES
+    END
+END
+
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -1057,7 +1067,7 @@ BEGIN
     CONTROL         "ChaiScript (http://chaiscript.com/)",IDC_MFCLINK_CHAISCRIPT,
                     "MfcLink",WS_TABSTOP,142,54,180,18
     CONTROL         "Examples",IDC_MFCLINK2_EXAMPLES,"MfcLink",WS_TABSTOP,341,54,60,18
-    CONTROL         "",IDC_RICHEDIT21,"RichEdit20W",ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,100,72,326,99
+    CONTROL         "",IDC_RICHEDIT21,"RichEdit20W",WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP | 0x10c4,100,72,326,99
     EDITTEXT        IDC_EDIT_ACTIVE_APP,371,196,55,14,ES_AUTOHSCROLL
     EDITTEXT        IDC_EDIT_ACTIVE_APP_TITLE,371,213,55,14,ES_AUTOHSCROLL
 END

+ 0 - 1
CP_Main.vcxproj

@@ -904,7 +904,6 @@
     <ClInclude Include="src\RecieveFile.h" />
     <ClInclude Include="src\RecieveSocket.h" />
     <ClInclude Include="src\RegExFilterHelper.h" />
-    <ClInclude Include="src\Resource.h" />
     <ClInclude Include="src\RichEditCtrlEx.h" />
     <ClInclude Include="src\RichTextAggregator.h" />
     <ClInclude Include="src\SaveAnimation.h" />

+ 0 - 3
CP_Main.vcxproj.filters

@@ -789,9 +789,6 @@
     <ClInclude Include="src\RegExFilterHelper.h">
       <Filter>src</Filter>
     </ClInclude>
-    <ClInclude Include="src\Resource.h">
-      <Filter>src</Filter>
-    </ClInclude>
     <ClInclude Include="src\RichEditCtrlEx.h">
       <Filter>src</Filter>
     </ClInclude>

+ 2 - 0
Shared/IClip.h

@@ -1,6 +1,7 @@
 #pragma once
 
 #include "DittoDefines.h"
+#include <gdiplus.h>
 
 //Contains the actual data of a clip format
 // Type is the type of clipboard format
@@ -17,6 +18,7 @@ public:
 	virtual void Free() = 0;
 	virtual CStringA GetAsCStringA() = 0;
 	virtual CString GetAsCString() = 0;
+	virtual Gdiplus::Bitmap* CreateGdiplusBitmap() = 0;
 };
 
 //Contains a list of IClipFormats

+ 8 - 2
resource.h

@@ -240,6 +240,9 @@
 #define IDR_MENU_NO_DB                  387
 #define IDI_ICON3                       388
 #define IDI_MAINFRAME_NO_DB             388
+#define IDR_MENU2                       390
+#define IDR_MENU_DELETE_CLIP_DATA       390
+#define IDR_MENU3                       391
 #define IDC_PATH                        1000
 #define IDC_GET_PATH                    1001
 #define IDC_SELECT_SOUND                1002
@@ -835,14 +838,17 @@
 #define ID_SPECIALPASTE_MULTIPLEIMAGES  32977
 #define ID_SPECIALPASTE_MULTIPLEIMAGESVERTICALLY 32978
 #define ID_SPECIALPASTE_ASCIITEXTONLY   32979
+#define ID__VIEWFULLDESCRIPTION         32980
+#define ID__SAVETOFILE                  32981
+#define ID__PROPERTIES                  32982
 
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
-#define _APS_NEXT_RESOURCE_VALUE        390
-#define _APS_NEXT_COMMAND_VALUE         32980
+#define _APS_NEXT_RESOURCE_VALUE        392
+#define _APS_NEXT_COMMAND_VALUE         32983
 #define _APS_NEXT_CONTROL_VALUE         2173
 #define _APS_NEXT_SYMED_VALUE           104
 #endif

+ 1 - 1
src/CP_Main.h

@@ -4,7 +4,7 @@
 #error include 'stdafx.h' before including this file for PCH
 #endif
 
-#include "resource.h"       // main symbols
+#include "../resource.h"       // main symbols
 #include "Clip.h"
 #include "DatabaseUtilities.h"
 #include "Misc.h"

+ 10 - 2
src/Clip.cpp

@@ -1591,7 +1591,7 @@ HGLOBAL CClip::LoadFormat(int id, UINT cfType)
 	return hGlobal;
 }
 
-bool CClip::LoadFormats(int id, bool bOnlyLoad_CF_TEXT, bool includeRichTextForTextOnly)
+bool CClip::LoadFormats(int id, bool bOnlyLoad_CF_TEXT, bool includeRichTextForTextOnly, int dataId)
 {
 	DWORD startTick = GetTickCount();
 	CClipFormat cf;
@@ -1621,9 +1621,17 @@ bool CClip::LoadFormats(int id, bool bOnlyLoad_CF_TEXT, bool includeRichTextForT
 			}
 		}
 
+		CString dataIdFilter = _T("");
+		if (dataId >= 0)
+		{
+			dataIdFilter.Format(_T("AND lID = %d "), dataId);
+
+
+		}
+
 		csSQL.Format(
 			_T("SELECT lID, lParentID, strClipBoardFormat, ooData FROM Data ")
-			_T("WHERE %s lParentID = %d ORDER BY Data.lID desc"), textFilter, id);
+			_T("WHERE %s lParentID = %d %s ORDER BY Data.lID desc"), textFilter, id, dataIdFilter);
 
 		CppSQLite3Query q = theApp.m_db.execQuery(csSQL);
 

+ 1 - 1
src/Clip.h

@@ -202,7 +202,7 @@ public:
 	// Allocates a Global containing the requested Clip's Format Data
 	static HGLOBAL LoadFormat(int id, UINT cfType);
 	// Fills "formats" with the Data of all Formats in the db for the given Clip ID
-	bool LoadFormats(int id, bool bOnlyLoad_CF_TEXT = false, bool includeRichTextForTextOnly = false);
+	bool LoadFormats(int id, bool bOnlyLoad_CF_TEXT = false, bool includeRichTextForTextOnly = false, int dataId = -1);
 	// Fills "types" with all Types in the db for the given Clip ID
 	static void LoadTypes(int id, CClipTypes& types);
 

+ 322 - 33
src/DeleteClipData.cpp

@@ -8,7 +8,10 @@
 #include "Misc.h"
 #include "ProgressWnd.h"
 #include <algorithm>
-
+#include "../Shared/TextConvert.h"
+#include "../resource.h"
+#include "CopyProperties.h"
+#include "DimWnd.h"
 
 // CDeleteClipData dialog
 
@@ -16,6 +19,7 @@ IMPLEMENT_DYNAMIC(CDeleteClipData, CDialog)
 
 CDeleteClipData::CDeleteClipData(CWnd* pParent /*=NULL*/)
 	: CDialog(CDeleteClipData::IDD, pParent)
+	, m_pDescriptionWindow(NULL)
 	, m_clipTitle(_T(""))
 	, m_filterByClipTitle(FALSE)
 	, m_filterByCreatedDate(FALSE)
@@ -84,6 +88,7 @@ BEGIN_MESSAGE_MAP(CDeleteClipData, CDialog)
 	ON_BN_CLICKED(IDC_CHECK_DATA_FORMAT, &CDeleteClipData::OnBnClickedCheckDataFormat)
 	ON_NOTIFY(HDN_ITEMCLICK, 0, &CDeleteClipData::OnLvnColumnclickList2)
 
+	ON_WM_CONTEXTMENU()
 END_MESSAGE_MAP()
 
 BOOL CDeleteClipData::OnInitDialog()
@@ -184,38 +189,6 @@ void CDeleteClipData::LoadItems()
 	m_List.SetItemCountEx(row, 0);
 }
 
-//void CDeleteClipData::AddRow(CppSQLite3Query& q, int row)
-//{
-//	LVITEM lvi;
-//
-//	lvi.mask = LVIF_TEXT;
-//	lvi.iItem = row;	
-//
-//	lvi.iSubItem = 0;
-//	lvi.pszText = (LPTSTR) (LPCTSTR) (q.getStringField(_T("mText")));
-//	m_List.InsertItem(&lvi);
-//
-//	CTime created = q.getIntField(_T("lDate"));
-//	COleDateTime dtTime(created.GetTime());
-//	
-//	CTime pasted = q.getIntField(_T("lastPasteDate"));
-//	COleDateTime dtPastedTime(pasted.GetTime());
-//
-//	m_List.SetItemText(row, 1, dtTime.Format());
-//	m_List.SetItemText(row, 2, dtPastedTime.Format());
-//	m_List.SetItemText(row, 3, q.getStringField(_T("strClipBoardFormat")));
-//
-//	int dataLength = q.getIntField(_T("DataLength"));
-//
-//	const int MAX_FILE_SIZE_BUFFER = 255;
-//	TCHAR szFileSize[MAX_FILE_SIZE_BUFFER];
-//	StrFormatByteSize(dataLength, szFileSize, MAX_FILE_SIZE_BUFFER);
-//
-//	m_List.SetItemText(row, 4, szFileSize);
-//
-//	m_List.SetItemData(row, ));
-//}
-
 void CDeleteClipData::SetNotifyWnd(HWND hWnd)
 {
 	m_hWndParent = hWnd;
@@ -227,6 +200,9 @@ void CDeleteClipData::OnClose()
 	{
 		return;
 	}
+
+	m_pDescriptionWindow->CloseWindow();
+	m_pDescriptionWindow->DestroyWindow();
 	DestroyWindow();
 }
 
@@ -404,6 +380,7 @@ void CDeleteClipData::OnLvnItemchangedList2(NMHDR *pNMHDR, LRESULT *pResult)
 	POSITION pos = m_List.GetFirstSelectedItemPosition();
 	__int64 selectedDataSize = 0;
 	int selectedCount = 0;
+	bool setDescriptionWindowText = false;
 
 	if (pos != NULL)
 	{
@@ -415,6 +392,22 @@ void CDeleteClipData::OnLvnItemchangedList2(NMHDR *pNMHDR, LRESULT *pResult)
 			{
 				selectedDataSize += m_data[row].m_dataSize;
 				selectedCount++;
+
+				if (setDescriptionWindowText == false &&
+					m_pDescriptionWindow != NULL && 
+					m_pDescriptionWindow->IsWindowVisible())
+				{
+					SetDescriptionWindowText(row);
+
+					CRect r;
+					m_pDescriptionWindow->GetWindowRectEx(r);
+					CPoint pt;
+					pt = r.TopLeft();
+
+					m_pDescriptionWindow->Show(pt);
+
+					setDescriptionWindowText = true;
+				}
 			}
 		}
 	}
@@ -807,7 +800,303 @@ BOOL CDeleteClipData::PreTranslateMessage(MSG* pMsg)
 			FilterItems();
 			return TRUE;                // Do not process further
 		}
+		else if (pMsg->wParam == VK_ESCAPE)
+		{
+			if (m_pDescriptionWindow != NULL)
+			{
+				m_pDescriptionWindow->Hide();
+				return TRUE;
+			}
+		}
+		else if (pMsg->wParam == VK_F3)
+		{
+			CreateAndShowDescriptionWindow();
+		}
+		else if (pMsg->wParam == 'N')
+		{
+			int nSelItem = m_List.GetNextItem(-1, LVNI_SELECTED);
+			if (nSelItem != -1 && nSelItem < m_List.GetItemCount() - 1)
+			{
+				SelectRow(nSelItem + 1);
+				CreateAndShowDescriptionWindow();				
+			}
+			return TRUE;
+		}
+		else if (pMsg->wParam == 'P')
+		{
+			int nSelItem = m_List.GetNextItem(-1, LVNI_SELECTED);
+			if (nSelItem != -1 && nSelItem > 0)
+			{
+				SelectRow(nSelItem - 1);
+				CreateAndShowDescriptionWindow();
+			}
+			return TRUE;
+		}
 	}
 
 	return CDialog::PreTranslateMessage(pMsg);
 }
+
+void CDeleteClipData::SelectRow(int selectedRow)
+{
+	RemoveAllSelection();
+	SetCaret(selectedRow);
+	SetSelection(selectedRow);
+	ListView_SetSelectionMark(m_List.GetSafeHwnd(), selectedRow);
+	m_List.EnsureVisible(selectedRow, FALSE);
+}
+
+void CDeleteClipData::RemoveAllSelection()
+{
+	POSITION pos = m_List.GetFirstSelectedItemPosition();
+	while (pos)
+	{
+		SetSelection(m_List.GetNextSelectedItem(pos), FALSE);
+	}
+}
+
+BOOL CDeleteClipData::SetCaret(int nRow, BOOL bFocus)
+{
+	if (bFocus)
+		return m_List.SetItemState(nRow, LVIS_FOCUSED, LVIS_FOCUSED);
+	else
+		return m_List.SetItemState(nRow, ~LVIS_FOCUSED, LVIS_FOCUSED);
+}
+
+BOOL CDeleteClipData::SetSelection(int nRow, BOOL bSelect)
+{
+	if (bSelect)
+		return m_List.SetItemState(nRow, LVIS_SELECTED, LVIS_SELECTED);
+	else
+		return m_List.SetItemState(nRow, ~LVIS_SELECTED, LVIS_SELECTED);
+}
+
+void CDeleteClipData::CreateAndShowDescriptionWindow()
+{
+	if (m_pDescriptionWindow == NULL)
+	{
+		m_pDescriptionWindow = new CToolTipEx;
+		m_pDescriptionWindow->Create(this);
+		m_pDescriptionWindow->SetNotifyWnd(GetParent());
+	}
+
+	POSITION pos = m_List.GetFirstSelectedItemPosition();
+	if (pos != NULL)
+	{
+		INT_PTR row = m_List.GetNextSelectedItem(pos);
+		if (row >= 0 && row < (INT_PTR)m_data.size())
+		{
+			SetDescriptionWindowText(row);
+			m_pDescriptionWindow->SetToolTipText(m_data[row].m_Desc);
+
+			CRect rc;
+			this->GetWindowRect(rc);
+
+			CPoint pt;
+			pt = CPoint(rc.right, rc.top);
+
+			m_pDescriptionWindow->Show(pt);
+		}
+	}
+}
+
+void CDeleteClipData::SetDescriptionWindowText(INT_PTR row)
+{
+	m_pDescriptionWindow->SetGdiplusBitmap(NULL);
+	m_pDescriptionWindow->SetRTFText("");
+	m_pDescriptionWindow->SetToolTipText(_T(""));
+	m_pDescriptionWindow->SetFolderPath(_T(""));
+
+	CClip selectedClip;
+	selectedClip.LoadFormats(m_data[row].m_lID, false, false, m_data[row].m_DatalID);
+
+	IClipFormat* format = selectedClip.Clips()->FindFormatEx(CF_UNICODETEXT);
+	if (format != NULL)
+	{
+		m_pDescriptionWindow->SetToolTipText(format->GetAsCString());
+	}
+	
+	if (format == NULL)
+	{
+		format = selectedClip.Clips()->FindFormatEx(CF_TEXT);
+		if (format != NULL)
+		{
+			CString cs(format->GetAsCStringA());
+			m_pDescriptionWindow->SetToolTipText(cs);
+		}
+	}
+
+	if (format == NULL)
+	{
+		IClipFormat* format = selectedClip.Clips()->FindFormatEx(GetFormatID(CF_RTF));
+		if (format != NULL)
+		{
+			m_pDescriptionWindow->SetRTFText(format->GetAsCStringA());
+		}
+	}
+
+	if (format == NULL)
+	{
+		IClipFormat* format = selectedClip.Clips()->FindFormatEx(GetFormatID(_T("HTML Format")));
+		if (format != NULL)
+		{
+			CString html = CTextConvert::Utf8ToUnicode(format->GetAsCStringA());
+			m_pDescriptionWindow->SetHtmlText(html);
+		}
+	}
+
+	if (format == NULL)
+	{
+		IClipFormat* format = selectedClip.Clips()->FindFormatEx(CF_DIB);
+		if (format != NULL)
+		{
+			m_pDescriptionWindow->SetGdiplusBitmap(format->CreateGdiplusBitmap());
+		}
+	}
+
+	if (format == NULL)
+	{
+		IClipFormat* format = selectedClip.Clips()->FindFormatEx(theApp.m_PNG_Format);
+		if (format != NULL)
+		{
+			m_pDescriptionWindow->SetGdiplusBitmap(format->CreateGdiplusBitmap());
+		}
+	}
+}
+
+void CDeleteClipData::OnContextMenu(CWnd* pWnd, CPoint point)
+{
+	//ClientToScreen(&point); // Convert client coordinates to screen coordinates
+
+	CMenu menu;
+	menu.LoadMenu(IDR_MENU_DELETE_CLIP_DATA); // Load your context menu from resource
+
+	CMenu* pContextMenu = menu.GetSubMenu(0); // Get the first submenu
+
+	if (pContextMenu != NULL)
+	{
+		int nID = pContextMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD, point.x, point.y, this);
+
+		// Handle the selected menu item
+		switch (nID)
+		{
+		case ID__VIEWFULLDESCRIPTION:
+			CreateAndShowDescriptionWindow();
+			break;
+		case ID__SAVETOFILE:
+		{
+			int row = m_List.GetNextItem(-1, LVNI_SELECTED);
+			if (row >= 0 && row < (INT_PTR)m_data.size())
+			{
+				SaveClipDataItemToFile(m_data[row]);
+			}
+		}
+		break;
+			// ...
+		case ID__PROPERTIES:
+		{
+			int row = m_List.GetNextItem(-1, LVNI_SELECTED);
+			if (row >= 0 && row < (INT_PTR)m_data.size())
+			{
+				CDimWnd dimmer(this);
+
+				CCopyProperties props(m_data[row].m_lID, this);
+				INT_PTR doModalRet = props.DoModal();
+			}
+		}
+		break;
+		}
+	}
+}
+
+void CDeleteClipData::SaveClipDataItemToFile(CDeleteData item)
+{
+	bool ret = false;
+
+	CString extension = _T("");
+	CString filter = _T("");
+
+	if (item.m_clipboardFormat == _T("PNG"))
+	{
+		extension = _T("png");
+		filter = _T("PNG Files (*.png)\0*.png\0\0");
+	}
+	else if (item.m_clipboardFormat == _T("CF_DIB"))
+	{
+		extension = _T(".bmp");
+		filter = _T("Bitmap Files (*.bmp)\0*.bmp\0\0");
+	}		
+	else if (item.m_clipboardFormat == _T("CF_UNICODETEXT") || item.m_clipboardFormat == _T("CF_TEXT"))
+	{
+		extension = _T(".txt");
+		filter = _T("Text Files (*.txt)\0*.txt\0\0");
+	}
+	else if (item.m_clipboardFormat == _T("Rich Text Format"))
+	{
+		extension = _T(".rtf");
+		filter = _T("Rich Text Files (*.rtf)\0*.rtf\0\0");
+	}
+	else
+	{
+		return;
+	}
+
+	OPENFILENAME ofn;
+	TCHAR szFile[400];
+	TCHAR szDir[400];
+
+	memset(&szFile, 0, sizeof(szFile));
+	memset(szDir, 0, sizeof(szDir));
+	memset(&ofn, 0, sizeof(ofn));
+
+	CString csInitialDir = CGetSetOptions::GetLastImportDir();
+	STRCPY(szDir, csInitialDir);
+
+	ofn.lStructSize = sizeof(OPENFILENAME);
+	ofn.hwndOwner = m_hWnd;
+	ofn.lpstrFile = szFile;
+	ofn.nMaxFile = sizeof(szFile);
+	CString x = _T("Exported Ditto Clips (.txt)\0*.txt\0\0");
+	ofn.lpstrFilter = filter;
+	ofn.nFilterIndex = 1;
+	ofn.lpstrFileTitle = NULL;
+	ofn.nMaxFileTitle = 0;
+	ofn.lpstrInitialDir = szDir;
+	ofn.lpstrDefExt = extension;
+	ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR;
+
+	if (GetSaveFileName(&ofn))
+	{
+		using namespace nsPath;
+		CString startingFilePath = ofn.lpstrFile;
+		CPath path(ofn.lpstrFile);
+		CString csPath = path.GetPath();
+		CString csExt = path.GetExtension();
+		path.RemoveExtension();
+		CString csFileName = path.GetName();
+
+		CClip selectedClip;
+		selectedClip.LoadFormats(item.m_lID, false, false, item.m_DatalID);
+
+		if (item.m_clipboardFormat == _T("PNG"))
+		{
+			selectedClip.WriteImageToFile(ofn.lpstrFile);
+		}
+		else if (item.m_clipboardFormat == _T("CF_DIB"))
+		{
+			selectedClip.WriteImageToFile(ofn.lpstrFile);
+		}
+		else if (item.m_clipboardFormat == _T("CF_UNICODETEXT"))
+		{
+			selectedClip.WriteTextToFile(ofn.lpstrFile, TRUE, FALSE, FALSE);
+		}
+		else if (item.m_clipboardFormat == _T("CF_TEXT"))
+		{
+			selectedClip.WriteTextToFile(ofn.lpstrFile, FALSE, TRUE, FALSE);
+		}
+		else if (item.m_clipboardFormat == _T("Rich Text Format"))
+		{
+			selectedClip.WriteTextToFile(ofn.lpstrFile, FALSE, FALSE, TRUE);
+		}
+	}
+}

+ 11 - 1
src/DeleteClipData.h

@@ -59,6 +59,8 @@ protected:
 	bool m_applyingDelete;
 	bool m_cancelDelete;
 
+	CToolTipEx* m_pDescriptionWindow;
+
 
 	void InitListCtrlCols();
 	virtual BOOL OnInitDialog();
@@ -72,6 +74,13 @@ protected:
 	void FilterItems();
 	bool MatchesFilter(CDeleteData *pdata);
 	void ApplyDelete();
+	void RemoveAllSelection();
+	BOOL SetCaret(int nRow, BOOL bFocus = 1);
+	BOOL SetSelection(int nRow, BOOL bSelect = 1);
+	void SelectRow(int selectedRow);
+	void CreateAndShowDescriptionWindow();
+	void SetDescriptionWindowText(INT_PTR row);
+	void SaveClipDataItemToFile(CDeleteData item);
 
 public:
 	CString m_clipTitle;
@@ -105,5 +114,6 @@ public:
 	afx_msg void OnBnClickedCheckLastUseDate();
 	afx_msg void OnBnClickedCheckDataFormat();
 	afx_msg void OnLvnColumnclickList2(NMHDR *pNMHDR, LRESULT *pResult);
-	virtual BOOL PreTranslateMessage(MSG* pMsg);
+	virtual BOOL PreTranslateMessage(MSG* pMsg);	
+	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
 };

+ 1 - 1
src/FileTransferProgressDlg.h

@@ -6,7 +6,7 @@
 #endif // _MSC_VER > 1000
 // FileTransferProgressDlg.h : header file
 //
-#include "Resource.h"
+#include "../resource.h"
 
 /////////////////////////////////////////////////////////////////////////////
 // CFileTransferProgressDlg dialog

+ 1 - 1
src/FormattedTextDraw.h

@@ -7,7 +7,7 @@
 #ifndef __FORMATTEDTEXTDRAW_H_
 #define __FORMATTEDTEXTDRAW_H_
 
-#include "resource.h"       // main symbols
+#include "../resource.h"       // main symbols
 
 // be sure to link this project with riched20.lib
 #include <richedit.h>

+ 1 - 1
src/NoDbFrameWnd.cpp

@@ -1,6 +1,6 @@
 #include "stdafx.h"
 #include "NoDbFrameWnd.h"
-#include "resource.h"
+#include "../resource.h"
 #include "OptionsSheet.h"
 #include "DatabaseUtilities.h"
 #include "Options.h"

+ 0 - 849
src/Resource.h

@@ -1,849 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by CP_Main.rc
-//
-#define IDD_ABOUTBOX                    100
-#define IDR_CP_MAIN                     103
-#define IDR_MAINFRAME                   128
-#define IDR_CP_MAITYPE                  129
-#define IDR_EDIT_WND                    129
-#define IDR_MENU                        130
-#define IDD_SELECT_DB                   131
-#define IDD_OPTIONS_STATS               132
-#define IDD_ADD_TYPE                    134
-#define IDD_COPY_PROPERTIES             135
-#define IDD_ABOUT                       136
-#define IDD_GROUP_NAME                  138
-#define IDB_CLOSED_FOLDER               141
-#define IDB_CLOSED_FOLDER_PRESSED       142
-#define IDB_CLOSED_FOLDER_FOCUSED       143
-#define IDB_OPEN_FOLDER                 144
-#define IDB_OPEN_FOLDER_FOCUSED         145
-#define IDB_OPEN_FOLDER_PRESSED         146
-#define IDB_BACK                        147
-#define IDB_BACK_PRESSED                148
-#define IDD_OPTIONS_FRIENDS             148
-#define IDB_BACK_FOCUSED                149
-#define IDI_DITTO_NOCOPYCB              150
-#define IDD_FRIEND_DETAILS              152
-#define IDD_MOVE_TO_GROUP               156
-#define IDD_DIALOG_REMOTE_FILE          157
-#define IDR_FILE_COPY                   158
-#define IDD_OPTIONS_COPY_BUFFERS        166
-#define IDI_ICON1                       167
-#define IDD_DIALOG1                     168
-#define IDD_GLOBAL_CLIPS                168
-#define IDB_BITMAP_SEARCH_NORMAL        170
-#define IDB_BITMAP_SEARCH_CLOSE         171
-#define IDB_BITMAP1                     172
-#define IDB_BITMAP_SEARCH_CLOSE_125     173
-#define IDB_BITMAP_SEARCH_CLOSE_150     174
-#define IDB_BITMAP_SEARCH_CLOSE_200     175
-#define IDB_BITMAP_SEARCH_NORMAL_125    176
-#define IDB_BITMAP_SEARCH_NORMAL_150    177
-#define IDB_BITMAP_SEARCH_NORMAL_200    178
-#define IDB_OPEN_FOLDER_PNG             179
-#define IDB_PNG1                        180
-#define IDR_MENU_SEARCH                 181
-#define IDB_PNG2                        183
-#define IDB_COG_16_16                   183
-#define IDB_SHORTCUT_PNG                184
-#define IDB_OPEN_FOLDER_16_16           185
-#define IDB_OPEN_FOLDER_20_20           186
-#define IDB_OPEN_FOLDER_24_24           187
-#define IDB_PNG4                        188
-#define IDB_OPEN_FOLDER_32_32           188
-#define IDB_COG_20_20                   190
-#define IDB_COG_24_24                   191
-#define IDB_COG_32_32                   192
-#define IDB_LEFT_ARROW_16_16            193
-#define IDB_LEFT_ARROW_20_20            194
-#define IDB_LEFT_ARROW_24_24            195
-#define IDB_LEFT_ARROW_32_32            196
-#define IDB_CLOSE_12_12                 197
-#define IDB_CLOSE_8_8                   197
-#define IDB_CHEVRON_RIGHT_8_8           198
-#define IDB_CLOSE_10_10                 199
-#define IDB_CLOSE_12_13                 200
-#define IDB_PNG3                        201
-#define IDB_CLOSE_16_16                 201
-#define IDB_CHEVRON_RIGHT_10_10         202
-#define IDB_CHEVRON_RIGHT_12_12         203
-#define IDB_CHEVRON_RIGHT_16_16         204
-#define IDB_CHEVRON_LEFT_8_8            205
-#define IDB_CHEVRON_LEFT_10_10          206
-#define IDB_CHEVRON_LEFT_12_12          207
-#define IDB_CHEVRON_LEFT_16_16          208
-#define IDB_CHEVRON_TOP_8_8             209
-#define IDB_CHEVRON_TOP_10_10           210
-#define IDB_CHEVRON_TOP_12_12           211
-#define IDB_CHEVRON_TOP_16_16           212
-#define IDB_CHEVRON_BOTTOM_8_8          213
-#define IDB_CHEVRON_BOTTOM_10_10        214
-#define IDB_CHEVRON_BOTTOM_12_12        215
-#define IDB_CHEVRON_BOTTOM_16_16        216
-#define IDB_PNG5                        217
-#define IDB_MAXIMIZE_8_8                218
-#define IDB_MAXIMIZE_10_10              219
-#define IDB_MAXIMIZE_12_12              220
-#define IDB_PNG7                        221
-#define IDB_MAXIMIZE_16_16              221
-#define IDB_YELLOW_STAR_32_32           222
-#define IDB_YELLOW_STAR_24_24           223
-#define IDB_YELLOW_STAR_20_20           224
-#define IDB_YELLOW_STAR_16_16           225
-#define IDB_IN_FOLDER_32_32             226
-#define IDB_IN_FOLDER_24_24             227
-#define IDB_IN_FOLDER_20_20             228
-#define IDB_IN_FOLDER_16_16             229
-#define IDB_FOLDER_WHITE_16             229
-#define IDB_KEY_32_32                   230
-#define IDB_KEY_24_24                   231
-#define IDB_KEY_20_20                   232
-#define IDB_KEY_16_16                   233
-#define IDB_STICKY_32_32                234
-#define IDB_STICKY_24_24                235
-#define IDB_STICKY_20_20                236
-#define IDB_PNG8                        237
-#define IDB_STICKY_16_16                237
-#define IDR_DESC_OPTIONS_MENU           238
-#define IDR_MENU1                       239
-#define IDR_MENU_GROUPS                 239
-#define IDB_PNG9                        241
-#define IDB_SYSTEM_MENU_16_16           244
-#define IDB_SYSTEM_MENU_20_20           245
-#define IDB_SYSTEM_MENU_24_24           246
-#define IDB_SYSTEM_MENU_32_32           247
-#define IDR_QUICK_PASTE_SYSTEM_MENU     248
-#define IDD_OPTIONS_QUICK_PASTE_KEYBOARD 249
-#define ChevronRight_Black_16_16        259
-#define ChevronRight_Black_20_20        260
-#define ChevronRight_Black_24_24        261
-#define ChevronRight_Black_32_32        262
-#define Close_Black_16_16               263
-#define Close_Black_20_20               264
-#define Close_Black_24_24               265
-#define Close_Black_32_32               266
-#define IDB_PNG6                        267
-#define NewWindowIcon_24_14             267
-#define IDB_PNG10                       273
-#define system_menu_2_48                274
-#define system_menu_2_36                275
-#define system_menu_2_30                276
-#define system_menu_2_24                277
-#define open_folder_48                  278
-#define open_folder_36                  279
-#define open_folder_30                  280
-#define open_folder_24                  281
-#define ChevronLeft_Black_16_16         282
-#define ChevronLeft_Black_20_20         283
-#define ChevronLeft_Black_24_24         284
-#define ChevronLeft_Black_32_32         285
-#define NewWindowIcon_48                286
-#define NewWindowIcon_36                287
-#define NewWindowIcon_30                288
-#define return_16                       289
-#define return_20                       290
-#define return_24                       291
-#define IDB_PNG14                       292
-#define return_32                       292
-#define Search_16                       293
-#define Search_20                       294
-#define Search_24                       295
-#define IDB_PNG15                       296
-#define Search_32                       296
-#define IDI_ICON2                       297
-#define IDB_PNG11                       298
-#define search_close_16                 298
-#define IDB_FOLDER                      300
-#define minimize_16                     301
-#define minimize_32                     302
-#define minimize_24                     303
-#define minimize_20                     304
-#define maximize_32                     305
-#define maximize_24                     306
-#define IDB_PNG17                       307
-#define maximize_20                     307
-#define return_28                       308
-#define minimize_28                     309
-#define maximize_28                     310
-#define ChevronLeft_Black_28            311
-#define ChevronRight_Black_28           312
-#define Close_Black_28                  313
-#define system_menu_2_42                314
-#define open_folder_42                  315
-#define cog_28                          316
-#define IDB_PNG13                       317
-#define Search_28                       317
-#define IDC_CURSOR1                     322
-#define IDC_CURSOR_ZOOM_IN              322
-#define IDC_CURSOR2                     323
-#define IDC_CURSOR_ZOOM_OUT             323
-#define IDD_DIALOG_FREIND_PROMPT        324
-#define IDD_DIALOG2                     325
-#define IDD_ADV_OPTIONS                 325
-#define down_16                         328
-#define down_20                         329
-#define down_24                         330
-#define down_28                         331
-#define IDB_PNG20                       332
-#define down_32                         332
-#define IDD_SCRIPT_EDITOR               333
-#define close_36                        340
-#define close_40                        341
-#define close_44                        342
-#define close_48                        343
-#define close_52                        344
-#define close_56                        345
-#define open_folder_54                  346
-#define open_folder_60                  347
-#define open_folder_66                  348
-#define open_folder_72                  349
-#define open_folder_78                  350
-#define open_folder_84                  351
-#define system_menu_54                  352
-#define system_menu_60                  353
-#define system_menu_66                  354
-#define system_menu_72                  355
-#define system_menu_78                  356
-#define system_menu_84                  357
-#define ChevronLeft_Black_36            358
-#define ChevronLeft_Black_40            359
-#define ChevronLeft_Black_44            360
-#define ChevronLeft_Black_48            361
-#define ChevronLeft_Black_52            362
-#define ChevronLeft_Black_56            363
-#define ChevronRight_Black_36           364
-#define ChevronRight_Black_40           365
-#define ChevronRight_Black_44           366
-#define ChevronRight_Black_48           367
-#define ChevronRight_Black_52           368
-#define ChevronRight_Black_56           369
-#define maximize_36                     370
-#define maximize_40                     371
-#define maximize_44                     372
-#define maximize_48                     373
-#define maximize_52                     374
-#define maximize_56                     375
-#define minimize_36                     377
-#define minimize_40                     378
-#define minimize_44                     379
-#define minimize_48                     380
-#define minimize_52                     381
-#define IDB_PNG22                       382
-#define minimize_56                     382
-#define search_close_20                 383
-#define search_close_24                 384
-#define search_close_28                 385
-#define IDB_PNG19                       386
-#define search_close_32                 386
-#define IDR_MENU_NO_DB                  387
-#define IDI_ICON3                       388
-#define IDI_MAINFRAME_NO_DB             388
-#define IDC_EDIT_ADV_FILTER             5001
-#define IDC_NEXT_MATCH_BUTTON           5002
-#define IDC_PATH                        1000
-#define IDC_GET_PATH                    1001
-#define IDC_SELECT_SOUND                1002
-#define IDC_SELECT                      1003
-#define IDC_TRIP_COPIES                 1004
-#define IDC_TRIP_PASTES                 1005
-#define IDC_RESET_COUNTS                1006
-#define IDC_ALL_COPIES                  1007
-#define IDC_ALL_PASTES                  1008
-#define IDC_TRIP_DATE                   1009
-#define IDC_EDIT_ALL_DATE               1010
-#define IDC_SAVED_COPIES                1011
-#define IDC_SAVED_COPY_DATA             1012
-#define IDC_REMOVE_ALL                  1013
-#define IDC_DATABASE_SIZE               1014
-#define IDC_LIST1                       1014
-#define IDC_ADD                         1015
-#define IDC_CHECK_SEND_ALL              1015
-#define IDC_CLIPS_SENT                  1015
-#define IDC_DELETE                      1016
-#define IDC_EDIT_IP                     1016
-#define IDC_CLIPS_RECIVED               1016
-#define IDC_EDIT1                       1017
-#define IDC_EDIT_DESCRIPTION            1017
-#define IDC_LAST_STARTED                1017
-#define IDC_LIST2                       1018
-#define IDC_EDIT_APP_COPY_EXCLUDE       1018
-#define IDC_EDIT_DESCRIP                1018
-#define IDC_EDIT_DESC                   1018
-#define IDC_ADD_1                       1019
-#define IDC_EDIT_ACTIVE_APP_TITLE       1019
-#define IDC_ADD_2                       1020
-#define IDC_EDIT_DISPLAY_TEXT           1020
-#define IDC_ADD_3                       1021
-#define IDC_DELETE_COPY_DATA            1021
-#define IDC_DATE                        1022
-#define IDC_COPY_DATA                   1023
-#define IDC_DATE2                       1024
-#define IDC_DATE_LAST_USED              1024
-#define IDC_NEVER_AUTO_DELETE           1025
-#define IDC_NAMED_COPY                  1026
-#define IDC_HOT_KEY_GLOBAL              1026
-#define IDC_COMPACT_REPAIR              1027
-#define IDC_NAMED_PASTE                 1027
-#define IDC_HOT_KEY_GLOBAL_MOVE_TO_GROUP 1027
-#define IDC_BT_COMPACT_AND_REPAIR       1028
-#define IDC_CHECK_UPDATES               1029
-#define IDC_CHECK_FOR_UPDATES           1030
-#define IDC_LIST                        1032
-#define IDC_CTRL_CLICK                  1033
-#define IDC_SET_DB_PATH                 1034
-#define IDC_SHOW_TEXT_FOR_FIRST_TEN_HOT_KEYS 1034
-#define IDC_USE_DEFAULT                 1035
-#define IDC_CTRL_CLICK2                 1035
-#define IDC_HYPER_LINK                  1036
-#define IDC_ALLOW_DUPLICATES            1037
-#define IDC_UPDATE_TIME_ON_PASTE        1038
-#define IDC_SAVE_MULTIPASTE             1039
-#define IDC_BUTTON1                     1040
-#define IDC_PARSE_BUTTON                1040
-#define IDC_HIDE_DITO_ON_HOT_KEY        1040
-#define IDC_BUTTON_FONT                 1040
-#define IDC_BUTTON_NEW_GROUP            1040
-#define IDC_BUTTON_REFRESH              1040
-#define IDC_BUTTON_SEARCH               1040
-#define IDC_ASSIGN                      1040
-#define IDC_BUTTON_CLEAR                1040
-#define IDC_BUTTON_RUN                  1040
-#define IDC_BUTTON_COPY_SCRIPTS         1040
-#define IDC_PARSE_EDIT                  1041
-#define IDC_SEND_PASTE_MESSAGE          1041
-#define IDC_BUTTON_PROPERTIES           1041
-#define IDC_BUTTON_PASTE_SCRIPTS        1041
-#define IDC_CHECK1                      1042
-#define IDC_HISTORY_START_TOP           1042
-#define IDC_CHECK_SEND_PASTE            1042
-#define IDC_CHECK_LOG_SEND_RECIEVE      1042
-#define IDC_ENSURE                      1042
-#define IDC_PLAY_SOUND_1                1042
-#define IDC_CHECK_CLIP_TITLE            1042
-#define IDC_CHECK_SHIFT_1               1042
-#define IDC_CHECK_ACTIVE                1042
-#define IDC_PLAY_SOUND_2                1043
-#define IDC_CHECK_MOVE_CLIPS_ON_PASTE   1043
-#define IDC_CHECK_CREATE_DATE           1043
-#define IDC_CHECK_SHIFT_2               1043
-#define IDC_PLAY_SOUND_3                1044
-#define IDC_CHECK_LAST_USE_DATE         1044
-#define IDC_CHECK_MOVE_CLIPS_ON_PASTE2  1044
-#define IDC_CHECK_USE_UI_GROUP_LAST_10  1044
-#define IDC_CHECK_DATA_FORMAT           1045
-#define IDC_PLAY_SOUND_4                1045
-#define IDC_PLAY_SOUND_5                1046
-#define IDD_OPTIONS_KEYSTROKES          2001
-#define IDC_HOTKEY                      2002
-#define IDC_DISPLAY_IN_SYSTEMTRAY       2003
-#define IDD_OPTIONS_GENERAL             2003
-#define IDC_HOTKEY_TEXT_ONLY            2003
-#define IDC_HOTKEY_MOVE_TO_GROUP        2003
-#define IDD_OPTIONS_TYPES               2004
-#define IDC_START_ON_STARTUP            2004
-#define IDC_HOTKEY_SAVE_CLIPBOARD       2004
-#define IDR_QUICK_PASTE                 2005
-#define IDC_HOTKEY_ACTIVATE_2           2005
-#define IDC_TRANSPARENCY                2006
-#define IDD_OPTIONS_QUICK_PASTE         2006
-#define IDC_HOTKEY_ACTIVATE_3           2006
-#define IDD_OPTIONS_UTILITIES           2007
-#define IDC_TRANS_PERC                  2007
-#define IDC_HOTKEY_COPYSAVECLIPBOARD    2007
-#define IDC_MAXIMUM                     2008
-#define IDD_DELETE_CLIPS                2008
-#define IDD_DELETE_CLIP_DATA            2008
-#define IDC_EXPIRE                      2009
-#define IDC_EXPIRE_AFTER                2010
-#define IDC_DESC_TEXT_SIZE              2011
-#define IDC_MAX_SAVED_COPIES            2012
-#define IDC_LINES_ROW                   2013
-#define IDC_AT_CARET                    2015
-#define IDC_AT_CURSOR                   2016
-#define IDC_AT_PREVIOUS                 2017
-#define IDC_COMPACT_DB                  2018
-#define IDC_REPAIR                      2019
-#define IDC_DESC_SHOW_LEADING_WHITESPACE 2021
-#define IDC_NAME                        2022
-#define IDC_SHOW_THUMBNAILS             2022
-#define IDC_COMBO1                      2023
-#define IDC_DRAW_RTF                    2023
-#define IDC_HOTKEY1                     2024
-#define IDC_HOTKEY2                     2025
-#define IDC_EDIT_PLACE_ON_CLIPBOARD     2025
-#define IDC_HOTKEY3                     2026
-#define IDC_CHECK_DISABLE_FRIENDS       2026
-#define IDC_HOTKEY4                     2027
-#define IDC_TREE                        2027
-#define IDC_HOTKEY5                     2028
-#define IDC_RICHEDIT1                   2028
-#define IDC_HOTKEY6                     2029
-#define IDC_STATIC_FORMATS              2029
-#define IDC_HOTKEY7                     2030
-#define IDC_HOTKEY8                     2031
-#define IDC_BUTTON_DEFAULT_FAULT        2031
-#define IDC_HOTKEY9                     2032
-#define IDC_EDIT_PASSWORD               2032
-#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_FIND_AS_YOU_TYPE      2036
-#define IDC_CHECK_WIN_TEXT              2036
-#define IDC_CHECK_WIN_TEXT_ONLY         2036
-#define IDC_CHECK_WIN6                  2037
-#define IDC_CHECK_ENTIRE_WINDOW_IS_VISIBLE 2037
-#define IDC_EDIT_ADDITIONAL             2037
-#define IDC_CHECK_WIN7                  2038
-#define IDC_CHECK_SHOW_ALL_IN_MAIN_LIST 2038
-#define IDC_EDIT_MAX_SIZE               2038
-#define IDC_CHECK_WIN8                  2039
-#define IDC_STATIC_HOT_KEY              2039
-#define IDC_CHECK_PROMPT_DELETE_CLIP    2039
-#define IDC_CHECK_WIN9                  2040
-#define IDC_STATIC_DATE                 2040
-#define IDC_CHECK_PROMPT_DELETE_CLIP2   2040
-#define IDC_CHECK_SHOW_SCROLL_BAR       2040
-#define IDC_CHECK_WIN10                 2041
-#define IDC_STATIC_MOVE_TO_GROUP        2041
-#define IDC_CHECK_SHOW_SCROLL_BAR2      2041
-#define IDC_CHECK_ELEVATE_PRIVILEGES    2041
-#define IDC_CHECK_WIN1                  2042
-#define IDC_STATIC_TITLE                2042
-#define IDC_CHECK_ELEVATE_PRIVILEGES2   2042
-#define IDC_CHECK_SHOW_IN_TASKBAR       2042
-#define IDC_CHECK_WIN2                  2043
-#define IDC_STATIC_DAYS                 2043
-#define IDC_STATIC_DATE2                2043
-#define IDC_CHECK_SHOW_IN_TASKBAR2      2043
-#define IDC_CHECK_SHOW_CLIP_WAS_PASTED  2043
-#define IDC_CHECK_WIN3                  2044
-#define IDC_STATIC_AMOUNT               2044
-#define IDC_STATIC_HOT_KEY2             2044
-#define IDC_STATIC_HOT_KEY_MOVE_TO_GROUP 2044
-#define IDC_CHECK_WIN4                  2045
-#define IDC_STATIC_SOUND                2045
-#define IDC_STATIC_DATE3                2045
-#define IDC_CHECK_WIN5                  2046
-#define IDC_STATIC_MAX_SIZE             2046
-#define IDC_STATIC_NO_LIMIT             2047
-#define IDC_CHECK_WIN_NAMED_PASTE       2047
-#define IDC_CHECK_WIN_SAVE_CLIPBOARD    2047
-#define IDC_STATIC_ACTIVATE             2048
-#define IDC_STATIC_NAMED_COPY           2049
-#define IDC_STATIC_ACTIVATE2            2049
-#define IDC_STATIC_WIN                  2050
-#define IDC_STATIC_GROUP                2051
-#define IDC_STATIC_1                    2052
-#define IDC_STATIC_2                    2053
-#define IDC_STATIC_3                    2054
-#define IDC_STATIC_4                    2055
-#define IDC_STATIC_5                    2056
-#define IDC_STATIC_6                    2057
-#define IDC_STATIC_7                    2058
-#define IDC_STATIC_8                    2059
-#define IDC_STATIC_9                    2060
-#define IDC_STATIC_10                   2061
-#define IDC_STATIC_LINES                2062
-#define IDC_STATIC_NAMED_COPY2          2062
-#define IDC_STATIC_COLLECT_CLIPBOARD    2062
-#define IDC_STATIC_POPUP                2063
-#define IDC_CHECK_WIN_DITTO2            2063
-#define IDC_STATIC_LEGEND               2064
-#define IDC_STATIC_ACTIVATE3            2064
-#define IDC_STATIC_LEG                  2065
-#define IDC_CHECK_WIN_DITTO3            2065
-#define IDC_STATIC_11                   2066
-#define IDC_STATIC_ACTIVATE4            2066
-#define IDC_STATIC_12                   2067
-#define IDC_CHECK_WIN_SAVE_CLIPBOARD2   2067
-#define IDC_CHECK_WIN_COPY_SAVE_CLIPBOARD 2067
-#define IDC_STATIC_13                   2068
-#define IDC_STATIC_COLLECT_CLIPBOARD2   2068
-#define IDC_STATIC_LANGUAGE             2069
-#define IDC_COMBO_LANGUAGE              2070
-#define IDC_EDIT_SAVE_DELAY             2071
-#define IDC_COMBO_POPUP_POSITION        2071
-#define IDC_STATIC_SAVE_DELAY           2072
-#define IDC_BUTTON_ABOUT                2073
-#define IDC_EDIT_QUICK_PASTE            2074
-#define IDC_STATIC_LINK                 2075
-#define IDC_PROGRESS_FILE               2076
-#define IDC_PROGRESS_ALL_FILES          2077
-#define IDC_FILE_COPY                   2078
-#define IDC_STATIC_COPY_1               2079
-#define IDC_STATIC_PASTE_1              2080
-#define IDC_STATIC_CUT_1                2081
-#define IDC_COPY_1                      2082
-#define IDC_PASTE_1                     2083
-#define IDC_CUT_1                       2084
-#define IDC_WIN_COPY_1                  2085
-#define IDC_WIN_PASTE_1                 2086
-#define IDC_WIN_CUT_1                   2087
-#define IDC_BUFFER_GROUP_1              2088
-#define IDC_COPY_2                      2089
-#define IDC_EDIT_CLIP_SEPARATOR         2089
-#define IDC_WIN_COPY_2                  2090
-#define IDC_STATIC_CLIP_SEPARATOR       2090
-#define IDC_PASTE_2                     2091
-#define IDC_STATIC_CUSTOM_KEYS          2091
-#define IDC_WIN_PASTE_2                 2092
-#define IDC_STATIC_THEME                2092
-#define IDC_STATIC_COPY_2               2093
-#define IDC_COMBO_THEME                 2093
-#define IDC_STATIC_PASTE_2              2094
-#define IDC_BUTTON_THEME                2094
-#define IDC_CUT_2                       2095
-#define IDC_STATIC_INCLUDE_APPS         2095
-#define IDC_WIN_CUT_2                   2096
-#define IDC_STATIC_EXCLUDE_APPS         2096
-#define IDC_STATIC_CUT_2                2097
-#define IDC_EDIT_APP_COPY_INCLUDE       2097
-#define IDC_BUFFER_GROUP_2              2098
-#define IDC_STATIC_APP_SEP_DESC         2098
-#define IDC_COPY_3                      2099
-#define IDC_CHECK_WIN                   2099
-#define IDC_STATIC_DATABASE_PATH        2099
-#define IDC_WIN_COPY_3                  2100
-#define IDC_EDIT_PROPERTIES             2100
-#define IDC_STATIC_POPUP_POS            2100
-#define IDC_PASTE_3                     2101
-#define IDC_CHECK_WIN_MOVE_TO_GROUP     2101
-#define IDC_STATIC_POPUP_POS2           2101
-#define IDC_STATIC_FONT                 2101
-#define IDC_WIN_PASTE_3                 2102
-#define IDC_TIME_CREATE_START           2102
-#define IDC_STATIC_COPY_3               2103
-#define IDC_DATE_CREATE_START           2103
-#define IDC_STATIC_PASTE_3              2104
-#define IDC_TIME_CREATE_END             2104
-#define IDC_CUT_3                       2105
-#define IDC_DATE_CREATE_END             2105
-#define IDC_WIN_CUT_3                   2106
-#define IDC_TIME_USE_START              2106
-#define IDC_STATIC_CUT_3                2107
-#define IDC_DATE_USE_START              2107
-#define IDC_BUFFER_GROUP_3              2108
-#define IDC_TIME_USE_END                2108
-#define IDC_DATE_USE_END                2109
-#define IDC_COPY_4                      2109
-#define IDC_EDIT_CLIP_TITLE             2110
-#define IDC_WIN_COPY_4                  2110
-#define IDC_COMBO_DATA_FORMAT           2111
-#define IDC_PASTE_4                     2111
-#define IDC_STATIC_DB_SIZE              2112
-#define IDC_WIN_PASTE_4                 2112
-#define IDC_STATIC_SELECTED_SIZE        2113
-#define IDC_CUT_4                       2113
-#define IDC_STATIC_TO_DELETE_SIZE       2114
-#define IDC_STATIC_SELECTED_SIZE2       2114
-#define IDC_STATIC_SELECTED_COUNT       2114
-#define IDC_WIN_CUT_4                   2114
-#define IDC_STATIC_DB_SIZE_TEXT         2115
-#define IDC_STATIC_COPY_4               2115
-#define IDC_STATIC_SELECTED_SIZE_TEXT   2116
-#define IDC_STATIC_PASTE_4              2116
-#define IDC_STATIC_TO_DELETE_TEXT       2117
-#define IDC_STATIC_SELECTED_SIZE_TEXT2  2117
-#define IDC_STATIC_CUT_4                2117
-#define IDC_BUTTON_APPLY                2118
-#define IDC_BUFFER_GROUP_4              2118
-#define IDC_COPY_5                      2119
-#define IDC_STATIC_GROUP_SEARCH         2120
-#define IDC_WIN_COPY_5                  2120
-#define IDC_MFCPROPERTYGRID1            2121
-#define IDC_PASTE_5                     2121
-#define IDC_STATIC_DIFF                 2122
-#define IDC_WIN_PASTE_5                 2122
-#define IDC_EDIT_DIFF_PATH              2123
-#define IDC_CUT_5                       2123
-#define IDC_BUTTON_NEXT_MATCH           2124
-#define IDC_BUTTON_DIFF_BROWSE          2124
-#define IDC_BUTTON_REMOVE               2124
-#define IDC_BUTTON_ADVANCED             2124
-#define IDC_BUTTON_ADD_SCRIPT           2124
-#define IDC_WIN_CUT_5                   2124
-#define IDC_STATIC_QUICK_PASTE          2125
-#define IDC_BUTTON_DELETE_SCRIPT        2125
-#define IDC_STATIC_COPY_5               2125
-#define IDC_STATIC_DESC                 2126
-#define IDC_STATIC_PASTE_5              2126
-#define IDC_RADIO_USE_IP                2127
-#define IDC_RADIO_KEYBOARD              2127
-#define IDC_RADIO_KEYBOARD_1            2127
-#define IDC_STATIC_CUT_5                2127
-#define IDC_STATIC_REMOTE_FILES         2128
-#define IDC_RADIO2                      2128
-#define IDC_RADIO_ENTER                 2128
-#define IDC_RADIO_CURRENT_TYPES         2128
-#define IDC_BUFFER_GROUP_5              2128
-#define IDC_RADIO_USE_HOST_NAME         2129
-#define IDC_COMBO_ENTER_MODIFIER        2129
-#define IDC_STATIC_REMOTE_FILE_REQUEST  2130
-#define IDC_RADIO3                      2130
-#define IDC_RADIO_MOUSE                 2130
-#define IDC_RADIO_MOUSE_1               2130
-#define IDC_RADIO_CUSTOM_TYPE           2130
-#define IDC_COMBO_ALL_ASSIGNED          2131
-#define IDC_BUTTON_ADD                  2132
-#define IDC_RADIO_KEYBOARD2             2133
-#define IDC_RADIO_KEYBOARD_2            2133
-#define IDC_RADIO_ENTER2                2134
-#define IDC_COMBO_ENTER_MODIFIER2       2135
-#define IDC_BUTTON_ENTER                2135
-#define IDC_RADIO4                      2136
-#define IDC_RADIO_MOUSE_2               2136
-#define IDC_BUTTON_ENTER2               2137
-#define IDC_MOUSE_A                     2138
-#define IDC_MOUSE_1                     2138
-#define IDC_CHECK_CONTROL_1             2139
-#define IDC_CHECK_ALT_1                 2140
-#define IDC_MOUSE_2                     2141
-#define IDC_CHECK_CONTROL_2             2142
-#define IDC_CHECK_ALT_2                 2143
-#define IDC_BUTTON3                     2144
-#define IDC_BUTTON_RESET                2144
-#define IDC_RADIO1                      2145
-#define IDC_RADIO_PRIMARY_TYPES         2145
-#define IDC_CHECK_ENABLE_SECOND_PRESS   2146
-#define IDC_STATIC_SECOND_PRESS         2147
-#define IDC_STATIC_SHORTCUTS            2148
-#define IDC_STATIC_FIRST_KEYPRESS       2149
-#define IDC_STATIC_FRIEND_PROMPT        2150
-#define IDC_CHECK_SAVE                  2151
-#define IDC_STATIC_FRIEND_DESC          2152
-#define IDC_EDIT_NAME                   2153
-#define IDC_EDIT_SCRIPT                 2155
-#define IDC_STATIC_NAME                 2156
-#define IDC_EDIT_INPUT                  2157
-#define IDC_EDIT_OUTPUT                 2158
-#define IDC_STATIC_INPUT                2159
-#define IDC_STATIC_OUTPUT               2160
-#define IDC_LIST_SCRIPTS                2161
-#define IDC_STATIC_RETURN_DESC          2162
-#define IDC_STATIC_SCRIPT               2163
-#define IDC_STATIC_ACTIVE               2164
-#define IDC_MFCLINK1                    2165
-#define IDC_MFCLINK_CHAISCRIPT          2165
-#define IDC_MFCLINK_ENV_VAR             2165
-#define IDC_MFCLINK2_EXAMPLES           2166
-#define IDC_STATIC_MD5                  2167
-#define IDC_EDIT_MD5                    2168
-#define IDC_RICHEDIT21                  2172
-#define IDC_MFCLINK2                    2172
-#define IDC_EDIT_ACTIVE_APP             2173
-#define ID_FIRST_OPTION                 32771
-#define ID_FIRST_EXIT                   32772
-#define ID_FIRST_SHOWQUICKPASTE         32773
-#define ID_FIRST_TOGGLECONNECTCV        32774
-#define ID_MENU_TOGGLECONNECTCV         32775
-#define ID_MENU_PROPERTIES              32776
-#define ID_MENU_FIRSTTENHOTKEYS_USECTRLNUM 32777
-#define ID_MENU_FIRSTTENHOTKEYS_SHOWHOTKEYTEXT 32778
-#define ID_MENU_VIEWCAPTIONBARON        32779
-#define ID_VIEWCAPTIONBARON_RIGHT       32780
-#define ID_VIEWCAPTIONBARON_BOTTOM      32781
-#define ID_VIEWCAPTIONBARON_LEFT        32782
-#define ID_VIEWCAPTIONBARON_TOP         32783
-#define ID_MENU_ALLWAYSONTOP            32784
-#define ID_MENU_LINESPERROW_2           32786
-#define ID_MENU_LINESPERROW_3           32787
-#define ID_MENU_LINESPERROW_4           32788
-#define ID_MENU_LINESPERROW_5           32789
-#define ID_MENU_TRANSPARENCY_40         32790
-#define ID_MENU_AUTOHIDE                32791
-#define ID_MENU_TRANSPARENCY_10         32792
-#define ID_MENU_VIEWFULLDESCRIPTION     32793
-#define ID_MENU_TRANSPARENCY_15         32794
-#define ID_SORT_ASCENDING               32795
-#define ID_MENU_TRANSPARENCY_20         32796
-#define ID_SORT_DESCENDING              32797
-#define ID_MENU_TRANSPARENCY_25         32798
-#define ID_MENU_TRANSPARENCY_30         32799
-#define ID_MENU_TRANSPARENCY_NONE       32800
-#define ID_MENU_DELETE                  32801
-#define ID_MENU_POSITIONING_ATCARET     32802
-#define ID_MENU_POSITIONING_ATCURSOR    32803
-#define ID_MENU_POSITIONING_ATPREVIOUSPOSITION 32804
-#define ID_MENU_OPTIONS                 32805
-#define ID_MENU_EXITPROGRAM             32806
-#define ID_MENU_LINESPERROW_1           32807
-#define ID_MENU_TRANSPARENCY_5          32808
-#define ID_MENU_QUICKOPTIONS            32809
-#define ID_MENU_NEWGROUP                32811
-#define ID_MENU_NEWGROUPSELECTION       32812
-#define ID_MENU_QUICKOPTIONS_ALLWAYSSHOWDESCRIPTION 32813
-#define ID_MENU_QUICKOPTIONS_DOUBLECLICKINGONCAPTION_TOGGLESALWAYSONTOP 32814
-#define ID_MENU_QUICKOPTIONS_DOUBLECLICKINGONCAPTION_ROLLUPWINDOW 32815
-#define ID_MENU_QUICKOPTIONS_DOUBLECLICKINGONCAPTION_TOGGLESALWAYSSHOWDESCRIPTION 32816
-#define ID_MENU_QUICKOPTIONS_PROMPTFORNEWGROUPNAMES 32817
-#define ID_MENU_VIEWGROUPS              32819
-#define ID_MENU_QUICKPROPERTIES_SETTONEVERAUTODELETE 32820
-#define ID_MENU_QUICKPROPERTIES_AUTODELETE 32821
-#define ID_MENU_QUICKPROPERTIES_REMOVEHOTKEY 32822
-#define ID_MENU_SENTTO_FRIENDONE        32824
-#define ID_MENU_SENTTO_FRIEND_TWO       32825
-#define ID_MENU_SENTTO_FRIEND_THREE     32826
-#define ID_MENU_SENTTO_FRIEND_FORE      32827
-#define ID_MENU_SENTTO_FRIEND_FIVE      32828
-#define ID_MENU_SENTTO_FRIEND_SIX       32829
-#define ID_MENU_SENTTO_FRIEND_SEVEN     32830
-#define ID_MENU_SENTTO_FRIEND_EIGHT     32831
-#define ID_MENU_SENTTO_FRIEND_NINE      32832
-#define ID_MENU_SENTTO_FRIEND_TEN       32833
-#define ID_MENU_SENTTO_FRIEND_ELEVEN    32834
-#define ID_MENU_SENTTO_FRIEND_TWELVE    32835
-#define ID_MENU_SENTTO_FRIEND_THIRTEEN  32836
-#define ID_MENU_SENTTO_FRIEND_FORETEEN  32837
-#define ID_MENU_SENTTO_FRIEND_FIFTEEN   32838
-#define ID_MENU_SENTTO_PROMPTFORIP      32839
-#define ID_MENU_GROUPS_MOVETOGROUP      32840
-#define ID_MENU_PASTEPLAINTEXTONLY      32841
-#define ID_MENU_HELP                    32842
-#define ID_FIRST_HELP                   32843
-#define ID_MENU_QUICKOPTIONS_FONT       32844
-#define ID_MENU_QUICKOPTIONS_SHOWTHUMBNAILS 32845
-#define ID_MENU_QUICKOPTIONS_DRAWRTFTEXT 32846
-#define ID_MENU_QUICKOPTIONS_PASTECLIPAFTERSELECTION 32847
-#define ID_MENU_QUICKOPTIONS_FINDASYOUTYPE 32848
-#define ID_MENU_QUICKOPTIONS_ENSUREENTIREWINDOWISVISIBLE 32849
-#define ID_MENU_QUICKOPTIONS_SHOWCLIPSTHATAREINGROUPSINMAINLIST 32850
-#define ID_MENU_PASTEHTMLASPLAINTEXT    32851
-#define ID_QUICKOPTIONS_PROMPTTODELETECLIP 32852
-#define ID_MENU_EXPORT                  32853
-#define ID_FIRST_IMPORT                 32854
-#define ID_MENU_IMPORT                  32855
-#define ID_QUICKPROPERTIES_REMOVEQUICKPASTE 32856
-#define ID_MENU_EDITITEM                32860
-#define ID_BUTTON_SAVE                  32862
-#define ID_BUTTON_SAVE_ALL              32863
-#define ID_BUTTON_CLOSE                 32864
-#define ID_BUTTON_NEW                   32866
-#define ID_MENU_NEWCLIP                 32867
-#define ID_FIRST_NEWCLIP                32868
-#define ID_BUTTON_SAVE_CLOSE_CLIPBOARD  32869
-#define ID_FIRST_COPYTODEVICE           32870
-#define ID_PASTE_PLAIN_TEXT             32871
-#define ID_FIRST_GLOBALHOTKEYS          32872
-#define ID_MENU_SEARCHDESCRIPTION       32873
-#define ID_MENU_SEARCHFULLTEXT          32874
-#define ID_MENU_SEARCHQUICKPASTE        32875
-#define ID_MENU_CONTAINSTEXTSEARCHONLY  32876
-#define ID_MENU_STICKYCLIPS             32877
-#define ID_STICKYCLIPS_MAKETOPSTICKYCLIP 32878
-#define ID_STICKYCLIPS_MAKELASTSTICKYCLIP 32879
-#define ID_STICKYCLIPS_REMOVESTICKYSETTING 32880
-#define ID_QUICKOPTIONS_ELEVATEPREVILEGESTOPASTEINTOELEVATEDAPPS 32881
-#define ID_FIRST_REMEMBERWINDOWPOSITION 32882
-#define ID_FIRST_SIZEWINDOWTOCONTENT    32883
-#define ID_FIRST_SCALEIMAGESTOFITWINDOW 32884
-#define ID_QUICKOPTIONS_SHOWINTASKBAR   32885
-#define ID_FIRST_DELETECLIPDATA         32886
-#define ID_MENU_VIEWASQRCODE            32887
-#define ID_MENU_EXPORT32888             32888
-#define ID_EXPORT_EXPORTTOTEXTFILE      32889
-#define ID_MENU_PASTESPECIAL            32890
-#define ID_PASTESPECIAL_TEXTASFILEDROP  32891
-#define ID_MENU_COMPARE                 32892
-#define ID_COMPARE_SELECTLEFTCOMPARE    32893
-#define ID_COMPARE_COMPAREAGAINST       32894
-#define ID_COMPARE_COMPARE              32895
-#define ID_MENU_NEWGROUP32896           32896
-#define ID_MENU_DELETEGROUP             32897
-#define ID_MENU_PROPERTIES32898         32898
-#define ID_MENU_REGULAREXPRESSIONSEARCH 32899
-#define ID_IMPORT_EXPORTTOGOOGLETRANSLATE 32900
-#define ID_IMPORT_EXPORTCLIP            32901
-#define ID_IMPORT_EXPORTCLIP_BITMAP     32902
-#define ID_MENU_WILDCARDSEARCH          32903
-#define ID_FIRST_SAVECURRENTCLIPBOARD   32904
-#define ID_MENU_SAVECURRENTCLIPBOARD    32905
-#define ID_CLIPORDER_MOVEUP             32906
-#define ID_CLIPORDER_MOVEDOWN           32907
-#define ID_CLIPORDER_MOVETOTOP          32908
-#define ID_FIRST_FIXUPSTICKYCLIPORDER   32909
-#define ID_MENU_FILTERON                32910
-#define ID_MENU_SPECIALPASTE            32911
-#define ID_SPECIALPASTE_UPPERCASE       32912
-#define ID_SPECIALPASTE_LOWERCASE       32913
-#define ID_SPECIALPASTE_CAPITALIZE      32914
-#define ID_SPECIALPASTE_SENTENCE        32915
-#define ID_SPECIALPASTE_REMOVELINEFEEDS 32916
-#define ID_SPECIALPASTE_                32917
-#define ID_SPECIALPASTE_PASTE           32918
-#define ID_SPECIALPASTE_PASTE32919      32919
-#define ID_Menu                         32920
-#define ID_Menu32921                    32921
-#define ID_SPECIALPASTE_TYPOGLYCEMIA    32922
-#define ID_QUICKOPTIONS_SHOWTEXTFORFIRSTTENCOPYHOTKEYS 32923
-#define ID_QUICKOPTIONS_SHOWINDICATORACLIPHASBEENPASTED 32924
-#define ID_GROUPS_TOGGLELASTGROUP       32925
-#define ID_FIRST_HIDEDESCRIPTIONWINDOWONM 32926
-#define ID_SPECIALPASTE_PASTE32927      32927
-#define ID_FIRST_WRAPTEXT               32928
-#define ID_MENU_NEWCLIP32929            32929
-#define ID_MENU_IMPORTCLIP              32930
-#define ID_MENU_GLOBALHOTKEYS           32931
-#define ID_MENU_DELETECLIPDATA          32932
-#define ID_MENU_GLOBALHOTKEYS32933      32933
-#define ID_MENU_DELETECLIPDATA32934     32934
-#define ID_MENU_IMPORTCLIP32935         32935
-#define ID_MENU_DELETECLIPDATA32936     32936
-#define ID_MENU_NEWCLIP32937            32937
-#define ID_CLIPORDER_REPLACETOPSTICKYCLIP 32938
-#define ID_SENDTO_PROMPTFORNAME         32939
-#define ID_MENU_SAVE                    32940
-#define ID_IMPORT_IMPORTCOPIEDFILE      32941
-#define ID_FIRST_ALWAYSONTOP            32942
-#define ID_CLIPORDER_MOVETOLAST         32943
-#define ID_QUICKOPTIONS_                32944
-#define ID_SPECIALPASTE_PASTE32945      32945
-#define ID_SPECIALPASTE_TRIM            32946
-#define ID_TRANSPARENCY_INCREASE        32947
-#define ID_TRANSPARENCY_DECREASE        32948
-#define ID_TRANSPARENCY_TOGGLE          32949
-#define ID_TRANSPARENCY_35              32950
-#define ID_IMPORT_EMAILTO               32951
-#define ID_IMPORT_GMAIL                 32952
-#define ID_IMPORT_EMAILTOASATTACHMENT   32953
-#define ID_SPECIALPASTE_SLUGIFY         32954
-#define ID_IMPORT_EMAIL                 32955
-#define ID_IMPORT_EMAIL_CONTENT_ATTACH  32956
-#define ID_QUICKOPTIONS_AUTO            32957
-#define ID_SPECIALPASTE_TOGGLECASE      32958
-#define ID_FIRST_SHOWSTARTUPMESSAGE     32959
-#define ID_FIRST_BACKUPDATABASE         32960
-#define ID_FIRST_RESTOREDATABASE        32961
-#define ID_MENU_BACKUPDATABASE          32962
-#define ID_MENU_SDF                     32963
-#define ID_MENU_RESTOREDATABSAE         32964
-#define ID_FIRST_OPTIONS                32965
-#define ID_FIRST_EXIT32966              32966
-#define ID_FIRST_EXIT_NO_DB             32967
-#define ID_MENU_DELETEALLNONUSEDCLIPS   32968
-#define ID_FIRST_DELETEALLNONUSEDCLIPS  32969
-#define ID_IMPORT_SETDRAGFILENAME       32970
-#define ID_SPECIALPASTE_CAMELCASE       32971
-#define ID_FIRST_VIEWTEXT               32972
-#define ID_FIRST_VIEWRTF                32973
-#define ID_FIRST_VIEWHTML               32974
-#define ID_FIRST_VIEWASIMAGE            32975
-#define ID_SPECIALPASTE_MULTIPLEIMAGESHORIZONTALLY 32976
-#define ID_SPECIALPASTE_MULTIPLEIMAGES  32977
-#define ID_SPECIALPASTE_MULTIPLEIMAGESVERTICALLY 32978
-#define ID_SPECIALPASTE_ASCIITEXTONLY   32979
-
-// Next default values for new objects
-// 
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_3D_CONTROLS                     1
-#define _APS_NEXT_RESOURCE_VALUE        390
-#define _APS_NEXT_COMMAND_VALUE         32980
-#define _APS_NEXT_CONTROL_VALUE         2173
-#define _APS_NEXT_SYMED_VALUE           104
-#endif
-#endif