From 89c5b2369413025e1fe7dfe5c5d0bf3bedd8558d Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Mon, 23 Jul 2012 13:52:57 +0000 Subject: git-svn-id: http://svn.miranda-ng.org/main/trunk@1123 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- !NotAdopted/Tlen/tlen_czaty/ChatWindow.h | 196 +++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 !NotAdopted/Tlen/tlen_czaty/ChatWindow.h (limited to '!NotAdopted/Tlen/tlen_czaty/ChatWindow.h') diff --git a/!NotAdopted/Tlen/tlen_czaty/ChatWindow.h b/!NotAdopted/Tlen/tlen_czaty/ChatWindow.h new file mode 100644 index 0000000000..37b0b29d6e --- /dev/null +++ b/!NotAdopted/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 -- cgit v1.2.3