+2006-03-04 Eric Seidel <eseidel@apple.com>
+
+ Reviewed by ggaren.
+
+ Hang WebView pointer off of HWND (gets rid of global hack).
+ Remove MessageBox displayed on url change.
+
+ * Spinneret/Spinneret/Spinneret.cpp:
+ (WndProc):
+ (MyEditProc):
+ * Spinneret/Spinneret/WebView.cpp:
+ (WebKit::registerWebViewWithInstance):
+ (WebKit::WebView::createWebView):
+ (WebKit::WebViewWndProc):
+
2006-03-04 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Eric.
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
- case WM_PAINT:
- hdc = BeginPaint(hWnd, &ps);
- // TODO: Add any drawing code here...
- EndPaint(hWnd, &ps);
- break;
case WM_DESTROY:
PostQuitMessage(0);
break;
*((LPWORD)strPtr) = MAX_URL_LENGTH;
int strLen = SendMessage(hDlg, EM_GETLINE, 0, (LPARAM)strPtr);
- MessageBox(hMainWnd, strPtr, L"Foo", MB_OK);
-
int x;
for(x = 0; x < strLen; x++)
cstrPtr[x] = strPtr[x];
cstrPtr[x] = 0;
-
- gWebView->mainFrame()->loadFilePath(cstrPtr);
+
+ gWebView->mainFrame()->loadFilePath(cstrPtr);
return 0;
} else
namespace WebKit {
-// FIXME: we need to hang a pointer off the HWND
-WebView* gSharedWebViewHack = 0;
-
class WebView::WebViewPrivate {
public:
WebViewPrivate() {}
}
WebFrame* mainFrame;
-
HWND windowHandle;
};
wcex.style = CS_HREDRAW | CS_VREDRAW; // CS_DBLCLKS?
wcex.lpfnWndProc = WebViewWndProc;
wcex.cbClsExtra = 0;
- wcex.cbWndExtra = 0;
+ wcex.cbWndExtra = 4; // 4 bytes for the WebView pointer
wcex.hInstance = hInstance;
wcex.hIcon = 0;
wcex.hCursor = LoadCursor(0, IDC_ARROW);
if (!hWnd)
return 0;
- gSharedWebViewHack = new WebView(hWnd);
- return gSharedWebViewHack;
+ WebView* newWebView = new WebView(hWnd);
+ SetWindowLongPtr(hWnd, 0, (LONG)newWebView);
+ return newWebView;
}
WebView::WebView(HWND hWnd)
LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
+ WebView* webview = (WebView*)GetWindowLongPtr(hWnd, 0);
switch (message)
{
case WM_PAINT:
- gSharedWebViewHack->mainFrame()->paint();
+ webview->mainFrame()->paint();
break;
case WM_DESTROY:
// Do nothing?
break;
case WM_MOUSEMOVE:
- gSharedWebViewHack->mouseMoved(hWnd, wParam, lParam);
+ webview->mouseMoved(hWnd, wParam, lParam);
break;
case WM_LBUTTONDOWN:
case WM_MBUTTONDOWN:
case WM_RBUTTONDOWN:
- gSharedWebViewHack->mouseDown(hWnd, wParam, lParam);
+ webview->mouseDown(hWnd, wParam, lParam);
break;
case WM_LBUTTONUP:
case WM_MBUTTONUP:
case WM_RBUTTONUP:
- gSharedWebViewHack->mouseUp(hWnd, wParam, lParam);
+ webview->mouseUp(hWnd, wParam, lParam);
break;
case WM_LBUTTONDBLCLK:
case WM_MBUTTONDBLCLK:
case WM_RBUTTONDBLCLK:
- gSharedWebViewHack->mouseDoubleClick(hWnd, wParam, lParam);
+ webview->mouseDoubleClick(hWnd, wParam, lParam);
break;
case WM_SIZE:
// FIXME: not sure if we need anything here...