Esempio n. 1
0
Page* WebChromeClient::createWindow(Frame*, const FrameLoadRequest& frameLoadRequest, const WindowFeatures& features)
{
#if OS(AMIGAOS4)
    if (features.dialog) {
        fprintf(stderr, "%s: features.dialog not implemented on AmigaOS4.\n", __PRETTY_FUNCTION__);
        return 0;
    }

    extern BalWidget *createAmigaWindow(WebView *);

    WebView* newWebView = WebView::createInstance();
    if (newWebView) {
        BalWidget *newowbwindow = createAmigaWindow(newWebView);
        if (newowbwindow) {
            BalRectangle clientRect = {0, 0, newowbwindow->webViewWidth, newowbwindow->webViewHeight};
            newWebView->initWithFrame(clientRect, frameLoadRequest.frameName().utf8().data(), "");
            newWebView->setViewWindow(newowbwindow);

            if (!amigaConfig.tabs
             && (features.xSet || features.ySet || features.widthSet || features.heightSet))
                IIntuition->ChangeWindowBox(newowbwindow->window,
                                            features.xSet ? features.x : newowbwindow->window->LeftEdge,
                                            features.ySet ? features.y : newowbwindow->window->TopEdge,
                                            features.widthSet ? features.width : newowbwindow->window->Width,
                                            features.heightSet ? features.height : newowbwindow->window->Height);

            printf("url = %s\n", frameLoadRequest.resourceRequest().url().prettyURL().utf8().data());
            newWebView->mainFrame()->loadURL(frameLoadRequest.resourceRequest().url().prettyURL().utf8().data());

            return core(newWebView);
        }
        delete newWebView;
    }

    return 0;
#else
    IntRect frameRect(m_webView->frameRect());
    IntRect r(features.xSet ? features.x : 0, 
              features.ySet ? features.y : 0, 
              features.widthSet ? features.width : frameRect.width(),
              features.heightSet ? features.height : frameRect.height());
    
    bool modal = false;
    if (features.dialog)
        modal = true;
        
    WebViewWindow* win = new WebViewWindow(modal, m_webView, r);
    win->loadUrl(frameLoadRequest.resourceRequest().url().string().utf8().data());
    WebView* view = win->webView();
    view->setMenubarVisible(features.menuBarVisible);
    view->setStatusbarVisible(features.statusBarVisible);
    view->setToolbarsVisible(features.toolBarVisible);
    view->setLocationbarVisible(features.locationBarVisible);
    WebFrame* webFrame = view->topLevelFrame();
    if (webFrame)
        webFrame->setAllowsScrolling(features.scrollbarsVisible);
    win->show();
    return core(view);
#endif
}