OSDN Git Service

Merge with stable
[winmerge-jp/winmerge-jp.git] / Src / CCPrompt.cpp
index dbc1261..eaa4cd5 100644 (file)
@@ -25,6 +25,7 @@
 #include "stdafx.h"
 #include "CCPrompt.h"
 #include "Merge.h"
+#include "DDXHelper.h"
 
 #ifdef _DEBUG
 #define new DEBUG_NEW
 static char THIS_FILE[] = __FILE__;
 #endif
 
-CCCPrompt::CCCPrompt(CWnd* pParent /*=NULL*/)
-       : CDialog(CCCPrompt::IDD, pParent)
-       , m_bMultiCheckouts(FALSE)
-       , m_bCheckin(FALSE)
+/**
+ * @brief A dialog for ClearCase checkout/checkin.
+ */
+class CCCPrompt::Impl : public CDialog
+{
+// Construction
+public:
+       CCCPrompt::Impl(CCCPrompt *p, CWnd* pParent = NULL);   // standard constructor
+
+// Dialog Data
+       //{{AFX_DATA(CCCPrompt::Impl)
+       enum { IDD = IDD_CLEARCASE };
+       //}}AFX_DATA
+
+
+// Overrides
+       // ClassWizard generated virtual function overrides
+       //{{AFX_VIRTUAL(CCCPrompt::Impl)
+       protected:
+       virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
+       //}}AFX_VIRTUAL
+
+// Implementation
+protected:
+       virtual BOOL OnInitDialog();
+
+       // Generated message map functions
+       //{{AFX_MSG(CCCPrompt::Impl)
+       afx_msg void OnSaveas();
+       //}}AFX_MSG
+       DECLARE_MESSAGE_MAP()
+
+private:
+       CCCPrompt *m_p;
+};
+
+CCCPrompt::Impl::Impl(CCCPrompt *p, CWnd* pParent /*=NULL*/)
+       : CDialog(CCCPrompt::Impl::IDD, pParent)
+       , m_p(p)
 {
 }
 
-void CCCPrompt::DoDataExchange(CDataExchange* pDX)
+void CCCPrompt::Impl::DoDataExchange(CDataExchange* pDX)
 {
        CDialog::DoDataExchange(pDX);
-       //{{AFX_DATA_MAP(CCCPrompt)
-       DDX_Text(pDX, IDC_COMMENTS, m_comments);
-       DDX_Check(pDX, IDC_MULTI_CHECKOUT, m_bMultiCheckouts);
-       DDX_Check(pDX, IDC_CHECKIN, m_bCheckin);
+       //{{AFX_DATA_MAP(CCCPrompt::Impl)
+       DDX_Text(pDX, IDC_COMMENTS, m_p->m_comments);
+       DDX_Check(pDX, IDC_MULTI_CHECKOUT, m_p->m_bMultiCheckouts);
+       DDX_Check(pDX, IDC_CHECKIN, m_p->m_bCheckin);
        //}}AFX_DATA_MAP
 }
 
-BEGIN_MESSAGE_MAP(CCCPrompt, CDialog)
-       //{{AFX_MSG_MAP(CCCPrompt)
+BEGIN_MESSAGE_MAP(CCCPrompt::Impl, CDialog)
+       //{{AFX_MSG_MAP(CCCPrompt::Impl)
        ON_BN_CLICKED(IDC_SAVE_AS, OnSaveas)
        //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
@@ -59,7 +95,7 @@ END_MESSAGE_MAP()
  * @brief Handler for WM_INITDIALOG; conventional location to initialize
  * controls. At this point dialog and control windows exist.
  */
-BOOL CCCPrompt::OnInitDialog() 
+BOOL CCCPrompt::Impl::OnInitDialog() 
 {
        theApp.TranslateDialog(m_hWnd);
        CDialog::OnInitDialog();
@@ -68,7 +104,16 @@ BOOL CCCPrompt::OnInitDialog()
                      // EXCEPTION: OCX Property Pages should return FALSE
 }
 
-void CCCPrompt::OnSaveas() 
+void CCCPrompt::Impl::OnSaveas() 
 {
        EndDialog(IDC_SAVE_AS);
 }
+
+CCCPrompt::CCCPrompt()
+       : m_pimpl(new CCCPrompt::Impl(this))
+       , m_bMultiCheckouts(false)
+       , m_bCheckin(false)
+{}
+CCCPrompt::~CCCPrompt() {}
+int CCCPrompt::DoModal() { return static_cast<int>(m_pimpl->DoModal()); }
+