summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2017-12-05 19:33:31 +0300
committerGeorge Hazan <ghazan@miranda.im>2017-12-05 19:33:31 +0300
commit5e67e0b2ae8adaaa6bb07ccb6c6ae0ccec047cf4 (patch)
tree8a893ac7e67247b9ae6b737899e349cc9da767e5 /src
parent4dfe9feeb086084ef4c52dee57d626c3fd17d737 (diff)
minus StdHelp.dll
Diffstat (limited to 'src')
-rw-r--r--src/core/stdhelp/CMakeLists.txt2
-rw-r--r--src/core/stdhelp/res/resource.rc95
-rw-r--r--src/core/stdhelp/res/version.rc55
-rw-r--r--src/core/stdhelp/src/about.cpp130
-rw-r--r--src/core/stdhelp/src/help.cpp108
-rw-r--r--src/core/stdhelp/src/main.cpp69
-rw-r--r--src/core/stdhelp/src/stdafx.cxx2
-rw-r--r--src/core/stdhelp/src/stdafx.h67
-rw-r--r--src/core/stdhelp/src/version.h12
-rw-r--r--src/core/stdhelp/stdhelp.vcxproj28
-rw-r--r--src/core/stdhelp/stdhelp.vcxproj.filters4
-rw-r--r--src/mir_app/res/resource.rc23
-rw-r--r--src/mir_app/src/help.cpp210
-rw-r--r--src/mir_app/src/modules.cpp2
-rw-r--r--src/mir_app/src/newplugins.cpp12
15 files changed, 241 insertions, 578 deletions
diff --git a/src/core/stdhelp/CMakeLists.txt b/src/core/stdhelp/CMakeLists.txt
deleted file mode 100644
index 847cd567ba..0000000000
--- a/src/core/stdhelp/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-set(TARGET StdHelp)
-include(${CMAKE_SOURCE_DIR}/cmake/core.cmake) \ No newline at end of file
diff --git a/src/core/stdhelp/res/resource.rc b/src/core/stdhelp/res/resource.rc
deleted file mode 100644
index 578f3d9009..0000000000
--- a/src/core/stdhelp/res/resource.rc
+++ /dev/null
@@ -1,95 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "..\..\mir_app\src\resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include <windows.h>
-#include <winres.h>
-
-/////////////////////////////////////////////////////////////////////////////
-#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_ABOUT DIALOGEX 0, 0, 212, 131
-STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION "About Miranda NG"
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- CONTROL "",IDC_HEADERBAR,"MHeaderbarCtrl",WS_TABSTOP,0,0,212,25
- LTEXT "",IDC_WHITERECT,0,25,213,81
- DEFPUSHBUTTON "OK",IDOK,137,112,70,14
- CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,106,213,1
- LTEXT "",IDC_DEVS,5,32,202,42
- PUSHBUTTON "Credits >",IDC_CONTRIBLINK,5,112,70,14
- EDITTEXT IDC_CREDITSFILE,4,32,202,67,ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | WS_VSCROLL
-END
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXT
-//
-
-IDR_CREDITS TEXT "../../docs/contributors.txt"
-
-#endif // APSTUDIO_INVOKED
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_ABOUT, DIALOG
- BEGIN
- LEFTMARGIN, 5
- RIGHTMARGIN, 207
- TOPMARGIN, 7
- BOTTOMMARGIN, 126
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "..\..\mir_app\src\resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include <windows.h>\r\n"
- "#include <winres.h>\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
diff --git a/src/core/stdhelp/res/version.rc b/src/core/stdhelp/res/version.rc
deleted file mode 100644
index fdeb14668c..0000000000
--- a/src/core/stdhelp/res/version.rc
+++ /dev/null
@@ -1,55 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#ifdef APSTUDIO_INVOKED
-#error this file is not editable by Microsoft Visual C++
-#endif //APSTUDIO_INVOKED
-
-#include "..\src\version.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-#include "afxres.h"
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#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 0x2L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "000004b0"
- BEGIN
- VALUE "Author", __AUTHOR
- VALUE "FileDescription", __DESCRIPTION
- VALUE "FileVersion", __VERSION_STRING
- 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
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/stdhelp/src/about.cpp b/src/core/stdhelp/src/about.cpp
deleted file mode 100644
index 95883b6e84..0000000000
--- a/src/core/stdhelp/src/about.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-17 Miranda NG project (https://miranda-ng.org),
-Copyright (c) 2000-12 Miranda 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 "stdafx.h"
-
-#define STR_VERSION_FORMAT L"Miranda NG\nv%S"
-
-INT_PTR CALLBACK DlgProcAbout(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- static int iState = 0;
- switch (msg) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hwndDlg);
- { wchar_t filename[MAX_PATH], *productCopyright;
- DWORD unused;
- DWORD verInfoSize;
- UINT blockSize;
- PVOID pVerInfo;
-
- GetModuleFileName(nullptr, filename, _countof(filename));
- verInfoSize = GetFileVersionInfoSize(filename, &unused);
- pVerInfo = mir_alloc(verInfoSize);
- GetFileVersionInfo(filename, 0, verInfoSize, pVerInfo);
- VerQueryValue(pVerInfo, L"\\StringFileInfo\\000004b0\\LegalCopyright", (LPVOID*)&productCopyright, &blockSize);
- SetDlgItemText(hwndDlg, IDC_DEVS, productCopyright);
- mir_free(pVerInfo);
- }
- {
- char productVersion[56];
- Miranda_GetVersionText(productVersion, _countof(productVersion));
-
- wchar_t str[64];
- mir_snwprintf(str, STR_VERSION_FORMAT, productVersion);
- SetDlgItemText(hwndDlg, IDC_HEADERBAR, str);
- }
- ShowWindow(GetDlgItem(hwndDlg, IDC_CREDITSFILE), SW_HIDE);
- {
- HRSRC hResInfo = FindResource(hInst, MAKEINTRESOURCE(IDR_CREDITS), L"TEXT");
- DWORD ResSize = SizeofResource(hInst, hResInfo);
- HGLOBAL hRes = LoadResource(hInst, hResInfo);
- char* pszMsg = (char*)LockResource(hRes);
- if (pszMsg)
- {
- char* pszMsgt = (char*)alloca(ResSize + 1);
- memcpy(pszMsgt, pszMsg, ResSize); pszMsgt[ResSize] = 0;
-
- wchar_t *ptszMsg;
- if (ResSize >=3 && pszMsgt[0] == '\xef' && pszMsgt[1] == '\xbb' && pszMsgt[2] == '\xbf')
- ptszMsg = Utf8DecodeW(pszMsgt + 3);
- else
- ptszMsg = mir_a2u_cp(pszMsgt, 1252);
-
- SetDlgItemText(hwndDlg, IDC_CREDITSFILE, ptszMsg);
- UnlockResource(pszMsg);
- mir_free(ptszMsg);
- }
- FreeResource(hRes);
- }
- Window_SetSkinIcon_IcoLib(hwndDlg, SKINICON_OTHER_MIRANDA);
- return TRUE;
-
- case WM_COMMAND:
- switch(LOWORD(wParam)) {
- case IDOK:
- case IDCANCEL:
- DestroyWindow(hwndDlg);
- return TRUE;
- case IDC_CONTRIBLINK:
- if (iState) {
- iState = 0;
- SetDlgItemText(hwndDlg, IDC_CONTRIBLINK, TranslateT("Credits >"));
- ShowWindow(GetDlgItem(hwndDlg, IDC_DEVS), SW_SHOW);
- ShowWindow(GetDlgItem(hwndDlg, IDC_CREDITSFILE), SW_HIDE);
- }
- else {
- iState = 1;
- SetDlgItemText(hwndDlg, IDC_CONTRIBLINK, TranslateT("< Copyright"));
- ShowWindow(GetDlgItem(hwndDlg, IDC_DEVS), SW_HIDE);
- ShowWindow(GetDlgItem(hwndDlg, IDC_CREDITSFILE), SW_SHOW);
- }
- break;
- }
- break;
-
- case WM_CTLCOLOREDIT:
- case WM_CTLCOLORSTATIC:
- switch (GetWindowLongPtr((HWND)lParam, GWL_ID)) {
- case IDC_WHITERECT:
- case IDC_CREDITSFILE:
- case IDC_DEVS:
- SetTextColor((HDC)wParam, GetSysColor(COLOR_WINDOWTEXT));
- break;
- default:
- return FALSE;
- }
- SetBkColor((HDC)wParam, GetSysColor(COLOR_WINDOW));
- return (INT_PTR)GetSysColorBrush(COLOR_WINDOW);
-
- case WM_DESTROY:
- Window_FreeIcon_IcoLib(hwndDlg);
- {
- HFONT hFont = (HFONT)SendDlgItemMessage(hwndDlg, IDC_VERSION, WM_GETFONT, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_VERSION, WM_SETFONT, SendDlgItemMessage(hwndDlg, IDOK, WM_GETFONT, 0, 0), 0);
- DeleteObject(hFont);
- }
- break;
- }
- return FALSE;
-}
diff --git a/src/core/stdhelp/src/help.cpp b/src/core/stdhelp/src/help.cpp
deleted file mode 100644
index ac5112b54b..0000000000
--- a/src/core/stdhelp/src/help.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-17 Miranda NG project (https://miranda-ng.org),
-Copyright (c) 2000-12 Miranda 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 "stdafx.h"
-
-INT_PTR CALLBACK DlgProcAbout(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-
-HWND hAboutDlg = nullptr;
-
-static INT_PTR AboutCommand(WPARAM wParam, LPARAM)
-{
- if (IsWindow(hAboutDlg)) {
- SetForegroundWindow(hAboutDlg);
- SetFocus(hAboutDlg);
- return 0;
- }
- hAboutDlg = CreateDialog(hInst, MAKEINTRESOURCE(IDD_ABOUT), (HWND)wParam, DlgProcAbout);
- return 0;
-}
-
-static INT_PTR IndexCommand(WPARAM, LPARAM)
-{
- Utils_OpenUrl("https://wiki.miranda-ng.org");
- return 0;
-}
-
-static INT_PTR WebsiteCommand(WPARAM, LPARAM)
-{
- Utils_OpenUrl("https://miranda-ng.org");
- return 0;
-}
-
-static INT_PTR BugCommand(WPARAM, LPARAM)
-{
- Utils_OpenUrl("https://github.com/miranda-ng/miranda-ng/issues/new");
- return 0;
-}
-
-int ShutdownHelpModule(WPARAM, LPARAM)
-{
- if (IsWindow(hAboutDlg)) DestroyWindow(hAboutDlg);
- hAboutDlg = nullptr;
- return 0;
-}
-
-int LoadHelpModule(void)
-{
- HookEvent(ME_SYSTEM_PRESHUTDOWN, ShutdownHelpModule);
-
- CreateServiceFunction("Help/AboutCommand", AboutCommand);
- CreateServiceFunction("Help/IndexCommand", IndexCommand);
- CreateServiceFunction("Help/WebsiteCommand", WebsiteCommand);
- CreateServiceFunction("Help/BugCommand", BugCommand);
-
- CMenuItem mi;
- mi.root = Menu_CreateRoot(MO_MAIN, LPGENW("&Help"), 2000090000);
- Menu_ConfigureItem(mi.root, MCI_OPT_UID, "8824ECA5-6942-46D7-9D07-1BA600E0D02E");
-
- SET_UID(mi, 0xf3ebf1fa, 0x587c, 0x494d, 0xbd, 0x33, 0x7f, 0x88, 0xb3, 0x61, 0x1e, 0xd3);
- mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_MIRANDA);
- mi.position = 2000090000;
- mi.name.a = LPGEN("&About...");
- mi.pszService = "Help/AboutCommand";
- Menu_AddMainMenuItem(&mi);
-
- SET_UID(mi, 0x495df66f, 0x844e, 0x479a, 0xaf, 0x21, 0x3e, 0x42, 0xc5, 0x14, 0x7c, 0x7e);
- mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_HELP);
- mi.position = -500050000;
- mi.name.a = LPGEN("&Support");
- mi.pszService = "Help/IndexCommand";
- Menu_AddMainMenuItem(&mi);
-
- SET_UID(mi, 0x15e18b58, 0xec73, 0x45c2, 0xb9, 0xf4, 0x2a, 0xfe, 0xc2, 0xb7, 0xd3, 0x25);
- mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_MIRANDAWEB);
- mi.position = 2000050000;
- mi.name.a = LPGEN("&Miranda NG homepage");
- mi.pszService = "Help/WebsiteCommand";
- Menu_AddMainMenuItem(&mi);
-
- SET_UID(mi, 0xe7d0fe8b, 0xfdeb, 0x45b3, 0xba, 0x83, 0x3, 0x1e, 0x15, 0xda, 0x7e, 0x52);
- mi.hIcolibItem = Skin_GetIconHandle(SKINICON_EVENT_URL);
- mi.position = 2000040000;
- mi.name.a = LPGEN("&Report bug");
- mi.pszService = "Help/BugCommand";
- Menu_AddMainMenuItem(&mi);
- return 0;
-}
diff --git a/src/core/stdhelp/src/main.cpp b/src/core/stdhelp/src/main.cpp
deleted file mode 100644
index e48e41a1f0..0000000000
--- a/src/core/stdhelp/src/main.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-
-Standard Help/About plugin for Miranda NG
-
-Copyright (c) 2012-17 Miranda NG project (https://miranda-ng.org)
-
-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 "stdafx.h"
-
-int LoadHelpModule(void);
-
-CLIST_INTERFACE* pcli;
-HINSTANCE hInst;
-int hLangpack;
-
-PLUGININFOEX pluginInfo = {
- sizeof(PLUGININFOEX),
- __PLUGIN_NAME,
- MIRANDA_VERSION_DWORD,
- __DESCRIPTION,
- __AUTHOR,
- __AUTHOREMAIL,
- __COPYRIGHT,
- __AUTHORWEB,
- UNICODE_AWARE,
- // 1e64fd80-299e-48a0-9441-de2868563b6f
- { 0x1e64fd80, 0x299e, 0x48a0, {0x94, 0x41, 0xde, 0x28, 0x68, 0x56, 0x3b, 0x6f}}
-};
-
-BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD, LPVOID )
-{
- hInst = hinstDLL;
- return TRUE;
-}
-
-extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD)
-{
- return &pluginInfo;
-}
-
-extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_UIHELP, MIID_LAST };
-
-extern "C" int __declspec(dllexport) Load(void)
-{
- mir_getLP(&pluginInfo);
- pcli = Clist_GetInterface();
-
- LoadHelpModule();
- return 0;
-}
-
-extern "C" int __declspec(dllexport) Unload(void)
-{
- return 0;
-}
diff --git a/src/core/stdhelp/src/stdafx.cxx b/src/core/stdhelp/src/stdafx.cxx
deleted file mode 100644
index 716dda68f1..0000000000
--- a/src/core/stdhelp/src/stdafx.cxx
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "stdafx.h"
-
diff --git a/src/core/stdhelp/src/stdafx.h b/src/core/stdhelp/src/stdafx.h
deleted file mode 100644
index af90a9e657..0000000000
--- a/src/core/stdhelp/src/stdafx.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-17 Miranda NG project (https://miranda-ng.org),
-Copyright (c) 2000-12 Miranda 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 <winsock2.h>
-#include <shlobj.h>
-#include <commctrl.h>
-#include <vssym32.h>
-
-#include <stdio.h>
-#include <time.h>
-#include <stddef.h>
-#include <process.h>
-#include <io.h>
-#include <limits.h>
-#include <string.h>
-#include <locale.h>
-#include <direct.h>
-#include <malloc.h>
-
-#include <win2k.h>
-
-#include <m_system.h>
-#include <newpluginapi.h>
-#include <m_utils.h>
-#include <m_netlib.h>
-#include <m_langpack.h>
-#include <m_clist.h>
-#include <m_button.h>
-#include <m_protosvc.h>
-#include <m_protocols.h>
-#include <m_options.h>
-#include <m_skin.h>
-#include <m_contacts.h>
-#include <m_message.h>
-#include <m_userinfo.h>
-#include <m_findadd.h>
-#include <m_icolib.h>
-#include <m_timezones.h>
-
-#include "version.h"
-
-#include "../../mir_app/src/resource.h"
-
-extern HINSTANCE hInst;
-
-#pragma comment(lib, "version.lib")
diff --git a/src/core/stdhelp/src/version.h b/src/core/stdhelp/src/version.h
deleted file mode 100644
index 888ae87d13..0000000000
--- a/src/core/stdhelp/src/version.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <m_version.h>
-
-#define __FILEVERSION_STRING MIRANDA_VERSION_FILEVERSION
-#define __VERSION_STRING MIRANDA_VERSION_STRING
-
-#define __PLUGIN_NAME "Standard Help module"
-#define __FILENAME "stdhelp.dll"
-#define __DESCRIPTION "Core module for the Help/About dialog."
-#define __AUTHOR "Miranda NG Development Team"
-#define __AUTHOREMAIL ""
-#define __AUTHORWEB "https://miranda-ng.org/p/StdHelp/"
-#define __COPYRIGHT "© 2012-17 Miranda NG Development Team"
diff --git a/src/core/stdhelp/stdhelp.vcxproj b/src/core/stdhelp/stdhelp.vcxproj
deleted file mode 100644
index 7c48518a3c..0000000000
--- a/src/core/stdhelp/stdhelp.vcxproj
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectName>StdHelp</ProjectName>
- <ProjectGuid>{1c092ec9-0bcc-4c75-aae9-fcce9b3e9b3d}</ProjectGuid>
- </PropertyGroup>
- <ImportGroup Label="PropertySheets">
- <Import Project="$(ProjectDir)..\..\..\build\vc.common\core.props" />
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/src/core/stdhelp/stdhelp.vcxproj.filters b/src/core/stdhelp/stdhelp.vcxproj.filters
deleted file mode 100644
index e39f86d5d6..0000000000
--- a/src/core/stdhelp/stdhelp.vcxproj.filters
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(ProjectDir)..\..\..\build\vc.common\common.filters" />
-</Project> \ No newline at end of file
diff --git a/src/mir_app/res/resource.rc b/src/mir_app/res/resource.rc
index 992351183a..f6c1a544ea 100644
--- a/src/mir_app/res/resource.rc
+++ b/src/mir_app/res/resource.rc
@@ -757,6 +757,21 @@ BEGIN
CONTROL "&Add",IDC_ADD,"MButtonClass",WS_TABSTOP,197,29,16,14,WS_EX_NOACTIVATE | 0x10000000L
END
+IDD_ABOUT DIALOGEX 0, 0, 212, 131
+STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "About Miranda NG"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+ CONTROL "",IDC_HEADERBAR,"MHeaderbarCtrl",WS_TABSTOP,0,0,212,25
+ LTEXT "",IDC_WHITERECT,0,25,213,81
+ DEFPUSHBUTTON "OK",IDOK,137,112,70,14
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,106,213,1
+ LTEXT "",IDC_DEVS,5,32,202,42
+ PUSHBUTTON "Credits >",IDC_CONTRIBLINK,5,112,70,14
+ EDITTEXT IDC_CREDITSFILE,4,32,202,67,ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | WS_VSCROLL
+END
+
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
@@ -1043,6 +1058,14 @@ BEGIN
TOPMARGIN, 3
BOTTOMMARGIN, 65
END
+
+ IDD_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 5
+ RIGHTMARGIN, 207
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 126
+ END
END
#endif // APSTUDIO_INVOKED
diff --git a/src/mir_app/src/help.cpp b/src/mir_app/src/help.cpp
new file mode 100644
index 0000000000..7d479e940c
--- /dev/null
+++ b/src/mir_app/src/help.cpp
@@ -0,0 +1,210 @@
+/*
+
+Miranda NG: the free IM client for Microsoft* Windows*
+
+Copyright (c) 2012-17 Miranda NG project (https://miranda-ng.org),
+Copyright (c) 2000-12 Miranda 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 "stdafx.h"
+
+HWND hAboutDlg = nullptr;
+
+#define STR_VERSION_FORMAT L"Miranda NG\nv%S"
+
+static INT_PTR CALLBACK DlgProcAbout(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ static int iState = 0;
+ switch (msg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+ { wchar_t filename[MAX_PATH], *productCopyright;
+ DWORD unused;
+ DWORD verInfoSize;
+ UINT blockSize;
+ PVOID pVerInfo;
+
+ GetModuleFileName(nullptr, filename, _countof(filename));
+ verInfoSize = GetFileVersionInfoSize(filename, &unused);
+ pVerInfo = mir_alloc(verInfoSize);
+ GetFileVersionInfo(filename, 0, verInfoSize, pVerInfo);
+ VerQueryValue(pVerInfo, L"\\StringFileInfo\\000004b0\\LegalCopyright", (LPVOID*)&productCopyright, &blockSize);
+ SetDlgItemText(hwndDlg, IDC_DEVS, productCopyright);
+ mir_free(pVerInfo);
+ }
+ {
+ char productVersion[56];
+ Miranda_GetVersionText(productVersion, _countof(productVersion));
+
+ wchar_t str[64];
+ mir_snwprintf(str, STR_VERSION_FORMAT, productVersion);
+ SetDlgItemText(hwndDlg, IDC_HEADERBAR, str);
+ }
+ ShowWindow(GetDlgItem(hwndDlg, IDC_CREDITSFILE), SW_HIDE);
+ {
+ HRSRC hResInfo = FindResource(g_hInst, MAKEINTRESOURCE(IDR_CREDITS), L"TEXT");
+ DWORD ResSize = SizeofResource(g_hInst, hResInfo);
+ HGLOBAL hRes = LoadResource(g_hInst, hResInfo);
+ char* pszMsg = (char*)LockResource(hRes);
+ if (pszMsg) {
+ char* pszMsgt = (char*)alloca(ResSize + 1);
+ memcpy(pszMsgt, pszMsg, ResSize); pszMsgt[ResSize] = 0;
+
+ wchar_t *ptszMsg;
+ if (ResSize >= 3 && pszMsgt[0] == '\xef' && pszMsgt[1] == '\xbb' && pszMsgt[2] == '\xbf')
+ ptszMsg = Utf8DecodeW(pszMsgt + 3);
+ else
+ ptszMsg = mir_a2u_cp(pszMsgt, 1252);
+
+ SetDlgItemText(hwndDlg, IDC_CREDITSFILE, ptszMsg);
+ UnlockResource(pszMsg);
+ mir_free(ptszMsg);
+ }
+ FreeResource(hRes);
+ }
+ Window_SetSkinIcon_IcoLib(hwndDlg, SKINICON_OTHER_MIRANDA);
+ return TRUE;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDOK:
+ case IDCANCEL:
+ DestroyWindow(hwndDlg);
+ return TRUE;
+ case IDC_CONTRIBLINK:
+ if (iState) {
+ iState = 0;
+ SetDlgItemText(hwndDlg, IDC_CONTRIBLINK, TranslateT("Credits >"));
+ ShowWindow(GetDlgItem(hwndDlg, IDC_DEVS), SW_SHOW);
+ ShowWindow(GetDlgItem(hwndDlg, IDC_CREDITSFILE), SW_HIDE);
+ }
+ else {
+ iState = 1;
+ SetDlgItemText(hwndDlg, IDC_CONTRIBLINK, TranslateT("< Copyright"));
+ ShowWindow(GetDlgItem(hwndDlg, IDC_DEVS), SW_HIDE);
+ ShowWindow(GetDlgItem(hwndDlg, IDC_CREDITSFILE), SW_SHOW);
+ }
+ break;
+ }
+ break;
+
+ case WM_CTLCOLOREDIT:
+ case WM_CTLCOLORSTATIC:
+ switch (GetWindowLongPtr((HWND)lParam, GWL_ID)) {
+ case IDC_WHITERECT:
+ case IDC_CREDITSFILE:
+ case IDC_DEVS:
+ SetTextColor((HDC)wParam, GetSysColor(COLOR_WINDOWTEXT));
+ break;
+ default:
+ return FALSE;
+ }
+ SetBkColor((HDC)wParam, GetSysColor(COLOR_WINDOW));
+ return (INT_PTR)GetSysColorBrush(COLOR_WINDOW);
+
+ case WM_DESTROY:
+ Window_FreeIcon_IcoLib(hwndDlg);
+ {
+ HFONT hFont = (HFONT)SendDlgItemMessage(hwndDlg, IDC_VERSION, WM_GETFONT, 0, 0);
+ SendDlgItemMessage(hwndDlg, IDC_VERSION, WM_SETFONT, SendDlgItemMessage(hwndDlg, IDOK, WM_GETFONT, 0, 0), 0);
+ DeleteObject(hFont);
+ }
+ break;
+ }
+ return FALSE;
+}
+
+static INT_PTR AboutCommand(WPARAM wParam, LPARAM)
+{
+ if (IsWindow(hAboutDlg)) {
+ SetForegroundWindow(hAboutDlg);
+ SetFocus(hAboutDlg);
+ return 0;
+ }
+ hAboutDlg = CreateDialog(g_hInst, MAKEINTRESOURCE(IDD_ABOUT), (HWND)wParam, DlgProcAbout);
+ return 0;
+}
+
+static INT_PTR IndexCommand(WPARAM, LPARAM)
+{
+ Utils_OpenUrl("https://wiki.miranda-ng.org");
+ return 0;
+}
+
+static INT_PTR WebsiteCommand(WPARAM, LPARAM)
+{
+ Utils_OpenUrl("https://miranda-ng.org");
+ return 0;
+}
+
+static INT_PTR BugCommand(WPARAM, LPARAM)
+{
+ Utils_OpenUrl("https://github.com/miranda-ng/miranda-ng/issues/new");
+ return 0;
+}
+
+int ShutdownHelpModule(WPARAM, LPARAM)
+{
+ if (IsWindow(hAboutDlg)) DestroyWindow(hAboutDlg);
+ hAboutDlg = nullptr;
+ return 0;
+}
+
+int LoadHelpModule(void)
+{
+ HookEvent(ME_SYSTEM_PRESHUTDOWN, ShutdownHelpModule);
+
+ CreateServiceFunction("Help/AboutCommand", AboutCommand);
+ CreateServiceFunction("Help/IndexCommand", IndexCommand);
+ CreateServiceFunction("Help/WebsiteCommand", WebsiteCommand);
+ CreateServiceFunction("Help/BugCommand", BugCommand);
+
+ CMenuItem mi;
+ mi.root = Menu_CreateRoot(MO_MAIN, LPGENW("&Help"), 2000090000);
+ Menu_ConfigureItem(mi.root, MCI_OPT_UID, "8824ECA5-6942-46D7-9D07-1BA600E0D02E");
+
+ SET_UID(mi, 0xf3ebf1fa, 0x587c, 0x494d, 0xbd, 0x33, 0x7f, 0x88, 0xb3, 0x61, 0x1e, 0xd3);
+ mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_MIRANDA);
+ mi.position = 2000090000;
+ mi.name.a = LPGEN("&About...");
+ mi.pszService = "Help/AboutCommand";
+ Menu_AddMainMenuItem(&mi);
+
+ SET_UID(mi, 0x495df66f, 0x844e, 0x479a, 0xaf, 0x21, 0x3e, 0x42, 0xc5, 0x14, 0x7c, 0x7e);
+ mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_HELP);
+ mi.position = -500050000;
+ mi.name.a = LPGEN("&Support");
+ mi.pszService = "Help/IndexCommand";
+ Menu_AddMainMenuItem(&mi);
+
+ SET_UID(mi, 0x15e18b58, 0xec73, 0x45c2, 0xb9, 0xf4, 0x2a, 0xfe, 0xc2, 0xb7, 0xd3, 0x25);
+ mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_MIRANDAWEB);
+ mi.position = 2000050000;
+ mi.name.a = LPGEN("&Miranda NG homepage");
+ mi.pszService = "Help/WebsiteCommand";
+ Menu_AddMainMenuItem(&mi);
+
+ SET_UID(mi, 0xe7d0fe8b, 0xfdeb, 0x45b3, 0xba, 0x83, 0x3, 0x1e, 0x15, 0xda, 0x7e, 0x52);
+ mi.hIcolibItem = Skin_GetIconHandle(SKINICON_EVENT_URL);
+ mi.position = 2000040000;
+ mi.name.a = LPGEN("&Report bug");
+ mi.pszService = "Help/BugCommand";
+ Menu_AddMainMenuItem(&mi);
+ return 0;
+}
diff --git a/src/mir_app/src/modules.cpp b/src/mir_app/src/modules.cpp
index 6795b63318..e17b3afa0f 100644
--- a/src/mir_app/src/modules.cpp
+++ b/src/mir_app/src/modules.cpp
@@ -40,6 +40,7 @@ int LoadAccountsModule(void); // core: account manager
int LoadIgnoreModule(void); // protocol filter: ignore
int LoadDbintfModule(void);
int LoadSrmmModule(void);
+int LoadHelpModule(void);
int LoadContactsModule(void);
int LoadDatabaseModule(void);
@@ -141,6 +142,7 @@ int LoadDefaultModules(void)
if (LoadFontserviceModule()) return 1;
if (LoadSrmmModule()) return 1;
if (LoadChatModule()) return 1;
+ if (LoadHelpModule()) return 1;
if (LoadSendRecvAuthModule()) return 1;
if (LoadDescButtonModule()) return 1;
if (LoadOptionsModule()) return 1;
diff --git a/src/mir_app/src/newplugins.cpp b/src/mir_app/src/newplugins.cpp
index 595a0a0be3..82c4d9066b 100644
--- a/src/mir_app/src/newplugins.cpp
+++ b/src/mir_app/src/newplugins.cpp
@@ -122,6 +122,7 @@ static const MUUID pluginBannedList[] =
{ 0xb908773a, 0x86f7, 0x4a91, { 0x86, 0x74, 0x6a, 0x20, 0xba, 0x0e, 0x67, 0xd1 } }, // dropbox
{ 0x748f8934, 0x781a, 0x528d, { 0x52, 0x08, 0x00, 0x12, 0x65, 0x40, 0x4a, 0xb3 } }, // tlen
{ 0x8d0a046d, 0x8ea9, 0x4c55, { 0xb5, 0x68, 0x38, 0xda, 0x52, 0x05, 0x64, 0xfd } }, // stdauth
+ { 0x1e64fd80, 0x299e, 0x48a0, { 0x94, 0x41, 0xde, 0x28, 0x68, 0x56, 0x3b, 0x6f } }, // stdhelp
};
static bool isPluginBanned(const MUUID& u1)
@@ -143,12 +144,11 @@ static MuuidReplacement pluginDefault[] =
{ MIID_UIUSERINFO, L"stduserinfo", nullptr }, // 2
{ MIID_SREMAIL, L"stdemail", nullptr }, // 3
{ MIID_SRFILE, L"stdfile", nullptr }, // 4
- { MIID_UIHELP, L"stdhelp", nullptr }, // 5
- { MIID_UIHISTORY, L"stduihist", nullptr }, // 6
- { MIID_IDLE, L"stdidle", nullptr }, // 7
- { MIID_AUTOAWAY, L"stdautoaway", nullptr }, // 8
- { MIID_USERONLINE, L"stduseronline", nullptr }, // 9
- { MIID_SRAWAY, L"stdaway", nullptr }, // 10
+ { MIID_UIHISTORY, L"stduihist", nullptr }, // 5
+ { MIID_IDLE, L"stdidle", nullptr }, // 6
+ { MIID_AUTOAWAY, L"stdautoaway", nullptr }, // 7
+ { MIID_USERONLINE, L"stduseronline", nullptr }, // 8
+ { MIID_SRAWAY, L"stdaway", nullptr }, // 9
};
int getDefaultPluginIdx(const MUUID &muuid)