OSDN Git Service

Fix issue where active pane is not restored correctly (2)
[winmerge-jp/winmerge-jp.git] / Src / HexMergeFrm.h
1 /////////////////////////////////////////////////////////////////////////////
2 //    WinMerge:  an interactive diff/merge utility
3 //    Copyright (C) 1997  Dean P. Grimm
4 //
5 //    This program is free software; you can redistribute it and/or modify
6 //    it under the terms of the GNU General Public License as published by
7 //    the Free Software Foundation; either version 2 of the License, or
8 //    (at your option) any later version.
9 //
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.
14 //
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
17 //    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 //
19 /////////////////////////////////////////////////////////////////////////////
20 /** 
21  * @file  HexMergeFrm.h
22  *
23  * @brief interface of the CHexMergeFrame class
24  *
25  */
26 #pragma once
27
28 #include "SplitterWndEx.h"
29 #include "EditorFilepathBar.h"
30 #include "MergeFrameCommon.h"
31
32 #define HEKSEDIT_INTERFACE_VERSION 2
33 #include "heksedit.h"
34
35 class CHexMergeDoc;
36
37 /** 
38  * @brief Frame class for file compare, handles panes, statusbar etc.
39  */
40 class CHexMergeFrame : public CMergeFrameCommon
41 {
42         DECLARE_DYNCREATE(CHexMergeFrame)
43 public:
44         CHexMergeFrame();
45
46 // Operations
47 public:
48         void UpdateResources();
49         void CloseNow();
50         IHeaderBar * GetHeaderInterface();
51         CHexMergeDoc * GetMergeDoc() { return m_pMergeDoc; }
52
53         void UpdateAutoPaneResize();
54         void UpdateSplitter();
55         int GetActivePane();
56         void SetActivePane(int nPane);
57
58 // Attributes
59 protected:
60         CSplitterWndEx m_wndSplitter;
61         CEditorFilePathBar m_wndFilePathBar;
62         CStatusBar m_wndStatusBar[3];
63 // Overrides
64 public:
65         // ClassWizard generated virtual function overrides
66         //{{AFX_VIRTUAL(CHexMergeFrame)
67         public:
68         virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
69         virtual void ActivateFrame(int nCmdShow = -1);
70         virtual BOOL DestroyWindow();
71         protected:
72         //}}AFX_VIRTUAL
73
74 // Implementation
75 private:
76         void SavePosition();
77         void SaveActivePane();
78         virtual ~CHexMergeFrame();
79         void CreateHexWndStatusBar(CStatusBar &, CWnd *);
80 // Generated message map functions
81 private:
82         void UpdateHeaderSizes();
83         CHexMergeDoc * m_pMergeDoc;
84
85         //{{AFX_MSG(CHexMergeFrame)
86         afx_msg void OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd);
87         afx_msg void OnSize(UINT nType, int cx, int cy);
88         afx_msg void OnIdleUpdateCmdUI();
89         afx_msg LRESULT OnStorePaneSizes(WPARAM wParam, LPARAM lParam);
90         //}}AFX_MSG
91         DECLARE_MESSAGE_MAP()
92 };
93
94 inline IHeaderBar *CHexMergeFrame::GetHeaderInterface()
95 {
96         return &m_wndFilePathBar;
97 }
98