OSDN Git Service

Add color success and fail at ProgressDlg
authorFrank Li <lznuaa@gmail.com>
Sat, 31 Oct 2009 05:50:16 +0000 (13:50 +0800)
committerFrank Li <lznuaa@gmail.com>
Sat, 31 Oct 2009 06:15:54 +0000 (14:15 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/TortoiseProc/ProgressDlg.cpp
src/TortoiseProc/ProgressDlg.h

index 44a0116..a0034d5 100644 (file)
@@ -211,6 +211,11 @@ LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam)
                m_Progress.SetPos(100);\r
                this->DialogEnableWindow(IDOK,TRUE);\r
 \r
+               if(this->m_GitStatus)\r
+                       InsertColorText(this->m_Log,_T("\r\nFailed\r\n"),RGB(255,0,0));\r
+               else\r
+                       InsertColorText(this->m_Log,_T("\r\nSuccess\r\n"),RGB(0,0,255));\r
+\r
                if(wParam == MSG_PROGRESSDLG_END && m_GitStatus == 0)\r
                {\r
                        if(m_bAutoCloseOnSuccess)\r
@@ -443,4 +448,23 @@ void CProgressDlg::InsertCRLF()
                        }\r
                }\r
        }\r
-}
\ No newline at end of file
+}\r
+\r
+void CProgressDlg::InsertColorText(CRichEditCtrl &edit,CString text,COLORREF rgb)\r
+{\r
+       CHARFORMAT old,cf;\r
+       edit.GetDefaultCharFormat(cf);\r
+       old=cf;\r
+       cf.dwMask|=CFM_COLOR;\r
+       cf.crTextColor=rgb;\r
+       cf.dwEffects|=CFE_BOLD;\r
+       cf.dwEffects &= ~CFE_AUTOCOLOR ;\r
+       edit.SetSel(edit.GetTextLength()-1,edit.GetTextLength());\r
+       edit.ReplaceSel(text);\r
+       edit.SetSel(edit.LineIndex(edit.GetLineCount()-2),edit.GetTextLength());\r
+       edit.SetSelectionCharFormat(cf);\r
+       edit.SetSel(edit.GetTextLength(),edit.GetTextLength());\r
+       edit.SetDefaultCharFormat(old);\r
+       edit.LineScroll(edit.GetLineCount());\r
+}\r
+\r
index 8f4ff56..8f33bb6 100644 (file)
@@ -66,6 +66,7 @@ public:
        //Share with Sync Dailog\r
        static int      FindPercentage(CString &log);\r
        static void     ParserCmdOutput(CRichEditCtrl &log,CProgressCtrl &progressctrl,CString &oneline, TCHAR ch,CWnd *CurrentWork=NULL);\r
+       static void InsertColorText(CRichEditCtrl &edit,CString text,COLORREF rgb);\r
 \r
        static UINT  RunCmdList(CWnd *pWnd,std::vector<CString> &cmdlist,bool bShowCommand,CString *pfilename,bool *bAbort,std::vector<TCHAR> *pdata=NULL);\r
 \r