00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "LoginDlg.h"
00009
00010 #ifdef _DEBUG
00011 #define new DEBUG_NEW
00012 #undef THIS_FILE
00013 static char THIS_FILE[] = __FILE__;
00014 #endif
00015
00016 CLoginDlg::CLoginDlg(CWnd* pParent )
00017 : CDialog(CLoginDlg::IDD, pParent)
00018 {
00019
00020 m_strUser = _T("");
00021 m_strPassword = _T("");
00022
00023 }
00024
00025 void CLoginDlg::DoDataExchange(CDataExchange* pDX)
00026 {
00027 CDialog::DoDataExchange(pDX);
00028
00029 DDX_Text(pDX, IDC_USER, m_strUser);
00030 DDX_Text(pDX, IDC_PASSWORD, m_strPassword);
00031
00032 }
00033
00034 BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
00035
00036 ON_WM_CONTEXTMENU()
00037 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00038 ON_WM_HELPINFO()
00039
00040 END_MESSAGE_MAP()
00041
00042 BOOL CLoginDlg::OnInitDialog()
00043 {
00044 CDialog::OnInitDialog();
00045
00046 CString str;
00047 str.Format (LS (L_LOGINTO), m_strServer);
00048 SetWindowText (str);
00049
00050 if (m_strUser.GetLength ())
00051 {
00052 CEdit *pPass = (CEdit*) GetDlgItem (IDC_PASSWORD);
00053 pPass->SetSel (0, -1);
00054 pPass->SetFocus ();
00055 }
00056 else
00057 GetDlgItem (IDC_USER)->SetFocus ();
00058
00059 ApplyLanguage ();
00060
00061 return FALSE;
00062 }
00063
00064 void CLoginDlg::OnContextMenu(CWnd* , CPoint point)
00065 {
00066 PrepareCHMgr (point);
00067 _CHMgr.ShowMenu ();
00068 }
00069
00070 void CLoginDlg::OnWhatisthis()
00071 {
00072 _CHMgr.OnWT ();
00073 }
00074
00075 void CLoginDlg::ApplyLanguage()
00076 {
00077 fsDlgLngInfo lnginfo [] = {
00078 fsDlgLngInfo (IDC__USER, L_USER),
00079 fsDlgLngInfo (IDC__PASSWORD, L_PASSWORD),
00080 fsDlgLngInfo (IDCANCEL, L_CANCEL),
00081 };
00082
00083 CString str; str = LS (L_LOGINREQ); str += '\n'; str += LS (L_LOGINREQENTERLOGIN);
00084 SetDlgItemText (IDC__LOGINREQ, str);
00085
00086 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), 0);
00087 }
00088
00089 void CLoginDlg::PrepareCHMgr(CPoint point)
00090 {
00091 fsCtrlContextHelp aCH1 [] = {
00092 fsCtrlContextHelp (IDC__USER, LS (L_USERHERE)),
00093 fsCtrlContextHelp (IDC_USER, LS (L_USERHERE)),
00094 fsCtrlContextHelp (IDC__PASSWORD, LS (L_PWDHERE)),
00095 fsCtrlContextHelp (IDC_PASSWORD, LS (L_PWDHERE)),
00096 fsCtrlContextHelp (IDOK, LS (L_SENDLOGIN)),
00097 fsCtrlContextHelp (IDCANCEL, LS (L_DONTCONNECTTOSERV)),
00098 };
00099
00100 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00101 CopyMemory (aCH, aCH1, sizeof (aCH));
00102
00103 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00104 }
00105
00106 BOOL CLoginDlg::OnHelpInfo(HELPINFO* pHelpInfo)
00107 {
00108 RECT rc;
00109 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00110 if (pItem == NULL)
00111 return TRUE;
00112 pItem->GetWindowRect (&rc);
00113 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00114 {
00115 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00116 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00117 }
00118 PrepareCHMgr (pHelpInfo->MousePos);
00119 _CHMgr.OnWT ();
00120 return TRUE;
00121 }