OSDN Git Service

Add Patch List to Sendmail Listctrl.
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / SendMailDlg.cpp
1 // SendMailDlg.cpp : implementation file\r
2 //\r
3 \r
4 #include "stdafx.h"\r
5 #include "TortoiseProc.h"\r
6 #include "SendMailDlg.h"\r
7 #include "MessageBox.h"\r
8 #include "commonresource.h"\r
9 // CSendMailDlg dialog\r
10 \r
11 IMPLEMENT_DYNAMIC(CSendMailDlg, CResizableStandAloneDialog)\r
12 \r
13 CSendMailDlg::CSendMailDlg(CWnd* pParent /*=NULL*/)\r
14         : CResizableStandAloneDialog(CSendMailDlg::IDD, pParent)\r
15         , m_To(_T(""))\r
16         , m_CC(_T(""))\r
17         , m_Subject(_T(""))\r
18         , m_bAttachment(FALSE)\r
19         , m_bBranch(FALSE)\r
20 {\r
21 \r
22 }\r
23 \r
24 CSendMailDlg::~CSendMailDlg()\r
25 {\r
26 }\r
27 \r
28 void CSendMailDlg::DoDataExchange(CDataExchange* pDX)\r
29 {\r
30         CDialog::DoDataExchange(pDX);\r
31         DDX_Text(pDX, IDC_SENDMAIL_TO, m_To);\r
32         DDX_Text(pDX, IDC_SENDMAIL_CC, m_CC);\r
33         DDX_Text(pDX, IDC_SENDMAIL_SUBJECT, m_Subject);\r
34         DDX_Check(pDX, IDC_SENDMAIL_ATTACHMENT, m_bAttachment);\r
35         DDX_Check(pDX, IDC_SENDMAIL_COMBINE, m_bBranch);\r
36         DDX_Control(pDX, IDC_SENDMAIL_PATCHS, m_ctrlList);\r
37         DDX_Control(pDX,IDC_SENDMAIL_SETUP, this->m_SmtpSetup);\r
38         DDX_Control(pDX,IDC_SENDMAIL_TO,m_ctrlTO);\r
39         DDX_Control(pDX,IDC_SENDMAIL_CC,m_ctrlCC);\r
40 }\r
41 \r
42 \r
43 BEGIN_MESSAGE_MAP(CSendMailDlg, CResizableStandAloneDialog)\r
44         ON_BN_CLICKED(IDC_SENDMAIL_COMBINE, &CSendMailDlg::OnBnClickedSendmailCombine)\r
45         ON_BN_CLICKED(IDOK, &CSendMailDlg::OnBnClickedOk)\r
46 END_MESSAGE_MAP()\r
47 \r
48 \r
49 // CSendMailDlg message handlers\r
50 \r
51 BOOL CSendMailDlg::OnInitDialog()\r
52 {\r
53         CResizableStandAloneDialog::OnInitDialog();\r
54 \r
55         AddAnchor(IDC_SENDMAIL_GROUP,TOP_LEFT,TOP_RIGHT);\r
56         AddAnchor(IDC_SENDMAIL_TO,TOP_LEFT,TOP_RIGHT);\r
57         AddAnchor(IDC_SENDMAIL_CC,TOP_LEFT,TOP_RIGHT);\r
58         AddAnchor(IDC_SENDMAIL_SUBJECT,TOP_LEFT,TOP_RIGHT);\r
59         AddAnchor(IDC_SENDMAIL_SETUP,TOP_RIGHT);\r
60 \r
61         AddAnchor(IDC_SENDMAIL_PATCHS,TOP_LEFT,BOTTOM_RIGHT);\r
62         AddAnchor(IDOK,BOTTOM_RIGHT);\r
63         AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
64 \r
65         this->AddOthersToAnchor();\r
66         EnableSaveRestore(_T("SendMailDlg"));\r
67 \r
68         m_ctrlCC.Init();\r
69         m_ctrlTO.Init();\r
70 \r
71         m_ctrlCC.SetSeparator(_T(";"));\r
72         m_ctrlTO.SetSeparator(_T(";"));\r
73 \r
74         m_AddressReg.SetMaxHistoryItems(0xFFFF);\r
75 \r
76         m_AddressReg.Load(_T("Software\\TortoiseGit\\TortoiseProc\\EmailAddress\\"),_T("email"));\r
77         for(int i=0;i<m_AddressReg.GetCount();i++)\r
78         {\r
79                 m_ctrlCC.AddSearchString(m_AddressReg.GetEntry(i));\r
80                 m_ctrlTO.AddSearchString(m_AddressReg.GetEntry(i));\r
81         }\r
82 \r
83         m_ctrlList.SetExtendedStyle( m_ctrlList.GetExtendedStyle()| LVS_EX_CHECKBOXES );\r
84 \r
85         for(int i=0;i<m_PathList.GetCount();i++)\r
86         {\r
87                 m_ctrlList.InsertItem(i,m_PathList[i].GetWinPathString());\r
88                 m_ctrlList.SetCheck(i,true);\r
89         }\r
90         \r
91 //      m_ctrlCC.AddSearchString(_T("Tortoisegit-dev@google.com"));\r
92 //      m_ctrlTO.AddSearchString(_T("Tortoisegit-dev@google.com"));\r
93 \r
94         return TRUE;\r
95 }\r
96 void CSendMailDlg::OnBnClickedSendmailCombine()\r
97 {\r
98         // TODO: Add your control notification handler code here\r
99 }\r
100 \r
101 void CSendMailDlg::OnBnClickedOk()\r
102 {\r
103         \r
104         this->UpdateData();\r
105         if(this->m_To.IsEmpty() && this->m_CC.IsEmpty())\r
106         {\r
107                 CMessageBox::Show(NULL,IDS_ERR_ADDRESS_NO_EMPTY,IDS_APPNAME,MB_OK|MB_ICONERROR);\r
108                 return;\r
109         }\r
110         int start =0;\r
111         CString Address;\r
112         while(start>=0)\r
113         {\r
114                 Address=this->m_CC.Tokenize(_T(";"),start);\r
115                 m_AddressReg.AddEntry(Address);\r
116                 m_AddressReg.Save();\r
117         }\r
118         start =0;\r
119         while(start>=0)\r
120         {\r
121                 Address=this->m_To.Tokenize(_T(";"),start);\r
122                 m_AddressReg.AddEntry(Address);\r
123                 m_AddressReg.Save();\r
124         }       \r
125         \r
126         OnOK();\r
127         // TODO: Add your control notification handler code here\r
128 }\r