From d0de809a2d4f2ac76025d861bf55aa2c4ba1ac07 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 20 Jul 2012 10:47:53 +0000 Subject: LangMan: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@1072 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/LangMan/src/utils.cpp | 67 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 plugins/LangMan/src/utils.cpp (limited to 'plugins/LangMan/src/utils.cpp') diff --git a/plugins/LangMan/src/utils.cpp b/plugins/LangMan/src/utils.cpp new file mode 100644 index 0000000000..c67b9813a8 --- /dev/null +++ b/plugins/LangMan/src/utils.cpp @@ -0,0 +1,67 @@ +/* + +'Language Pack Manager'-Plugin for Miranda IM + +Copyright (C) 2005-2007 H. Herkenrath + +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 (LangMan-License.txt); if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include "common.h" + +/************************* Error Output ***************************/ + +static void MessageBoxIndirectFree(MSGBOXPARAMSA *mbp) +{ + MessageBoxIndirectA(mbp); + mir_free((char*)mbp->lpszCaption); /* does NULL check */ + mir_free((char*)mbp->lpszText); /* does NULL check */ + mir_free(mbp); +} + +void ShowInfoMessage(BYTE flags, const char *pszTitle, const char *pszTextFmt, ...) +{ + va_list va; + va_start(va, pszTextFmt); + char szText[256]; /* max for systray */ + mir_vsnprintf(szText, SIZEOF(szText), pszTextFmt, va); + va_end(va); + + if (ServiceExists(MS_CLIST_SYSTRAY_NOTIFY)) { + MIRANDASYSTRAYNOTIFY msn; + msn.cbSize = sizeof(msn); + msn.szProto = NULL; + msn.szInfoTitle = (char*)pszTitle; + msn.szInfo = (char*)szText; + msn.uTimeout = 30000; /* max timeout */ + msn.dwInfoFlags = flags; + if (!CallServiceSync(MS_CLIST_SYSTRAY_NOTIFY, 0, (LPARAM)&msn)) + return; /* success */ + } + + MSGBOXPARAMSA *mbp = (MSGBOXPARAMSA*)mir_calloc(sizeof(*mbp)); + if (mbp == NULL) return; + mbp->cbSize = sizeof(*mbp); + mbp->lpszCaption = mir_strdup(pszTitle); + mbp->lpszText = mir_strdup(szText); + mbp->dwStyle = MB_OK|MB_SETFOREGROUND|MB_TASKMODAL; + mbp->dwLanguageId = LANGIDFROMLCID((LCID)CallService(MS_LANGPACK_GETLOCALE, 0, 0)); + switch(flags&NIIF_ICON_MASK) { + case NIIF_INFO: mbp->dwStyle |= MB_ICONINFORMATION; break; + case NIIF_WARNING: mbp->dwStyle |= MB_ICONWARNING; break; + case NIIF_ERROR: mbp->dwStyle |= MB_ICONERROR; + } + mir_forkthread(( pThreadFunc )MessageBoxIndirectFree, mbp); +} -- cgit v1.2.3