diff options
Diffstat (limited to 'protocols/SkypeWeb/src/skype_accounts.cpp')
-rw-r--r-- | protocols/SkypeWeb/src/skype_accounts.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/protocols/SkypeWeb/src/skype_accounts.cpp b/protocols/SkypeWeb/src/skype_accounts.cpp new file mode 100644 index 0000000000..4b1ae6d536 --- /dev/null +++ b/protocols/SkypeWeb/src/skype_accounts.cpp @@ -0,0 +1,51 @@ +#include "common.h"
+
+LIST<CSkypeProto> CSkypeProto::Accounts(1, CSkypeProto::CompareAccounts);
+
+int CSkypeProto::CompareAccounts(const CSkypeProto *p1, const CSkypeProto *p2)
+{
+ return _tcscmp(p1->m_tszUserName, p2->m_tszUserName);
+}
+
+CSkypeProto* CSkypeProto::InitAccount(const char *protoName, const wchar_t *userName)
+{
+ CSkypeProto *proto = new CSkypeProto(protoName, userName);
+ Accounts.insert(proto);
+ return proto;
+}
+
+int CSkypeProto::UninitAccount(CSkypeProto *proto)
+{
+ Accounts.remove(proto);
+ delete proto;
+ return 0;
+}
+
+CSkypeProto* CSkypeProto::GetContactAccount(MCONTACT hContact)
+{
+ for (int i = 0; i < Accounts.getCount(); i++)
+ {
+ if (mir_strcmpi(GetContactProto(hContact), Accounts[i]->m_szModuleName) == 0)
+ {
+ return Accounts[i];
+ }
+ }
+ return NULL;
+}
+
+int CSkypeProto::OnAccountLoaded(WPARAM, LPARAM)
+{
+ HookProtoEvent(ME_OPT_INITIALISE, &CSkypeProto::OnOptionsInit);
+
+ return 0;
+}
+
+INT_PTR CSkypeProto::OnAccountManagerInit(WPARAM, LPARAM lParam)
+{
+ return (INT_PTR)CreateDialogParam(
+ g_hInstance,
+ MAKEINTRESOURCE(IDD_ACCOUNT_MANAGER),
+ (HWND)lParam,
+ CSkypeProto::MainOptionsProc,
+ (LPARAM)this);
+}
\ No newline at end of file |