From cae63f959eeacca02bf3504e77e8a6e4a1aa8499 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 6 Jul 2012 16:58:48 +0000 Subject: + stdautoaway + stdhelp + stduihist + stdidle + stduseronline git-svn-id: http://svn.miranda-ng.org/main/trunk@795 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- src/core/stduihist/commonheaders.cpp | 2 + src/core/stduihist/commonheaders.h | 95 ++++++ src/core/stduihist/history.cpp | 430 ++++++++++++++++++++++++ src/core/stduihist/main.cpp | 77 +++++ src/core/stduihist/resource.rc | 107 ++++++ src/core/stduihist/stduihist_10.vcxproj | 217 ++++++++++++ src/core/stduihist/stduihist_10.vcxproj.filters | 44 +++ src/core/stduihist/version.h | 14 + src/core/stduihist/version.rc | 38 +++ 9 files changed, 1024 insertions(+) create mode 100644 src/core/stduihist/commonheaders.cpp create mode 100644 src/core/stduihist/commonheaders.h create mode 100644 src/core/stduihist/history.cpp create mode 100644 src/core/stduihist/main.cpp create mode 100644 src/core/stduihist/resource.rc create mode 100644 src/core/stduihist/stduihist_10.vcxproj create mode 100644 src/core/stduihist/stduihist_10.vcxproj.filters create mode 100644 src/core/stduihist/version.h create mode 100644 src/core/stduihist/version.rc (limited to 'src/core/stduihist') diff --git a/src/core/stduihist/commonheaders.cpp b/src/core/stduihist/commonheaders.cpp new file mode 100644 index 0000000000..95b2201163 --- /dev/null +++ b/src/core/stduihist/commonheaders.cpp @@ -0,0 +1,2 @@ +#include "commonheaders.h" + diff --git a/src/core/stduihist/commonheaders.h b/src/core/stduihist/commonheaders.h new file mode 100644 index 0000000000..af1784080f --- /dev/null +++ b/src/core/stduihist/commonheaders.h @@ -0,0 +1,95 @@ +/* + +Miranda IM: the free IM client for Microsoft* Windows* + +Copyright 2000-2009 Miranda ICQ/IM project, +all portions of this codebase are copyrighted to the people +listed in contributors.txt. + +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. +*/ + +// to enable all 0.9.0 core functions +#define MIRANDA_VER 0x0A00 + +#define WINVER 0x0700 +#define _WIN32_WINNT 0x0700 +#define _WIN32_IE 0x0601 + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "version.h" + +#include "../../resource.h" +#include "../stdplug.h" + +extern HINSTANCE hInst; + +#pragma comment(lib, "version.lib") diff --git a/src/core/stduihist/history.cpp b/src/core/stduihist/history.cpp new file mode 100644 index 0000000000..9fb174d5c3 --- /dev/null +++ b/src/core/stduihist/history.cpp @@ -0,0 +1,430 @@ +/* + +Miranda IM: the free IM client for Microsoft* Windows* + +Copyright 2000-2009 Miranda ICQ/IM project, +all portions of this codebase are copyrighted to the people +listed in contributors.txt. + +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. +*/ +#include "commonheaders.h" + +#define SUMMARY 0 +#define DETAIL 1 +#define DM_FINDNEXT (WM_USER+10) +#define DM_HREBUILD (WM_USER+11) + +static INT_PTR CALLBACK DlgProcHistory(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK DlgProcHistoryFind(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +static HANDLE hWindowList = 0; + +///////////////////////////////////////////////////////////////////////////////////////// +// Fills the events list + +static void GetMessageDescription(DBEVENTINFO *dbei, TCHAR* buf, int cbBuf) +{ + TCHAR* msg = DbGetEventTextT(dbei, CP_ACP); + _tcsncpy(buf, msg ? msg : TranslateT("Invalid Message"), cbBuf); + buf[ cbBuf-1 ] = 0; + mir_free(msg); +} + +static void GetUrlDescription(DBEVENTINFO *dbei, TCHAR* buf, int cbBuf) +{ + int len = dbei->cbBlob; + if (len >= cbBuf) + len = cbBuf-1; + + MultiByteToWideChar(CP_ACP, 0, (LPCSTR)dbei->pBlob, len, buf, cbBuf); + buf[ len ] = 0; + + if (len < cbBuf-3) + _tcscat(buf, _T("\r\n")); +} + +static void GetFileDescription(DBEVENTINFO *dbei, TCHAR* buf, int cbBuf) +{ + int len = dbei->cbBlob - sizeof(DWORD); + if (len >= cbBuf) + len = cbBuf-1; + + MultiByteToWideChar(CP_ACP, 0, (LPCSTR)dbei->pBlob + sizeof(DWORD), len, buf, cbBuf); + buf[ len ] = 0; + + if (len < cbBuf-3) + _tcscat(buf, _T("\r\n")); +} + +static void GetObjectDescription(DBEVENTINFO *dbei, TCHAR* str, int cbStr) +{ + switch(dbei->eventType) { + case EVENTTYPE_MESSAGE: + GetMessageDescription(dbei, str, cbStr); + break; + + case EVENTTYPE_URL: + GetUrlDescription(dbei, str, cbStr); + break; + + case EVENTTYPE_FILE: + GetFileDescription(dbei, str, cbStr); + break; + + default: + { + DBEVENTTYPEDESCR* et = (DBEVENTTYPEDESCR*)CallService(MS_DB_EVENT_GETTYPE, (WPARAM)dbei->szModule, (LPARAM)dbei->eventType); + if (et && (et->flags & DETF_HISTORY)) { + GetMessageDescription(dbei, str, cbStr); + } + else + str[ 0 ] = 0; +} } } + +static void GetObjectSummary(DBEVENTINFO *dbei, TCHAR* str, int cbStr) +{ + TCHAR* pszSrc, *pszTmp = NULL; + + switch(dbei->eventType) { + case EVENTTYPE_MESSAGE: + if (dbei->flags & DBEF_SENT) pszSrc = TranslateT("Outgoing Message"); + else pszSrc = TranslateT("Incoming Message"); + break; + + case EVENTTYPE_URL: + if (dbei->flags & DBEF_SENT) pszSrc = TranslateT("Outgoing URL"); + else pszSrc = TranslateT("Incoming URL"); + break; + + case EVENTTYPE_FILE: + if (dbei->flags & DBEF_SENT) pszSrc = TranslateT("Outgoing File"); + else pszSrc = TranslateT("Incoming File"); + break; + + default: + { + DBEVENTTYPEDESCR* et = (DBEVENTTYPEDESCR*)CallService(MS_DB_EVENT_GETTYPE, (WPARAM)dbei->szModule, (LPARAM)dbei->eventType); + if (et && (et->flags & DETF_HISTORY)) { + pszTmp = mir_a2t(et->descr); + pszSrc = TranslateTS(pszTmp); + break; + } + else { + str[ 0 ] = 0; + return; + } } } + + _tcsncpy(str, (const TCHAR*)pszSrc, cbStr); + str[ cbStr-1 ] = 0; + + mir_free(pszTmp); +} + +typedef struct { + HANDLE hContact; + HWND hwnd; +} THistoryThread; + +static void FillHistoryThread(void* param) +{ + Thread_SetName("HistoryWindow::FillHistoryThread"); + + TCHAR str[200], eventText[256], strdatetime[64]; + HANDLE hDbEvent; + DBEVENTINFO dbei; + int newBlobSize, oldBlobSize, i; + HWND hwndList; + THistoryThread *hInfo = (THistoryThread*)param; + + SendDlgItemMessage(hInfo->hwnd, IDC_LIST, LB_RESETCONTENT, 0, 0); + i = CallService(MS_DB_EVENT_GETCOUNT, (WPARAM)hInfo->hContact, 0); + SendDlgItemMessage(hInfo->hwnd, IDC_LIST, LB_INITSTORAGE, i, i*40); + + ZeroMemory(&dbei, sizeof(dbei)); + dbei.cbSize = sizeof(dbei); + oldBlobSize = 0; + hDbEvent = (HANDLE)CallService(MS_DB_EVENT_FINDLAST, (WPARAM)hInfo->hContact, 0); + hwndList = GetDlgItem(hInfo->hwnd, IDC_LIST); + while (hDbEvent != NULL) { + if ( !IsWindow(hInfo->hwnd)) + break; + newBlobSize = CallService(MS_DB_EVENT_GETBLOBSIZE, (WPARAM)hDbEvent, 0); + if (newBlobSize>oldBlobSize) { + dbei.pBlob = (PBYTE)mir_realloc(dbei.pBlob, newBlobSize); + oldBlobSize = newBlobSize; + } + dbei.cbBlob = oldBlobSize; + CallService(MS_DB_EVENT_GET, (WPARAM)hDbEvent, (LPARAM)&dbei); + GetObjectSummary(&dbei, str, SIZEOF(str)); + if (str[0]) { + tmi.printTimeStamp(NULL, dbei.timestamp, _T("d t"), strdatetime, SIZEOF(strdatetime), 0); + mir_sntprintf(eventText, SIZEOF(eventText), _T("%s: %s"), strdatetime, str); + i = SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM)eventText); + SendMessage(hwndList, LB_SETITEMDATA, i, (LPARAM)hDbEvent); + } + hDbEvent = (HANDLE)CallService(MS_DB_EVENT_FINDPREV, (WPARAM)hDbEvent, 0); + } + mir_free(dbei.pBlob); + + SendDlgItemMessage(hInfo->hwnd, IDC_LIST, LB_SETCURSEL, 0, 0); + SendMessage(hInfo->hwnd, WM_COMMAND, MAKEWPARAM(IDC_LIST, LBN_SELCHANGE), 0); + EnableWindow(GetDlgItem(hInfo->hwnd, IDC_LIST), TRUE); + mir_free(hInfo); +} + +static int HistoryDlgResizer(HWND, LPARAM, UTILRESIZECONTROL *urc) +{ + switch(urc->wId) { + case IDC_LIST: + return RD_ANCHORX_WIDTH|RD_ANCHORY_HEIGHT; + case IDC_EDIT: + return RD_ANCHORX_WIDTH|RD_ANCHORY_BOTTOM; + case IDC_FIND: + case IDC_DELETEHISTORY: + return RD_ANCHORX_LEFT|RD_ANCHORY_BOTTOM; + case IDOK: + return RD_ANCHORX_RIGHT|RD_ANCHORY_BOTTOM; + } + return RD_ANCHORX_LEFT|RD_ANCHORY_TOP; +} + +static INT_PTR CALLBACK DlgProcHistory(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + HANDLE hContact; + + hContact = (HANDLE)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); + switch (msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); + SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam); + hContact = (HANDLE)lParam; + WindowList_Add(hWindowList, hwndDlg, hContact); + Utils_RestoreWindowPosition(hwndDlg, hContact, "History", ""); + { + TCHAR* contactName, str[200]; + contactName = pcli->pfnGetContactDisplayName(hContact, 0); + mir_sntprintf(str, SIZEOF(str), TranslateT("History for %s"), contactName); + SetWindowText(hwndDlg, str); + } + Window_SetIcon_IcoLib(hwndDlg, SKINICON_OTHER_HISTORY); + SendMessage(hwndDlg, DM_HREBUILD, 0, 0); + return TRUE; + + case DM_HREBUILD: + { + THistoryThread* hInfo = (THistoryThread*)mir_alloc(sizeof(THistoryThread)); + EnableWindow(GetDlgItem(hwndDlg, IDC_LIST), FALSE); + hInfo->hContact = hContact; + hInfo->hwnd = hwndDlg; + forkthread(FillHistoryThread, 0, hInfo); + } + return TRUE; + + case WM_DESTROY: + Window_FreeIcon_IcoLib(hwndDlg); + Utils_SaveWindowPosition(hwndDlg, hContact, "History", ""); + WindowList_Remove(hWindowList, hwndDlg); + return TRUE; + + case WM_GETMINMAXINFO: + ((MINMAXINFO*)lParam)->ptMinTrackSize.x = 300; + ((MINMAXINFO*)lParam)->ptMinTrackSize.y = 230; + + case WM_SIZE: + { + UTILRESIZEDIALOG urd = {0}; + urd.cbSize = sizeof(urd); + urd.hwndDlg = hwndDlg; + urd.hInstance = hInst; + urd.lpTemplate = MAKEINTRESOURCEA(IDD_HISTORY); + urd.lParam = (LPARAM)NULL; + urd.pfnResizer = HistoryDlgResizer; + CallService(MS_UTILS_RESIZEDIALOG, 0, (LPARAM)&urd); + return TRUE; + } + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + case IDCANCEL: + DestroyWindow(hwndDlg); + return TRUE; + + case IDC_FIND: + ShowWindow(CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_HISTORY_FIND), hwndDlg, DlgProcHistoryFind, (LPARAM)hwndDlg), SW_SHOW); + return TRUE; + + case IDC_DELETEHISTORY: + { + HANDLE hDbevent; + int index = SendDlgItemMessage(hwndDlg, IDC_LIST, LB_GETCURSEL, 0, 0); + if (index == LB_ERR) + break; + + if (MessageBox(hwndDlg, TranslateT("Are you sure you want to delete this history item?"), TranslateT("Delete History"), MB_YESNO|MB_ICONQUESTION) == IDYES) { + hDbevent = (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, LB_GETITEMDATA, index, 0); + CallService(MS_DB_EVENT_DELETE, (WPARAM)hContact, (LPARAM)hDbevent); + SendMessage(hwndDlg, DM_HREBUILD, 0, 0); + } + return TRUE; + } + case IDC_LIST: + if (HIWORD(wParam) == LBN_SELCHANGE) { + TCHAR str[8192], *contactName; + HANDLE hDbEvent; + DBEVENTINFO dbei; + int sel; + sel = SendDlgItemMessage(hwndDlg, IDC_LIST, LB_GETCURSEL, 0, 0); + if (sel == LB_ERR) { EnableWindow(GetDlgItem(hwndDlg, IDC_DELETEHISTORY), FALSE); break; } + EnableWindow(GetDlgItem(hwndDlg, IDC_DELETEHISTORY), TRUE); + contactName = pcli->pfnGetContactDisplayName(hContact, 0); + hDbEvent = (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, LB_GETITEMDATA, sel, 0); + ZeroMemory(&dbei, sizeof(dbei)); + dbei.cbSize = sizeof(dbei); + dbei.cbBlob = CallService(MS_DB_EVENT_GETBLOBSIZE, (WPARAM)hDbEvent, 0); + if ((int)dbei.cbBlob != -1) + { + dbei.pBlob = (PBYTE)mir_alloc(dbei.cbBlob); + if (CallService(MS_DB_EVENT_GET, (WPARAM)hDbEvent, (LPARAM)&dbei) == 0) + { + GetObjectDescription(&dbei, str, SIZEOF(str)); + if (str[0]) + SetDlgItemText(hwndDlg, IDC_EDIT, str); + } + mir_free(dbei.pBlob); + } + } + return TRUE; + } + break; + case DM_FINDNEXT: + { + TCHAR str[1024]; + HANDLE hDbEvent, hDbEventStart; + DBEVENTINFO dbei; + int newBlobSize, oldBlobSize; + + int index = SendDlgItemMessage(hwndDlg, IDC_LIST, LB_GETCURSEL, 0, 0); + if (index == LB_ERR) + break; + + hDbEventStart = (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, LB_GETITEMDATA, index, 0); + ZeroMemory(&dbei, sizeof(dbei)); + dbei.cbSize = sizeof(dbei); + dbei.pBlob = NULL; + oldBlobSize = 0; + for (;;) { + hDbEvent = (HANDLE)SendDlgItemMessage(hwndDlg, IDC_LIST, LB_GETITEMDATA, ++index, 0); + if (hDbEvent == (HANDLE)LB_ERR) { + index = -1; + continue; + } + if (hDbEvent == hDbEventStart) break; + newBlobSize = CallService(MS_DB_EVENT_GETBLOBSIZE, (WPARAM)hDbEvent, 0); + if (newBlobSize>oldBlobSize) { + dbei.pBlob = (PBYTE)mir_realloc(dbei.pBlob, newBlobSize); + oldBlobSize = newBlobSize; + } + dbei.cbBlob = oldBlobSize; + CallService(MS_DB_EVENT_GET, (WPARAM)hDbEvent, (LPARAM)&dbei); + GetObjectDescription(&dbei, str, SIZEOF(str)); + if (str[0]) { + CharUpperBuff(str, lstrlen(str)); + if (_tcsstr(str, (const TCHAR*)lParam) != NULL) { + SendDlgItemMessage(hwndDlg, IDC_LIST, LB_SETCURSEL, index, 0); + SendMessage(hwndDlg, WM_COMMAND, MAKEWPARAM(IDC_LIST, LBN_SELCHANGE), 0); + break; + } } } + + mir_free(dbei.pBlob); + break; + } + } + return FALSE; +} + +static INT_PTR CALLBACK DlgProcHistoryFind(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); + SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)lParam); + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK://find Next + { + TCHAR str[128]; + HWND hwndParent = (HWND)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); + GetDlgItemText(hwndDlg, IDC_FINDWHAT, str, SIZEOF(str)); + CharUpperBuff(str, lstrlen(str)); + SendMessage(hwndParent, DM_FINDNEXT, 0, (LPARAM)str); + return TRUE; + } + case IDCANCEL: + DestroyWindow(hwndDlg); + return TRUE; + } + break; + } + return FALSE; +} + +///////////////////////////////////////////////////////////////////////////////////////// + +static INT_PTR UserHistoryCommand(WPARAM wParam, LPARAM) +{ + HWND hwnd = WindowList_Find(hWindowList, (HANDLE)wParam); + if (hwnd) { + SetForegroundWindow(hwnd); + SetFocus(hwnd); + return 0; + } + CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_HISTORY), NULL, DlgProcHistory, wParam); + return 0; +} + +static int HistoryContactDelete(WPARAM wParam, LPARAM) +{ + HWND hwnd = WindowList_Find(hWindowList, (HANDLE)wParam); + if (hwnd != NULL) + DestroyWindow(hwnd); + return 0; +} + +int PreShutdownHistoryModule(WPARAM, LPARAM) +{ + if (hWindowList) + WindowList_BroadcastAsync(hWindowList, WM_DESTROY, 0, 0); + return 0; +} + +int LoadHistoryModule(void) +{ + CLISTMENUITEM mi = { 0 }; + mi.cbSize = sizeof(mi); + mi.position = 1000090000; + mi.flags = CMIF_ICONFROMICOLIB; + mi.icolibItem = GetSkinIconHandle(SKINICON_OTHER_HISTORY); + mi.pszName = LPGEN("View &History"); + mi.pszService = MS_HISTORY_SHOWCONTACTHISTORY; + Menu_AddContactMenuItem(&mi); + + CreateServiceFunction(MS_HISTORY_SHOWCONTACTHISTORY, UserHistoryCommand); + hWindowList = (HANDLE)CallService(MS_UTILS_ALLOCWINDOWLIST, 0, 0); + HookEvent(ME_DB_CONTACT_DELETED, HistoryContactDelete); + HookEvent(ME_SYSTEM_PRESHUTDOWN, PreShutdownHistoryModule); + return 0; +} diff --git a/src/core/stduihist/main.cpp b/src/core/stduihist/main.cpp new file mode 100644 index 0000000000..1bb467ada7 --- /dev/null +++ b/src/core/stduihist/main.cpp @@ -0,0 +1,77 @@ +/* + +Standard ugly history viewer for Myranda IM + +Copyright (C) 2012 George Hazan + +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., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#include "commonheaders.h" + +int LoadHistoryModule(void); + +CLIST_INTERFACE* pcli; +TIME_API tmi; +HINSTANCE hInst; +int hLangpack; + +PLUGININFOEX pluginInfo = { + sizeof(PLUGININFOEX), + __PLUGIN_NAME, + MIRANDA_VERSION_DWORD, + __DESCRIPTION, + __AUTHOR, + __AUTHOREMAIL, + __COPYRIGHT, + __AUTHORWEB, + UNICODE_AWARE, + /* 5eedf3c5-3071-4234-a627-efd062a4d694 */ + { 0x5eedf3c5, 0x3071, 0x4234, {0xa6, 0x27, 0xef, 0xd0, 0x62, 0xa4, 0xd6, 0x94}} +}; + +static const MUUID interfaces[] = { MIID_UIHISTORY, MIID_LAST }; + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + hInst = hinstDLL; + return TRUE; +} + +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +{ + return &pluginInfo; +} + +extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) +{ + return interfaces; +} + +extern "C" int __declspec(dllexport) Load(void) +{ + mir_getLP(&pluginInfo); + mir_getTMI(&tmi); + + pcli = ( CLIST_INTERFACE* )CallService(MS_CLIST_RETRIEVE_INTERFACE, 0, (LPARAM)hInst); + + LoadHistoryModule(); + return 0; +} + +extern "C" int __declspec(dllexport) Unload(void) +{ + return 0; +} diff --git a/src/core/stduihist/resource.rc b/src/core/stduihist/resource.rc new file mode 100644 index 0000000000..abee09f9fe --- /dev/null +++ b/src/core/stduihist/resource.rc @@ -0,0 +1,107 @@ +// Microsoft Visual C++ generated resource script. +// +#include "..\..\resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include +#include + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_HISTORY_FIND DIALOGEX 0, 0, 230, 46 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_CONTROLPARENT +CAPTION "Find" +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + EDITTEXT IDC_FINDWHAT,48,11,115,12,ES_AUTOHSCROLL + DEFPUSHBUTTON "&Find Next",IDOK,173,7,50,14 + PUSHBUTTON "Cancel",IDCANCEL,173,24,50,14 + LTEXT "Find What:",IDC_STATIC,7,13,39,9 +END + +IDD_HISTORY DIALOGEX 0, 0, 296, 166 +STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +EXSTYLE WS_EX_CONTROLPARENT +CAPTION "Message History" +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Close",IDOK,239,144,50,14 + EDITTEXT IDC_EDIT,7,83,282,52,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL + LISTBOX IDC_LIST,7,7,282,72,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "&Find...",IDC_FIND,7,144,50,14 + PUSHBUTTON "Delete",IDC_DELETEHISTORY,66,144,50,14 +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_HISTORY_FIND, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 223 + TOPMARGIN, 7 + BOTTOMMARGIN, 39 + HORZGUIDE, 17 + END + + IDD_HISTORY, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 289 + TOPMARGIN, 7 + BOTTOMMARGIN, 158 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "..\..\resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include \r\n" + "#include \r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED diff --git a/src/core/stduihist/stduihist_10.vcxproj b/src/core/stduihist/stduihist_10.vcxproj new file mode 100644 index 0000000000..ca97144233 --- /dev/null +++ b/src/core/stduihist/stduihist_10.vcxproj @@ -0,0 +1,217 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + stduihist + {DADAC956-3A54-440A-8B56-A07234DEE861} + + + + DynamicLibrary + Unicode + + + DynamicLibrary + Unicode + true + + + DynamicLibrary + Unicode + + + DynamicLibrary + Unicode + true + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Configuration)\Core\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)\Core\ + $(SolutionDir)$(Configuration)\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Core\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + $(SolutionDir)$(Configuration)64\Core\ + $(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\ + true + + + + Full + OnlyExplicitInline + Size + ..\..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;ADDCONTACTPLUS_EXPORTS;%(PreprocessorDefinitions) + true + false + true + Fast + Level3 + 4996;%(DisableSpecificWarnings) + Use + commonheaders.h + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi;..\..\..\include + + + miranda32.lib;ws2_32.lib;comctl32.lib;%(AdditionalDependencies) + true + true + true + 0x3ae00000 + false + $(IntDir)$(TargetName).lib + Windows + $(SolutionDir)\lib + + + + + Disabled + ..\..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;ADDCONTACTPLUS_EXPORTS;%(PreprocessorDefinitions) + false + true + EnableFastChecks + MultiThreadedDebugDLL + true + Level3 + EditAndContinue + 4996;%(DisableSpecificWarnings) + Use + commonheaders.h + false + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi;..\..\..\include + + + miranda32.lib;ws2_32.lib;comctl32.lib;%(AdditionalDependencies) + true + 0x3ae00000 + false + $(IntDir)$(TargetName).lib + Windows + $(SolutionDir)\lib + + + + + Full + OnlyExplicitInline + Size + ..\..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN64;NDEBUG;_WINDOWS;_USRDLL;ADDCONTACTPLUS_EXPORTS;%(PreprocessorDefinitions) + true + false + true + Fast + Level3 + 4996;%(DisableSpecificWarnings) + Use + commonheaders.h + + + NDEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi;..\..\..\include + + + miranda64.lib;ws2_32.lib;comctl32.lib;%(AdditionalDependencies) + true + true + true + 0x3ae00000 + false + $(IntDir)$(TargetName).lib + Windows + $(SolutionDir)\lib + + + + + Disabled + ..\..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories) + WIN64;_DEBUG;_WINDOWS;_USRDLL;ADDCONTACTPLUS_EXPORTS;%(PreprocessorDefinitions) + false + true + EnableFastChecks + MultiThreadedDebugDLL + true + Level3 + 4996;%(DisableSpecificWarnings) + Use + commonheaders.h + + + _DEBUG;%(PreprocessorDefinitions) + ..\..\..\include\msapi;..\..\..\include + + + miranda64.lib;ws2_32.lib;comctl32.lib;%(AdditionalDependencies) + true + 0x3ae00000 + false + $(IntDir)$(TargetName).lib + Windows + $(SolutionDir)\lib + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/core/stduihist/stduihist_10.vcxproj.filters b/src/core/stduihist/stduihist_10.vcxproj.filters new file mode 100644 index 0000000000..4b215c60e3 --- /dev/null +++ b/src/core/stduihist/stduihist_10.vcxproj.filters @@ -0,0 +1,44 @@ + + + + + {5c074c9e-6c66-4233-bbd3-a50170fccf47} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {e30af2c4-42d4-4342-8eb9-2dbca157c6bb} + h;hpp;hxx;hm;inl + + + {9208a050-ffae-47fa-bc98-4ca4f79d37d7} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/src/core/stduihist/version.h b/src/core/stduihist/version.h new file mode 100644 index 0000000000..49dc77b639 --- /dev/null +++ b/src/core/stduihist/version.h @@ -0,0 +1,14 @@ + +#include + +#define __FILEVERSION_STRING MIRANDA_VERSION_FILEVERSION +#define __VERSION_STRING MIRANDA_VERSION_STRING + +#define __PLUGIN_NAME "stduihist" +#define __INTERNAL_NAME "stduihist" +#define __FILENAME "stduihist.dll" +#define __DESCRIPTION "Core module for built-in history viewer." +#define __AUTHOR "Myranda team" +#define __AUTHOREMAIL "" +#define __AUTHORWEB "http://nightly.miranda.im" +#define __COPYRIGHT "© 2012 Myranda team" diff --git a/src/core/stduihist/version.rc b/src/core/stduihist/version.rc new file mode 100644 index 0000000000..e637f0cb33 --- /dev/null +++ b/src/core/stduihist/version.rc @@ -0,0 +1,38 @@ +// Microsoft Visual C++ generated resource script. +// +#include "afxres.h" +#include "version.h" + +#ifdef _WIN32 +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +#endif //_WIN32 + +VS_VERSION_INFO VERSIONINFO + FILEVERSION __FILEVERSION_STRING + PRODUCTVERSION __FILEVERSION_STRING + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x0L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "FileDescription", __DESCRIPTION + VALUE "InternalName", __PLUGIN_NAME + VALUE "LegalCopyright", __COPYRIGHT + VALUE "OriginalFilename", __FILENAME + VALUE "ProductName", __PLUGIN_NAME + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END -- cgit v1.2.3