Added back and forward buttons to WinLauncher.
authoralex.christensen@flexsim.com <alex.christensen@flexsim.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Sep 2013 01:10:07 +0000 (01:10 +0000)
committeralex.christensen@flexsim.com <alex.christensen@flexsim.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Sep 2013 01:10:07 +0000 (01:10 +0000)
https://bugs.webkit.org/show_bug.cgi?id=121212

Reviewed by Brent Fulgham.

* WinLauncher/WinLauncher.cpp:
(resizeSubViews):
Move new back and forward buttons to correct positions before URL bar.
(dllLauncherEntryPoint):
Store the default button window procedure and replace with my button procedures.
(EditProc): Updated style and renamed from MyEditProc.
(BackButtonProc): Added.
(ForwardButtonProc): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@156018 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/WinLauncher/WinLauncher.cpp

index e5dc6b02e3f86fea82219c74b9267822f7abbf4e..63a5c60fcc3cdb0659aaff23fb0713cde1948c96 100644 (file)
@@ -1,3 +1,19 @@
+2013-09-17  Alex Christensen  <alex.christensen@flexsim.com>
+
+        Added back and forward buttons to WinLauncher.
+        https://bugs.webkit.org/show_bug.cgi?id=121212
+
+        Reviewed by Brent Fulgham.
+
+        * WinLauncher/WinLauncher.cpp:
+        (resizeSubViews):
+        Move new back and forward buttons to correct positions before URL bar.
+        (dllLauncherEntryPoint): 
+        Store the default button window procedure and replace with my button procedures.
+        (EditProc): Updated style and renamed from MyEditProc.
+        (BackButtonProc): Added.
+        (ForwardButtonProc): Added.
+
 2013-09-17  Michael Saboff  <msaboff@apple.com>
 
         Unreviewed typo fix after r155999
 2013-09-17  Michael Saboff  <msaboff@apple.com>
 
         Unreviewed typo fix after r155999
index d9400d1b94865ec8abfe765e3141d347c5f36b9a..ece4b44a97dcdaa1eaee22aae7605209f115611a 100644 (file)
@@ -2,6 +2,7 @@
  * Copyright (C) 2006, 2008, 2013 Apple Computer, Inc.  All rights reserved.
  * Copyright (C) 2009, 2011 Brent Fulgham.  All rights reserved.
  * Copyright (C) 2009, 2010, 2011 Appcelerator, Inc. All rights reserved.
  * Copyright (C) 2006, 2008, 2013 Apple Computer, Inc.  All rights reserved.
  * Copyright (C) 2009, 2011 Brent Fulgham.  All rights reserved.
  * Copyright (C) 2009, 2010, 2011 Appcelerator, Inc. All rights reserved.
+ * Copyright (C) 2013 Alex Christensen. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -56,6 +57,7 @@
 
 #define MAX_LOADSTRING 100
 #define URLBAR_HEIGHT  24
 
 #define MAX_LOADSTRING 100
 #define URLBAR_HEIGHT  24
+#define CONTROLBUTTON_WIDTH 24
 
 static const int maxHistorySize = 10;
 
 
 static const int maxHistorySize = 10;
 
@@ -73,7 +75,10 @@ typedef _com_ptr_t<_com_IIID<IWebViewPrivate, &__uuidof(IWebViewPrivate)>> IWebV
 HINSTANCE hInst;                                // current instance
 HWND hMainWnd;
 HWND hURLBarWnd;
 HINSTANCE hInst;                                // current instance
 HWND hMainWnd;
 HWND hURLBarWnd;
+HWND hBackButtonWnd;
+HWND hForwardButtonWnd;
 WNDPROC DefEditProc = 0;
 WNDPROC DefEditProc = 0;
+WNDPROC DefButtonProc = 0;
 WNDPROC DefWebKitProc = 0;
 IWebInspectorPtr gInspector;
 IWebViewPtr gWebView;
 WNDPROC DefWebKitProc = 0;
 IWebInspectorPtr gInspector;
 IWebViewPtr gWebView;
@@ -99,7 +104,10 @@ bool s_fullDesktop = false;
 ATOM                MyRegisterClass(HINSTANCE hInstance);
 LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
 INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);
 ATOM                MyRegisterClass(HINSTANCE hInstance);
 LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
 INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);
-LRESULT CALLBACK    MyEditProc(HWND, UINT, WPARAM, LPARAM);
+LRESULT CALLBACK    EditProc(HWND, UINT, WPARAM, LPARAM);
+LRESULT CALLBACK    BackButtonProc(HWND, UINT, WPARAM, LPARAM);
+LRESULT CALLBACK    ForwardButtonProc(HWND, UINT, WPARAM, LPARAM);
+LRESULT CALLBACK    ReloadButtonProc(HWND, UINT, WPARAM, LPARAM);
 
 static void loadURL(BSTR urlBStr);
 
 
 static void loadURL(BSTR urlBStr);
 
@@ -336,7 +344,9 @@ static void resizeSubViews()
 
     RECT rcClient;
     GetClientRect(hMainWnd, &rcClient);
 
     RECT rcClient;
     GetClientRect(hMainWnd, &rcClient);
-    MoveWindow(hURLBarWnd, 0, 0, rcClient.right, URLBAR_HEIGHT, TRUE);
+    MoveWindow(hBackButtonWnd, 0, 0, CONTROLBUTTON_WIDTH, URLBAR_HEIGHT, TRUE);
+    MoveWindow(hForwardButtonWnd, CONTROLBUTTON_WIDTH, 0, CONTROLBUTTON_WIDTH, URLBAR_HEIGHT, TRUE);
+    MoveWindow(hURLBarWnd, CONTROLBUTTON_WIDTH * 2, 0, rcClient.right, URLBAR_HEIGHT, TRUE);
     MoveWindow(gViewWindow, 0, URLBAR_HEIGHT, rcClient.right, rcClient.bottom - URLBAR_HEIGHT, TRUE);
 }
 
     MoveWindow(gViewWindow, 0, URLBAR_HEIGHT, rcClient.right, rcClient.bottom - URLBAR_HEIGHT, TRUE);
 }
 
@@ -457,24 +467,19 @@ extern "C" __declspec(dllexport) int WINAPI dllLauncherEntryPoint(HINSTANCE, HIN
         if (!hMainWnd)
             return FALSE;
 
         if (!hMainWnd)
             return FALSE;
 
-        hURLBarWnd = CreateWindow(L"EDIT", 0,
-                    WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_AUTOVSCROLL, 
-                    0, 0, 0, 0,
-                    hMainWnd,
-                    0,
-                    hInst, 0);
+        hBackButtonWnd = CreateWindow(L"BUTTON", L"<", WS_CHILD | WS_VISIBLE  | BS_TEXT, 0, 0, 0, 0, hMainWnd, 0, hInst, 0);
+        hForwardButtonWnd = CreateWindow(L"BUTTON", L">", WS_CHILD | WS_VISIBLE  | BS_TEXT, CONTROLBUTTON_WIDTH, 0, 0, 0, hMainWnd, 0, hInst, 0);
+        hURLBarWnd = CreateWindow(L"EDIT", 0, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_AUTOVSCROLL, CONTROLBUTTON_WIDTH * 2, 0, 0, 0, hMainWnd, 0, hInst, 0);
 
         ShowWindow(hMainWnd, nCmdShow);
         UpdateWindow(hMainWnd);
     }
 
 
         ShowWindow(hMainWnd, nCmdShow);
         UpdateWindow(hMainWnd);
     }
 
-#if defined _M_AMD64 || defined _WIN64
     DefEditProc = reinterpret_cast<WNDPROC>(GetWindowLongPtr(hURLBarWnd, GWLP_WNDPROC));
     DefEditProc = reinterpret_cast<WNDPROC>(GetWindowLongPtr(hURLBarWnd, GWLP_WNDPROC));
-    SetWindowLongPtr(hURLBarWnd, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(MyEditProc));
-#else
-    DefEditProc = reinterpret_cast<WNDPROC>(GetWindowLong(hURLBarWnd, GWL_WNDPROC));
-    SetWindowLong(hURLBarWnd, GWL_WNDPROC, reinterpret_cast<LONG_PTR>(MyEditProc));
-#endif
+    DefButtonProc = reinterpret_cast<WNDPROC>(GetWindowLongPtr(hBackButtonWnd, GWLP_WNDPROC));
+    SetWindowLongPtr(hURLBarWnd, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(EditProc));
+    SetWindowLongPtr(hBackButtonWnd, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(BackButtonProc));
+    SetWindowLongPtr(hForwardButtonWnd, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(ForwardButtonProc));
 
     SetFocus(hURLBarWnd);
 
 
     SetFocus(hURLBarWnd);
 
@@ -868,29 +873,47 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 
 #define MAX_URL_LENGTH  1024
 
 
 #define MAX_URL_LENGTH  1024
 
-LRESULT CALLBACK MyEditProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+LRESULT CALLBACK EditProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 {
     switch (message) {
 {
     switch (message) {
-        case WM_CHAR:
-            if (wParam == 13) { // Enter Key
-                wchar_t strPtr[MAX_URL_LENGTH];
-                *((LPWORD)strPtr) = MAX_URL_LENGTH; 
-                int strLen = SendMessage(hDlg, EM_GETLINE, 0, (LPARAM)strPtr);
-
-                strPtr[strLen] = 0;
-                _bstr_t bstr(strPtr);
-                loadURL(bstr);
-
-                return 0;
-            } else
-                return (LRESULT)CallWindowProc((WNDPROC)DefEditProc,hDlg,message,wParam,lParam);
-            break;
-        default:
-             return (LRESULT)CallWindowProc((WNDPROC)DefEditProc,hDlg,message,wParam,lParam);
-        break;
+    case WM_CHAR:
+        if (wParam == 13) { // Enter Key
+            wchar_t strPtr[MAX_URL_LENGTH];
+            *((LPWORD)strPtr) = MAX_URL_LENGTH; 
+            int strLen = SendMessage(hDlg, EM_GETLINE, 0, (LPARAM)strPtr);
+
+            strPtr[strLen] = 0;
+            _bstr_t bstr(strPtr);
+            loadURL(bstr);
+
+            return 0;
+        } 
+    default:
+        return CallWindowProc(DefEditProc, hDlg, message, wParam, lParam);
+    }
+}
+
+LRESULT CALLBACK BackButtonProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    BOOL wentBack = FALSE;
+    switch (message) {
+    case WM_LBUTTONUP:
+        gWebView->goBack(&wentBack);
+    default:
+        return CallWindowProc(DefButtonProc, hDlg, message, wParam, lParam);
     }
 }
 
     }
 }
 
+LRESULT CALLBACK ForwardButtonProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    BOOL wentForward = FALSE;
+    switch (message) {
+    case WM_LBUTTONUP:
+        gWebView->goForward(&wentForward);
+    default:
+        return CallWindowProc(DefButtonProc, hDlg, message, wParam, lParam);
+    }
+}
 
 // Message handler for about box.
 INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 
 // Message handler for about box.
 INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)