Catch the CMemoryExceptions when loading files in TortoiseMerge
[TortoiseGit.git] / src / TortoiseGitBlame / PropertiesWnd.h
blob9915ca092181a77b0a69ba7f213fcb725560d627
1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2008-2011 - TortoiseGit
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 #pragma once
23 #include "GitRev.h"
25 class CPropertiesToolBar : public CMFCToolBar
27 public:
28 virtual void OnUpdateCmdUI(CFrameWnd* /*pTarget*/, BOOL bDisableIfNoHndler)
30 CMFCToolBar::OnUpdateCmdUI((CFrameWnd*) GetOwner(), bDisableIfNoHndler);
33 virtual BOOL AllowShowOnList() const { return FALSE; }
36 class CPropertiesWnd : public CDockablePane
38 // Construction
39 public:
40 CPropertiesWnd();
42 void AdjustLayout();
44 // Attributes
45 public:
46 void SetVSDotNetLook(BOOL bSet)
48 m_wndPropList.SetVSDotNetLook(bSet);
49 m_wndPropList.SetGroupNameFullWidth(bSet);
52 // rev=NULL, means clear properties info;
53 void UpdateProperties(GitRev *rev=NULL);
55 protected:
56 CFont m_fntPropList;
57 CPropertiesToolBar m_wndToolBar;
58 CMFCPropertyGridCtrl m_wndPropList;
60 void RemoveParent();
61 // Implementation
62 public:
63 virtual ~CPropertiesWnd();
65 protected:
66 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
67 afx_msg void OnSize(UINT nType, int cx, int cy);
68 afx_msg void OnExpandAllProperties();
69 afx_msg void OnUpdateExpandAllProperties(CCmdUI* pCmdUI);
70 afx_msg void OnSortProperties();
71 afx_msg void OnUpdateSortProperties(CCmdUI* pCmdUI);
72 afx_msg void OnSetFocus(CWnd* pOldWnd);
73 afx_msg void OnSettingChange(UINT uFlags, LPCTSTR lpszSection);
75 DECLARE_MESSAGE_MAP()
77 void InitPropList();
78 void SetPropListFont();
80 CMFCPropertyGridProperty* m_CommitHash;
81 CMFCPropertyGridProperty* m_AuthorName;
82 CMFCPropertyGridProperty* m_AuthorDate;
83 CMFCPropertyGridProperty* m_AuthorEmail;
85 CMFCPropertyGridProperty* m_CommitterName;
86 CMFCPropertyGridProperty* m_CommitterEmail;
87 CMFCPropertyGridProperty* m_CommitterDate;
89 CMFCPropertyGridProperty* m_Subject;
90 CMFCPropertyGridProperty* m_Body;
92 CMFCPropertyGridProperty* m_ParentGroup;
93 CMFCPropertyGridProperty* m_BaseInfoGroup;
95 std::vector<CMFCPropertyGridProperty*> m_ParentHash;
96 std::vector<CMFCPropertyGridProperty*> m_ParentSubject;