OSDN Git Service

* Use standard order of header files
[winmerge-jp/winmerge-jp.git] / Src / SelectUnpackerDlg.h
1 /////////////////////////////////////////////////////////////////////////////
2 //    WinMerge:  an interactive diff/merge utility
3 //    Copyright (C) 1997-2000  Thingamahoochie Software
4 //    Author: Dean Grimm
5 //
6 //    This program is free software; you can redistribute it and/or modify
7 //    it under the terms of the GNU General Public License as published by
8 //    the Free Software Foundation; either version 2 of the License, or
9 //    (at your option) any later version.
10 //
11 //    This program is distributed in the hope that it will be useful,
12 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 //    GNU General Public License for more details.
15 //
16 //    You should have received a copy of the GNU General Public License
17 //    along with this program; if not, write to the Free Software
18 //    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 //
20 /////////////////////////////////////////////////////////////////////////////
21 /**
22  *  @file SelectUnpackerDlg.h : 
23  *
24  *  @brief Declaration file for the dialog SelectUnpacker
25  */ 
26 // RCS ID line follows -- this is updated by CVS
27 // $Id$
28
29 #if !defined(AFX_SELECTUNPACKERDLG_H__C8FD4C3A_5ED5_43D3_ADAE_A2378369705C__INCLUDED_)
30 #define AFX_SELECTUNPACKERDLG_H__C8FD4C3A_5ED5_43D3_ADAE_A2378369705C__INCLUDED_
31
32 #include <vector>
33 #include <boost/scoped_ptr.hpp>
34
35 /////////////////////////////////////////////////////////////////////////////
36 // CSelectUnpackerDlgDlg dialog
37
38 class PackingInfo;
39 class PluginInfo;
40
41 class CSelectUnpackerDlg : public CDialog
42 {
43 private:
44 // Construction
45         void Initialize();
46
47 public:
48 // Construction
49         CSelectUnpackerDlg(LPCTSTR filename, CWnd* pParent /*=NULL*/);
50         CSelectUnpackerDlg(LPCTSTR filename1, LPCTSTR filename2, CWnd* pParent /*=NULL*/);
51         ~CSelectUnpackerDlg();
52
53         void SetInitialInfoHandler(PackingInfo * infoHandler);
54         const PackingInfo GetInfoHandler();
55
56 // Dialog Data
57         //{{AFX_DATA(CSelectUnpackerDlg)
58         enum { IDD = IDD_SELECTUNPACKER };
59         CButton m_btnOK;
60         CComboBox       m_cboUnpackerName;
61         BOOL    m_bNoExtensionCheck;
62         CString m_strDescription;
63         CString m_strExtensions;
64         //}}AFX_DATA
65
66
67 // Overrides
68         // ClassWizard generated virtual function overrides
69         //{{AFX_VIRTUAL(CSelectUnpackerDlg)
70         protected:
71         virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
72         //}}AFX_VIRTUAL
73
74 // Implementation
75 protected:
76         /// arrays for string describing the available plugins
77         CPtrArray  m_UnpackerPlugins;
78         std::vector<bool> m_bWithFileFlags;
79
80         // const data "no plugin"
81         boost::scoped_ptr<PluginInfo> noPlugin;
82         // const data "automatic plugin"
83         boost::scoped_ptr<PluginInfo> automaticPlugin;
84
85         // input value
86         CString m_filteredFilenames;
87
88         /// current plugin choice
89         PluginInfo * m_pPlugin;
90         /// current plugin choice
91         CString m_strPluginName;
92
93         void prepareListbox();
94
95         // Generated message map functions
96         //{{AFX_MSG(CSelectUnpackerDlg)
97         virtual void OnOK();
98         virtual BOOL OnInitDialog();
99         afx_msg void OnUnpackerAllowAll();
100         afx_msg void OnSelchangeUnpackerName();
101         //}}AFX_MSG
102         DECLARE_MESSAGE_MAP()
103 };
104
105 //{{AFX_INSERT_LOCATION}}
106 // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
107
108 #endif // !defined(AFX_SELECTUNPACKERDLG_H__C8FD4C3A_5ED5_43D3_ADAE_A2378369705C__INCLUDED_)