|
@@ -26,12 +26,12 @@ static char THIS_FILE[] = __FILE__;
|
|
|
|
|
|
extern CMainFrame* g_pMainFrame;
|
|
|
|
|
|
-// 重启进程按钮id;
|
|
|
-#define ID_BUTTON_RESTART_PROC 4
|
|
|
-// 复制框控件id;
|
|
|
-#define ID_CHECKBOX_SIGNAL_TYPE 5
|
|
|
-// 下拉框控件id;
|
|
|
-#define ID_COMBOBOX_SIGNAL_FILE 6
|
|
|
+#define ID_BTN_UPGRADE 7
|
|
|
+#define ID_EDIT_IMAGE_PATH 8
|
|
|
+#define ID_EIDT_FTP_USER 9
|
|
|
+#define ID_EDIT_FTP_PASSWORD 10
|
|
|
+#define ID_CHECK_REMEMBER_FTP 11
|
|
|
+
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
// CResourceViewBar
|
|
|
|
|
@@ -49,18 +49,16 @@ CUpgradeWnd::~CUpgradeWnd()
|
|
|
BEGIN_MESSAGE_MAP(CUpgradeWnd, CDockablePane)
|
|
|
ON_WM_CREATE()
|
|
|
ON_WM_SIZE()
|
|
|
- ON_COMMAND(ID_EXPAND_ALL, OnExpandAllProperties)
|
|
|
- ON_UPDATE_COMMAND_UI(ID_EXPAND_ALL, OnUpdateExpandAllProperties)
|
|
|
- ON_COMMAND(ID_SORTPROPERTIES, OnSortProperties)
|
|
|
- ON_UPDATE_COMMAND_UI(ID_SORTPROPERTIES, OnUpdateSortProperties)
|
|
|
- ON_COMMAND(ID_PROPERTIES1, OnProperties1)
|
|
|
- ON_UPDATE_COMMAND_UI(ID_PROPERTIES1, OnUpdateProperties1)
|
|
|
- ON_COMMAND(ID_PROPERTIES2, OnProperties2)
|
|
|
- ON_UPDATE_COMMAND_UI(ID_PROPERTIES2, OnUpdateProperties2)
|
|
|
ON_WM_SETFOCUS()
|
|
|
ON_WM_SETTINGCHANGE()
|
|
|
ON_WM_PAINT()
|
|
|
-
|
|
|
+ ON_COMMAND(ID_BTN_UPGRADE, OnUpgradeBtnClick)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_BTN_UPGRADE, OnUpdateBtnUpgrade)
|
|
|
+ ON_COMMAND(ID_CHECK_REMEMBER_FTP, OnCheckRememberFtpClick)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_CHECK_REMEMBER_FTP, OnUpdateCheckRememberFtp)
|
|
|
+ ON_EN_CHANGE(ID_EDIT_IMAGE_PATH, OnEnChangeEdit)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_EIDT_FTP_USER, OnUpdateFtpUser)
|
|
|
+ ON_UPDATE_COMMAND_UI(ID_EDIT_FTP_PASSWORD, OnUpdateFtpPassword)
|
|
|
ON_WM_CONTEXTMENU()
|
|
|
ON_WM_CTLCOLOR()
|
|
|
END_MESSAGE_MAP()
|
|
@@ -111,7 +109,7 @@ void CUpgradeWnd::AdjustLayout()
|
|
|
// 4、是否记住ftp信息;
|
|
|
m_check_remember.GetWindowRect(rcCtrl);
|
|
|
ScreenToClient(rcCtrl);
|
|
|
- m_check_remember.SetWindowPos(nullptr, rectClient.left + margin, rectClient.top + nHeight, rcCtrl.Width(), rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
|
|
|
+ m_check_remember.SetWindowPos(nullptr, rectClient.left + margin, rectClient.top + nHeight, rectClient.Width() - margin * 2, rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
|
|
|
nHeight += rcCtrl.Height() + dr;
|
|
|
|
|
|
// 5、升级;
|
|
@@ -132,52 +130,43 @@ int CUpgradeWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
|
const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_BORDER | CBS_SORT | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
|
|
|
|
|
|
// 编辑框;
|
|
|
- m_text_path.Create(_T("路径:"), SS_CENTER | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE, rectDummy, this, IDC_STATIC);
|
|
|
- if (!m_edit_path.Create( WS_CHILD | WS_VISIBLE, rectDummy, this, 8))
|
|
|
+ m_text_path.Create(_T("路径:"), SS_CENTER | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE , rectDummy, this, IDC_STATIC);
|
|
|
+ if (!m_edit_path.Create( WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, rectDummy, this, ID_EDIT_IMAGE_PATH))
|
|
|
{
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- if (!m_btnUpgrade.Create(_T("升级"), WS_CHILD | WS_VISIBLE, rectDummy, this, 9))
|
|
|
+ m_text_user.Create(_T("FTP账号:"), SS_CENTER | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE, rectDummy, this, IDC_STATIC);
|
|
|
+ if (!m_ftp_user.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, rectDummy, this, ID_EIDT_FTP_USER))
|
|
|
{
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- m_text_user.Create(_T("FTP账号:"), SS_CENTER | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE, rectDummy, this, IDC_STATIC);
|
|
|
- if (!m_ftp_user.Create(WS_CHILD | WS_VISIBLE, rectDummy, this, 10))
|
|
|
+ m_text_password.Create(_T("FTP密码:"), SS_CENTER | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE, rectDummy, this, IDC_STATIC);
|
|
|
+ if (!m_ftp_password.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | ES_PASSWORD | WS_TABSTOP, rectDummy, this, ID_EDIT_FTP_PASSWORD))
|
|
|
{
|
|
|
+ //m_ftp_password.SetPasswordChar(‘*');
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- m_text_password.Create(_T("FTP密码:"), SS_CENTER | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE, rectDummy, this, IDC_STATIC);
|
|
|
- if (!m_ftp_password.Create(WS_CHILD | WS_VISIBLE, rectDummy, this, 11))
|
|
|
+ if (!m_check_remember.Create(_T("记住信息"), WS_CHILD | BS_CHECKBOX| WS_VISIBLE | WS_TABSTOP, rectDummy, this, ID_CHECK_REMEMBER_FTP))
|
|
|
{
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- if (!m_check_remember.Create(_T("记住信息"), WS_CHILD | WS_VISIBLE, rectDummy, this, 12))
|
|
|
+ if (!m_btnUpgrade.Create(_T("升级"), WS_CHILD | WS_VISIBLE | WS_TABSTOP, rectDummy, this, ID_BTN_UPGRADE))
|
|
|
{
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- m_check_remember.SetCheck(Global::g_Config.bRememberFTPInfo ? BST_CHECKED : BST_UNCHECKED);
|
|
|
- m_check_remember.m_bHighlightChecked = TRUE;
|
|
|
- // CMFCButton只能用图标来显示check;
|
|
|
- m_check_remember.SetImage(IDB_UNCHECKED);
|
|
|
- m_check_remember.SetCheckedImage(IDB_CHECKED);
|
|
|
- m_check_remember.m_bTransparent = FALSE;
|
|
|
- m_check_remember.m_bDrawFocus = FALSE;
|
|
|
- m_check_remember.m_nFlatStyle = CMFCButton::BUTTONSTYLE_FLAT;
|
|
|
- m_check_remember.SizeToContent();
|
|
|
-
|
|
|
-
|
|
|
// 以编辑框高度为所有控件高度标准;
|
|
|
CRect rcCtrl;
|
|
|
m_edit_path.GetClientRect(&rcCtrl);
|
|
|
m_nCtrlHeight = rcCtrl.Height();
|
|
|
|
|
|
// 设置控件样式;
|
|
|
- SetPropListFont();
|
|
|
+ SetCtrlStyle();
|
|
|
+ SetStaticFont();
|
|
|
|
|
|
// 设置最小窗体;
|
|
|
SetMinSize((530, 260));
|
|
@@ -185,6 +174,9 @@ int CUpgradeWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
|
// 校正布局;
|
|
|
AdjustLayout();
|
|
|
|
|
|
+ m_ftp_user.SetWindowText(Global::g_Config.strFtpUser.c_str());
|
|
|
+ m_ftp_password.SetWindowText(Global::g_Config.strFtpPassword.c_str());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -197,56 +189,77 @@ void CUpgradeWnd::OnSize(UINT nType, int cx, int cy)
|
|
|
AdjustLayout();
|
|
|
}
|
|
|
|
|
|
-void CUpgradeWnd::OnExpandAllProperties()
|
|
|
+void CUpgradeWnd::OnUpgradeBtnClick()
|
|
|
{
|
|
|
- //m_wndPropList.ExpandAll();
|
|
|
-}
|
|
|
-
|
|
|
-void CUpgradeWnd::OnUpdateExpandAllProperties(CCmdUI* /* pCmdUI */)
|
|
|
-{
|
|
|
-}
|
|
|
+ CString strPath = _T(""), strFtpUser = _T(""), strFtpPassword = _T("");
|
|
|
+ m_edit_path.GetWindowText(strPath);
|
|
|
+ m_ftp_user.GetWindowText(strFtpUser);
|
|
|
+ m_ftp_password.GetWindowText(strFtpPassword);
|
|
|
+ if ( _bIsFtpPath ) {
|
|
|
+ Global::g_Config.strFtpUser = strFtpUser.GetString();
|
|
|
+ Global::g_Config.strFtpPassword = strFtpPassword.GetString();
|
|
|
+ WritePrivateProfileString("SATHelper", "ftp_user", strFtpUser.GetString(), Global::g_szConfig);
|
|
|
+ WritePrivateProfileString("SATHelper", "ftp_password", strFtpPassword.GetString(), Global::g_szConfig);
|
|
|
+ }
|
|
|
|
|
|
-void CUpgradeWnd::OnSortProperties()
|
|
|
-{
|
|
|
- //m_wndPropList.SetAlphabeticMode(!m_wndPropList.IsAlphabeticMode());
|
|
|
-}
|
|
|
+ TCHAR szPath[MAX_PATH] = {0};
|
|
|
+ _stprintf_s(szPath, _T("%sscripts\\TVUpgrade.py"), Global::g_szCurModuleDir);
|
|
|
+ PyObject *pRet = CallPython::CallPython(szPath, _T("API_TVUpgrade"), 3, _variant_t(strPath.GetString()), _variant_t(strFtpUser.GetString()), _variant_t(strFtpPassword.GetString()));
|
|
|
+ if (pRet == NULL)
|
|
|
+ {
|
|
|
+ AfxMessageBox(_T("运行失败"));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ TCHAR szValue[MAX_PATH] = {0};
|
|
|
+ PyArg_Parse(pRet, "s", &szValue);
|
|
|
+ AfxMessageBox(szValue);
|
|
|
+ }
|
|
|
|
|
|
-void CUpgradeWnd::OnUpdateSortProperties(CCmdUI* pCmdUI)
|
|
|
-{
|
|
|
- //pCmdUI->SetCheck(m_wndPropList.IsAlphabeticMode());
|
|
|
}
|
|
|
|
|
|
-void CUpgradeWnd::OnProperties1()
|
|
|
+void CUpgradeWnd::OnUpdateBtnUpgrade(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
- // TODO: 在此处添加命令处理程序代码
|
|
|
}
|
|
|
|
|
|
-void CUpgradeWnd::OnUpdateProperties1(CCmdUI* /*pCmdUI*/)
|
|
|
+void CUpgradeWnd::OnCheckRememberFtpClick()
|
|
|
{
|
|
|
- // TODO: 在此处添加命令更新 UI 处理程序代码
|
|
|
+ BOOL bCheck = m_check_remember.GetCheck();
|
|
|
+ m_check_remember.SetCheck(!bCheck);
|
|
|
+ Global::g_Config.bRememberFTPInfo = !bCheck;
|
|
|
+ WritePrivateProfileString("SATHelper", "rememberFTPInfo", Global::g_Config.bRememberFTPInfo ? "1" : "0", Global::g_szConfig);
|
|
|
}
|
|
|
|
|
|
-void CUpgradeWnd::OnProperties2()
|
|
|
+void CUpgradeWnd::OnUpdateCheckRememberFtp(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
- // TODO: 在此处添加命令处理程序代码
|
|
|
+ pCmdUI->SetCheck(Global::g_Config.bRememberFTPInfo);
|
|
|
}
|
|
|
|
|
|
-void CUpgradeWnd::OnUpdateProperties2(CCmdUI* /*pCmdUI*/)
|
|
|
+void CUpgradeWnd::OnEnChangeEdit()
|
|
|
{
|
|
|
- // TODO: 在此处添加命令更新 UI 处理程序代码
|
|
|
+ UpdateData(TRUE);
|
|
|
+ CString strText = _T("");
|
|
|
+ m_edit_path.GetWindowText(strText);
|
|
|
+
|
|
|
+ strText.TrimLeft(_T(" "));
|
|
|
+ strText.MakeLower();
|
|
|
+ if (strText.Find(_T("ftp://")) == 0 )
|
|
|
+ _bIsFtpPath = TRUE;
|
|
|
+ else
|
|
|
+ _bIsFtpPath = FALSE;
|
|
|
}
|
|
|
|
|
|
-void CUpgradeWnd::OnSetFocus(CWnd* pOldWnd)
|
|
|
+void CUpgradeWnd::OnUpdateFtpUser(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
- CDockablePane::OnSetFocus(pOldWnd);
|
|
|
+ pCmdUI->Enable(_bIsFtpPath);
|
|
|
}
|
|
|
|
|
|
-void CUpgradeWnd::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
|
|
|
+void CUpgradeWnd::OnUpdateFtpPassword(CCmdUI* pCmdUI)
|
|
|
{
|
|
|
- CDockablePane::OnSettingChange(uFlags, lpszSection);
|
|
|
+ pCmdUI->Enable(_bIsFtpPath);
|
|
|
}
|
|
|
|
|
|
-void CUpgradeWnd::SetPropListFont()
|
|
|
+void CUpgradeWnd::SetStaticFont()
|
|
|
{
|
|
|
::DeleteObject(m_fntPropList.Detach());
|
|
|
|
|
@@ -267,7 +280,32 @@ void CUpgradeWnd::SetPropListFont()
|
|
|
m_text_path.SetFont(&m_fntPropList);
|
|
|
m_text_user.SetFont(&m_fntPropList);
|
|
|
m_text_password.SetFont(&m_fntPropList);
|
|
|
+ m_check_remember.SetFont(&m_fntPropList);
|
|
|
+
|
|
|
+ m_edit_path.SetFont(&m_fntPropList);
|
|
|
+ m_ftp_user.SetFont(&m_fntPropList);
|
|
|
+ m_ftp_password.SetFont(&m_fntPropList);
|
|
|
+}
|
|
|
|
|
|
+void CUpgradeWnd::SetCtrlStyle()
|
|
|
+{
|
|
|
+ // 将button设置成checkbox;
|
|
|
+ m_check_remember.SetCheck(Global::g_Config.bRememberFTPInfo ? BST_CHECKED : BST_UNCHECKED);
|
|
|
+ /*m_check_remember.m_bHighlightChecked = TRUE;
|
|
|
+ // CMFCButton只能用图标来显示check;
|
|
|
+ m_check_remember.SetImage(IDB_UNCHECKED);
|
|
|
+ m_check_remember.SetCheckedImage(IDB_CHECKED);
|
|
|
+ m_check_remember.m_bTransparent = FALSE;
|
|
|
+ m_check_remember.m_bDrawFocus = FALSE;
|
|
|
+ m_check_remember.m_nFlatStyle = CMFCButton::BUTTONSTYLE_FLAT;
|
|
|
+ m_check_remember.SizeToContent();*/
|
|
|
+
|
|
|
+ m_edit_path.EnableFileBrowseButton();
|
|
|
+ m_edit_path.EnableFileBrowseButton(_T(""), _T("Image Files(*.img)|*.img"
|
|
|
+ "|Zip Files(*.zip)|*.zip"
|
|
|
+ "|Rar Files(*.rar)|*.rar"
|
|
|
+ "|Binary Files(*.bin)|*.bin"
|
|
|
+ "|All Files (*.*)|*.*||"));
|
|
|
}
|
|
|
|
|
|
// 如果CDockablePane无控件,改变大小时背景会刷新失败;
|
|
@@ -296,7 +334,7 @@ HBRUSH CUpgradeWnd::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
|
|
HBRUSH hbr = CDockablePane::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
|
|
|
|
// TODO: 在此更改 DC 的任何特性
|
|
|
- if (nCtlColor == CTLCOLOR_STATIC && pWnd->GetDlgCtrlID() == IDC_STATIC ) //静态文本颜色,并且指定控件ID号
|
|
|
+ if (nCtlColor == CTLCOLOR_STATIC ) //静态文本颜色,并且指定控件ID号 && pWnd->GetDlgCtrlID() == IDC_STATIC
|
|
|
{
|
|
|
pDC->SetTextColor(RGB(255, 0, 0));
|
|
|
//pDC->SetBkColor(RGB(191,219,255)); //静态控件的背景颜色设置,红字蓝底。
|