diff options
Diffstat (limited to 'miranda-wine/src/modules/help/about.c')
-rw-r--r-- | miranda-wine/src/modules/help/about.c | 143 |
1 files changed, 143 insertions, 0 deletions
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;
+}
|