From 19b6f534d2e784a1e120bf52c4aa07004798f473 Mon Sep 17 00:00:00 2001 From: kreol13 Date: Thu, 21 Apr 2011 13:03:39 +0000 Subject: initial commit git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@6 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- userinfoex/psp_origin.cpp | 176 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 userinfoex/psp_origin.cpp (limited to 'userinfoex/psp_origin.cpp') diff --git a/userinfoex/psp_origin.cpp b/userinfoex/psp_origin.cpp new file mode 100644 index 0000000..3859a4e --- /dev/null +++ b/userinfoex/psp_origin.cpp @@ -0,0 +1,176 @@ +/* +UserinfoEx plugin for Miranda IM + +Copyright: + 2006-2010 DeathAxe, Yasnovidyashii, Merlin, K. Romanov, Kreol + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +=============================================================================== + +File name : $HeadURL: https://userinfoex.googlecode.com/svn/trunk/psp_origin.cpp $ +Revision : $Revision: 191 $ +Last change on : $Date: 2010-09-20 13:52:01 +0400 (Пн, 20 сен 2010) $ +Last change by : $Author: ing.u.horn $ + +=============================================================================== +*/ + +/** + * System Includes: + **/ +#include "commonheaders.h" +#include "ctrl_combo.h" +#include "ctrl_edit.h" +#include "ctrl_tzcombo.h" +#include "psp_base.h" +#include "svc_reminder.h" + +/** + * This is the dialog procedure for the advanced contact information propertysheetpage. + * + * @param hDlg - handle to the dialog window + * @param uMsg - the message to handle + * @param wParam - parameter + * @param lParam - parameter + * + * @return different values + **/ +INT_PTR CALLBACK PSPProcOrigin(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + switch (uMsg) + { + case WM_INITDIALOG: + { + CCtrlList *pCtrlList = CCtrlList::CreateObj(hDlg); + if (pCtrlList) + { + LPIDSTRLIST pList; + UINT nList; + + HFONT hBoldFont; + PSGetBoldFont(hDlg, hBoldFont); + SendDlgItemMessage(hDlg, IDC_PAGETITLE, WM_SETFONT, (WPARAM)hBoldFont, 0); + + TranslateDialogDefault(hDlg); + SetTimer(hDlg, 1, 5000, NULL); + + pCtrlList->insert(CEditCtrl::CreateObj(hDlg, EDIT_STREET, SET_CONTACT_ORIGIN_STREET, DBVT_TCHAR)); + pCtrlList->insert(CEditCtrl::CreateObj(hDlg, EDIT_ZIP, SET_CONTACT_ORIGIN_ZIP, DBVT_TCHAR)); + pCtrlList->insert(CEditCtrl::CreateObj(hDlg, EDIT_CITY, SET_CONTACT_ORIGIN_CITY, DBVT_TCHAR)); + pCtrlList->insert(CEditCtrl::CreateObj(hDlg, EDIT_STATE, SET_CONTACT_ORIGIN_STATE, DBVT_TCHAR)); + + GetCountryList(&nList, &pList); + pCtrlList->insert(CCombo::CreateObj (hDlg, EDIT_COUNTRY, SET_CONTACT_ORIGIN_COUNTRY, DBVT_WORD, pList, nList)); + + pCtrlList->insert(CTzCombo::CreateObj(hDlg, EDIT_TIMEZONE, NULL)); + } + } + break; + + case WM_NOTIFY: + { + switch (((LPNMHDR) lParam)->idFrom) + { + case 0: + { + HANDLE hContact = (HANDLE)((LPPSHNOTIFY) lParam)->lParam; + LPCSTR pszProto; + + switch (((LPNMHDR) lParam)->code) + { + case PSN_INFOCHANGED: + { + BYTE bChanged = 0; + + if (!PSGetBaseProto(hDlg, pszProto) || *pszProto == 0) break; + + if (hContact) + { + MTime mt; + + if (mt.DBGetStamp(hContact, USERINFO, SET_CONTACT_ADDEDTIME) && strstr(pszProto, "ICQ")) + { + DWORD dwStamp; + + dwStamp = DB::Contact::WhenAdded(DB::Setting::GetDWord(hContact, pszProto, "UIN", 0), pszProto); + if (dwStamp > 0) + { + mt.FromStampAsUTC(dwStamp); + } + } + if (mt.IsValid()) + { + TCHAR szTime[MAX_PATH]; + LPTSTR ptr; + + mt.UTCToLocal(); + mt.DateFormatLong(szTime, SIZEOF(szTime)); + + _tcscat(szTime, _T(" - ")); + ptr = szTime + _tcslen(szTime); + mt.TimeFormat(ptr, SIZEOF(szTime) - (ptr - szTime)); + SetDlgItemText(hDlg, TXT_DATEADDED, szTime); + } + } + + SetWindowLongPtr(hDlg, DWLP_MSGRESULT, bChanged ? PSP_CHANGED : 0); + } + break; + + case PSN_ICONCHANGED: + { + const ICONCTRL idIcon[] = { + { ICO_COMMON_ADDRESS, STM_SETIMAGE, ICO_ADDRESS }, + { ICO_COMMON_CLOCK, STM_SETIMAGE, ICO_CLOCK }, + }; + + IcoLib_SetCtrlIcons(hDlg, idIcon, SIZEOF(idIcon)); + } + } + } + } /* switch (((LPNMHDR)lParam)->idFrom) */ + } + break; + + case WM_COMMAND: + { + switch (LOWORD(wParam)) + { + case EDIT_COUNTRY: + if(HIWORD(wParam) == CBN_SELCHANGE) { + LPIDSTRLIST pd = (LPIDSTRLIST)ComboBox_GetItemData((HWND)lParam, ComboBox_GetCurSel((HWND)lParam)); + UpDate_CountryIcon(GetDlgItem(hDlg, ICO_COUNTRY), pd->nID); + } + break; + } + } + break; + + case WM_TIMER: + { + TCHAR szTime[32]; + CTzCombo::GetObj(hDlg, EDIT_TIMEZONE)->GetTime(szTime, SIZEOF(szTime)); + SetDlgItemText(hDlg, TXT_TIME, szTime); + break; + } + + case WM_DESTROY: + { + KillTimer(hDlg, 1); + } + } + return PSPBaseProc(hDlg, uMsg, wParam, lParam); +} -- cgit v1.2.3