summaryrefslogtreecommitdiff
path: root/frontends/windows/about.c
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/windows/about.c')
-rw-r--r--frontends/windows/about.c151
1 files changed, 151 insertions, 0 deletions
diff --git a/frontends/windows/about.c b/frontends/windows/about.c
new file mode 100644
index 000000000..4716a5c91
--- /dev/null
+++ b/frontends/windows/about.c
@@ -0,0 +1,151 @@
+/*
+* 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/log.h"
+#include "utils/utils.h"
+#include "utils/messages.h"
+#include "desktop/version.h"
+
+#include "windows/gui.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) {
+ win32_warning(messages_get("NoMemory"), 0);
+ return;
+ }
+}