Add zoom support (issue #116).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@167 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2011-01-25 15:34:50 +00:00
parent 8420cbbff1
commit c9b8e88dd9
14 changed files with 202 additions and 2 deletions

View File

@ -6,6 +6,7 @@
#include "cef_context.h"
#include "browser_impl.h"
#include "browser_webkit_glue.h"
#include "browser_zoom_map.h"
#include "request_impl.h"
#include "stream_impl.h"
@ -478,6 +479,24 @@ CefString CefBrowserImpl::GetURL(CefRefPtr<CefFrame> frame)
return CefString();
}
double CefBrowserImpl::GetZoomLevel()
{
WebKit::WebFrame* web_frame = GetWebFrame(this->GetMainFrame());
if(web_frame && web_frame->view())
return web_frame->view()->zoomLevel();
return 0.0;
}
void CefBrowserImpl::SetZoomLevel(double zoomLevel)
{
CefRefPtr<CefFrame> frame = this->GetMainFrame();
frame->AddRef();
CefThread::PostTask(CefThread::UI, FROM_HERE, NewRunnableMethod(this,
&CefBrowserImpl::UIT_SetZoomLevel, frame.get(), zoomLevel));
}
// static
bool CefBrowser::CreateBrowser(CefWindowInfo& windowInfo, bool popup,
CefRefPtr<CefHandler> handler,
@ -1139,6 +1158,18 @@ void CefBrowserImpl::UIT_NotifyFindStatus(int identifier, int count,
}
}
void CefBrowserImpl::UIT_SetZoomLevel(CefFrame* frame, double zoomLevel)
{
REQUIRE_UIT();
WebKit::WebFrame* web_frame = GetWebFrame(frame);
if(web_frame && web_frame->view()) {
web_frame->view()->setZoomLevel(false, zoomLevel);
ZoomMap::GetInstance()->set(web_frame->url(), zoomLevel);
}
frame->Release();
}
// CefFrameImpl