diff options
Diffstat (limited to 'protocols/MRA/src/MraAdvancedSearch.cpp')
-rw-r--r-- | protocols/MRA/src/MraAdvancedSearch.cpp | 313 |
1 files changed, 0 insertions, 313 deletions
diff --git a/protocols/MRA/src/MraAdvancedSearch.cpp b/protocols/MRA/src/MraAdvancedSearch.cpp deleted file mode 100644 index 7377f97d1b..0000000000 --- a/protocols/MRA/src/MraAdvancedSearch.cpp +++ /dev/null @@ -1,313 +0,0 @@ -#include "stdafx.h"
-#include "proto.h"
-#include "MraPlaces.h"
-
-
-
-struct FieldNames
-{
- BYTE dwCode;
- LPWSTR lpszText;
-};
-
-static const FieldNames GenderField[] =
-{
- { 1, LPGENW("Male") },
- { 2, LPGENW("Female") },
- { 0, nullptr }
-};
-
-static const FieldNames MonthField[] =
-{
- { 1, LPGENW("January") },
- { 2, LPGENW("February") },
- { 3, LPGENW("March") },
- { 4, LPGENW("April") },
- { 5, LPGENW("May") },
- { 6, LPGENW("June") },
- { 7, LPGENW("July") },
- { 8, LPGENW("August") },
- { 9, LPGENW("September") },
- { 10, LPGENW("October") },
- { 11, LPGENW("November") },
- { 12, LPGENW("December") },
- { 0, nullptr }
-};
-
-static const FieldNames ZodiakField[] =
-{
- { 1, LPGENW("Aries") },
- { 2, LPGENW("Taurus") },
- { 3, LPGENW("Gemini") },
- { 4, LPGENW("Cancer") },
- { 5, LPGENW("Leo") },
- { 6, LPGENW("Virgo") },
- { 7, LPGENW("Libra") },
- { 8, LPGENW("Scorpio") },
- { 9, LPGENW("Sagittarius") },
- { 10, LPGENW("Capricorn") },
- { 11, LPGENW("Aquarius") },
- { 12, LPGENW("Pisces") },
- { 0, nullptr }
-};
-
-void ResetComboBox(HWND hWndCombo)
-{
- SendMessage(hWndCombo, CB_RESETCONTENT, 0, 0);
- DWORD dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)L"");
- SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, 0);
- SendMessage(hWndCombo, CB_SETCURSEL, dwItem, 0);
-}
-
-
-void InitComboBox(HWND hWndCombo, FieldNames *lpNames)
-{
- ResetComboBox(hWndCombo);
-
- for (size_t i = 0; lpNames[i].lpszText; i++) {
- DWORD dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)TranslateW(lpNames[i].lpszText));
- SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, lpNames[i].dwCode);
- }
-}
-
-
-void InitComboBoxNumders(HWND hWndCombo, DWORD dwStart, DWORD dwEnd)
-{
- ResetComboBox(hWndCombo);
-
- for (DWORD i = dwStart; i <= dwEnd; i++) {
- wchar_t szBuff[MAX_PATH];
- mir_snwprintf(szBuff, L"%lu", i);
- DWORD dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)szBuff);
- SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, i);
- }
-}
-
-
-INT_PTR CALLBACK AdvancedSearchDlgProc(HWND hWndDlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- CMraProto *ppro = (CMraProto*)GetWindowLongPtr(hWndDlg, GWLP_USERDATA);
-
- switch (message) {
- case WM_INITDIALOG:
- SetWindowLongPtr(hWndDlg, GWLP_USERDATA, lParam);
- {
- DWORD dwItem;
- WCHAR wszBuff[MAX_PATH];
- SYSTEMTIME stTime;
- GetLocalTime(&stTime);
-
- ppro = (CMraProto*)lParam;
-
- HWND hWndCombo = GetDlgItem(hWndDlg, IDC_EMAIL_DOMAIN);
- ResetComboBox(hWndCombo);
- for (size_t i = 0; lpcszMailRuDomains[i]; i++) {
- MultiByteToWideChar(MRA_CODE_PAGE, 0, lpcszMailRuDomains[i], -1, wszBuff, _countof(wszBuff));
- SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)wszBuff);
- }
-
- InitComboBox(GetDlgItem(hWndDlg, IDC_GENDER), (FieldNames*)GenderField);
- InitComboBoxNumders(GetDlgItem(hWndDlg, IDC_AGERANGE_FROM), 1, 100);
- InitComboBoxNumders(GetDlgItem(hWndDlg, IDC_AGERANGE_TO), 1, 100);
- InitComboBoxNumders(GetDlgItem(hWndDlg, IDC_BIRTHDAY_DAY), 1, 31);
- InitComboBox(GetDlgItem(hWndDlg, IDC_BIRTHDAY_MONTH), (FieldNames*)MonthField);
- InitComboBoxNumders(GetDlgItem(hWndDlg, IDC_BIRTHDAY_YEAR), 1900, (DWORD)stTime.wYear);
- InitComboBox(GetDlgItem(hWndDlg, IDC_ZODIAK), (FieldNames*)ZodiakField);
-
- hWndCombo = GetDlgItem(hWndDlg, IDC_COUNTRY);
- ResetComboBox(hWndCombo);
- for (size_t i = 0; mrapPlaces[i].lpszData; i++) {
- if (mrapPlaces[i].dwCityID == 0 && mrapPlaces[i].dwPlaceID == 0) {
- dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)mrapPlaces[i].lpszData);
- SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, mrapPlaces[i].dwCountryID);
- }
- }
-
- ResetComboBox(GetDlgItem(hWndDlg, IDC_CITY));
-
- if (ppro->getByte("AdvancedSearchRemember", MRA_DEFAULT_SEARCH_REMEMBER)) {
- SendDlgItemMessage(hWndDlg, IDC_GENDER, CB_SETCURSEL, ppro->getWord("AdvancedSearchGender", 0), 0);
- SendDlgItemMessage(hWndDlg, IDC_AGERANGE_FROM, CB_SETCURSEL, ppro->getWord("AdvancedSearchAgeFrom", 0), 0);
- SendDlgItemMessage(hWndDlg, IDC_AGERANGE_TO, CB_SETCURSEL, ppro->getWord("AdvancedSearchAgeTo", 0), 0);
- SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_MONTH, CB_SETCURSEL, ppro->getWord("AdvancedSearchBirthDayMonth", 0), 0);
- SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_DAY, CB_SETCURSEL, ppro->getWord("AdvancedSearchBirthDayDay", 0), 0);
-
- SendDlgItemMessage(hWndDlg, IDC_ZODIAK, CB_SETCURSEL, ppro->getWord("AdvancedSearchZodiakID", 0), 0);
-
-
- SendDlgItemMessage(hWndDlg, IDC_COUNTRY, CB_SETCURSEL, ppro->getWord("AdvancedSearchCountryID", 0), 0);
- SendMessageW(hWndDlg, WM_COMMAND, (WPARAM)MAKELONG(IDC_COUNTRY, CBN_SELCHANGE), (LPARAM)GetDlgItem(hWndDlg, IDC_COUNTRY));
-
- SendDlgItemMessage(hWndDlg, IDC_STATE, CB_SETCURSEL, ppro->getWord("AdvancedSearchStateID", 0), 0);
- SendMessage(hWndDlg, WM_COMMAND, (WPARAM)MAKELONG(IDC_STATE, CBN_SELCHANGE), (LPARAM)GetDlgItem(hWndDlg, IDC_STATE));
-
- SendDlgItemMessage(hWndDlg, IDC_CITY, CB_SETCURSEL, ppro->getWord("AdvancedSearchCityID", 0), 0);
-
-
- CheckDlgButton(hWndDlg, IDC_ONLINEONLY, ppro->getByte("AdvancedSearchOnlineOnly", FALSE) ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hWndDlg, IDC_CHK_REMEMBER, BST_CHECKED);
- }
- TranslateDialogDefault(hWndDlg);
- }
- return TRUE;
-
- case WM_DESTROY:
- ppro->setWord("AdvancedSearchGender", SendDlgItemMessage(hWndDlg, IDC_GENDER, CB_GETCURSEL, 0, 0));
- ppro->setWord("AdvancedSearchAgeFrom", SendDlgItemMessage(hWndDlg, IDC_AGERANGE_FROM, CB_GETCURSEL, 0, 0));
- ppro->setWord("AdvancedSearchAgeTo", SendDlgItemMessage(hWndDlg, IDC_AGERANGE_TO, CB_GETCURSEL, 0, 0));
- ppro->setWord("AdvancedSearchBirthDayMonth", SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_MONTH, CB_GETCURSEL, 0, 0));
- ppro->setWord("AdvancedSearchBirthDayDay", SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_DAY, CB_GETCURSEL, 0, 0));
-
- ppro->setWord("AdvancedSearchZodiakID", SendDlgItemMessage(hWndDlg, IDC_ZODIAK, CB_GETCURSEL, 0, 0));
-
- ppro->setWord("AdvancedSearchCityID", SendDlgItemMessage(hWndDlg, IDC_CITY, CB_GETCURSEL, 0, 0));
- ppro->setWord("AdvancedSearchStateID", SendDlgItemMessage(hWndDlg, IDC_STATE, CB_GETCURSEL, 0, 0));
- ppro->setWord("AdvancedSearchCountryID", SendDlgItemMessage(hWndDlg, IDC_COUNTRY, CB_GETCURSEL, 0, 0));
-
- ppro->setByte("AdvancedSearchOnlineOnly", IsDlgButtonChecked(hWndDlg, IDC_ONLINEONLY));
- ppro->setByte("AdvancedSearchRemember", IsDlgButtonChecked(hWndDlg, IDC_CHK_REMEMBER));
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_AGERANGE_FROM:
- case IDC_AGERANGE_TO:
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- if (LOWORD(wParam) == IDC_AGERANGE_FROM) {
- DWORD dwAgeFrom = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_AGERANGE_FROM);
- DWORD dwAgeTo = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_AGERANGE_TO);
- if (dwAgeFrom == 0) dwAgeFrom++;
- InitComboBoxNumders(GetDlgItem(hWndDlg, IDC_AGERANGE_TO), dwAgeFrom, 100);
- SendDlgItemMessage(hWndDlg, IDC_AGERANGE_TO, CB_SETCURSEL, ((dwAgeTo - dwAgeFrom) + 1), 0);
- }
- SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_YEAR, CB_SETCURSEL, 0, 0);
- }
- break;
-
- case IDC_BIRTHDAY_DAY:
- case IDC_BIRTHDAY_MONTH:
- case IDC_BIRTHDAY_YEAR:
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- SYSTEMTIME stTime = { 0 };
-
- stTime.wYear = (WORD)GET_CURRENT_COMBO_DATA(hWndDlg, IDC_BIRTHDAY_YEAR);
- stTime.wMonth = (WORD)GET_CURRENT_COMBO_DATA(hWndDlg, IDC_BIRTHDAY_MONTH);
- stTime.wDay = (WORD)GET_CURRENT_COMBO_DATA(hWndDlg, IDC_BIRTHDAY_DAY);
-
- DWORD dwAge = GetYears(&stTime);
- SendDlgItemMessage(hWndDlg, IDC_AGERANGE_FROM, CB_SETCURSEL, dwAge, 0);
- SendDlgItemMessage(hWndDlg, IDC_AGERANGE_TO, CB_SETCURSEL, dwAge, 0);
- SendDlgItemMessage(hWndDlg, IDC_ZODIAK, CB_SETCURSEL, 0, 0);
- }
- break;
-
- case IDC_ZODIAK:
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_DAY, CB_SETCURSEL, 0, 0);
- SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_MONTH, CB_SETCURSEL, 0, 0);
- //SendDlgItemMessage(hWndDlg, IDC_BIRTHDAY_YEAR, CB_SETCURSEL, 0, 0);
- }
- break;
-
- case IDC_COUNTRY:
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- DWORD dwCountryID = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_COUNTRY);
- HWND hWndCombo = GetDlgItem(hWndDlg, IDC_STATE);
- SendMessage(hWndCombo, CB_RESETCONTENT, 0, 0);
- ResetComboBox(GetDlgItem(hWndDlg, IDC_CITY));
- DWORD dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)L"");
- SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, 0);
- SendMessage(hWndCombo, CB_SETCURSEL, dwItem, 0);
-
- for (size_t i = 0; mrapPlaces[i].lpszData; i++) {
- if (mrapPlaces[i].dwCountryID == dwCountryID && mrapPlaces[i].dwCityID && mrapPlaces[i].dwPlaceID == 0) {
- dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)mrapPlaces[i].lpszData);
- SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, mrapPlaces[i].dwCityID);
- }
- }
- }
- break;
-
- case IDC_STATE:
- if (HIWORD(wParam) == CBN_SELCHANGE) {
- DWORD dwCountryID = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_COUNTRY);
- DWORD dwStateID = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_STATE);
- HWND hWndCombo = GetDlgItem(hWndDlg, IDC_CITY);
- SendMessage(hWndCombo, CB_RESETCONTENT, 0, 0);
- DWORD dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)L"");
- SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, 0);
- SendMessage(hWndCombo, CB_SETCURSEL, dwItem, 0);
-
- for (size_t i = 0; mrapPlaces[i].lpszData; i++) {
- if (mrapPlaces[i].dwCountryID == dwCountryID && mrapPlaces[i].dwCityID == dwStateID && mrapPlaces[i].dwPlaceID) {
- dwItem = SendMessage(hWndCombo, CB_ADDSTRING, 0, (LPARAM)mrapPlaces[i].lpszData);
- SendMessage(hWndCombo, CB_SETITEMDATA, dwItem, mrapPlaces[i].dwPlaceID);
- }
- }
- }
- }
- }
- return FALSE;
-}
-
-HWND CMraProto::SearchAdvanced(HWND hWndDlg)
-{
- DWORD dwRequestFlags = 0;
- char szUser[MAX_PATH], szDomain[MAX_PATH];
- wchar_t wszNickName[MAX_PATH], wszFirstName[MAX_PATH], wszLastName[MAX_PATH];
-
- size_t dwUserSize = GetDlgItemTextA(hWndDlg, IDC_EMAIL_USER, szUser, _countof(szUser));
- size_t dwDomainSize = GetDlgItemTextA(hWndDlg, IDC_EMAIL_DOMAIN, szDomain, _countof(szDomain));
- if (dwUserSize && dwDomainSize) {
- SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_USER);
- SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_DOMAIN);
- }
-
- size_t dwNickNameSize = GetDlgItemText(hWndDlg, IDC_NICK, wszNickName, _countof(wszNickName));
- if (dwNickNameSize) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_NICKNAME);
-
- size_t dwFirstNameSize = GetDlgItemText(hWndDlg, IDC_FIRSTNAME, wszFirstName, _countof(wszFirstName));
- if (dwFirstNameSize) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_FIRSTNAME);
-
- size_t dwLastNameSize = GetDlgItemText(hWndDlg, IDC_LASTNAME, wszLastName, _countof(wszLastName));
- if (dwLastNameSize) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_LASTNAME);
-
- DWORD dwSex = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_GENDER);
- if (dwSex) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_SEX);
-
- DWORD dwDate1 = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_AGERANGE_FROM);
- if (dwDate1) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_DATE1);
-
- DWORD dwDate2 = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_AGERANGE_TO);
- if (dwDate2) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_DATE2);
-
- DWORD dwCityID = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_CITY);
- if (dwCityID == 0) dwCityID = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_STATE);
- if (dwCityID) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_CITY_ID);
-
- DWORD dwZodiak = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_ZODIAK);
- if (dwZodiak) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_ZODIAC);
-
- DWORD dwBirthdayMonth = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_BIRTHDAY_MONTH);
- if (dwBirthdayMonth) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_MONTH);
-
- DWORD dwBirthdayDay = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_BIRTHDAY_DAY);
- if (dwBirthdayMonth) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_DAY);
-
- DWORD dwCountryID = GET_CURRENT_COMBO_DATA(hWndDlg, IDC_COUNTRY);
- if (dwCountryID) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_COUNTRY_ID);
-
-
- DWORD dwOnline = IsDlgButtonChecked(hWndDlg, IDC_ONLINEONLY);
- if (dwOnline) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_ONLINE);
-
- return (HWND)MraWPRequestW(NULL, ACKTYPE_SEARCH, dwRequestFlags, szUser, szDomain, wszNickName, wszFirstName, wszLastName, dwSex, dwDate1, dwDate2, dwCityID, dwZodiak, dwBirthdayMonth, dwBirthdayDay, dwCountryID, dwOnline);
-}
-
-HWND CMraProto::CreateExtendedSearchUI(HWND owner)
-{
- if (g_plugin.getInst() && owner)
- return CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_MRAADVANCEDSEARCH), owner, AdvancedSearchDlgProc, (LPARAM)this);
-
- return nullptr;
-}
|