Forráskód Böngészése

- Updates to dark theme
- theme groups menu
- synced the two system menus so they are the same

ScottBrogden 9 éve
szülő
commit
ab89051c98
18 módosított fájl, 296 hozzáadás és 36 törlés
  1. 6 0
      ActionEnums.cpp
  2. 4 0
      ActionEnums.h
  3. 11 4
      CP_Main.rc
  4. 27 7
      Debug/Themes/DarkerDitto.xml
  5. 1 1
      Debug/Themes/OnnoG Blue.xml
  6. 1 1
      Debug/Themes/OnnoG Green.xml
  7. 2 2
      DittoWindow.cpp
  8. 7 2
      GroupTree.cpp
  9. 1 1
      Options.cpp
  10. 12 4
      OptionsQuickPaste.cpp
  11. 11 3
      QListCtrl.cpp
  12. 134 2
      QPasteWnd.cpp
  13. 13 0
      QPasteWnd.h
  14. 10 1
      Resource.h
  15. 6 1
      SymbolEdit.cpp
  16. 37 7
      Theme.cpp
  17. 13 0
      Theme.h
  18. BIN
      res/bitmap1.bmp

+ 6 - 0
ActionEnums.cpp

@@ -179,6 +179,12 @@ CString ActionEnums::EnumDescription(ActionEnumValues value)
 		return "Remove Sticky Setting";
 	case PASTE_ADD_CURRENT_TIME:
 		return "Paste Add Current Time";
+	case IMPORT_CLIP:
+		return "Import Clip";
+	case GLOBAl_HOTKEYS:
+		return "Global HotKeys";
+	case DELETE_CLIP_DATA:
+		return "Delete Clip Data";
 	}
 
 	return "";

+ 4 - 0
ActionEnums.h

@@ -89,6 +89,10 @@ public:
 		MAKE_LAST_STICKY,
 		REMOVE_STICKY,
 		PASTE_ADD_CURRENT_TIME,
+		IMPORT_CLIP,
+		GLOBAl_HOTKEYS,
+		DELETE_CLIP_DATA,
+
 
 		LAST_ACTION
 	};

+ 11 - 4
CP_Main.rc

@@ -347,7 +347,7 @@ IDR_QUICK_PASTE_SYSTEM_MENU MENU
 BEGIN
     POPUP "Menu"
     BEGIN
-        MENUITEM "Help",                        32842
+        MENUITEM "Options...",                  32805
         MENUITEM SEPARATOR
         POPUP "Search Options"
         BEGIN
@@ -421,12 +421,19 @@ BEGIN
             MENUITEM "Show text for first ten copy hot keys", ID_QUICKOPTIONS_SHOWTEXTFORFIRSTTENCOPYHOTKEYS
             MENUITEM "Show indicator a clip has been pasted", ID_QUICKOPTIONS_SHOWINDICATORACLIPHASBEENPASTED
         END
-        MENUITEM "Options...",                  32805
         MENUITEM SEPARATOR
-        MENUITEM "Save Current Clipboard",      ID_MENU_SAVECURRENTCLIPBOARD
+        MENUITEM "Global Hot Keys",             ID_MENU_GLOBALHOTKEYS32933
+        MENUITEM "Delete Clip Data",            ID_MENU_DELETECLIPDATA32934
+        MENUITEM SEPARATOR
+        MENUITEM "Import Clip(s)",              ID_MENU_IMPORTCLIP32935
+        MENUITEM "New Clip",                    ID_MENU_NEWCLIP32937
+        MENUITEM SEPARATOR
+        MENUITEM "Help",                        32842
+        MENUITEM SEPARATOR
         MENUITEM "Connect To Clipboard",        32775
+        MENUITEM "Save Current Clipboard",      ID_MENU_SAVECURRENTCLIPBOARD
         MENUITEM SEPARATOR
-        MENUITEM "Exit Program",                32806
+        MENUITEM "Exit",                        32806
     END
 END
 

+ 27 - 7
Debug/Themes/DarkerDitto.xml

@@ -1,17 +1,37 @@
-<Ditto_Theme_File Version="1" Author="Zigboom" Notes="DarkTheme">
+<Ditto_Theme_File Version="2" Author="Zigboom" Notes="DarkTheme">
 <CaptionLeft>RGB(0,0,0)</CaptionLeft>
-<CaptionRight>RGB(68,68,68)</CaptionRight>
-<CaptionLeftTopMost>RGB(68,68,68)</CaptionLeftTopMost>
-<CaptionRightTopMost>RGB(68,68,68)</CaptionRightTopMost>
-<CaptionLeftNotConnected>RGB(102,102,102)</CaptionLeftNotConnected>
-<CaptionRightNotConnected>RGB(102,102,102)</CaptionRightNotConnected>
-<CaptionTextColor>RGB(204,204,204)</CaptionTextColor>
+<CaptionRight>RGB(51,51,51)</CaptionRight>
+
+<CaptionLeftTopMost>RGB(0,0,0)</CaptionLeftTopMost>
+<CaptionRightTopMost>RGB(255,255,255)</CaptionRightTopMost>
+
+<CaptionLeftNotConnected>RGB(0,0,0)</CaptionLeftNotConnected>
+<CaptionRightNotConnected>RGB(255,0,0)</CaptionRightNotConnected>
+
+<CaptionTextColor>RGB(127,127,127)</CaptionTextColor>
+
 <ListBoxOddRowsBG>RGB(24,24,24)</ListBoxOddRowsBG>
 <ListBoxEvenRowsBG>RGB(0,0,0)</ListBoxEvenRowsBG>
+
 <ListBoxOddRowsText>RGB(153,153,153)</ListBoxOddRowsText>
 <ListBoxEvenRowsText>RGB(153,153,153)</ListBoxEvenRowsText>
+
 <ListBoxSelectedBG>RGB(51,51,51)</ListBoxSelectedBG>
 <ListBoxSelectedNoFocusBG>RGB(0,0,0)</ListBoxSelectedNoFocusBG>
+
 <ListBoxSelectedText>RGB(238,238,238)</ListBoxSelectedText>
 <ListBoxSelectedNoFocusText>RGB(220,220,220)</ListBoxSelectedNoFocusText>
+
+<MainWindowBG>RGB(0,0,0)</MainWindowBG>
+
+<SearchTextBoxFocusBG>RGB(24,24,24)</SearchTextBoxFocusBG>
+<SearchTextBoxFocusText>RGB(127,127,127)</SearchTextBoxFocusText>
+
+<Border>RGB(0,0,0)</Border>
+<BorderTopMost>RGB(0,0,0)</BorderTopMost>
+<BorderNotConnected>RGB(0,0,0)</BorderNotConnected>
+
+<GroupTreeBG>RGB(0,0,0)</GroupTreeBG>
+<GroupTreeText>RGB(153,153,153)</GroupTreeText>
+
 </Ditto_Theme_File>

+ 1 - 1
Debug/Themes/OnnoG Blue.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="Ascii"?>
-<Ditto_Theme_File Version = "210108" Author = "Onno Giesmann" Notes = " http://www.onnog.kilu.de ">
+<Ditto_Theme_File Version = "1" Author = "Onno Giesmann" Notes = " http://www.onnog.kilu.de ">
 	<CaptionLeft>RGB(0, 84, 195)</CaptionLeft> 
 	<CaptionRight>RGB(61, 149, 255)</CaptionRight> 
 	<CaptionLeftTopMost>RGB(10, 36, 106)</CaptionLeftTopMost> Rahmenfarbe beim x 

+ 1 - 1
Debug/Themes/OnnoG Green.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="Ascii"?>
-<Ditto_Theme_File Version = "210108" Author = "Onno Giesmann" Notes = " http://www.onnog.kilu.de ">
+<Ditto_Theme_File Version = "1" Author = "Onno Giesmann" Notes = " http://www.onnog.kilu.de ">
 	<CaptionLeft>RGB(0, 84, 195)</CaptionLeft> 
 	<CaptionRight>RGB(61, 149, 255)</CaptionRight> 
 	<CaptionLeftTopMost>RGB(0, 100, 0)</CaptionLeftTopMost> Rahmenfarbe beim x 

+ 2 - 2
DittoWindow.cpp

@@ -272,7 +272,7 @@ void CDittoWindow::DoNcPaint(CWnd *pWnd)
 	if(m_lRightBorder == CAPTION_BORDER)
 	{
 		rightRect.SetRect(rcBorder.right - CAPTION_BORDER+ border, rcBorder.top, rcBorder.right, rcBorder.top + IndexToPos(index, false));
-		leftRect.SetRect(rcBorder.right - CAPTION_BORDER+ border, rcBorder.top + IndexToPos(index, false) + 1, rcBorder.right, rcBorder.bottom);
+		leftRect.SetRect(rcBorder.right - CAPTION_BORDER+ border, rcBorder.top + IndexToPos(index, false), rcBorder.right, rcBorder.bottom);
 		
 		textRect.SetRect(rcBorder.right + theApp.m_metrics.ScaleX(2), rightRect.bottom + theApp.m_metrics.ScaleX(10), rcBorder.right - CAPTION_BORDER + theApp.m_metrics.ScaleX(0), rcBorder.bottom - theApp.m_metrics.ScaleX(50));
 
@@ -299,7 +299,7 @@ void CDittoWindow::DoNcPaint(CWnd *pWnd)
 	else if(m_lLeftBorder == CAPTION_BORDER)
 	{
 		rightRect.SetRect(rcBorder.left, rcBorder.top, rcBorder.left + CAPTION_BORDER - border, rcBorder.top + IndexToPos(index, false));
-		leftRect.SetRect(rcBorder.left, rcBorder.top + IndexToPos(index, false) + 1, rcBorder.left + CAPTION_BORDER - border, rcBorder.bottom);
+		leftRect.SetRect(rcBorder.left, rcBorder.top + IndexToPos(index, false), rcBorder.left + CAPTION_BORDER - border, rcBorder.bottom);
 
 		textRect.SetRect(rcBorder.left + CAPTION_BORDER - theApp.m_metrics.ScaleX(0), rightRect.bottom + theApp.m_metrics.ScaleX(10), rcBorder.left - theApp.m_metrics.ScaleX(5), rcBorder.bottom - theApp.m_metrics.ScaleX(50));
 

+ 7 - 2
GroupTree.cpp

@@ -64,12 +64,12 @@ int CGroupTree::OnCreate(LPCREATESTRUCT lpCreateStruct)
 		return -1;
 
 	CImageList iml;
-	iml.Create(18, 16, ILC_COLOR8, 0, 1);
+	iml.Create(18, 16, ILC_COLOR | ILC_MASK, 0, 1);
 
 	m_bmClosedFolder.LoadBitmap(IDB_CLOSED_FOLDER);
 	iml.Add(&m_bmClosedFolder, RGB(255, 0, 0));
 
-	m_bmOpenFolder.LoadBitmap(IDB_OPEN_FOLDER);
+	m_bmOpenFolder.LoadBitmap(IDB_CLOSED_FOLDER);
 	iml.Add(&m_bmOpenFolder, RGB(255, 0, 0));
 	
 
@@ -80,6 +80,8 @@ int CGroupTree::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	m_actions.AddAccel(ActionEnums::CLIP_PROPERTIES, ACCEL_MAKEKEY(VK_RETURN, HOTKEYF_ALT));
 	m_actions.AddAccel(ActionEnums::DELETE_SELECTED, VK_DELETE);
 
+	
+
 	return 0;
 }
 
@@ -172,6 +174,9 @@ bool CGroupTree::DoActionClipProperties()
 
 void CGroupTree::FillTree()
 {	
+	this->SetBkColor(g_Opt.m_Theme.GroupTreeBG());
+	this->SetTextColor(g_Opt.m_Theme.GroupTreeText());
+
 	DeleteAllItems();
 	m_bSendAllready = false;
 

+ 1 - 1
Options.cpp

@@ -1844,7 +1844,7 @@ void CGetSetOptions::SetAutoMaxDelay(long lDelay)
 
 void CGetSetOptions::SetTheme(CString csTheme)
 {
-	SetProfileString(_T("Theme"), csTheme);
+	SetProfileString(_T("Theme2"), csTheme);
 }
 
 CString CGetSetOptions::GetTheme()

+ 12 - 4
OptionsQuickPaste.cpp

@@ -250,12 +250,20 @@ void COptionsQuickPaste::FillThemes()
 	while(bCont)
 	{
 		bCont = find.FindNextFile();
-		int nIndex = m_cbTheme.AddString(find.GetFileTitle());
 
-		if(find.GetFileTitle() == csTheme)
+		CTheme theme;
+		if (theme.Load(find.GetFileTitle(), true, false))
 		{
-			m_cbTheme.SetCurSel(nIndex);
-			bSetCurSel = true;
+			if (theme.FileVersion() >= 2)
+			{
+				int nIndex = m_cbTheme.AddString(find.GetFileTitle());
+
+				if (find.GetFileTitle() == csTheme)
+				{
+					m_cbTheme.SetCurSel(nIndex);
+					bSetCurSel = true;
+				}
+			}
 		}
 	}
 

+ 11 - 3
QListCtrl.cpp

@@ -620,6 +620,14 @@ void CQListCtrl::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
 BOOL CQListCtrl::OnEraseBkgnd(CDC* pDC) 
 {
 
+	CRect rect;
+	GetClientRect(&rect);
+	CBrush myBrush(g_Opt.m_Theme.MainWindowBG());    // dialog background color
+	CBrush *pOld = pDC->SelectObject(&myBrush);
+	BOOL bRes = pDC->PatBlt(0, 0, rect.Width(), rect.Height(), PATCOPY);
+	pDC->SelectObject(pOld);    // restore old brush
+	return bRes;                       // CDialog::OnEraseBkgnd(pDC);
+
 	// Simply returning TRUE seems OK since we do custom item
 	//	painting.  However, there is a pixel buffer around the
 	//	border of this control (not within the item rects)
@@ -631,9 +639,9 @@ BOOL CQListCtrl::OnEraseBkgnd(CDC* pDC)
 	// However, for some reason, bulk erasure is very noticeable when
 	//	shift-scrolling the page to select a block of items, so
 	//	I made a special case for that:
-	if(GetSelectedCount() >= 2)
-		return TRUE;
-	return CListCtrl::OnEraseBkgnd(pDC);
+	//if(GetSelectedCount() >= 2)
+	//	return TRUE;
+	//return CListCtrl::OnEraseBkgnd(pDC);
 }
 
 BOOL CQListCtrl::OnToolTipText( UINT id, NMHDR * pNMHDR, LRESULT * pResult )

+ 134 - 2
QPasteWnd.cpp

@@ -275,6 +275,14 @@ ON_UPDATE_COMMAND_UI(ID_STICKYCLIPS_MAKELASTSTICKYCLIP, &CQPasteWnd::OnUpdateSti
 ON_UPDATE_COMMAND_UI(ID_STICKYCLIPS_REMOVESTICKYSETTING, &CQPasteWnd::OnUpdateStickyclipsRemovestickysetting)
 ON_COMMAND(ID_SPECIALPASTE_PASTE32927, &CQPasteWnd::OnSpecialpastePaste32927)
 ON_UPDATE_COMMAND_UI(ID_SPECIALPASTE_PASTE32927, &CQPasteWnd::OnUpdateSpecialpastePaste32927)
+ON_COMMAND(ID_MENU_GLOBALHOTKEYS32933, &CQPasteWnd::OnMenuGlobalhotkeys32933)
+ON_COMMAND(ID_MENU_DELETECLIPDATA32934, &CQPasteWnd::OnMenuDeleteclipdata32934)
+ON_COMMAND(ID_MENU_IMPORTCLIP32935, &CQPasteWnd::OnMenuImportclip32935)
+ON_COMMAND(ID_MENU_NEWCLIP32937, &CQPasteWnd::OnMenuNewclip32937)
+ON_UPDATE_COMMAND_UI(ID_MENU_IMPORTCLIP32935, &CQPasteWnd::OnUpdateMenuImportclip32935)
+ON_UPDATE_COMMAND_UI(ID_MENU_NEWCLIP32937, &CQPasteWnd::OnUpdateMenuNewclip32937)
+ON_UPDATE_COMMAND_UI(ID_MENU_GLOBALHOTKEYS32933, &CQPasteWnd::OnUpdateMenuGlobalhotkeys32933)
+ON_UPDATE_COMMAND_UI(ID_MENU_DELETECLIPDATA32934, &CQPasteWnd::OnUpdateMenuDeleteclipdata32934)
 END_MESSAGE_MAP()
 
 
@@ -324,8 +332,8 @@ int CQPasteWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
     }
 	m_lstHeader.ShowWindow(SW_SHOW);
 
-    ((CWnd*) &m_GroupTree)->CreateEx(NULL, _T("SysTreeView32"), NULL, WS_BORDER | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS, CRect(0, 0, 100, 100), this, 0);
-	m_GroupTree.ModifyStyle(WS_CAPTION | WS_TABSTOP, WS_BORDER);
+    ((CWnd*) &m_GroupTree)->CreateEx(NULL, _T("SysTreeView32"), NULL, TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS, CRect(0, 0, 100, 100), this, 0);
+	m_GroupTree.ModifyStyle(WS_CAPTION | WS_TABSTOP, 0);
 
     m_GroupTree.SetNotificationWndEx(m_hWnd);
     m_GroupTree.ShowWindow(SW_HIDE);
@@ -372,6 +380,8 @@ int CQPasteWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
     m_search.SetFont(&m_SearchFont);
 	m_search.SetPromptFont(m_SearchFont);
 
+	m_GroupTree.SetFont(&m_SearchFont);
+
 	m_groupFont.CreateFont(-theApp.m_metrics.PointsToPixels(8), 0, 0, 0, 400, 0, 1, 0, DEFAULT_CHARSET, 3, 2, 1, 34, _T("Segoe UI"));
 	m_stGroup.SetFont(&m_groupFont);	
 	m_stGroup.SetBkColor(g_Opt.m_Theme.MainWindowBG());
@@ -2900,6 +2910,15 @@ bool CQPasteWnd::DoAction(DWORD actionId)
 	case ActionEnums::REMOVE_STICKY:
 		ret = OnRemoveStickySetting();
 		break;
+	case ActionEnums::GLOBAl_HOTKEYS:
+		ret = OnGlobalHotkyes();
+		break;
+	case ActionEnums::DELETE_CLIP_DATA:
+		ret = OnDeleteClipData();
+		break;
+	case ActionEnums::IMPORT_CLIP:
+		ret = OnImportClip();
+		break;
 	}
 
 	return ret;
@@ -4200,6 +4219,50 @@ bool CQPasteWnd::OnRemoveStickySetting()
 	return true;
 }
 
+bool CQPasteWnd::OnNewClip()
+{
+	CWnd *pWnd = AfxGetMainWnd();
+	if (pWnd != NULL)
+	{
+		pWnd->SendMessage(WM_COMMAND, ID_FIRST_NEWCLIP, 0);
+	}
+
+	return true;
+}
+
+bool CQPasteWnd::OnImportClip()
+{
+	CWnd *pWnd = AfxGetMainWnd();
+	if (pWnd != NULL)
+	{
+		pWnd->SendMessage(WM_COMMAND, ID_FIRST_IMPORT, 0);
+	}
+
+	return true;
+}
+
+bool CQPasteWnd::OnDeleteClipData()
+{
+	CWnd *pWnd = AfxGetMainWnd();
+	if (pWnd != NULL)
+	{
+		pWnd->SendMessage(WM_COMMAND, ID_FIRST_DELETECLIPDATA, 0);
+	}
+
+	return true;
+}
+
+bool CQPasteWnd::OnGlobalHotkyes()
+{
+	CWnd *pWnd = AfxGetMainWnd();
+	if (pWnd != NULL)
+	{
+		pWnd->SendMessage(WM_COMMAND, ID_FIRST_GLOBALHOTKEYS, 0);
+	}
+
+	return true;
+}
+
 bool CQPasteWnd::DoExportToBitMapFile()
 {
 	bool ret = false;
@@ -5893,3 +5956,72 @@ void CQPasteWnd::OnUpdateSpecialpastePaste32927(CCmdUI *pCmdUI)
 
 	UpdateMenuShortCut(pCmdUI, ActionEnums::PASTE_ADD_CURRENT_TIME);
 }
+
+
+void CQPasteWnd::OnMenuGlobalhotkeys32933()
+{
+	DoAction(ActionEnums::GLOBAl_HOTKEYS);
+}
+
+void CQPasteWnd::OnUpdateMenuGlobalhotkeys32933(CCmdUI *pCmdUI)
+{
+	if (!pCmdUI->m_pMenu)
+	{
+		return;
+	}
+
+	UpdateMenuShortCut(pCmdUI, ActionEnums::GLOBAl_HOTKEYS);
+}
+
+
+void CQPasteWnd::OnMenuDeleteclipdata32934()
+{
+	DoAction(ActionEnums::DELETE_CLIP_DATA);
+}
+
+
+
+void CQPasteWnd::OnUpdateMenuDeleteclipdata32934(CCmdUI *pCmdUI)
+{
+	if (!pCmdUI->m_pMenu)
+	{
+		return;
+	}
+
+	UpdateMenuShortCut(pCmdUI, ActionEnums::DELETE_CLIP_DATA);
+}
+
+
+
+void CQPasteWnd::OnMenuImportclip32935()
+{
+	DoAction(ActionEnums::IMPORT_CLIP);
+}
+
+void CQPasteWnd::OnUpdateMenuImportclip32935(CCmdUI *pCmdUI)
+{
+	if (!pCmdUI->m_pMenu)
+	{
+		return;
+	}
+
+	UpdateMenuShortCut(pCmdUI, ActionEnums::IMPORT_CLIP);
+}
+
+void CQPasteWnd::OnMenuNewclip32937()
+{
+	DoAction(ActionEnums::NEWCLIP);
+}
+
+void CQPasteWnd::OnUpdateMenuNewclip32937(CCmdUI *pCmdUI)
+{
+	if (!pCmdUI->m_pMenu)
+	{
+		return;
+	}
+
+	UpdateMenuShortCut(pCmdUI, ActionEnums::NEWCLIP);
+}
+
+
+

+ 13 - 0
QPasteWnd.h

@@ -265,6 +265,11 @@ public:
 	bool OnMakeLastSticky();
 	bool OnRemoveStickySetting();
 
+	bool OnNewClip();
+	bool OnImportClip();
+	bool OnDeleteClipData();
+	bool OnGlobalHotkyes();
+
 	void UpdateMenuShortCut(CCmdUI *pCmdUI, DWORD action);
 
 	bool ShowProperties(int id, int row);
@@ -474,4 +479,12 @@ public:
 	afx_msg void OnSpecialpastePaste32927();
 	afx_msg void OnUpdateSpecialpastePaste32927(CCmdUI *pCmdUI);
 	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
+	afx_msg void OnMenuGlobalhotkeys32933();
+	afx_msg void OnMenuDeleteclipdata32934();
+	afx_msg void OnMenuImportclip32935();
+	afx_msg void OnMenuNewclip32937();
+	afx_msg void OnUpdateMenuImportclip32935(CCmdUI *pCmdUI);
+	afx_msg void OnUpdateMenuNewclip32937(CCmdUI *pCmdUI);
+	afx_msg void OnUpdateMenuGlobalhotkeys32933(CCmdUI *pCmdUI);
+	afx_msg void OnUpdateMenuDeleteclipdata32934(CCmdUI *pCmdUI);
 };

+ 10 - 1
Resource.h

@@ -647,6 +647,15 @@
 #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
 
 // Next default values for new objects
 // 
@@ -654,7 +663,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        318
-#define _APS_NEXT_COMMAND_VALUE         32929
+#define _APS_NEXT_COMMAND_VALUE         32938
 #define _APS_NEXT_CONTROL_VALUE         2146
 #define _APS_NEXT_SYMED_VALUE           104
 #endif

+ 6 - 1
SymbolEdit.cpp

@@ -288,12 +288,17 @@ void CSymbolEdit::OnPaint()
 
 	if(this == GetFocus() || text.GetLength() > 0)
 	{
-		dc.FillSolidRect(rect, RGB(255, 255, 255));
+		dc.FillSolidRect(rect, g_Opt.m_Theme.SearchTextBoxFocusBG());
 
 		oldFont = dc.SelectObject(GetFont());		
+
+		COLORREF oldColor = dc.GetTextColor();
+		dc.SetTextColor(g_Opt.m_Theme.SearchTextBoxFocusText());
 			
 		dc.DrawText(text, textRect, DT_SINGLELINE | DT_INTERNAL | DT_EDITCONTROL);
+
 		dc.SelectObject(oldFont);
+		dc.SetTextColor(oldColor);
 	}
 	else
 	{

+ 37 - 7
Theme.cpp

@@ -11,9 +11,19 @@ CTheme::CTheme(void)
 	m_LastWriteTime = 0;
 	m_lastTheme = _T("");
 
+	LoadDefaults();
+}
+
+CTheme::~CTheme(void)
+{
+}
+
+
+void CTheme::LoadDefaults()
+{
 	m_CaptionLeft = RGB(255, 255, 255);
 	m_CaptionRight = RGB(204, 204, 204);
-	
+
 	m_Border = RGB(204, 204, 204);
 	m_BorderTopMost = RGB(100, 100, 100);
 	m_BorderNotConnected = RGB(255, 0, 0);
@@ -24,7 +34,7 @@ CTheme::CTheme(void)
 	m_CaptionRightNotConnected = RGB(204, 204, 204);
 	m_CaptionTextColor = RGB(191, 191, 191);
 	m_ListBoxOddRowsBG = RGB(255, 255, 255);
-	m_ListBoxEvenRowsBG = RGB(250, 250, 250);
+	m_ListBoxEvenRowsBG = RGB(243, 243, 243);
 	m_ListBoxOddRowsText = RGB(0, 0, 0);
 	m_ListBoxEvenRowsText = RGB(0, 0, 0);
 	m_ListBoxSelectedBG = RGB(204, 204, 204);
@@ -34,17 +44,21 @@ CTheme::CTheme(void)
 	m_clipPastedColor = RGB(0, 255, 0);
 	m_listSmallQuickPasteIndexColor = RGB(180, 180, 180);
 	m_mainWindowBG = RGB(240, 240, 240);
-}
+	m_searchTextBoxFocusBG = RGB(255, 255, 255);
+	m_searchTextBoxFocusText = RGB(0, 0, 0);
 
-CTheme::~CTheme(void)
-{
+	m_groupTreeBG = RGB(240, 240, 240);
+	m_groupTreeText = RGB(127, 127, 127);
 }
 
-
 bool CTheme::Load(CString csTheme, bool bHeaderOnly, bool bCheckLastWriteTime)
 {
-	if(csTheme.IsEmpty())
+	LoadDefaults();
+
+	if (csTheme.IsEmpty() || csTheme == _T("Ditto"))
+	{
 		return false;
+	}
 
 	CString csPath = CGetSetOptions::GetPath(PATH_THEMES);
 	csPath += csTheme;
@@ -110,6 +124,16 @@ bool CTheme::Load(CString csTheme, bool bHeaderOnly, bool bCheckLastWriteTime)
 	LoadElement(ItemHeader, "ListBoxSelectedText", m_ListBoxSelectedText);
 	LoadElement(ItemHeader, "ListBoxSelectedNoFocusText", m_ListBoxSelectedNoFocusText);
 	LoadElement(ItemHeader, "ClipPastedColor", m_clipPastedColor);
+	LoadElement(ItemHeader, "MainWindowBG", m_mainWindowBG);
+	LoadElement(ItemHeader, "SearchTextBoxFocusBG", m_searchTextBoxFocusBG);
+	LoadElement(ItemHeader, "SearchTextBoxFocusText", m_searchTextBoxFocusText);
+
+	LoadElement(ItemHeader, "Border", m_Border);
+	LoadElement(ItemHeader, "BorderTopMost", m_BorderTopMost);
+	LoadElement(ItemHeader, "BorderNotConnected", m_BorderNotConnected);
+
+	LoadElement(ItemHeader, "GroupTreeBG", m_groupTreeBG);
+	LoadElement(ItemHeader, "GroupTreeText", m_groupTreeText);
 
 	return true;
 }
@@ -133,6 +157,12 @@ bool CTheme::LoadElement(TiXmlElement *pParent, CStringA csNode, COLORREF &Color
 	}
 	
 	CString csColor = pColor->Value();
+
+	if (csColor == _T(""))
+	{
+		return false;
+	}
+
 	csColor = csColor.Trim();
 	csColor.Replace(_T("RGB("), _T(""));
 	csColor.Replace(_T(")"), _T(""));

+ 13 - 0
Theme.h

@@ -34,6 +34,12 @@ public:
 
 	COLORREF ListSmallQuickPasteIndexColor() const { return m_listSmallQuickPasteIndexColor;  }
 	COLORREF MainWindowBG() const { return m_mainWindowBG; }
+	COLORREF SearchTextBoxFocusBG() const { return m_searchTextBoxFocusBG; }
+	COLORREF SearchTextBoxFocusText() const { return m_searchTextBoxFocusText; }
+
+	COLORREF GroupTreeBG() const { return m_groupTreeBG; }
+	COLORREF GroupTreeText() const { return m_groupTreeText; }
+
 
 	CString Notes() const { return m_csNotes; }
 	CString Author() const { return m_csAuthor; }
@@ -67,6 +73,11 @@ protected:
 	COLORREF m_Border;
 	COLORREF m_BorderTopMost;
 	COLORREF m_BorderNotConnected;
+	COLORREF m_searchTextBoxFocusBG;
+	COLORREF m_searchTextBoxFocusText;
+
+	COLORREF m_groupTreeBG;
+	COLORREF m_groupTreeText;
 
 	CString m_csLastError;
 	long m_lFileVersion;
@@ -75,4 +86,6 @@ protected:
 
 	__int64 m_LastWriteTime;
 	CString m_lastTheme;
+
+	void LoadDefaults();
 };

BIN
res/bitmap1.bmp