summaryrefslogtreecommitdiff
path: root/protocols/Yahoo/src/options.cpp
diff options
context:
space:
mode:
authorRozhuk Ivan <rozhuk.im@gmail.com>2014-11-25 22:07:11 +0000
committerRozhuk Ivan <rozhuk.im@gmail.com>2014-11-25 22:07:11 +0000
commit74f4ab340ebf9a3399f82ad38b53ad6fcdf8885d (patch)
tree6d7cfb24044b9ff18a561a2c4f979fa6c2cd59e5 /protocols/Yahoo/src/options.cpp
parentd96bc3e80a9159d1e163c7a0046c6eed787bccc3 (diff)
Yahoo small fixes
git-svn-id: http://svn.miranda-ng.org/main/trunk@11073 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Yahoo/src/options.cpp')
-rw-r--r--protocols/Yahoo/src/options.cpp760
1 files changed, 380 insertions, 380 deletions
diff --git a/protocols/Yahoo/src/options.cpp b/protocols/Yahoo/src/options.cpp
index f0fdfe9611..9ca0b249ba 100644
--- a/protocols/Yahoo/src/options.cpp
+++ b/protocols/Yahoo/src/options.cpp
@@ -1,380 +1,380 @@
-/*
- * $Id: options.cpp 12038 2010-06-21 16:46:22Z gena01 $
- *
- * myYahoo Miranda Plugin
- *
- * Authors: Gennady Feldman (aka Gena01)
- * Laurent Marechal (aka Peorth)
- *
- * This code is under GPL and is based on AIM, MSN and Miranda source code.
- * I want to thank Robert Rainwater and George Hazan for their code and support
- * and for answering some of my questions during development of this plugin.
- */
-
-#include "yahoo.h"
-#include "resource.h"
-
-#include <m_langpack.h>
-#include <m_utils.h>
-#include <m_options.h>
-#include <m_popup.h>
-
-#include "ignore.h"
-
-/*
- * DlgProcYahooOpts - Account Options Dialog
- */
-static INT_PTR CALLBACK DlgProcYahooOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- DBVARIANT dbv;
- CYahooProto* ppro = (CYahooProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA );
-
- switch ( msg ) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
-
- ppro = (CYahooProto*)lParam;
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam );
-
- if ( !ppro->getString( YAHOO_LOGINID, &dbv)) {
- SetDlgItemTextA(hwndDlg, IDC_HANDLE, dbv.pszVal);
- db_free(&dbv);
- }
-
- if ( !ppro->getString("Nick", &dbv)) {
- SetDlgItemTextA(hwndDlg, IDC_NICK, dbv.pszVal);
- db_free(&dbv);
- }
-
- if ( !ppro->getString( YAHOO_PASSWORD, &dbv)) {
- //bit of a security hole here, since it's easy to extract a password from an edit box
- SetDlgItemTextA(hwndDlg, IDC_PASSWORD, dbv.pszVal );
- db_free(&dbv);
- }
-
- //SetButtonCheck(hwndDlg, IDC_DISABLE_UTF8, ppro->getByte("DisableUTF8", 0));
- SetButtonCheck(hwndDlg, IDC_USE_YAB, ppro->getByte("UseYAB", 1 ));
- SetButtonCheck(hwndDlg, IDC_SHOW_AVATARS, ppro->getByte("ShowAvatars", 1 ));
- SetButtonCheck(hwndDlg, IDC_MAIL_AUTOLOGIN, ppro->getByte("MailAutoLogin", 1 ));
- SetButtonCheck(hwndDlg, IDC_DISABLEYAHOOMAIL, !ppro->getByte("DisableYahoomail", 0));
- SetButtonCheck(hwndDlg, IDC_SHOW_ERRORS, ppro->getByte("ShowErrors", 1 ));
-
- return TRUE;
-
- case WM_COMMAND:
-
- switch ( LOWORD( wParam )) {
- case IDC_NEWYAHOOACCOUNTLINK:
- CallService(MS_UTILS_OPENURL, 1,
- ppro->getByte("YahooJapan", 0) ?
- (LPARAM)"http://edit.yahoo.co.jp/config/eval_register" :
- (LPARAM)"http://edit.yahoo.com/config/eval_register");
- return TRUE;
-
- //case IDC_DISABLE_UTF8:
- case IDC_USE_YAB:
- case IDC_SHOW_AVATARS:
- case IDC_MAIL_AUTOLOGIN:
- case IDC_SHOW_ERRORS:
- case IDC_DISABLEYAHOOMAIL:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- }
-
- if ( HIWORD( wParam ) == EN_CHANGE && ( HWND )lParam == GetFocus())
- switch( LOWORD( wParam )) {
- case IDC_HANDLE:
- case IDC_PASSWORD:
- case IDC_NICK:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- }
-
- break;
-
- case WM_NOTIFY:
-
- if (((LPNMHDR)lParam)->code == (UINT) PSN_APPLY ) {
- bool reconnectRequired = false;
-
- char str[128];
- GetDlgItemTextA(hwndDlg, IDC_HANDLE, str, sizeof( str ));
- dbv.pszVal = NULL;
-
- if ( ppro->getString( YAHOO_LOGINID, &dbv) || lstrcmpA( str, dbv.pszVal ))
- reconnectRequired = true;
-
- if ( dbv.pszVal != NULL)
- db_free(&dbv);
-
- ppro->setString( YAHOO_LOGINID, str );
-
- GetDlgItemTextA(hwndDlg, IDC_PASSWORD, str, sizeof( str ));
- dbv.pszVal = NULL;
- if ( ppro->getString( YAHOO_PASSWORD, &dbv) || lstrcmpA( str, dbv.pszVal ))
- reconnectRequired = true;
- if ( dbv.pszVal != NULL)
- db_free(&dbv);
-
- ppro->setString( YAHOO_PASSWORD, str );
- GetDlgItemTextA(hwndDlg, IDC_NICK, str, sizeof( str ));
-
-
- if (str[0] == '\0') {
- /* Check for empty Nick, if so delete the key in the DB */
- ppro->delSetting("Nick");
- } else {
- /* otherwise save the new Nick */
- ppro->setString("Nick", str);
- }
-
- ppro->setByte("UseYAB", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_USE_YAB));
- ppro->setByte("ShowAvatars", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOW_AVATARS));
- ppro->setByte("MailAutoLogin", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_MAIL_AUTOLOGIN));
- ppro->setByte("DisableYahoomail", (BYTE)!IsDlgButtonChecked(hwndDlg, IDC_DISABLEYAHOOMAIL));
- ppro->setByte("ShowErrors", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOW_ERRORS));
-
- if (reconnectRequired)
- ppro->delSetting(YAHOO_PWTOKEN);
-
- if ( reconnectRequired && ppro->m_bLoggedIn )
- MessageBoxA(hwndDlg, Translate("The changes you have made require you to reconnect to the Yahoo network before they take effect"), Translate("YAHOO Options"), MB_OK );
-
- return TRUE;
- }
-
- break;
- }
- return FALSE;
-}
-
-/*
- * DlgProcYahooOpts - Connection Options Dialog
- */
-static INT_PTR CALLBACK DlgProcYahooOptsConn(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- DBVARIANT dbv;
- CYahooProto* ppro = (CYahooProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA );
-
- switch ( msg ) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg );
-
- ppro = ( CYahooProto* )lParam;
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam );
-
- if ( !ppro->getString( YAHOO_LOGINSERVER, &dbv)) {
- SetDlgItemTextA(hwndDlg, IDC_LOGINSERVER, dbv.pszVal );
- db_free(&dbv);
- }
- else SetDlgItemTextA(hwndDlg, IDC_LOGINSERVER,
- ppro->getByte("YahooJapan", 0)
- ? YAHOO_DEFAULT_JAPAN_LOGIN_SERVER
- : YAHOO_DEFAULT_LOGIN_SERVER );
-
- SetDlgItemInt(hwndDlg, IDC_YAHOOPORT, ppro->getWord(YAHOO_LOGINPORT, YAHOO_DEFAULT_PORT), FALSE);
-
- SetButtonCheck(hwndDlg, IDC_YAHOO_JAPAN, ppro->getByte("YahooJapan", 0));
- return TRUE;
-
- case WM_COMMAND:
- switch ( LOWORD( wParam )) {
- case IDC_RESETSERVER:
- SetDlgItemTextA(hwndDlg, IDC_LOGINSERVER, YAHOO_DEFAULT_LOGIN_SERVER );
- SetDlgItemInt( hwndDlg, IDC_YAHOOPORT, YAHOO_DEFAULT_PORT, FALSE );
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_YAHOO_JAPAN:
- SetDlgItemTextA(hwndDlg, IDC_LOGINSERVER,
- (IsDlgButtonChecked(hwndDlg,IDC_YAHOO_JAPAN)==BST_CHECKED) ?
- YAHOO_DEFAULT_JAPAN_LOGIN_SERVER :
- YAHOO_DEFAULT_LOGIN_SERVER );
- // fall through and enable apply button
-
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- }
-
- if ( HIWORD( wParam ) == EN_CHANGE && ( HWND )lParam == GetFocus())
- switch( LOWORD( wParam )) {
- case IDC_LOGINSERVER:
- case IDC_YAHOOPORT:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- }
-
- break;
-
- case WM_NOTIFY:
- if (((LPNMHDR)lParam)->code == PSN_APPLY )
- {
- BOOL reconnectRequired = FALSE;
- char str[128];
- GetDlgItemTextA(hwndDlg, IDC_LOGINSERVER, str, sizeof( str ));
-
- DBVARIANT dbv;
- if ( ppro->getString( YAHOO_LOGINSERVER, &dbv) || lstrcmpA( str, dbv.pszVal ))
- reconnectRequired = TRUE;
-
- if ( dbv.pszVal != NULL)
- db_free(&dbv);
-
- ppro->setString(YAHOO_LOGINSERVER, str);
-
- int port = GetDlgItemInt(hwndDlg, IDC_YAHOOPORT, NULL, FALSE );
- if ( ppro->getWord(YAHOO_LOGINPORT, -1) != port)
- reconnectRequired = TRUE;
-
- ppro->setWord(YAHOO_LOGINPORT, port);
-
- ppro->setByte("YahooJapan", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_YAHOO_JAPAN ));
-
- if ( reconnectRequired && ppro->m_bLoggedIn )
- MessageBoxA(hwndDlg, Translate("The changes you have made require you to reconnect to the Yahoo network before they take effect"), Translate("YAHOO Options"), MB_OK );
-
- return TRUE;
- }
- break;
- }
- return FALSE;
-}
-
-/*
- * DlgProcYahooOpts - Connection Options Dialog
- */
-static INT_PTR CALLBACK DlgProcYahooOptsIgnore(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- YList *l;
- CYahooProto* ppro = (CYahooProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA );
-
- switch ( msg ) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg );
-
- ppro = ( CYahooProto* )lParam;
- SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam );
-
- if ( ppro->getByte("IgnoreUnknown", 0)) {
- CheckDlgButton(hwndDlg, IDC_OPT_IGN_UNKNOWN, 1);
-
- EnableWindow( GetDlgItem(hwndDlg, IDC_IGN_ADD), 0);
- EnableWindow( GetDlgItem(hwndDlg, IDC_IGN_REMOVE), 0);
- EnableWindow( GetDlgItem(hwndDlg, IDC_YIGN_EDIT), 0);
- EnableWindow( GetDlgItem(hwndDlg, IDC_YIGN_LIST), 0);
- }
- else CheckDlgButton(hwndDlg, IDC_OPT_IGN_LIST, 1);
-
- /* show our current ignore list */
- LOG(("[DlgProcYahooOptsIgnore] Grabbing current ignore list..."))
- l = (YList *)ppro->GetIgnoreList();
- while (l != NULL) {
- struct yahoo_buddy *b = (struct yahoo_buddy *) l->data;
-
- LOG(("[DlgProcYahooOptsIgnore] Buddy: %s", b->id ))
- SendMessageA(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_ADDSTRING, 0, (LPARAM)b->id);
- l = l->next;
- }
- LOG(("[DlgProcYahooOptsIgnore] End of Ignore List..."))
-
- return TRUE;
-
- case WM_COMMAND:
- switch ( LOWORD( wParam )) {
- case IDC_OPT_IGN_UNKNOWN:
- case IDC_OPT_IGN_LIST:
- if (( HWND )lParam != GetFocus()) return 0;
-
- EnableWindow( GetDlgItem(hwndDlg, IDC_IGN_ADD), LOWORD( wParam ) == IDC_OPT_IGN_LIST);
- EnableWindow( GetDlgItem(hwndDlg, IDC_IGN_REMOVE), LOWORD( wParam ) == IDC_OPT_IGN_LIST);
- EnableWindow( GetDlgItem(hwndDlg, IDC_YIGN_EDIT), LOWORD( wParam ) == IDC_OPT_IGN_LIST);
- EnableWindow( GetDlgItem(hwndDlg, IDC_YIGN_LIST), LOWORD( wParam ) == IDC_OPT_IGN_LIST);
-
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_IGN_ADD:
- if (!ppro->m_bLoggedIn)
- MessageBox(hwndDlg, TranslateT("You need to be connected to Yahoo to add to Ignore List."), TranslateT("Yahoo Ignore"), MB_OK| MB_ICONINFORMATION);
- else {
- char id[128];
- int i = GetDlgItemTextA(hwndDlg, IDC_YIGN_EDIT, id, sizeof( id ));
-
- if (i < 3) {
- MessageBox(hwndDlg, TranslateT("Please enter a valid buddy name to ignore."), TranslateT("Yahoo Ignore"), MB_OK| MB_ICONINFORMATION);
- break;
- }
-
- i = SendDlgItemMessageA(hwndDlg, IDC_YIGN_LIST, LB_FINDSTRINGEXACT,(WPARAM) -1, (LPARAM)id);
- if (i != LB_ERR ) {
- MessageBox(hwndDlg, TranslateT("The buddy is already on your ignore list."), TranslateT("Yahoo Ignore"), MB_OK | MB_ICONINFORMATION);
- break;
- }
- ppro->IgnoreBuddy(id, 0);
- SendMessageA(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_ADDSTRING, 0, (LPARAM)id);
- SetDlgItemTextA(hwndDlg, IDC_YIGN_EDIT, "");
- }
- break;
-
- case IDC_IGN_REMOVE:
- {
- int i;
- char id[128];
-
- if (!ppro->m_bLoggedIn) {
- MessageBox(hwndDlg, TranslateT("You need to be connected to Yahoo to remove from the ignore list."), TranslateT("Yahoo Ignore"), MB_OK| MB_ICONINFORMATION);
- break;
- }
-
- i = SendMessage(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_GETCURSEL, 0, 0);
- if (i == LB_ERR) {
- MessageBox(hwndDlg, TranslateT("Please select a buddy on the ignore list to remove."), TranslateT("Yahoo Ignore"), MB_OK| MB_ICONINFORMATION);
- break;
- }
-
- SendMessageA(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_GETTEXT, i, (LPARAM)id);
-
- ppro->IgnoreBuddy(id, 1);
- SendMessage(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_DELETESTRING, i, 0);
- }
- }
- break;
-
- case WM_NOTIFY:
- if (((LPNMHDR)lParam)->code == PSN_APPLY ) {
- ppro->setByte("IgnoreUnknown", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_OPT_IGN_UNKNOWN ));
- return TRUE;
- }
- break;
- }
-
- return FALSE;
-}
-
-/*
- * YahooOptInit - initialize/register our Options w/ Miranda.
- */
-
-int __cdecl CYahooProto::OnOptionsInit(WPARAM wParam,LPARAM lParam)
-{
- OPTIONSDIALOGPAGE odp = { sizeof(odp) };
- odp.position = -790000000;
- odp.hInstance = hInstance;
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_YAHOO);
- odp.ptszTitle = m_tszUserName;
- odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR | ODPF_DONTTRANSLATE;
- odp.ptszGroup = LPGENT("Network");
- odp.ptszTab = LPGENT("Account");
- odp.pfnDlgProc = DlgProcYahooOpts;
- odp.dwInitParam = LPARAM(this);
- Options_AddPage(wParam, &odp);
-
- odp.ptszTab = LPGENT("Connection");
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_YAHOO_CONNECTION);
- odp.pfnDlgProc = DlgProcYahooOptsConn;
- Options_AddPage(wParam, &odp);
-
- odp.ptszTab = LPGENT("Ignore List");
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_YAHOO_IGNORE);
- odp.pfnDlgProc = DlgProcYahooOptsIgnore;
- Options_AddPage(wParam, &odp);
- return 0;
-}
+/*
+ * $Id: options.cpp 12038 2010-06-21 16:46:22Z gena01 $
+ *
+ * myYahoo Miranda Plugin
+ *
+ * Authors: Gennady Feldman (aka Gena01)
+ * Laurent Marechal (aka Peorth)
+ *
+ * This code is under GPL and is based on AIM, MSN and Miranda source code.
+ * I want to thank Robert Rainwater and George Hazan for their code and support
+ * and for answering some of my questions during development of this plugin.
+ */
+
+#include "yahoo.h"
+#include "resource.h"
+
+#include <m_langpack.h>
+#include <m_utils.h>
+#include <m_options.h>
+#include <m_popup.h>
+
+#include "ignore.h"
+
+/*
+ * DlgProcYahooOpts - Account Options Dialog
+ */
+static INT_PTR CALLBACK DlgProcYahooOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ DBVARIANT dbv;
+ CYahooProto* ppro = (CYahooProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA );
+
+ switch ( msg ) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+
+ ppro = (CYahooProto*)lParam;
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam );
+
+ if ( !ppro->getString( YAHOO_LOGINID, &dbv)) {
+ SetDlgItemTextA(hwndDlg, IDC_HANDLE, dbv.pszVal);
+ db_free(&dbv);
+ }
+
+ if ( !ppro->getString("Nick", &dbv)) {
+ SetDlgItemTextA(hwndDlg, IDC_NICK, dbv.pszVal);
+ db_free(&dbv);
+ }
+
+ if ( !ppro->getString( YAHOO_PASSWORD, &dbv)) {
+ //bit of a security hole here, since it's easy to extract a password from an edit box
+ SetDlgItemTextA(hwndDlg, IDC_PASSWORD, dbv.pszVal );
+ db_free(&dbv);
+ }
+
+ //SetButtonCheck(hwndDlg, IDC_DISABLE_UTF8, ppro->getByte("DisableUTF8", 0));
+ SetButtonCheck(hwndDlg, IDC_USE_YAB, ppro->getByte("UseYAB", 1 ));
+ SetButtonCheck(hwndDlg, IDC_SHOW_AVATARS, ppro->getByte("ShowAvatars", 1 ));
+ SetButtonCheck(hwndDlg, IDC_MAIL_AUTOLOGIN, ppro->getByte("MailAutoLogin", 1 ));
+ SetButtonCheck(hwndDlg, IDC_DISABLEYAHOOMAIL, !ppro->getByte("DisableYahoomail", 0));
+ SetButtonCheck(hwndDlg, IDC_SHOW_ERRORS, ppro->getByte("ShowErrors", 1 ));
+
+ return TRUE;
+
+ case WM_COMMAND:
+
+ switch ( LOWORD( wParam )) {
+ case IDC_NEWYAHOOACCOUNTLINK:
+ CallService(MS_UTILS_OPENURL, 1,
+ ppro->getByte("YahooJapan", 0) ?
+ (LPARAM)"http://edit.yahoo.co.jp/config/eval_register" :
+ (LPARAM)"http://edit.yahoo.com/config/eval_register");
+ return TRUE;
+
+ //case IDC_DISABLE_UTF8:
+ case IDC_USE_YAB:
+ case IDC_SHOW_AVATARS:
+ case IDC_MAIL_AUTOLOGIN:
+ case IDC_SHOW_ERRORS:
+ case IDC_DISABLEYAHOOMAIL:
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ }
+
+ if ( HIWORD( wParam ) == EN_CHANGE && ( HWND )lParam == GetFocus())
+ switch( LOWORD( wParam )) {
+ case IDC_HANDLE:
+ case IDC_PASSWORD:
+ case IDC_NICK:
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ }
+
+ break;
+
+ case WM_NOTIFY:
+
+ if (((LPNMHDR)lParam)->code == (UINT) PSN_APPLY ) {
+ bool reconnectRequired = false;
+
+ char str[128];
+ GetDlgItemTextA(hwndDlg, IDC_HANDLE, str, sizeof( str ));
+ dbv.pszVal = NULL;
+
+ if ( ppro->getString( YAHOO_LOGINID, &dbv) || lstrcmpA( str, dbv.pszVal ))
+ reconnectRequired = true;
+
+ if ( dbv.pszVal != NULL)
+ db_free(&dbv);
+
+ ppro->setString( YAHOO_LOGINID, str );
+
+ GetDlgItemTextA(hwndDlg, IDC_PASSWORD, str, sizeof( str ));
+ dbv.pszVal = NULL;
+ if ( ppro->getString( YAHOO_PASSWORD, &dbv) || lstrcmpA( str, dbv.pszVal ))
+ reconnectRequired = true;
+ if ( dbv.pszVal != NULL)
+ db_free(&dbv);
+
+ ppro->setString( YAHOO_PASSWORD, str );
+ GetDlgItemTextA(hwndDlg, IDC_NICK, str, sizeof( str ));
+
+
+ if (str[0] == '\0') {
+ /* Check for empty Nick, if so delete the key in the DB */
+ ppro->delSetting("Nick");
+ } else {
+ /* otherwise save the new Nick */
+ ppro->setString("Nick", str);
+ }
+
+ ppro->setByte("UseYAB", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_USE_YAB));
+ ppro->setByte("ShowAvatars", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOW_AVATARS));
+ ppro->setByte("MailAutoLogin", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_MAIL_AUTOLOGIN));
+ ppro->setByte("DisableYahoomail", (BYTE)!IsDlgButtonChecked(hwndDlg, IDC_DISABLEYAHOOMAIL));
+ ppro->setByte("ShowErrors", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOW_ERRORS));
+
+ if (reconnectRequired)
+ ppro->delSetting(YAHOO_PWTOKEN);
+
+ if ( reconnectRequired && ppro->m_bLoggedIn )
+ MessageBoxA(hwndDlg, Translate("The changes you have made require you to reconnect to the Yahoo network before they take effect"), Translate("YAHOO Options"), MB_OK );
+
+ return TRUE;
+ }
+
+ break;
+ }
+ return FALSE;
+}
+
+/*
+ * DlgProcYahooOpts - Connection Options Dialog
+ */
+static INT_PTR CALLBACK DlgProcYahooOptsConn(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ DBVARIANT dbv;
+ CYahooProto* ppro = (CYahooProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA );
+
+ switch ( msg ) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg );
+
+ ppro = ( CYahooProto* )lParam;
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam );
+
+ if ( !ppro->getString( YAHOO_LOGINSERVER, &dbv)) {
+ SetDlgItemTextA(hwndDlg, IDC_LOGINSERVER, dbv.pszVal );
+ db_free(&dbv);
+ }
+ else SetDlgItemTextA(hwndDlg, IDC_LOGINSERVER,
+ ppro->getByte("YahooJapan", 0)
+ ? YAHOO_DEFAULT_JAPAN_LOGIN_SERVER
+ : YAHOO_DEFAULT_LOGIN_SERVER );
+
+ SetDlgItemInt(hwndDlg, IDC_YAHOOPORT, ppro->getWord(YAHOO_LOGINPORT, YAHOO_DEFAULT_PORT), FALSE);
+
+ SetButtonCheck(hwndDlg, IDC_YAHOO_JAPAN, ppro->getByte("YahooJapan", 0));
+ return TRUE;
+
+ case WM_COMMAND:
+ switch ( LOWORD( wParam )) {
+ case IDC_RESETSERVER:
+ SetDlgItemTextA(hwndDlg, IDC_LOGINSERVER, YAHOO_DEFAULT_LOGIN_SERVER );
+ SetDlgItemInt( hwndDlg, IDC_YAHOOPORT, YAHOO_DEFAULT_PORT, FALSE );
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case IDC_YAHOO_JAPAN:
+ SetDlgItemTextA(hwndDlg, IDC_LOGINSERVER,
+ (IsDlgButtonChecked(hwndDlg,IDC_YAHOO_JAPAN)==BST_CHECKED) ?
+ YAHOO_DEFAULT_JAPAN_LOGIN_SERVER :
+ YAHOO_DEFAULT_LOGIN_SERVER );
+ // fall through and enable apply button
+
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ }
+
+ if ( HIWORD( wParam ) == EN_CHANGE && ( HWND )lParam == GetFocus())
+ switch( LOWORD( wParam )) {
+ case IDC_LOGINSERVER:
+ case IDC_YAHOOPORT:
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ }
+
+ break;
+
+ case WM_NOTIFY:
+ if (((LPNMHDR)lParam)->code == PSN_APPLY )
+ {
+ BOOL reconnectRequired = FALSE;
+ char str[128];
+ GetDlgItemTextA(hwndDlg, IDC_LOGINSERVER, str, sizeof( str ));
+
+ DBVARIANT dbv;
+ dbv.pszVal = NULL;
+ if ( ppro->getString( YAHOO_LOGINSERVER, &dbv) || lstrcmpA( str, dbv.pszVal ))
+ reconnectRequired = TRUE;
+ if ( dbv.pszVal != NULL)
+ db_free(&dbv);
+
+ ppro->setString(YAHOO_LOGINSERVER, str);
+
+ int port = GetDlgItemInt(hwndDlg, IDC_YAHOOPORT, NULL, FALSE );
+ if ( ppro->getWord(YAHOO_LOGINPORT, -1) != port)
+ reconnectRequired = TRUE;
+
+ ppro->setWord(YAHOO_LOGINPORT, port);
+
+ ppro->setByte("YahooJapan", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_YAHOO_JAPAN ));
+
+ if ( reconnectRequired && ppro->m_bLoggedIn )
+ MessageBoxA(hwndDlg, Translate("The changes you have made require you to reconnect to the Yahoo network before they take effect"), Translate("YAHOO Options"), MB_OK );
+
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+/*
+ * DlgProcYahooOpts - Connection Options Dialog
+ */
+static INT_PTR CALLBACK DlgProcYahooOptsIgnore(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ YList *l;
+ CYahooProto* ppro = (CYahooProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA );
+
+ switch ( msg ) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg );
+
+ ppro = ( CYahooProto* )lParam;
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam );
+
+ if ( ppro->getByte("IgnoreUnknown", 0)) {
+ CheckDlgButton(hwndDlg, IDC_OPT_IGN_UNKNOWN, 1);
+
+ EnableWindow( GetDlgItem(hwndDlg, IDC_IGN_ADD), 0);
+ EnableWindow( GetDlgItem(hwndDlg, IDC_IGN_REMOVE), 0);
+ EnableWindow( GetDlgItem(hwndDlg, IDC_YIGN_EDIT), 0);
+ EnableWindow( GetDlgItem(hwndDlg, IDC_YIGN_LIST), 0);
+ }
+ else CheckDlgButton(hwndDlg, IDC_OPT_IGN_LIST, 1);
+
+ /* show our current ignore list */
+ LOG(("[DlgProcYahooOptsIgnore] Grabbing current ignore list..."))
+ l = (YList *)ppro->GetIgnoreList();
+ while (l != NULL) {
+ struct yahoo_buddy *b = (struct yahoo_buddy *) l->data;
+
+ LOG(("[DlgProcYahooOptsIgnore] Buddy: %s", b->id ))
+ SendMessageA(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_ADDSTRING, 0, (LPARAM)b->id);
+ l = l->next;
+ }
+ LOG(("[DlgProcYahooOptsIgnore] End of Ignore List..."))
+
+ return TRUE;
+
+ case WM_COMMAND:
+ switch ( LOWORD( wParam )) {
+ case IDC_OPT_IGN_UNKNOWN:
+ case IDC_OPT_IGN_LIST:
+ if (( HWND )lParam != GetFocus()) return 0;
+
+ EnableWindow( GetDlgItem(hwndDlg, IDC_IGN_ADD), LOWORD( wParam ) == IDC_OPT_IGN_LIST);
+ EnableWindow( GetDlgItem(hwndDlg, IDC_IGN_REMOVE), LOWORD( wParam ) == IDC_OPT_IGN_LIST);
+ EnableWindow( GetDlgItem(hwndDlg, IDC_YIGN_EDIT), LOWORD( wParam ) == IDC_OPT_IGN_LIST);
+ EnableWindow( GetDlgItem(hwndDlg, IDC_YIGN_LIST), LOWORD( wParam ) == IDC_OPT_IGN_LIST);
+
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case IDC_IGN_ADD:
+ if (!ppro->m_bLoggedIn)
+ MessageBox(hwndDlg, TranslateT("You need to be connected to Yahoo to add to Ignore List."), TranslateT("Yahoo Ignore"), MB_OK| MB_ICONINFORMATION);
+ else {
+ char id[128];
+ int i = GetDlgItemTextA(hwndDlg, IDC_YIGN_EDIT, id, sizeof( id ));
+
+ if (i < 3) {
+ MessageBox(hwndDlg, TranslateT("Please enter a valid buddy name to ignore."), TranslateT("Yahoo Ignore"), MB_OK| MB_ICONINFORMATION);
+ break;
+ }
+
+ i = SendDlgItemMessageA(hwndDlg, IDC_YIGN_LIST, LB_FINDSTRINGEXACT,(WPARAM) -1, (LPARAM)id);
+ if (i != LB_ERR ) {
+ MessageBox(hwndDlg, TranslateT("The buddy is already on your ignore list."), TranslateT("Yahoo Ignore"), MB_OK | MB_ICONINFORMATION);
+ break;
+ }
+ ppro->IgnoreBuddy(id, 0);
+ SendMessageA(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_ADDSTRING, 0, (LPARAM)id);
+ SetDlgItemTextA(hwndDlg, IDC_YIGN_EDIT, "");
+ }
+ break;
+
+ case IDC_IGN_REMOVE:
+ {
+ int i;
+ char id[128];
+
+ if (!ppro->m_bLoggedIn) {
+ MessageBox(hwndDlg, TranslateT("You need to be connected to Yahoo to remove from the ignore list."), TranslateT("Yahoo Ignore"), MB_OK| MB_ICONINFORMATION);
+ break;
+ }
+
+ i = SendMessage(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_GETCURSEL, 0, 0);
+ if (i == LB_ERR) {
+ MessageBox(hwndDlg, TranslateT("Please select a buddy on the ignore list to remove."), TranslateT("Yahoo Ignore"), MB_OK| MB_ICONINFORMATION);
+ break;
+ }
+
+ SendMessageA(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_GETTEXT, i, (LPARAM)id);
+
+ ppro->IgnoreBuddy(id, 1);
+ SendMessage(GetDlgItem(hwndDlg,IDC_YIGN_LIST), LB_DELETESTRING, i, 0);
+ }
+ }
+ break;
+
+ case WM_NOTIFY:
+ if (((LPNMHDR)lParam)->code == PSN_APPLY ) {
+ ppro->setByte("IgnoreUnknown", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_OPT_IGN_UNKNOWN ));
+ return TRUE;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+/*
+ * YahooOptInit - initialize/register our Options w/ Miranda.
+ */
+
+int __cdecl CYahooProto::OnOptionsInit(WPARAM wParam,LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp = { sizeof(odp) };
+ odp.position = -790000000;
+ odp.hInstance = hInstance;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_YAHOO);
+ odp.ptszTitle = m_tszUserName;
+ odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR | ODPF_DONTTRANSLATE;
+ odp.ptszGroup = LPGENT("Network");
+ odp.ptszTab = LPGENT("Account");
+ odp.pfnDlgProc = DlgProcYahooOpts;
+ odp.dwInitParam = LPARAM(this);
+ Options_AddPage(wParam, &odp);
+
+ odp.ptszTab = LPGENT("Connection");
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_YAHOO_CONNECTION);
+ odp.pfnDlgProc = DlgProcYahooOptsConn;
+ Options_AddPage(wParam, &odp);
+
+ odp.ptszTab = LPGENT("Ignore List");
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_YAHOO_IGNORE);
+ odp.pfnDlgProc = DlgProcYahooOptsIgnore;
+ Options_AddPage(wParam, &odp);
+ return 0;
+}