diff options
Diffstat (limited to 'src/mir_app')
-rw-r--r-- | src/mir_app/res/chat/1.ico | bin | 0 -> 502 bytes | |||
-rw-r--r-- | src/mir_app/res/chat/2.ico | bin | 0 -> 502 bytes | |||
-rw-r--r-- | src/mir_app/res/chat/3.ico | bin | 0 -> 502 bytes | |||
-rw-r--r-- | src/mir_app/res/chat/4.ico | bin | 0 -> 502 bytes | |||
-rw-r--r-- | src/mir_app/res/chat/5.ico | bin | 0 -> 502 bytes | |||
-rw-r--r-- | src/mir_app/res/chat/6.ico | bin | 0 -> 502 bytes | |||
-rw-r--r-- | src/mir_app/res/resource.rc | 11 | ||||
-rw-r--r-- | src/mir_app/src/chat.h | 1 | ||||
-rw-r--r-- | src/mir_app/src/chat_log.cpp | 2 | ||||
-rw-r--r-- | src/mir_app/src/chat_manager.cpp | 5 | ||||
-rw-r--r-- | src/mir_app/src/chat_opts.cpp | 1 | ||||
-rw-r--r-- | src/mir_app/src/chat_svc.cpp | 55 | ||||
-rw-r--r-- | src/mir_app/src/chat_tools.cpp | 31 | ||||
-rw-r--r-- | src/mir_app/src/resource.h | 6 |
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 Binary files differnew file mode 100644 index 0000000000..61fa00e172 --- /dev/null +++ b/src/mir_app/res/chat/1.ico diff --git a/src/mir_app/res/chat/2.ico b/src/mir_app/res/chat/2.ico Binary files differnew file mode 100644 index 0000000000..5c1dc06fbc --- /dev/null +++ b/src/mir_app/res/chat/2.ico diff --git a/src/mir_app/res/chat/3.ico b/src/mir_app/res/chat/3.ico Binary files differnew file mode 100644 index 0000000000..f103719b68 --- /dev/null +++ b/src/mir_app/res/chat/3.ico diff --git a/src/mir_app/res/chat/4.ico b/src/mir_app/res/chat/4.ico Binary files differnew file mode 100644 index 0000000000..47d8f35fe2 --- /dev/null +++ b/src/mir_app/res/chat/4.ico diff --git a/src/mir_app/res/chat/5.ico b/src/mir_app/res/chat/5.ico Binary files differnew file mode 100644 index 0000000000..7008463787 --- /dev/null +++ b/src/mir_app/res/chat/5.ico diff --git a/src/mir_app/res/chat/6.ico b/src/mir_app/res/chat/6.ico Binary files differnew file mode 100644 index 0000000000..8a681faeb7 --- /dev/null +++ b/src/mir_app/res/chat/6.ico 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
|