summaryrefslogtreecommitdiff
path: root/protocols/Tlen/tlen_czaty/src/mucc_services.cpp
diff options
context:
space:
mode:
authorSzymon Tokarz <wsx22@o2.pl>2012-10-17 21:05:02 +0000
committerSzymon Tokarz <wsx22@o2.pl>2012-10-17 21:05:02 +0000
commitfd67a89688262e4e58337c33728488f5f29196a8 (patch)
treeb6f8d04257ce002aaf251d586d27253db3755c42 /protocols/Tlen/tlen_czaty/src/mucc_services.cpp
parent1099f914b0eb16acdcbf594ac4105224a6dfb2fd (diff)
Tlen protocol adopted
- code moved to trunk\protocols folder - update project files (based on rev: 27, 228, 204, 350, 279, 280, 1374, 278) - changed code organisation to c++ convention (based on rev: 1092, 503, 504) - changed code to Miranda NG convention (based on rev: 49, 54, 312, 401, 321, 358, 410, 441, 477, 483, 496, 507, 515, 644, 652, 743, 956, 1206, 667, 1040, 1590, 1857) - folders restructurization (based on rev: 1890) - code cleaning (based on rev: 270, 398, 409) - this commit includes adopted sources of tlen_czaty.dll (former mucc.dll) plugin witch is now deprecated and will be removed -- wsx22{at}o2.pl git-svn-id: http://svn.miranda-ng.org/main/trunk@1972 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Tlen/tlen_czaty/src/mucc_services.cpp')
-rw-r--r--protocols/Tlen/tlen_czaty/src/mucc_services.cpp140
1 files changed, 140 insertions, 0 deletions
diff --git a/protocols/Tlen/tlen_czaty/src/mucc_services.cpp b/protocols/Tlen/tlen_czaty/src/mucc_services.cpp
new file mode 100644
index 0000000000..fd890dc763
--- /dev/null
+++ b/protocols/Tlen/tlen_czaty/src/mucc_services.cpp
@@ -0,0 +1,140 @@
+/*
+
+MUCC Group Chat GUI Plugin for Miranda NG
+Copyright (C) 2004 Piotr Piastucki
+
+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.
+
+*/
+#include "mucc_services.h"
+#include "Utils.h"
+#include "HelperDialog.h"
+
+int MUCCQueryChatGroups(MUCCQUERYRESULT *queryResult)
+{
+ ManagerWindow *managerWnd=ManagerWindow::getWindow(queryResult->pszModule);
+ if (managerWnd != NULL) {
+ managerWnd->queryResultGroups(queryResult);
+ }
+ return 1;
+}
+
+int MUCCQueryChatRooms(MUCCQUERYRESULT *queryResult)
+{
+ ManagerWindow *managerWnd=ManagerWindow::getWindow(queryResult->pszModule);
+ if (managerWnd != NULL) {
+ managerWnd->queryResultRooms(queryResult);
+ }
+ return 1;
+}
+
+int MUCCQueryUserRooms(MUCCQUERYRESULT *queryResult)
+{
+ ManagerWindow *managerWnd=ManagerWindow::getWindow(queryResult->pszModule);
+ if (managerWnd != NULL) {
+ managerWnd->queryResultUserRooms(queryResult);
+ }
+ return 1;
+}
+
+int MUCCQueryUserNicks(MUCCQUERYRESULT *queryResult)
+{
+ ManagerWindow *managerWnd=ManagerWindow::getWindow(queryResult->pszModule);
+ if (managerWnd != NULL) {
+ managerWnd->queryResultUserNick(queryResult);
+ }
+ return 1;
+}
+
+INT_PTR MUCCQueryResult(WPARAM wParam, LPARAM lParam)
+{
+ MUCCQUERYRESULT *queryResult=(MUCCQUERYRESULT *)lParam;
+ ChatWindow * chatWindow = NULL;
+ switch (queryResult->iType) {
+ case MUCC_EVENT_QUERY_GROUPS:
+ MUCCQueryChatGroups(queryResult);
+ break;
+ case MUCC_EVENT_QUERY_ROOMS:
+ MUCCQueryChatRooms(queryResult);
+ break;
+ case MUCC_EVENT_QUERY_USER_ROOMS:
+ MUCCQueryUserRooms(queryResult);
+ break;
+ case MUCC_EVENT_QUERY_USER_NICKS:
+ MUCCQueryUserNicks(queryResult);
+ break;
+ case MUCC_EVENT_QUERY_CONTACTS:
+ case MUCC_EVENT_QUERY_USERS:
+ chatWindow=ChatWindow::getWindow(queryResult->pszModule, queryResult->pszParent);
+ if (chatWindow != NULL) {
+ SendMessage(chatWindow->getHWND(), DM_CHAT_QUERY, (WPARAM) 0, (LPARAM) queryResult);
+ }
+ break;
+ }
+ return 0;
+}
+
+INT_PTR MUCCNewWindow(WPARAM wParam, LPARAM lParam)
+{
+ MUCCWINDOW *mucWindow = (MUCCWINDOW *) lParam;
+ if (mucWindow->iType == MUCC_WINDOW_CHATROOM) {
+ ChatWindow *chat = ChatWindow::getWindow(mucWindow->pszModule, mucWindow->pszID);
+ if (chat == NULL) {
+ chat = new ChatWindow(mucWindow);
+ }
+ } else if (mucWindow->iType == MUCC_WINDOW_CHATLIST) {
+ ManagerWindow *manager = ManagerWindow::getWindow(mucWindow->pszModule);
+ if (manager == NULL) {
+
+ }
+ //Utils::log("setting name: %s", mucWindow->pszModuleName);
+ manager->setModuleName(mucWindow->pszModuleName);
+ manager->start();
+ }
+ return 0;
+}
+
+INT_PTR MUCCEvent(WPARAM wParam, LPARAM lParam)
+{
+ MUCCEVENT* mucEvent = (MUCCEVENT *) lParam;
+ ChatWindow * chatWindow = NULL;
+ switch (mucEvent->iType) {
+ case MUCC_EVENT_STATUS:
+ case MUCC_EVENT_MESSAGE:
+ case MUCC_EVENT_ROOM_INFO:
+ case MUCC_EVENT_LEAVE:
+ case MUCC_EVENT_TOPIC:
+ chatWindow = ChatWindow::getWindow(mucEvent->pszModule, mucEvent->pszID);
+ if (chatWindow != NULL) {
+ SendMessage(chatWindow->getHWND(), DM_CHAT_EVENT, (WPARAM) 0, (LPARAM) mucEvent);
+ }
+ break;
+ case MUCC_EVENT_ERROR:
+ chatWindow = ChatWindow::getWindow(mucEvent->pszModule, mucEvent->pszID);
+ if (chatWindow != NULL) {
+ SendMessage(chatWindow->getHWND(), DM_CHAT_EVENT, (WPARAM) 0, (LPARAM) mucEvent);
+ } else {
+ HelperDialog::errorDlg(mucEvent);
+ }
+ break;
+ case MUCC_EVENT_INVITATION:
+ HelperDialog::acceptDlg(mucEvent);
+ break;
+ case MUCC_EVENT_JOIN:
+ HelperDialog::joinDlg(mucEvent);
+ break;
+ }
+ return 0;
+}