Add CefDisplayHandler::OnContentsSizeChange() notificiation (issue #341).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@330 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt 2011-10-21 14:09:04 +00:00
parent 04c948fd51
commit 2085cc9ce2
7 changed files with 61 additions and 1 deletions

View File

@ -1264,6 +1264,15 @@ public:
CefRefPtr<CefFrame> frame, CefRefPtr<CefFrame> frame,
const CefString& url) {} const CefString& url) {}
///
// Called when the size of the content area has changed.
///
/*--cef()--*/
virtual void OnContentsSizeChange(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
int width,
int height) {}
/// ///
// Called when the page title changes. // Called when the page title changes.
/// ///

View File

@ -1076,6 +1076,13 @@ typedef struct _cef_display_handler_t
struct _cef_browser_t* browser, struct _cef_frame_t* frame, struct _cef_browser_t* browser, struct _cef_frame_t* frame,
const cef_string_t* url); const cef_string_t* url);
///
// Called when the size of the content area has changed.
///
void (CEF_CALLBACK *on_contents_size_change)(
struct _cef_display_handler_t* self, struct _cef_browser_t* browser,
struct _cef_frame_t* frame, int width, int height);
/// ///
// Called when the page title changes. // Called when the page title changes.
/// ///

View File

@ -950,11 +950,23 @@ void BrowserWebViewDelegate::willSendRequest(
request.setRequestorID(browser_->UIT_GetUniqueID()); request.setRequestorID(browser_->UIT_GetUniqueID());
} }
void BrowserWebViewDelegate::didChangeContentsSize(
WebFrame* frame, const WebSize& size) {
CefRefPtr<CefClient> client = browser_->GetClient();
if (client.get()) {
CefRefPtr<CefDisplayHandler> handler = client->GetDisplayHandler();
if (handler.get()) {
handler->OnContentsSizeChange(browser_, browser_->UIT_GetCefFrame(frame),
size.width, size.height);
}
}
}
void BrowserWebViewDelegate::reportFindInPageMatchCount( void BrowserWebViewDelegate::reportFindInPageMatchCount(
int request_id, int count, bool final_update) int request_id, int count, bool final_update)
{ {
browser_->UIT_NotifyFindStatus(request_id, count, gfx::Rect(), browser_->UIT_NotifyFindStatus(request_id, count, gfx::Rect(),
-1, // // Don't update active match ordinal. -1, // Don't update active match ordinal.
final_update); final_update);
} }

View File

@ -180,6 +180,8 @@ class BrowserWebViewDelegate : public WebKit::WebViewClient,
virtual void willSendRequest( virtual void willSendRequest(
WebKit::WebFrame*, unsigned identifier, WebKit::WebURLRequest&, WebKit::WebFrame*, unsigned identifier, WebKit::WebURLRequest&,
const WebKit::WebURLResponse& redirectResponse) OVERRIDE; const WebKit::WebURLResponse& redirectResponse) OVERRIDE;
virtual void didChangeContentsSize(
WebKit::WebFrame*, const WebKit::WebSize&) OVERRIDE;
virtual void reportFindInPageMatchCount( virtual void reportFindInPageMatchCount(
int request_id, int count, bool final_update) OVERRIDE; int request_id, int count, bool final_update) OVERRIDE;
virtual void reportFindInPageSelection( virtual void reportFindInPageSelection(

View File

@ -47,6 +47,21 @@ void CEF_CALLBACK display_handler_on_address_change(
CefString(url)); CefString(url));
} }
void CEF_CALLBACK display_handler_on_contents_size_change(
struct _cef_display_handler_t* self, cef_browser_t* browser,
cef_frame_t* frame, int width, int height)
{
DCHECK(self);
DCHECK(browser);
DCHECK(frame);
if (!self || !browser || !frame)
return;
CefDisplayHandlerCppToC::Get(self)->OnContentsSizeChange(
CefBrowserCToCpp::Wrap(browser), CefFrameCToCpp::Wrap(frame), width,
height);
}
void CEF_CALLBACK display_handler_on_title_change( void CEF_CALLBACK display_handler_on_title_change(
struct _cef_display_handler_t* self, cef_browser_t* browser, struct _cef_display_handler_t* self, cef_browser_t* browser,
const cef_string_t* title) const cef_string_t* title)
@ -109,6 +124,8 @@ CefDisplayHandlerCppToC::CefDisplayHandlerCppToC(CefDisplayHandler* cls)
{ {
struct_.struct_.on_nav_state_change = display_handler_on_nav_state_change; struct_.struct_.on_nav_state_change = display_handler_on_nav_state_change;
struct_.struct_.on_address_change = display_handler_on_address_change; struct_.struct_.on_address_change = display_handler_on_address_change;
struct_.struct_.on_contents_size_change =
display_handler_on_contents_size_change;
struct_.struct_.on_title_change = display_handler_on_title_change; struct_.struct_.on_title_change = display_handler_on_title_change;
struct_.struct_.on_tooltip = display_handler_on_tooltip; struct_.struct_.on_tooltip = display_handler_on_tooltip;
struct_.struct_.on_status_message = display_handler_on_status_message; struct_.struct_.on_status_message = display_handler_on_status_message;

View File

@ -37,6 +37,17 @@ void CefDisplayHandlerCToCpp::OnAddressChange(CefRefPtr<CefBrowser> browser,
CefFrameCppToC::Wrap(frame), url.GetStruct()); CefFrameCppToC::Wrap(frame), url.GetStruct());
} }
void CefDisplayHandlerCToCpp::OnContentsSizeChange(
CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, int width,
int height)
{
if (CEF_MEMBER_MISSING(struct_, on_contents_size_change))
return;
struct_->on_contents_size_change(struct_, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame), width, height);
}
void CefDisplayHandlerCToCpp::OnTitleChange(CefRefPtr<CefBrowser> browser, void CefDisplayHandlerCToCpp::OnTitleChange(CefRefPtr<CefBrowser> browser,
const CefString& title) const CefString& title)
{ {

View File

@ -37,6 +37,8 @@ public:
bool canGoForward) OVERRIDE; bool canGoForward) OVERRIDE;
virtual void OnAddressChange(CefRefPtr<CefBrowser> browser, virtual void OnAddressChange(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame, const CefString& url) OVERRIDE; CefRefPtr<CefFrame> frame, const CefString& url) OVERRIDE;
virtual void OnContentsSizeChange(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame, int width, int height) OVERRIDE;
virtual void OnTitleChange(CefRefPtr<CefBrowser> browser, virtual void OnTitleChange(CefRefPtr<CefBrowser> browser,
const CefString& title) OVERRIDE; const CefString& title) OVERRIDE;
virtual bool OnTooltip(CefRefPtr<CefBrowser> browser, virtual bool OnTooltip(CefRefPtr<CefBrowser> browser,