OSDN Git Service

GitBlame Use command Line argument to open file
[tortoisegit/TortoiseGitJp.git] / src / TortoiseGitBlame / TortoiseGitBlameView.h
index a9a7784..fd5f837 100644 (file)
@@ -5,6 +5,37 @@
 \r
 #pragma once\r
 \r
+#include "Scintilla.h"\r
+#include "SciLexer.h"\r
+#include "registry.h"\r
+#include "SciEdit.h"\r
+\r
+#include "GitBlameLogList.h"\r
+#include "Balloon.h"\r
+\r
+const COLORREF black = RGB(0,0,0);\r
+const COLORREF white = RGB(0xff,0xff,0xff);\r
+const COLORREF red = RGB(0xFF, 0, 0);\r
+const COLORREF offWhite = RGB(0xFF, 0xFB, 0xF0);\r
+const COLORREF darkGreen = RGB(0, 0x80, 0);\r
+const COLORREF darkBlue = RGB(0, 0, 0x80);\r
+const COLORREF lightBlue = RGB(0xA6, 0xCA, 0xF0);\r
+const int blockSize = 128 * 1024;\r
+\r
+#define BLAMESPACE 5\r
+#define HEADER_HEIGHT 18\r
+#define LOCATOR_WIDTH 10\r
+\r
+#define MAX_LOG_LENGTH 2000\r
+\r
+\r
+#ifndef GET_X_LPARAM\r
+#define GET_X_LPARAM(lp)                        ((int)(short)LOWORD(lp))\r
+#endif\r
+#ifndef GET_Y_LPARAM\r
+#define GET_Y_LPARAM(lp)                        ((int)(short)HIWORD(lp))\r
+#endif\r
+\r
 \r
 class CTortoiseGitBlameView : public CView\r
 {\r
@@ -40,10 +71,150 @@ protected:
 \r
 // Generated message map functions\r
 protected:\r
+       BOOL PreTranslateMessage(MSG* pMsg);\r
+       afx_msg void OnEditFind();\r
+       afx_msg void OnEditGoto();\r
        afx_msg void OnFilePrintPreview();\r
        afx_msg void OnRButtonUp(UINT nFlags, CPoint point);\r
        afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);\r
+       afx_msg int OnCreate(LPCREATESTRUCT lpcs);\r
+       afx_msg void OnSize(UINT nType, int cx, int cy);\r
+       afx_msg void OnSciPainted(NMHDR*, LRESULT*);\r
+       afx_msg void OnLButtonDown(UINT nFlags,CPoint point);\r
+       afx_msg void OnRButtonDown(UINT nFlags,CPoint point){OnLButtonDown(nFlags,point);CView::OnRButtonDown(nFlags,point);};\r
+       afx_msg void OnSciGetBkColor(NMHDR*, LRESULT*);\r
+       afx_msg void OnMouseHover(UINT nFlags, CPoint point);\r
+       afx_msg void OnMouseMove(UINT nFlags, CPoint point);\r
+    afx_msg LRESULT OnFindDialogMessage(WPARAM   wParam,   LPARAM   lParam);\r
        DECLARE_MESSAGE_MAP()\r
+\r
+    static UINT m_FindDialogMessage;\r
+public:\r
+\r
+       void UpdateInfo();\r
+       void FocusOn(GitRev *pRev);\r
+\r
+       CSciEdit                        m_TextView;\r
+       CBalloon                        m_ToolTip;\r
+\r
+       HINSTANCE hInstance;\r
+       HINSTANCE hResource;\r
+       HWND currentDialog;\r
+       HWND wMain;\r
+       HWND m_wEditor;\r
+       HWND wBlame;\r
+       HWND wHeader;\r
+       HWND wLocator;\r
+       HWND hwndTT;\r
+\r
+       BOOL bIgnoreEOL;\r
+       BOOL bIgnoreSpaces;\r
+       BOOL bIgnoreAllSpaces;\r
+\r
+       BOOL m_bShowAuthor;\r
+       BOOL m_bShowDate;\r
+\r
+\r
+       LRESULT SendEditor(UINT Msg, WPARAM wParam=0, LPARAM lParam=0);\r
+\r
+       void GetRange(int start, int end, char *text);\r
+\r
+       void SetTitle();\r
+       BOOL OpenFile(const char *fileName);\r
+       BOOL OpenLogFile(const char *fileName);\r
+\r
+       void Command(int id);\r
+       void Notify(SCNotification *notification);\r
+\r
+       void SetAStyle(int style, COLORREF fore, COLORREF back=::GetSysColor(COLOR_WINDOW), int size=-1, CString *face=0);\r
+\r
+       void InitialiseEditor();\r
+    void InitSize();\r
+       LONG GetBlameWidth();\r
+       void DrawBlame(HDC hDC);\r
+       void DrawHeader(HDC hDC);\r
+       void DrawLocatorBar(HDC hDC);\r
+       void StartSearch();\r
+       void CopySelectedLogToClipboard();\r
+       void BlamePreviousRevision();\r
+       void DiffPreviousRevision();\r
+       void ShowLog();\r
+       bool DoSearch(CString what, DWORD flags);\r
+       bool GotoLine(long line);\r
+       bool ScrollToLine(long line);\r
+       void GotoLineDlg();\r
+       static INT_PTR CALLBACK GotoDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);\r
+\r
+       void SetSelectedLine(LONG line) { m_SelectedLine=line;};\r
+\r
+       LONG                                            m_mouserev;\r
+       LONG                                            m_MouseLine;\r
+       LONG                                            m_selectedrev;\r
+       LONG                                            m_selectedorigrev;\r
+       CString                                         m_SelectedHash;\r
+       CString                                         m_selecteddate;\r
+       static long                                     m_gotoline;\r
+       long                                            m_lowestrev;\r
+       long                                            m_highestrev;\r
+       bool                                            m_colorage;\r
+\r
+//     std::vector<bool>               m_Mergelines;\r
+       std::vector<LONG>               m_ID;\r
+       std::vector<LONG>               m_LineNum;\r
+//     std::vector<LONG>               m_Origrevs;\r
+       std::vector<CString>    m_Dates;\r
+       std::vector<CString>    m_Authors;\r
+       std::vector<CString>    m_CommitHash;\r
+\r
+//     std::vector<CString>    m_Paths;\r
+//     std::map<LONG, CString> logmessages;\r
+       char                                            m_szTip[MAX_LOG_LENGTH*2+6];\r
+       wchar_t                                         m_wszTip[MAX_LOG_LENGTH*2+6];\r
+       void StringExpand(LPSTR str);\r
+       void StringExpand(LPWSTR str);\r
+       BOOL                                            ttVisible;\r
+\r
+       CLogDataVector *                GetLogData();\r
+\r
+       BOOL m_bShowLine;\r
+\r
+protected:\r
+       void CreateFont();\r
+       void SetupLexer(CString filename);\r
+       void SetupCppLexer();\r
+       COLORREF InterColor(COLORREF c1, COLORREF c2, int Slider);\r
+       CString GetAppDirectory();\r
+       std::vector<COLORREF>           colors;\r
+       HFONT                                           m_font;\r
+       HFONT                                           m_italicfont;\r
+       LONG                                            m_blamewidth;\r
+       LONG                                            m_revwidth;\r
+       LONG                                            m_datewidth;\r
+       LONG                                            m_authorwidth;\r
+       LONG                                            m_pathwidth;\r
+       LONG                                            m_linewidth;\r
+       LONG                                            m_SelectedLine; ///< zero-based\r
+\r
+       COLORREF                                        m_mouserevcolor;\r
+       COLORREF                                        m_mouseauthorcolor;\r
+       COLORREF                                        m_selectedrevcolor;\r
+       COLORREF                                        m_selectedauthorcolor;\r
+       COLORREF                                        m_windowcolor;\r
+       COLORREF                                        m_textcolor;\r
+       COLORREF                                        m_texthighlightcolor;\r
+\r
+       LRESULT                                         m_directFunction;\r
+       LRESULT                                         m_directPointer;\r
+       FINDREPLACE                                     fr;\r
+       TCHAR                                           szFindWhat[80];\r
+\r
+       CRegStdWORD                                     m_regOldLinesColor;\r
+       CRegStdWORD                                     m_regNewLinesColor;\r
+\r
+       CGitBlameLogList * GetLogList();\r
+\r
+    CFindReplaceDialog          *m_pFindDialog;\r
+\r
 };\r
 \r
 #ifndef _DEBUG  // debug version in TortoiseGitBlameView.cpp\r