netsurf/windows/about.c
Vincent Sanders c105738fa3 Change LOG() macro to be varadic
This changes the LOG macro to be varadic removing the need for all
callsites to have double bracketing and allows for future improvement
on how we use the logging macros.

The callsites were changed with coccinelle and the changes checked by
hand. Compile tested for several frontends but not all.

A formatting annotation has also been added which allows the compiler
to check the parameters and types passed to the logging.
2015-05-28 16:08:46 +01:00

151 lines
3.3 KiB
C

/*
* Copyright 2009 Mark Benjamin <netsurf-browser.org.MarkBenjamin@dfgh.net>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
* NetSurf 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; version 2 of the License.
*
* NetSurf 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, see <http://www.gnu.org/licenses/>.
*/
/**
* \file
* This is The win32 API about dialog implementation.
*/
#include <stdio.h>
#include "utils/config.h"
#include <windows.h>
#include "utils/utils.h"
#include "utils/messages.h"
#include "desktop/version.h"
#include "utils/log.h"
#include "windows/window.h"
#include "windows/about.h"
#include "windows/resourceid.h"
#include "windbg.h"
/**
* Initialize the about dialog text fields
*/
static BOOL init_about_dialog(HWND hwnd)
{
char ver_str[128];
HWND dlg_itm;
HFONT hFont;
dlg_itm = GetDlgItem(hwnd, IDC_ABOUT_VERSION);
if (dlg_itm != NULL) {
hFont=CreateFont (26, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "Arial");
if (hFont != NULL) {
LOG("Setting font object");
SendMessage(dlg_itm, WM_SETFONT, (WPARAM)hFont, 0);
}
snprintf(ver_str, sizeof(ver_str), "%s %s",
messages_get("NetSurf"), netsurf_version);
SendMessage(dlg_itm, WM_SETTEXT, 0, (LPARAM)ver_str);
}
dlg_itm = GetDlgItem(hwnd, IDC_ABOUT_COPYRIGHT);
if (dlg_itm != NULL) {
snprintf(ver_str, sizeof(ver_str), "%s",
messages_get("NetSurfCopyright"));
SendMessage(dlg_itm, WM_SETTEXT, 0, (LPARAM)ver_str);
}
return TRUE;
}
/**
* destroy resources used to create about dialog
*/
static BOOL destroy_about_dialog(HWND hwnd)
{
HWND dlg_itm;
HFONT hFont;
dlg_itm = GetDlgItem(hwnd, IDC_ABOUT_VERSION);
if (dlg_itm != NULL) {
hFont = (HFONT)SendMessage(dlg_itm, WM_GETFONT, 0, 0);
if (hFont != NULL) {
LOG("Destroyed font object");
DeleteObject(hFont);
}
}
return TRUE;
}
static BOOL CALLBACK
nsws_about_event_callback(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
LOG_WIN_MSG(hwnd, msg, wparam, lparam);
switch(msg) {
case WM_INITDIALOG:
return init_about_dialog(hwnd);
case WM_COMMAND:
switch(LOWORD(wparam)) {
case IDOK:
LOG("OK clicked");
EndDialog(hwnd, IDOK);
break;
case IDCANCEL:
LOG("Cancel clicked");
EndDialog(hwnd, IDOK);
break;
case IDC_BTN_CREDITS:
nsws_window_go(hwnd, "about:credits");
EndDialog(hwnd, IDOK);
break;
case IDC_BTN_LICENCE:
nsws_window_go(hwnd, "about:licence");
EndDialog(hwnd, IDOK);
break;
}
break;
case WM_CREATE:
return TRUE;
case WM_DESTROY:
return destroy_about_dialog(hwnd);
}
return FALSE;
}
void nsws_about_dialog_init(HINSTANCE hinst, HWND parent)
{
int ret = DialogBox(hinst, MAKEINTRESOURCE(IDD_DLG_ABOUT), parent,
nsws_about_event_callback);
if (ret == -1) {
warn_user(messages_get("NoMemory"), 0);
return;
}
}