Index: src/ch/ShortcutsDlg.cpp =================================================================== diff -u -rd5c3edd0d167db9b5d47d04248820fda49499a5e -r973e284577383310bef3c4e4ef21de0b14e44094 --- src/ch/ShortcutsDlg.cpp (.../ShortcutsDlg.cpp) (revision d5c3edd0d167db9b5d47d04248820fda49499a5e) +++ src/ch/ShortcutsDlg.cpp (.../ShortcutsDlg.cpp) (revision 973e284577383310bef3c4e4ef21de0b14e44094) @@ -20,6 +20,8 @@ #include "ch.h" #include "ShortcutsDlg.h" #include "dialogs.h" +#include "shortcuts.h" +#include "resource.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -30,17 +32,11 @@ ///////////////////////////////////////////////////////////////////////////// // CShortcutsDlg dialog - -CShortcutsDlg::CShortcutsDlg(CWnd* pParent /*=NULL*/) - :ictranslate::CLanguageDialog(CShortcutsDlg::IDD, pParent) +CShortcutsDlg::CShortcutsDlg(CWnd* pParent /*=nullptr*/) + :ictranslate::CLanguageDialog(IDD_SHORTCUTEDIT_DIALOG, pParent) { - //{{AFX_DATA_INIT(CShortcutsDlg) - m_strName = _T(""); - //}}AFX_DATA_INIT - m_bActualisation=false; } - void CShortcutsDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); @@ -51,7 +47,6 @@ //}}AFX_DATA_MAP } - BEGIN_MESSAGE_MAP(CShortcutsDlg,ictranslate::CLanguageDialog) //{{AFX_MSG_MAP(CShortcutsDlg) ON_NOTIFY(LVN_ITEMCHANGED, IDC_SHORTCUT_LIST, OnItemchangedShortcutList) @@ -72,6 +67,28 @@ { CLanguageDialog::OnInitDialog(); + AddResizableControl(IDC_001_STATIC, 0, 0, 1, 0); + AddResizableControl(IDC_SHORTCUT_LIST, 0, 0, 1, 1); + AddResizableControl(IDC_UP_BUTTON, 1, 0, 0, 0); + AddResizableControl(IDC_DOWN_BUTTON, 1, 0, 0, 0); + + AddResizableControl(IDC_004_STATIC, 0, 1, 1, 0); + AddResizableControl(IDC_002_STATIC, 0, 1, 0, 0); + AddResizableControl(IDC_003_STATIC, 0, 1, 0, 0); + + AddResizableControl(IDC_NAME_EDIT, 0, 1, 1, 0); + AddResizableControl(IDC_PATH_COMBOBOXEX, 0, 1, 1, 0); + AddResizableControl(IDC_BROWSE_BUTTON, 1, 1, 0, 0); + + AddResizableControl(IDC_ADD_BUTTON, 0, 1, 0, 0); + AddResizableControl(IDC_CHANGE_BUTTON, 0, 1, 0, 0); + AddResizableControl(IDC_DELETE_BUTTON, 0, 1, 0, 0); + AddResizableControl(IDOK, 1, 1, 0, 0); + AddResizableControl(IDCANCEL, 1, 1, 0, 0); + AddResizableControl(IDC_HELP_BUTTON, 1, 1, 0, 0); + + InitializeResizableControls(); + // system image list SHFILEINFO sfi; m_himl = (HIMAGELIST)SHGetFileInfo(_T("C:\\"), FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(SHFILEINFO), @@ -86,13 +103,13 @@ COMBOBOXEXITEM cbi; cbi.mask=CBEIF_IMAGE | CBEIF_TEXT; - for (int i=0;i<(int)m_pcvRecent->size();i++) + for(size_t stIndex = 0; stIndex < m_pcvRecent->size(); ++stIndex) { - cbi.iItem=i; - cbi.pszText=m_pcvRecent->at(i); - sfi.iIcon=-1; + cbi.iItem = stIndex; + cbi.pszText = const_cast((PCTSTR)m_pcvRecent->at(stIndex)); + sfi.iIcon = -1; SHGetFileInfo(cbi.pszText, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON); - cbi.iImage=sfi.iIcon; + cbi.iImage = sfi.iIcon; m_ctlPath.InsertItem(&cbi); } @@ -102,25 +119,25 @@ lvc.mask=LVCF_SUBITEM | LVCF_WIDTH | LVCF_TEXT; lvc.iSubItem=-1; lvc.cx=100; - lvc.pszText=(PTSTR)GetResManager()->LoadString(IDS_SHORTCUTNAME_STRING); + lvc.pszText=(PTSTR)GetResManager().LoadString(IDS_SHORTCUTNAME_STRING); m_ctlShortcuts.InsertColumn(0, &lvc); lvc.iSubItem=0; lvc.cx=200; - lvc.pszText=(PTSTR)GetResManager()->LoadString(IDS_SHORTCUTPATH_STRING); + lvc.pszText=(PTSTR)GetResManager().LoadString(IDS_SHORTCUTPATH_STRING); m_ctlShortcuts.InsertColumn(1, &lvc); // modify list style m_ctlShortcuts.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_ONECLICKACTIVATE | LVS_EX_INFOTIP | LVS_EX_UNDERLINEHOT); // update shortcut list CShortcut sc; - for (int i=0;i<(int)m_cvShortcuts.size();i++) + for(size_t stIndex = 0; stIndex < m_cvShortcuts.size(); ++stIndex) { - sc=CString(m_cvShortcuts.at(i)); - sfi.iIcon=-1; + sc = CShortcut(m_cvShortcuts.at(stIndex)); + sfi.iIcon = -1; SHGetFileInfo(sc.m_strPath, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_LARGEICON); - m_ctlShortcuts.InsertItem(i, sc.m_strName, sfi.iIcon); - m_ctlShortcuts.SetItem(i, 1, LVIF_TEXT, sc.m_strPath, 0, 0, 0, 0); + m_ctlShortcuts.InsertItem(boost::numeric_cast(stIndex), sc.m_strName, sfi.iIcon); + m_ctlShortcuts.SetItem(boost::numeric_cast(stIndex), 1, LVIF_TEXT, sc.m_strPath, 0, 0, 0, 0); } return TRUE; @@ -131,7 +148,7 @@ NM_LISTVIEW* plv = (NM_LISTVIEW*)pNMHDR; // current selection - if (plv->iItem >= 0 && plv->iItem < (int)m_cvShortcuts.size()) + if (plv->iItem >= 0 && plv->iItem < boost::numeric_cast(m_cvShortcuts.size())) { CShortcut sc(CString(m_cvShortcuts.at(plv->iItem))); m_strName=sc.m_strName; @@ -219,14 +236,14 @@ m_ctlPath.GetWindowText(sc.m_strPath); // add to an array - m_cvShortcuts.push_back((const PTSTR)(LPCTSTR)(CString)sc, true); + m_cvShortcuts.push_back(sc.ToString()); // add with an icon SHFILEINFO sfi; sfi.iIcon=-1; SHGetFileInfo(sc.m_strPath, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_LARGEICON); - m_ctlShortcuts.InsertItem(m_cvShortcuts.size()-1, sc.m_strName, sfi.iIcon); - m_ctlShortcuts.SetItem(m_cvShortcuts.size()-1, 1, LVIF_TEXT, sc.m_strPath, 0, 0, 0, 0); + m_ctlShortcuts.InsertItem(boost::numeric_cast(m_cvShortcuts.size() - 1), sc.m_strName, sfi.iIcon); + m_ctlShortcuts.SetItem(boost::numeric_cast(m_cvShortcuts.size() - 1), 1, LVIF_TEXT, sc.m_strPath, 0, 0, 0, 0); } void CShortcutsDlg::OnChangeButton() @@ -245,7 +262,7 @@ m_ctlPath.GetWindowText(sc.m_strPath); // array update - m_cvShortcuts.replace(m_cvShortcuts.begin()+iPos, (const PTSTR)(LPCTSTR)(CString)sc, true, true); + m_cvShortcuts[iPos] = sc.ToString(); // list SHFILEINFO sfi; @@ -266,7 +283,7 @@ while (pos) { iPos=m_ctlShortcuts.GetNextSelectedItem(pos); - m_cvShortcuts.erase(m_cvShortcuts.begin()+iPos, true); + m_cvShortcuts.erase(m_cvShortcuts.begin() + iPos); m_ctlShortcuts.DeleteItem(iPos); } @@ -277,38 +294,40 @@ void CShortcutsDlg::OnBrowseButton() { CString strPath; - if (BrowseForFolder(GetResManager()->LoadString(IDS_BROWSE_STRING), &strPath)) + if (BrowseForFolder(GetResManager().LoadString(IDS_BROWSE_STRING), &strPath)) SetComboPath(strPath); } void CShortcutsDlg::OnUpButton() { POSITION pos=m_ctlShortcuts.GetFirstSelectedItemPosition(); - int iPos=-1; CShortcut sc; while (pos) { // get current selected item - iPos=m_ctlShortcuts.GetNextSelectedItem(pos); + int iPos=m_ctlShortcuts.GetNextSelectedItem(pos); // if the first element is trying to go up to nowhere if (iPos == 0) break; // swap data in m_ascShortcuts - m_cvShortcuts.swap_items(m_cvShortcuts.begin()+iPos-1, m_cvShortcuts.begin()+iPos); + std::vector::iterator iterOne = m_cvShortcuts.begin() + iPos - 1; + std::vector::iterator iterTwo = m_cvShortcuts.begin()+iPos; + std::iter_swap(iterOne, iterTwo); + //m_cvShortcuts.swap(); // do the same with list SHFILEINFO sfi; sfi.iIcon=-1; - sc=CString(m_cvShortcuts.at(iPos-1)); + sc=CShortcut(m_cvShortcuts.at(iPos-1)); SHGetFileInfo(sc.m_strPath, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_LARGEICON); m_ctlShortcuts.SetItem(iPos-1, -1, LVIF_TEXT | LVIF_IMAGE , sc.m_strName, sfi.iIcon, 0, 0, 0); m_ctlShortcuts.SetItem(iPos-1, 1, LVIF_TEXT, sc.m_strPath, 0, 0, 0, 0); sfi.iIcon=-1; - sc=CString(m_cvShortcuts.at(iPos)); + sc=CShortcut(m_cvShortcuts.at(iPos)); SHGetFileInfo(sc.m_strPath, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_LARGEICON); m_ctlShortcuts.SetItem(iPos, -1, LVIF_TEXT | LVIF_IMAGE, sc.m_strName, sfi.iIcon, 0, 0, 0); m_ctlShortcuts.SetItem(iPos, 1, LVIF_TEXT, sc.m_strPath, 0, 0, 0, 0); @@ -321,31 +340,32 @@ void CShortcutsDlg::OnDownButton() { POSITION pos=m_ctlShortcuts.GetFirstSelectedItemPosition(); - int iPos=-1; - CShortcut sc; while (pos) { // get current selected item - iPos=m_ctlShortcuts.GetNextSelectedItem(pos); + int iPos=m_ctlShortcuts.GetNextSelectedItem(pos); // if the last element is trying to go down to nowhere if (iPos == m_ctlShortcuts.GetItemCount()-1) break; // swap data in m_ascShortcuts - m_cvShortcuts.swap_items(m_cvShortcuts.begin()+iPos, m_cvShortcuts.begin()+iPos+1); + std::vector::iterator iterOne = m_cvShortcuts.begin() + iPos; + std::vector::iterator iterTwo = m_cvShortcuts.begin() + iPos + 1; + std::iter_swap(iterOne, iterTwo); + // do the same with list SHFILEINFO sfi; sfi.iIcon=-1; - sc=CString(m_cvShortcuts.at(iPos)); + CShortcut sc=CShortcut(m_cvShortcuts.at(iPos)); SHGetFileInfo(sc.m_strPath, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_LARGEICON); m_ctlShortcuts.SetItem(iPos, -1, LVIF_TEXT | LVIF_IMAGE , sc.m_strName, sfi.iIcon, 0, 0, 0); m_ctlShortcuts.SetItem(iPos, 1, LVIF_TEXT, sc.m_strPath, 0, 0, 0, 0); sfi.iIcon=-1; - sc=CString(m_cvShortcuts.at(iPos+1)); + sc=CShortcut(m_cvShortcuts.at(iPos+1)); SHGetFileInfo(sc.m_strPath, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_LARGEICON); m_ctlShortcuts.SetItem(iPos+1, -1, LVIF_TEXT | LVIF_IMAGE, sc.m_strName, sfi.iIcon, 0, 0, 0); m_ctlShortcuts.SetItem(iPos+1, 1, LVIF_TEXT, sc.m_strPath, 0, 0, 0, 0);