static void OnSaveClicked(WndButton* pWnd){ int file_index; TCHAR task_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; dfe = (DataFieldFileReader*)wp->GetDataField(); file_index = dfe->GetAsInteger(); // TODO enhancement: suggest a good new name not already in the list _tcscpy(task_name,TEXT("NEW")); dlgTextEntryShowModal(task_name, 10); // max length if (_tcslen(task_name)>0) { _tcscat(task_name, TEXT(LKS_TSK)); dfe->Lookup(task_name); file_index = dfe->GetAsInteger(); if (file_index==0) { // good, this file is unique.. dfe->addFile(task_name, task_name); dfe->Lookup(task_name); wp->RefreshDisplay(); } } else { // TODO code: report error, task not saved since no name was given return; } if (file_index>0) { // file already exists! ask if want to overwrite TCHAR sTmp[500]; _sntprintf(sTmp, array_size(sTmp), TEXT("%s: '%s'"), // LKTOKEN _@M696_ = "Task file already exists" MsgToken(696), dfe->GetAsString()); if(MessageBoxX( sTmp, // LKTOKEN _@M510_ = "Overwrite?" MsgToken(510), mbYesNo) != IdYes) { return; } } TCHAR file_name[MAX_PATH]; LocalPath(file_name,TEXT(LKD_TASKS), task_name); SaveTask(file_name); UpdateCaption(); }
static void OnDeleteClicked(WndButton* pWnd){ TCHAR file_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; wp->OnLButtonDown((POINT){0,0}); dfe = (DataFieldFileReader*) wp->GetDataField(); int file_index = dfe->GetAsInteger(); if (file_index>0) { _stprintf(file_name, TEXT("%s '%s' ?"), MsgToken(1789), dfe->GetAsString()); // Delete task file? if(MessageBoxX(file_name, _T(" "), mbYesNo) == IdNo) { return; } } else { MessageBoxX(MsgToken(1790),_T(" "), mbOk); // No task file to delete return; } if (file_index>0) { lk::filesystem::deleteFile(dfe->GetPathFile()); // Cannot update dfe list, so we force exit. ItemIndex = -1; wf->SetModalResult(mrOK); return; } }
static void OnDeleteClicked(WindowControl * Sender, WndListFrame::ListInfo_t *ListInfo){ (void)ListInfo; (void)Sender; TCHAR file_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; HWND hwnd = wp->GetHandle(); SendMessage(hwnd,WM_LBUTTONDOWN,0,0); dfe = (DataFieldFileReader*) wp->GetDataField(); int file_index = dfe->GetAsInteger(); if (file_index>0) { _stprintf(file_name, TEXT("%s '%s' ?"), MsgToken(1789), dfe->GetAsString()); // Delete task file? if(MessageBoxX(hWndMapWindow, file_name, _T(" "), MB_YESNO|MB_ICONQUESTION) == IDNO) { return; } } else { MessageBoxX(hWndMapWindow, MsgToken(1790),_T(" "), MB_OK|MB_ICONEXCLAMATION); // No task file to delete return; } if (file_index>0) { DeleteFile(dfe->GetPathFile()); // Cannot update dfe list, so we force exit. ItemIndex = -1; wf->SetModalResult(mrOK); return; } }
static void OnLoadClicked(WndButton* pWnd){ // 091216 TCHAR file_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; wp->OnLButtonDown((POINT){0,0}); dfe = (DataFieldFileReader*) wp->GetDataField(); int file_index = dfe->GetAsInteger(); if (file_index>0) { if (ValidTaskPoint(ActiveWayPoint) && ValidTaskPoint(1)) { _stprintf(file_name, TEXT("%s '%s' ?"), gettext(TEXT("_@M891_")), dfe->GetAsString()); // Clear old task and load if(MessageBoxX(file_name, _T(" "), mbYesNo) == IdNo) { return; } } } else { // LKTOKEN _@M467_ = "No Task to load" MessageBoxX(gettext(TEXT("_@M467_")),_T(" "), mbOk); return; } if (file_index>0) { LPCTSTR szFileName = dfe->GetPathFile(); LPCTSTR wextension = _tcsrchr(szFileName, _T('.')); if(wextension) { bool bOK = false; if(_tcsicmp(wextension,_T(LKS_TSK))==0) { CTaskFileHelper helper; bOK = helper.Load(szFileName); } #ifdef OLDTASK_COMPAT else if (_tcsicmp(wextension,_T(LKS_OLD_TSK))==0) { LoadNewTask(szFileName); bOK = true; } #endif else if (_tcsicmp(wextension,_T(LKS_WP_CUP))==0) { bOK = LoadCupTask(szFileName); } else if (_tcsicmp(wextension,_T(LKS_WP_GPX))==0) { bOK = LoadGpxTask(szFileName); } if(!bOK) { MessageBoxX(gettext(TEXT("_@M467_")),_T(" "), mbOk); return; } OverviewRefreshTask(); UpdateFilePointer(); UpdateCaption(); } } }
static void OnLoadClicked(WindowControl * Sender, WndListFrame::ListInfo_t *ListInfo){ // 091216 (void)ListInfo; (void)Sender; TCHAR file_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; HWND hwnd = wp->GetHandle(); SendMessage(hwnd,WM_LBUTTONDOWN,0,0); dfe = (DataFieldFileReader*) wp->GetDataField(); int file_index = dfe->GetAsInteger(); if (file_index>0) { if (ValidTaskPoint(ActiveWayPoint) && ValidTaskPoint(1)) { _stprintf(file_name, TEXT("%s '%s' ?"), gettext(TEXT("_@M891_")), dfe->GetAsString()); // Clear old task and load if(MessageBoxX(hWndMapWindow, file_name, _T(" "), MB_YESNO|MB_ICONQUESTION) == IDNO) { return; } } } else { // LKTOKEN _@M467_ = "No Task to load" MessageBoxX(hWndMapWindow, gettext(TEXT("_@M467_")),_T(" "), MB_OK|MB_ICONEXCLAMATION); return; } if (file_index>0) { LPCTSTR szFileName = dfe->GetPathFile(); LPCTSTR wextension = _tcsrchr(szFileName, _T('.')); if(wextension) { bool bOK = false; if(_tcsicmp(wextension,_T(LKS_TSK))==0) { CTaskFileHelper helper; bOK = helper.Load(szFileName); } else if (_tcsicmp(wextension,_T(LKS_OLD_TSK))==0) { LoadNewTask(szFileName); bOK = true; } else if (_tcsicmp(wextension,_T(LKS_WP_CUP))==0) { bOK = LoadCupTask(szFileName); } else if (_tcsicmp(wextension,_T(LKS_WP_GPX))==0) { bOK = LoadGpxTask(szFileName); } if(!bOK) { MessageBoxX(hWndMapWindow, gettext(TEXT("_@M467_")),_T(" "), MB_OK|MB_ICONEXCLAMATION); return; } OverviewRefreshTask(); UpdateFilePointer(); UpdateCaption(); } } }
bool FilePicker(const TCHAR *caption, const TCHAR *patterns, TCHAR *buffer) { assert(patterns != NULL); DataFieldFileReader df; df.ScanMultiplePatterns(patterns); const ComboList combo_list = df.CreateComboList(nullptr); if (combo_list.size() == 0) return false; int i = ComboPicker(caption, combo_list, nullptr); if (i < 0) return false; const ComboList::Item &item = combo_list[i]; df.SetFromCombo(item.DataFieldIndex, item.StringValue); _tcscpy(buffer, df.GetAsString()); return true; }
static void OnSaveExistingClicked(WindowControl * Sender) { (void)Sender; int file_index; TCHAR file_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; if ( CheckClubVersion() ) { ClubForbiddenMsg(); return; } wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; HWND hwnd = wp->GetHandle(); SendMessage(hwnd,WM_LBUTTONDOWN,0,0); dfe = (DataFieldFileReader*) wp->GetDataField(); file_index = dfe->GetAsInteger(); if (file_index>0) { _tcscpy(file_name,dfe->GetAsString()); if(MessageBoxX(hWndMapWindow, file_name, // LKTOKEN _@M509_ = "Overwrite profile?" gettext(TEXT("_@M509_")), MB_YESNO|MB_ICONQUESTION) == IDYES) { WriteProfile(dfe->GetPathFile()); // LKTOKEN _@M535_ = "Profile saved!" MessageBoxX(hWndMapWindow, gettext(TEXT("_@M535_")),_T(""), MB_OK|MB_ICONEXCLAMATION); return; } dfe->Set(0); } }
static void OnLoadClicked(WindowControl * Sender, WndListFrame::ListInfo_t *ListInfo){ // 091216 (void)ListInfo; (void)Sender; TCHAR file_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; HWND hwnd = wp->GetHandle(); SendMessage(hwnd,WM_LBUTTONDOWN,0,0); dfe = (DataFieldFileReader*) wp->GetDataField(); int file_index = dfe->GetAsInteger(); if (file_index>0) { if (ValidTaskPoint(ActiveWayPoint) && ValidTaskPoint(1)) { // _stprintf(file_name, TEXT("Clear old task and load '%s' ?"), dfe->GetAsString()); REMOVE FIXV2 101229 _stprintf(file_name, TEXT("%s '%s' ?"), gettext(TEXT("_@M891_")), dfe->GetAsString()); // Clear old task and load if(MessageBoxX(hWndMapWindow, file_name, _T(" "), MB_YESNO|MB_ICONQUESTION) == IDNO) { return; } } } else { // LKTOKEN _@M467_ = "No Task to load" MessageBoxX(hWndMapWindow, gettext(TEXT("_@M467_")),_T(" "), MB_OK|MB_ICONEXCLAMATION); return; } if (file_index>0) { LoadNewTask(dfe->GetPathFile()); OverviewRefreshTask(); UpdateFilePointer(); UpdateCaption(); } }
static void OnLoadClicked(WindowControl * Sender){ TCHAR file_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; HWND hwnd = wp->GetHandle(); SendMessage(hwnd,WM_LBUTTONDOWN,0,0); dfe = (DataFieldFileReader*) wp->GetDataField(); int file_index = dfe->GetAsInteger(); if (file_index>0) { _tcscpy(file_name,dfe->GetAsString()); if(MessageBoxX(hWndMapWindow, file_name, // LKTOKEN _@M397_ = "Load this profile?" gettext(TEXT("_@M397_")), MB_YESNO|MB_ICONQUESTION) == IDYES) { SettingsEnter(); ReadProfile(dfe->GetPathFile()); WAYPOINTFILECHANGED=true; SettingsLeave(); MessageBoxX(hWndMapWindow, // LKTOKEN _@M534_ = "Profile loaded!" gettext(TEXT("_@M534_")), _T(""), MB_OK|MB_ICONEXCLAMATION); return; } dfe->Set(0); } }
static void OnSaveClicked(WindowControl * Sender, WndListFrame::ListInfo_t *ListInfo){ (void)ListInfo; (void)Sender; int file_index; TCHAR task_name[MAX_PATH]; TCHAR file_name[MAX_PATH]; WndProperty* wp; DataFieldFileReader *dfe; wp = (WndProperty*)wf->FindByName(TEXT("prpFile")); if (!wp) return; dfe = (DataFieldFileReader*)wp->GetDataField(); file_index = dfe->GetAsInteger(); // TODO enhancement: suggest a good new name not already in the list _tcscpy(task_name,TEXT("NEW")); dlgTextEntryShowModal(task_name, 10); // max length if (_tcslen(task_name)>0) { _tcscat(task_name, TEXT(LKS_TSK)); LocalPath(file_name,TEXT(LKD_TASKS)); _tcscat(file_name,TEXT("\\")); _tcscat(file_name,task_name); // 091101 dfe->Lookup(file_name); file_index = dfe->GetAsInteger(); if (file_index==0) { // good, this file is unique.. dfe->addFile(task_name, file_name); dfe->Lookup(file_name); wp->RefreshDisplay(); } } else { // TODO code: report error, task not saved since no name was given return; } if (file_index>0) { // file already exists! ask if want to overwrite _stprintf(file_name, TEXT("%s: '%s'"), // LKTOKEN _@M696_ = "Task file already exists" gettext(TEXT("_@M696_")), dfe->GetAsString()); if(MessageBoxX(hWndMapWindow, file_name, // LKTOKEN _@M510_ = "Overwrite?" gettext(TEXT("_@M510_")), MB_YESNO|MB_ICONQUESTION) != IDYES) { return; } } SaveTask(dfe->GetPathFile()); UpdateCaption(); }