summaryrefslogtreecommitdiff
path: root/src/mir_app
diff options
context:
space:
mode:
Diffstat (limited to 'src/mir_app')
-rw-r--r--src/mir_app/res/chat/1.icobin0 -> 502 bytes
-rw-r--r--src/mir_app/res/chat/2.icobin0 -> 502 bytes
-rw-r--r--src/mir_app/res/chat/3.icobin0 -> 502 bytes
-rw-r--r--src/mir_app/res/chat/4.icobin0 -> 502 bytes
-rw-r--r--src/mir_app/res/chat/5.icobin0 -> 502 bytes
-rw-r--r--src/mir_app/res/chat/6.icobin0 -> 502 bytes
-rw-r--r--src/mir_app/res/resource.rc11
-rw-r--r--src/mir_app/src/chat.h1
-rw-r--r--src/mir_app/src/chat_log.cpp2
-rw-r--r--src/mir_app/src/chat_manager.cpp5
-rw-r--r--src/mir_app/src/chat_opts.cpp1
-rw-r--r--src/mir_app/src/chat_svc.cpp55
-rw-r--r--src/mir_app/src/chat_tools.cpp31
-rw-r--r--src/mir_app/src/resource.h6
14 files changed, 73 insertions, 39 deletions
diff --git a/src/mir_app/res/chat/1.ico b/src/mir_app/res/chat/1.ico
new file mode 100644
index 0000000000..61fa00e172
--- /dev/null
+++ b/src/mir_app/res/chat/1.ico
Binary files differ
diff --git a/src/mir_app/res/chat/2.ico b/src/mir_app/res/chat/2.ico
new file mode 100644
index 0000000000..5c1dc06fbc
--- /dev/null
+++ b/src/mir_app/res/chat/2.ico
Binary files differ
diff --git a/src/mir_app/res/chat/3.ico b/src/mir_app/res/chat/3.ico
new file mode 100644
index 0000000000..f103719b68
--- /dev/null
+++ b/src/mir_app/res/chat/3.ico
Binary files differ
diff --git a/src/mir_app/res/chat/4.ico b/src/mir_app/res/chat/4.ico
new file mode 100644
index 0000000000..47d8f35fe2
--- /dev/null
+++ b/src/mir_app/res/chat/4.ico
Binary files differ
diff --git a/src/mir_app/res/chat/5.ico b/src/mir_app/res/chat/5.ico
new file mode 100644
index 0000000000..7008463787
--- /dev/null
+++ b/src/mir_app/res/chat/5.ico
Binary files differ
diff --git a/src/mir_app/res/chat/6.ico b/src/mir_app/res/chat/6.ico
new file mode 100644
index 0000000000..8a681faeb7
--- /dev/null
+++ b/src/mir_app/res/chat/6.ico
Binary files differ
diff --git a/src/mir_app/res/resource.rc b/src/mir_app/res/resource.rc
index 8a87c31d8d..f26b13ec84 100644
--- a/src/mir_app/res/resource.rc
+++ b/src/mir_app/res/resource.rc
@@ -1407,6 +1407,17 @@ IDI_SOUND ICON "sound.ico"
IDI_DATABASE ICON "database.ico"
+IDI_STATUS0 ICON "chat/1.ico"
+
+IDI_STATUS1 ICON "chat/2.ico"
+
+IDI_STATUS2 ICON "chat/3.ico"
+
+IDI_STATUS3 ICON "chat/4.ico"
+
+IDI_STATUS4 ICON "chat/5.ico"
+
+IDI_STATUS5 ICON "chat/6.ico"
/////////////////////////////////////////////////////////////////////////////
//
diff --git a/src/mir_app/src/chat.h b/src/mir_app/src/chat.h
index 790bb5ec18..88f9660f17 100644
--- a/src/mir_app/src/chat.h
+++ b/src/mir_app/src/chat.h
@@ -35,6 +35,7 @@ extern int g_cbSession, g_cbModuleInfo, g_iFontMode;
extern wchar_t *g_szFontGroup;
extern mir_cs csChat;
+extern HICON g_hChatIcons[20];
extern DWORD g_dwDiskLogFlags;
extern HCURSOR g_hCurHyperlinkHand;
extern char* pLogIconBmpBits[14];
diff --git a/src/mir_app/src/chat_log.cpp b/src/mir_app/src/chat_log.cpp
index ff61461d4f..86072e9ccb 100644
--- a/src/mir_app/src/chat_log.cpp
+++ b/src/mir_app/src/chat_log.cpp
@@ -435,7 +435,7 @@ void LoadMsgLogBitmaps(void)
pLogIconBmpBits[i] = (char*)mir_alloc(size);
size_t rtfHeaderSize = mir_snprintf((char *)pLogIconBmpBits[i], size, "{\\pict\\dibitmap0\\wbmbitspixel%u\\wbmplanes1\\wbmwidthbytes%u\\picw%u\\pich%u ", bih.biBitCount, widthBytes, bih.biWidth, bih.biHeight);
- HICON hIcon = g_chatApi.hIcons[i];
+ HICON hIcon = g_hChatIcons[i];
HBITMAP hoBmp = (HBITMAP)SelectObject(hdcMem, hBmp);
FillRect(hdcMem, &rc, hBkgBrush);
DrawIconEx(hdcMem, 0, 0, hIcon, bih.biWidth, bih.biHeight, 0, nullptr, DI_NORMAL);
diff --git a/src/mir_app/src/chat_manager.cpp b/src/mir_app/src/chat_manager.cpp
index 9c50e4a51d..07c7ecbbf1 100644
--- a/src/mir_app/src/chat_manager.cpp
+++ b/src/mir_app/src/chat_manager.cpp
@@ -288,9 +288,9 @@ static HICON SM_GetStatusIcon(SESSION_INFO *si, USERINFO *ui)
STATUSINFO *ti = g_chatApi.TM_FindStatus(si->pStatuses, g_chatApi.TM_WordToString(si->pStatuses, ui->Status));
if (ti != nullptr)
- return g_chatApi.hIcons[ICON_STATUS0 + ti->iIconIndex];
+ return g_chatApi.hStatusIcons[ti->iIconIndex];
- return g_chatApi.hIcons[ICON_STATUS0];
+ return g_chatApi.hStatusIcons[0];
}
BOOL SM_AddEvent(const wchar_t *pszID, const char *pszModule, GCEVENT *gce, bool bIsHighlighted)
@@ -997,6 +997,7 @@ MIR_APP_DLL(CHAT_MANAGER*) Chat_CustomizeApi(const CHAT_MANAGER_INITDATA *pInit)
ResetApi();
+ LoadChatIcons();
RegisterFonts();
OptionsInit();
return &g_chatApi;
diff --git a/src/mir_app/src/chat_opts.cpp b/src/mir_app/src/chat_opts.cpp
index c05953a187..b5078a8778 100644
--- a/src/mir_app/src/chat_opts.cpp
+++ b/src/mir_app/src/chat_opts.cpp
@@ -26,6 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
extern SESSION_INFO g_TabSession;
+HICON g_hChatIcons[20];
DWORD g_dwDiskLogFlags;
HPLUGIN g_pChatPlugin;
GlobalLogSettingsBase *g_Settings;
diff --git a/src/mir_app/src/chat_svc.cpp b/src/mir_app/src/chat_svc.cpp
index 36422461a6..c3a3f69005 100644
--- a/src/mir_app/src/chat_svc.cpp
+++ b/src/mir_app/src/chat_svc.cpp
@@ -49,26 +49,27 @@ static HANDLE
void LoadChatIcons(void)
{
- g_chatApi.hIcons[ICON_ACTION] = LoadIconEx("log_action", FALSE);
- g_chatApi.hIcons[ICON_ADDSTATUS] = LoadIconEx("log_addstatus", FALSE);
- g_chatApi.hIcons[ICON_HIGHLIGHT] = LoadIconEx("log_highlight", FALSE);
- g_chatApi.hIcons[ICON_INFO] = LoadIconEx("log_info", FALSE);
- g_chatApi.hIcons[ICON_JOIN] = LoadIconEx("log_join", FALSE);
- g_chatApi.hIcons[ICON_KICK] = LoadIconEx("log_kick", FALSE);
- g_chatApi.hIcons[ICON_MESSAGE] = LoadIconEx("log_message_in", FALSE);
- g_chatApi.hIcons[ICON_MESSAGEOUT] = LoadIconEx("log_message_out", FALSE);
- g_chatApi.hIcons[ICON_NICK] = LoadIconEx("log_nick", FALSE);
- g_chatApi.hIcons[ICON_NOTICE] = LoadIconEx("log_notice", FALSE);
- g_chatApi.hIcons[ICON_PART] = LoadIconEx("log_part", FALSE);
- g_chatApi.hIcons[ICON_QUIT] = LoadIconEx("log_quit", FALSE);
- g_chatApi.hIcons[ICON_REMSTATUS] = LoadIconEx("log_removestatus", FALSE);
- g_chatApi.hIcons[ICON_TOPIC] = LoadIconEx("log_topic", FALSE);
- g_chatApi.hIcons[ICON_STATUS0] = LoadIconEx("status0", FALSE);
- g_chatApi.hIcons[ICON_STATUS1] = LoadIconEx("status1", FALSE);
- g_chatApi.hIcons[ICON_STATUS2] = LoadIconEx("status2", FALSE);
- g_chatApi.hIcons[ICON_STATUS3] = LoadIconEx("status3", FALSE);
- g_chatApi.hIcons[ICON_STATUS4] = LoadIconEx("status4", FALSE);
- g_chatApi.hIcons[ICON_STATUS5] = LoadIconEx("status5", FALSE);
+ g_hChatIcons[ICON_ACTION] = LoadIconEx("log_action", FALSE);
+ g_hChatIcons[ICON_ADDSTATUS] = LoadIconEx("log_addstatus", FALSE);
+ g_hChatIcons[ICON_HIGHLIGHT] = LoadIconEx("log_highlight", FALSE);
+ g_hChatIcons[ICON_INFO] = LoadIconEx("log_info", FALSE);
+ g_hChatIcons[ICON_JOIN] = LoadIconEx("log_join", FALSE);
+ g_hChatIcons[ICON_KICK] = LoadIconEx("log_kick", FALSE);
+ g_hChatIcons[ICON_MESSAGE] = LoadIconEx("log_message_in", FALSE);
+ g_hChatIcons[ICON_MESSAGEOUT] = LoadIconEx("log_message_out", FALSE);
+ g_hChatIcons[ICON_NICK] = LoadIconEx("log_nick", FALSE);
+ g_hChatIcons[ICON_NOTICE] = LoadIconEx("log_notice", FALSE);
+ g_hChatIcons[ICON_PART] = LoadIconEx("log_part", FALSE);
+ g_hChatIcons[ICON_QUIT] = LoadIconEx("log_quit", FALSE);
+ g_hChatIcons[ICON_REMSTATUS] = LoadIconEx("log_removestatus", FALSE);
+ g_hChatIcons[ICON_TOPIC] = LoadIconEx("log_topic", FALSE);
+
+ g_chatApi.hStatusIcons[0] = g_plugin.getIcon(IDI_STATUS0);
+ g_chatApi.hStatusIcons[1] = g_plugin.getIcon(IDI_STATUS1);
+ g_chatApi.hStatusIcons[2] = g_plugin.getIcon(IDI_STATUS2);
+ g_chatApi.hStatusIcons[3] = g_plugin.getIcon(IDI_STATUS3);
+ g_chatApi.hStatusIcons[4] = g_plugin.getIcon(IDI_STATUS4);
+ g_chatApi.hStatusIcons[5] = g_plugin.getIcon(IDI_STATUS5);
FreeMsgLogBitmaps();
LoadMsgLogBitmaps();
@@ -862,6 +863,18 @@ static int ModulesLoaded(WPARAM, LPARAM)
return 0;
}
+/////////////////////////////////////////////////////////////////////////////////////////
+
+static IconItem iconList[] =
+{
+ { LPGEN("Status 1 (10x10)"), "status0", IDI_STATUS0, 10 },
+ { LPGEN("Status 2 (10x10)"), "status1", IDI_STATUS1, 10 },
+ { LPGEN("Status 3 (10x10)"), "status2", IDI_STATUS2, 10 },
+ { LPGEN("Status 4 (10x10)"), "status3", IDI_STATUS3, 10 },
+ { LPGEN("Status 5 (10x10)"), "status4", IDI_STATUS4, 10 },
+ { LPGEN("Status 6 (10x10)"), "status5", IDI_STATUS5, 10 }
+};
+
static bool bInited = false;
int LoadChatModule(void)
@@ -879,6 +892,8 @@ int LoadChatModule(void)
g_chatApi.hevPreCreate = CreateHookableEvent(ME_MSG_PRECREATEEVENT);
g_chatApi.hevWinPopup = CreateHookableEvent(ME_MSG_WINDOWPOPUP);
+ g_plugin.registerIcon(LPGEN("Messaging") "/" LPGEN("Group chats"), iconList, "chat");
+
g_plugin.addSound("ChatHighlight", LPGENW("Group chats"), LPGENW("Message is highlighted"));
g_plugin.addSound("ChatAction", LPGENW("Group chats"), LPGENW("User has performed an action"));
g_plugin.addSound("ChatJoin", LPGENW("Group chats"), LPGENW("User has joined"));
diff --git a/src/mir_app/src/chat_tools.cpp b/src/mir_app/src/chat_tools.cpp
index 8bd5321b66..980fcd2ea8 100644
--- a/src/mir_app/src/chat_tools.cpp
+++ b/src/mir_app/src/chat_tools.cpp
@@ -101,23 +101,22 @@ wchar_t* RemoveFormatting(const wchar_t *pszWord)
HICON CHAT_MANAGER::getIcon(int iEventType) const
{
+ if (iEventType & GC_EVENT_HIGHLIGHT)
+ return g_hChatIcons[ICON_HIGHLIGHT];
+
switch (iEventType) {
- case GC_EVENT_MESSAGE | GC_EVENT_HIGHLIGHT:
- case GC_EVENT_ACTION | GC_EVENT_HIGHLIGHT:
- return hIcons[ICON_HIGHLIGHT];
-
- case GC_EVENT_MESSAGE: return g_chatApi.hIcons[ICON_MESSAGE];
- case GC_EVENT_ACTION: return g_chatApi.hIcons[ICON_ACTION];
- case GC_EVENT_JOIN: return g_chatApi.hIcons[ICON_JOIN];
- case GC_EVENT_PART: return g_chatApi.hIcons[ICON_PART];
- case GC_EVENT_QUIT: return g_chatApi.hIcons[ICON_QUIT];
- case GC_EVENT_NICK: return g_chatApi.hIcons[ICON_NICK];
- case GC_EVENT_KICK: return g_chatApi.hIcons[ICON_KICK];
- case GC_EVENT_NOTICE: return g_chatApi.hIcons[ICON_NOTICE];
- case GC_EVENT_TOPIC: return g_chatApi.hIcons[ICON_TOPIC];
- case GC_EVENT_INFORMATION: return g_chatApi.hIcons[ICON_INFO];
- case GC_EVENT_ADDSTATUS: return g_chatApi.hIcons[ICON_ADDSTATUS];
- case GC_EVENT_REMOVESTATUS: return g_chatApi.hIcons[ICON_REMSTATUS];
+ case GC_EVENT_MESSAGE: return g_hChatIcons[ICON_MESSAGE];
+ case GC_EVENT_ACTION: return g_hChatIcons[ICON_ACTION];
+ case GC_EVENT_JOIN: return g_hChatIcons[ICON_JOIN];
+ case GC_EVENT_PART: return g_hChatIcons[ICON_PART];
+ case GC_EVENT_QUIT: return g_hChatIcons[ICON_QUIT];
+ case GC_EVENT_NICK: return g_hChatIcons[ICON_NICK];
+ case GC_EVENT_KICK: return g_hChatIcons[ICON_KICK];
+ case GC_EVENT_NOTICE: return g_hChatIcons[ICON_NOTICE];
+ case GC_EVENT_TOPIC: return g_hChatIcons[ICON_TOPIC];
+ case GC_EVENT_INFORMATION: return g_hChatIcons[ICON_INFO];
+ case GC_EVENT_ADDSTATUS: return g_hChatIcons[ICON_ADDSTATUS];
+ case GC_EVENT_REMOVESTATUS: return g_hChatIcons[ICON_REMSTATUS];
default:
return nullptr;
}
diff --git a/src/mir_app/src/resource.h b/src/mir_app/src/resource.h
index 776a7ee737..e8d0a5bb05 100644
--- a/src/mir_app/src/resource.h
+++ b/src/mir_app/src/resource.h
@@ -171,6 +171,12 @@
#define IDI_AUTH_REVOKE 327
#define IDI_SOUND 328
#define IDI_DATABASE 329
+#define IDI_STATUS0 330
+#define IDI_STATUS1 331
+#define IDI_STATUS2 332
+#define IDI_STATUS3 333
+#define IDI_STATUS4 334
+#define IDI_STATUS5 335
#define IDI_ONTHEPHONE 1002
#define IDC_MESSAGE 1002
#define IDC_LANGINFOFRAME 1002