From ce49c84f3a26f016f9232d2bffdc830d7fd6169f Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Sat, 30 Aug 2014 11:37:47 +0000 Subject: Tox: - switch to offline when connection is lost - file transfer support - code refactoring - project reordering - version bump git-svn-id: http://svn.miranda-ng.org/main/trunk@10340 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Tox/src/tox_profile.cpp | 79 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 protocols/Tox/src/tox_profile.cpp (limited to 'protocols/Tox/src/tox_profile.cpp') diff --git a/protocols/Tox/src/tox_profile.cpp b/protocols/Tox/src/tox_profile.cpp new file mode 100644 index 0000000000..145b839f0c --- /dev/null +++ b/protocols/Tox/src/tox_profile.cpp @@ -0,0 +1,79 @@ +#include "common.h" + +INT_PTR CToxProto::ToxProfileManagerProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + CToxProto *proto = (CToxProto*)GetWindowLongPtr(hwnd, GWLP_USERDATA); + TCHAR *profilePath = (TCHAR*)GetWindowLongPtr(hwnd, DWLP_USER); + + switch (uMsg) + { + case WM_INITDIALOG: + TranslateDialogDefault(hwnd); + { + proto = (CToxProto*)lParam; + SetWindowLongPtr(hwnd, GWLP_USERDATA, lParam); + + profilePath = (TCHAR*)mir_calloc(sizeof(TCHAR)* MAX_PATH); + SetWindowLongPtr(hwnd, DWLP_USER, (LONG_PTR)profilePath); + + CheckDlgButton(hwnd, IDC_CREATE_NEW, TRUE); + } + return TRUE; + + case WM_CLOSE: + EndDialog(hwnd, 0); + break; + + case WM_DESTROY: + mir_free(profilePath); + break; + + case WM_COMMAND: + switch (LOWORD(wParam)) + { + case IDC_USE_EXISTING: + EnableWindow(GetDlgItem(hwnd, IDC_PROFILE_PATH), IsDlgButtonChecked(hwnd, IDC_USE_EXISTING)); + EnableWindow(GetDlgItem(hwnd, IDC_BROWSE_PROFILE), IsDlgButtonChecked(hwnd, IDC_USE_EXISTING)); + break; + + case IDC_BROWSE_PROFILE: + { + TCHAR filter[MAX_PATH] = { 0 }; + mir_sntprintf(filter, MAX_PATH, _T("%s\0*.*"), TranslateT("All files (*.*)")); + + OPENFILENAME ofn = { sizeof(ofn) }; + ofn.hwndOwner = hwnd; + ofn.lpstrFilter = filter; + ofn.nFilterIndex = 1; + ofn.lpstrFile = profilePath; + ofn.lpstrTitle = TranslateT("Select tox profile"); + ofn.nMaxFile = MAX_PATH; + ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_EXPLORER; + + if (GetOpenFileName(&ofn) && profilePath) + { + SetDlgItemText(hwnd, IDC_PROFILE_PATH, profilePath); + } + } + break; + + case IDOK: + { + if (IsDlgButtonChecked(hwnd, IDC_USE_EXISTING)) + { + if (profilePath != NULL) + { + std::tstring toxProfilePath = proto->GetToxProfilePath(); + CopyFile(profilePath, toxProfilePath.c_str(), FALSE); + } + } + EndDialog(hwnd, 1); + } + break; + + } + break; + } + + return FALSE; +} \ No newline at end of file -- cgit v1.2.3