X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d0d7f207283cb249b4a78de0c37d81c27bba3313..bb69632a56a827bed4cfae842bfffa88259ac1aa:/src/html/htmlctrl/webkit/webkit.mm diff --git a/src/html/htmlctrl/webkit/webkit.mm b/src/html/htmlctrl/webkit/webkit.mm old mode 100755 new mode 100644 index 5af328fa45..27216cb00b --- a/src/html/htmlctrl/webkit/webkit.mm +++ b/src/html/htmlctrl/webkit/webkit.mm @@ -26,7 +26,7 @@ #ifdef __WXCOCOA__ #include "wx/cocoa/autorelease.h" #else -#include "wx/mac/uma.h" +#include "wx/osx/uma.h" #include #include #include @@ -309,6 +309,20 @@ wxWebKitBeforeLoadEvent::wxWebKitBeforeLoadEvent( wxWindow* win ) SetId(win->GetId()); } + +IMPLEMENT_DYNAMIC_CLASS( wxWebKitNewWindowEvent, wxCommandEvent ) + +DEFINE_EVENT_TYPE( wxEVT_WEBKIT_NEW_WINDOW ) + +wxWebKitNewWindowEvent::wxWebKitNewWindowEvent( wxWindow* win ) +{ + SetEventType( wxEVT_WEBKIT_NEW_WINDOW); + SetEventObject( win ); + SetId(win->GetId()); +} + + + //--------------------------------------------------------- // helper functions for NSString<->wxString conversion //--------------------------------------------------------- @@ -668,8 +682,8 @@ void wxWebKitCtrl::OnSize(wxSizeEvent &event){ wxWindow* tlw = MacGetTopLevelWindow(); - NSRect frame = [m_webView frame]; - NSRect bounds = [m_webView bounds]; + NSRect frame = [(WebView*)m_webView frame]; + NSRect bounds = [(WebView*)m_webView bounds]; #if DEBUG_WEBKIT_SIZING fprintf(stderr,"Carbon window x=%d, y=%d, width=%d, height=%d\n", GetPosition().x, GetPosition().y, GetSize().x, GetSize().y); @@ -720,7 +734,7 @@ void wxWebKitCtrl::OnSize(wxSizeEvent &event){ frame.origin.x = x; frame.origin.y = y; - [m_webView setFrame:frame]; + [(WebView*)m_webView setFrame:frame]; if (IsShown()) [(WebView*)m_webView display]; @@ -858,6 +872,19 @@ void wxWebKitCtrl::MacVisibilityChanged(){ [listener use]; } +- (void)webView:(WebView *)sender decidePolicyForNewWindowAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request newFrameName:(NSString *)frameName decisionListener:(id < WebPolicyDecisionListener >)listener +{ + wxWebKitNewWindowEvent thisEvent(webKitWindow); + + NSString *url = [[request URL] absoluteString]; + thisEvent.SetURL( wxStringWithNSString( url ) ); + thisEvent.SetTargetName( wxStringWithNSString( frameName ) ); + + if (webKitWindow && webKitWindow->GetEventHandler()) + webKitWindow->GetEventHandler()->ProcessEvent(thisEvent); + + [listener use]; +} @end #endif //wxUSE_WEBKIT