From cb4a46e7fbe62d788e66ed6121c717a2d22a4d7c Mon Sep 17 00:00:00 2001 From: watcherhd Date: Thu, 21 Apr 2011 14:14:52 +0000 Subject: svn.miranda.im is moving to a new home! git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- miranda-wine/src/modules/help/about.c | 143 ++++++++++++++++++++++++++++++++++ miranda-wine/src/modules/help/help.c | 104 +++++++++++++++++++++++++ 2 files changed, 247 insertions(+) create mode 100644 miranda-wine/src/modules/help/about.c create mode 100644 miranda-wine/src/modules/help/help.c (limited to 'miranda-wine/src/modules/help') diff --git a/miranda-wine/src/modules/help/about.c b/miranda-wine/src/modules/help/about.c new file mode 100644 index 0000000..9116d54 --- /dev/null +++ b/miranda-wine/src/modules/help/about.c @@ -0,0 +1,143 @@ +/* + +Miranda IM: the free IM client for Microsoft* Windows* + +Copyright 2000-2006 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" + +#if defined( _UNICODE ) + #define STR_VERSION_FORMAT "%s %S" +#else + #define STR_VERSION_FORMAT "%s %s" +#endif + +BOOL CALLBACK DlgProcAbout(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + static int iState = 0; + switch (msg) { + case WM_INITDIALOG: + TranslateDialogDefault(hwndDlg); + { int h; + LOGFONT lf; + HFONT hFont = (HFONT)SendDlgItemMessage(hwndDlg,IDC_MIRANDA,WM_GETFONT,0,0); + int iState=0; + GetObject(hFont,sizeof(lf),&lf); + h=lf.lfHeight; + lf.lfHeight=(int)(lf.lfHeight*1.5); + lf.lfWeight=FW_BOLD; + hFont=CreateFontIndirect(&lf); + SendDlgItemMessage(hwndDlg,IDC_MIRANDA,WM_SETFONT,(WPARAM)hFont,0); + lf.lfHeight=h; + hFont=CreateFontIndirect(&lf); + SendDlgItemMessage(hwndDlg,IDC_VERSION,WM_SETFONT,(WPARAM)hFont,0); + } + { + char filename[MAX_PATH],*productCopyright; + DWORD unused; + DWORD verInfoSize; + UINT blockSize; + PVOID pVerInfo; + + GetModuleFileNameA(NULL,filename,SIZEOF(filename)); + verInfoSize=GetFileVersionInfoSizeA(filename,&unused); + pVerInfo=mir_alloc(verInfoSize); + GetFileVersionInfoA(filename,0,verInfoSize,pVerInfo); + VerQueryValueA(pVerInfo,"\\StringFileInfo\\000004b0\\LegalCopyright",(void*)&productCopyright,&blockSize); + SetDlgItemTextA(hwndDlg,IDC_DEVS,productCopyright); + mir_free(pVerInfo); + } + { char productVersion[56]; + TCHAR str[64]; + CallService(MS_SYSTEM_GETVERSIONTEXT,SIZEOF(productVersion),(LPARAM)productVersion); + mir_sntprintf(str,SIZEOF(str),_T(STR_VERSION_FORMAT), TranslateT("Version"), productVersion); + SetDlgItemText(hwndDlg,IDC_VERSION,str); + mir_sntprintf(str,SIZEOF(str),TranslateT("Built %s %s"),_T(__DATE__),_T(__TIME__)); + SetDlgItemText(hwndDlg,IDC_BUILDTIME,str); + } + ShowWindow(GetDlgItem(hwndDlg, IDC_CREDITSFILE), SW_HIDE); + { char* pszMsg = LockResource(LoadResource(GetModuleHandle(NULL),FindResource(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_CREDITS),_T("TEXT")))); + #if defined( _UNICODE ) + TCHAR* ptszMsg = alloca(2000*sizeof(TCHAR)); + MultiByteToWideChar(1252,0,pszMsg,-1,ptszMsg,2000); + SetDlgItemText(hwndDlg,IDC_CREDITSFILE, ptszMsg); + #else + SetDlgItemText(hwndDlg,IDC_CREDITSFILE, pszMsg); + #endif + } + SendMessage(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_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_BUILDTIME), SW_SHOW); + ShowWindow(GetDlgItem(hwndDlg, IDC_CREDITSFILE), SW_HIDE); + } + else { + iState = 1; + SetDlgItemText(hwndDlg, IDC_CONTRIBLINK, TranslateT("< About")); + ShowWindow(GetDlgItem(hwndDlg, IDC_DEVS), SW_HIDE); + ShowWindow(GetDlgItem(hwndDlg, IDC_BUILDTIME), SW_HIDE); + ShowWindow(GetDlgItem(hwndDlg, IDC_CREDITSFILE), SW_SHOW); + } + break; + } + } + break; + case WM_CTLCOLOREDIT: + case WM_CTLCOLORSTATIC: + if((HWND)lParam==GetDlgItem(hwndDlg,IDC_WHITERECT) + || (HWND)lParam==GetDlgItem(hwndDlg,IDC_MIRANDA) + || (HWND)lParam==GetDlgItem(hwndDlg,IDC_VERSION) + || (HWND)lParam==GetDlgItem(hwndDlg,IDC_BUILDTIME) + || (HWND)lParam==GetDlgItem(hwndDlg,IDC_LOGO) + || (HWND)lParam==GetDlgItem(hwndDlg,IDC_CREDITSFILE) + || (HWND)lParam==GetDlgItem(hwndDlg,IDC_DEVS)) { + if((HWND)lParam==GetDlgItem(hwndDlg,IDC_MIRANDA)) + SetTextColor((HDC)wParam,RGB(180,10,10)); + else if((HWND)lParam==GetDlgItem(hwndDlg,IDC_VERSION)) + SetTextColor((HDC)wParam,RGB(70,70,70)); + else + SetTextColor((HDC)wParam,RGB(0,0,0)); + SetBkColor((HDC)wParam,RGB(255,255,255)); + return (BOOL)GetStockObject(WHITE_BRUSH); + } + break; + case WM_DESTROY: + { HFONT hFont = (HFONT)SendDlgItemMessage(hwndDlg,IDC_MIRANDA,WM_GETFONT,0,0); + SendDlgItemMessage(hwndDlg,IDC_MIRANDA,WM_SETFONT,SendDlgItemMessage(hwndDlg,IDOK,WM_GETFONT,0,0),0); + DeleteObject(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/miranda-wine/src/modules/help/help.c b/miranda-wine/src/modules/help/help.c new file mode 100644 index 0000000..9646095 --- /dev/null +++ b/miranda-wine/src/modules/help/help.c @@ -0,0 +1,104 @@ +/* + +Miranda IM: the free IM client for Microsoft* Windows* + +Copyright 2000-2006 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" + +BOOL CALLBACK DlgProcAbout(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); + +HWND hAboutDlg=NULL; + +static int AboutCommand(WPARAM wParam,LPARAM lParam) +{ + if (IsWindow(hAboutDlg)) { + SetForegroundWindow(hAboutDlg); + SetFocus(hAboutDlg); + return 0; + } + hAboutDlg=CreateDialog(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_ABOUT),(HWND)wParam,DlgProcAbout); + return 0; +} + +static int IndexCommand(WPARAM wParam,LPARAM lParam) +{ + CallService(MS_UTILS_OPENURL,1,(LPARAM)"http://www.miranda-im.org/support/"); + return 0; +} + +static int WebsiteCommand(WPARAM wParam,LPARAM lParam) +{ + CallService(MS_UTILS_OPENURL,1,(LPARAM)"http://www.miranda-im.org"); + return 0; +} + +static int BugCommand(WPARAM wParam,LPARAM lParam) +{ + CallService(MS_UTILS_OPENURL,1,(LPARAM)"http://bugs.miranda-im.org/"); + return 0; +} + + +int ShutdownHelpModule(WPARAM wParam, LPARAM lParam) +{ + if (IsWindow(hAboutDlg)) DestroyWindow(hAboutDlg); + hAboutDlg=NULL; + return 0; +} + +int LoadHelpModule(void) +{ + CLISTMENUITEM mi; + + HookEvent(ME_SYSTEM_PRESHUTDOWN,ShutdownHelpModule); + + CreateServiceFunction("Help/AboutCommand",AboutCommand); + CreateServiceFunction("Help/IndexCommand",IndexCommand); + CreateServiceFunction("Help/WebsiteCommand",WebsiteCommand); + CreateServiceFunction("Help/BugCommand",BugCommand); + ZeroMemory(&mi,sizeof(mi)); + mi.cbSize=sizeof(mi); + mi.hIcon=LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_MIRANDA)); + mi.pszPopupName=Translate("&Help"); + mi.popupPosition=2000090000; + mi.position=2000090000; + mi.pszName=Translate("&About..."); + mi.pszService="Help/AboutCommand"; + CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi); + mi.hIcon=LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_HELP)); + mi.position=-500050000; + mi.pszName=Translate("&Support\tF1"); + mi.hotKey=MAKELPARAM(0,VK_F1); + mi.pszService="Help/IndexCommand"; + CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi); + mi.hIcon=LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_MIRANDAWEBSITE)); + mi.position=2000050000; + mi.pszName=Translate("&Miranda IM Homepage"); + mi.hotKey=0; + mi.pszService="Help/WebsiteCommand"; + CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi); + mi.hIcon=LoadIcon(GetModuleHandle(NULL),MAKEINTRESOURCE(IDI_URL)); + mi.position=2000040000; + mi.pszName=Translate("&Report Bug"); + mi.hotKey=0; + mi.pszService="Help/BugCommand"; + CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi); + return 0; +} -- cgit v1.2.3