OSDN Git Service

refactor
[winmerge-jp/winmerge-jp.git] / Src / PropArchive.cpp
1 /** 
2  * @file  PropArchive.cpp
3  *
4  * @brief Implementation of PropArchive propertysheet
5  */
6
7 #include "stdafx.h"
8 #include "PropArchive.h"
9 #include "OptionsDef.h"
10 #include "OptionsMgr.h"
11 #include "OptionsPanel.h"
12
13 #ifdef _DEBUG
14 #define new DEBUG_NEW
15 #endif
16
17 // PropArchive dialog
18
19 PropArchive::PropArchive(COptionsMgr *optionsMgr)
20 : OptionsPanel(optionsMgr, PropArchive::IDD)
21 , m_bEnableSupport(false)
22 , m_bProbeType(false)
23 {
24 }
25
26 /** 
27  * @brief Sets update handlers for dialog controls.
28  */
29 void PropArchive::DoDataExchange(CDataExchange* pDX)
30 {
31         CPropertyPage::DoDataExchange(pDX);
32         DDX_Check(pDX, IDC_ARCHIVE_ENABLE, m_bEnableSupport);
33         DDX_Check(pDX, IDC_ARCHIVE_DETECTTYPE, m_bProbeType);
34         UpdateControls();
35 }
36
37
38 BEGIN_MESSAGE_MAP(PropArchive, OptionsPanel)
39         ON_BN_CLICKED(IDC_ARCHIVE_ENABLE, OnEnableClicked)
40 END_MESSAGE_MAP()
41
42 /** 
43  * @brief Reads options values from storage to UI.
44  */
45 void PropArchive::ReadOptions()
46 {
47         m_bEnableSupport = GetOptionsMgr()->GetBool(OPT_ARCHIVE_ENABLE);
48         m_bProbeType = GetOptionsMgr()->GetBool(OPT_ARCHIVE_PROBETYPE);
49 }
50
51 /** 
52  * @brief Writes options values from UI to storage.
53  */
54 void PropArchive::WriteOptions()
55 {
56         GetOptionsMgr()->SaveOption(OPT_ARCHIVE_ENABLE, m_bEnableSupport);
57         GetOptionsMgr()->SaveOption(OPT_ARCHIVE_PROBETYPE, m_bProbeType);
58 }
59
60 /** 
61  * @brief Called when archive support is enabled or disabled.
62  */
63 void PropArchive::OnEnableClicked()
64 {
65         UpdateControls();
66 }
67
68 /** 
69  * @brief Called Updates controls enabled/disables state.
70  */
71 void PropArchive::UpdateControls()
72 {
73         EnableDlgItem(IDC_ARCHIVE_DETECTTYPE, IsDlgButtonChecked(IDC_ARCHIVE_ENABLE) == 1);
74 }