summaryrefslogtreecommitdiff
path: root/protocols/Tlen/tlen_czaty/ChatWindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Tlen/tlen_czaty/ChatWindow.h')
-rw-r--r--protocols/Tlen/tlen_czaty/ChatWindow.h196
1 files changed, 196 insertions, 0 deletions
diff --git a/protocols/Tlen/tlen_czaty/ChatWindow.h b/protocols/Tlen/tlen_czaty/ChatWindow.h
new file mode 100644
index 0000000000..37b0b29d6e
--- /dev/null
+++ b/protocols/Tlen/tlen_czaty/ChatWindow.h
@@ -0,0 +1,196 @@
+/*
+
+MUCC Group Chat GUI Plugin for Miranda IM
+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.
+
+*/
+
+class ChatWindow;
+
+#ifndef CHATWINDOW_INCLUDED
+#define CHATWINDOW_INCLUDED
+#include "mucc.h"
+#include "ChatEvent.h"
+#include "ChatUser.h"
+#include "AdminWindow.h"
+#include "ChatContainer.h"
+
+#define DM_CHAT_EVENT (WM_USER+1)
+#define DM_CHAT_QUERY (WM_USER+2)
+#define WM_TLEN_SMILEY (WM_USER+200)
+
+
+class StreamData {
+public:
+ ChatWindow *chat;
+ MUCCEVENT *event;
+};
+
+class ChatWindow{
+private:
+ static ChatWindow * list;
+ static CRITICAL_SECTION mutex;
+ static bool released;
+ static HFONT hListGroupFont, hListFont;
+ static COLORREF colorListBg, colorListText, colorListGroupText;
+ static COLORREF colorInputBg, colorLogBg;
+ ChatContainer * container;
+ HANDLE hEvent;
+ HWND hWnd;
+ HWND hWndLog;
+ HFONT hEditFont;
+ HTREEITEM hUserGroups[5];
+ char * module;
+ char * roomId;
+ char * roomName;
+ char * topic;
+ int options;
+ int roomFlags;
+ int font, fontSize;
+ int bBold, bItalic, bUnderline;
+ int wasFirstMessage;
+ bool isEmpty;
+ COLORREF fontColor;
+ int isStarted;
+ ChatWindow * prev;
+ ChatWindow * next;
+ int adminDialogMode;
+ AdminWindow * adminWindow;
+ ChatUser * users;
+ ChatUser * userMe;
+ void addUser(ChatUser *);
+ void removeUser(ChatUser *);
+ ChatUser * findUser(const char *);
+ int getUserGroup(ChatUser *);
+ ChatUser * getSelectedUser();
+ ChatEventList eventList;
+ void createRTFHeader();
+ int appendMessage(const MUCCEVENT *event);
+ int logMessage(const MUCCEVENT *event);
+public:
+ enum LOGFLAGS {
+ FLAG_SHOW_NICKNAMES = 0x00000001,
+ FLAG_MSGINNEWLINE = 0x00000002,
+ FLAG_OPT_SENDONENTER= 0x00000004,
+ FLAG_OPT_ENABLEIEVIEW=0x00000008,
+
+ FLAG_SHOW_DATE = 0x00000010,
+ FLAG_SHOW_TIMESTAMP = 0x00000020,
+ FLAG_SHOW_SECONDS = 0x00000040,
+ FLAG_LONG_DATE = 0x00000080,
+
+ FLAG_FORMAT_FONT = 0x00000100,
+ FLAG_FORMAT_SIZE = 0x00000200,
+ FLAG_FORMAT_COLOR = 0x00000400,
+ FLAG_FORMAT_STYLE = 0x00000800,
+ FLAG_FORMAT_ALL = 0x00000F00,
+
+ FLAG_LOG_MESSAGES = 0x00001000,
+ FLAG_LOG_JOINED = 0x00002000,
+ FLAG_LOG_LEFT = 0x00004000,
+ FLAG_LOG_TOPIC = 0x00008000,
+ FLAG_LOG_ALL = 0x0000F000,
+
+ FLAG_FLASH_MESSAGES = 0x00010000,
+ FLAG_FLASH_JOINED = 0x00020000,
+ FLAG_FLASH_LEFT = 0x00040000,
+ FLAG_FLASH_TOPIC = 0x00080000,
+ FLAG_FLASH_ALL = 0x000F0000,
+
+
+ };
+
+ enum ADMINMODES {
+ ADMIN_MODE_KICK = 1,
+ ADMIN_MODE_ROLE = 2,
+ ADMIN_MODE_BROWSER = 3
+ };
+ int hSplitterPos;
+ int vSplitterPos;
+ int hSplitterMinBottom;
+ int hSplitterMinTop;
+ int vSplitterMinLeft;
+ int vSplitterMinRight;
+ ChatWindow (MUCCWINDOW *);
+ ~ChatWindow ();
+ ChatWindow * getNext();
+ void setNext(ChatWindow *);
+ ChatWindow * getPrev();
+ ChatContainer* getContainer();
+ void setPrev(ChatWindow *);
+ void setHWND(HWND);
+ HWND getHWND();
+ void setHWNDLog(HWND);
+ HWND getHWNDLog();
+ HANDLE getEvent();
+ const char * getModule();
+ void setModule(const char *);
+ const char * getRoomId();
+ void setRoomId(const char *);
+ const char * getRoomName();
+ void setRoomName(const char *);
+ void setOptions(int);
+ int getOptions();
+ void setRoomFlags(int);
+ int getRoomFlags();
+ int getFontSizeNum();
+ int getFontSize(int);
+ int getFontNameNum();
+ const char * getFontName(int);
+ void setFont(int font, int size, int bBold, int bItalic, int bUnderline, COLORREF color);
+ int getFont();
+ int getFontSize();
+ int getFontStyle();
+ COLORREF getFontColor();
+ int start();
+ int startPriv();
+ void startAdminDialog(int mode);
+ int kickAndBan(int time);
+ int kickAndBan(const char *id, int time, const char *);
+ int unban(const char *id);
+ int setRights(int flags);
+ int setRights(const char *id, int flags);
+ void queryResultContacts(MUCCQUERYRESULT *queryResult);
+ void queryResultUsers(MUCCQUERYRESULT *queryResult);
+ void setTreeItem(int, HTREEITEM);
+ HTREEITEM getTreeItem(int);
+ ChatUser * findUserByNick(const char *);
+ ChatUser * getMe();
+ void refreshSettings();
+ void setAdminWindow(AdminWindow *);
+ AdminWindow * getAdminWindow();
+ void rebuildLog();
+ void clearLog();
+ int logEvent(const MUCCEVENT *event);
+ int changePresence(const MUCCEVENT *event);
+ int changeTopic(const MUCCEVENT *event);
+ int changeRoomInfo(const MUCCEVENT *event);
+ int leave();
+
+ static void refreshSettings(int force);
+ static HFONT getListGroupFont();
+ static HFONT getListFont();
+ static COLORREF getListTextColor();
+ static COLORREF getListGroupTextColor();
+ static int getDefaultOptions();
+
+ static void init();
+ static void release();
+ static ChatWindow * getWindow(const char *module, const char *roomId);
+
+};
+#endif