- Clean up implementation of modal window callbacks (issue #281).

- Fix CefBrowser::GoForward documentation typo (issue #291).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@271 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2011-08-03 15:35:51 +00:00
parent 0f414c8ac8
commit 512b864639
20 changed files with 187 additions and 125 deletions

View File

@@ -69,6 +69,15 @@ CEF_EXPORT cef_browser_t* cef_browser_create_sync(cef_window_info_t* windowInfo,
// MEMBER FUNCTIONS - Body may be edited by hand.
void CEF_CALLBACK browser_parent_window_will_close(struct _cef_browser_t* self)
{
DCHECK(self);
if (!self)
return;
CefBrowserCppToC::Get(self)->ParentWindowWillClose();
}
void CEF_CALLBACK browser_close_browser(struct _cef_browser_t* self)
{
DCHECK(self);
@@ -450,6 +459,7 @@ void CEF_CALLBACK browser_send_capture_lost_event(struct _cef_browser_t* self)
CefBrowserCppToC::CefBrowserCppToC(CefBrowser* cls)
: CefCppToC<CefBrowserCppToC, CefBrowser, cef_browser_t>(cls)
{
struct_.struct_.parent_window_will_close = browser_parent_window_will_close;
struct_.struct_.close_browser = browser_close_browser;
struct_.struct_.can_go_back = browser_can_go_back;
struct_.struct_.go_back = browser_go_back;

View File

@@ -85,18 +85,6 @@ void CEF_CALLBACK life_span_handler_on_after_created(
CefBrowserCToCpp::Wrap(browser));
}
void CEF_CALLBACK life_span_handler_on_before_close(
struct _cef_life_span_handler_t* self, cef_browser_t* browser)
{
DCHECK(self);
DCHECK(browser);
if (!self || !browser)
return;
CefLifeSpanHandlerCppToC::Get(self)->OnBeforeClose(
CefBrowserCToCpp::Wrap(browser));
}
int CEF_CALLBACK life_span_handler_run_modal(
struct _cef_life_span_handler_t* self, cef_browser_t* browser)
{
@@ -109,7 +97,19 @@ int CEF_CALLBACK life_span_handler_run_modal(
CefBrowserCToCpp::Wrap(browser));
}
void CEF_CALLBACK life_span_handler_quit_modal(
int CEF_CALLBACK life_span_handler_do_close(
struct _cef_life_span_handler_t* self, cef_browser_t* browser)
{
DCHECK(self);
DCHECK(browser);
if (!self || !browser)
return 0;
return CefLifeSpanHandlerCppToC::Get(self)->DoClose(
CefBrowserCToCpp::Wrap(browser));
}
void CEF_CALLBACK life_span_handler_on_before_close(
struct _cef_life_span_handler_t* self, cef_browser_t* browser)
{
DCHECK(self);
@@ -117,7 +117,7 @@ void CEF_CALLBACK life_span_handler_quit_modal(
if (!self || !browser)
return;
CefLifeSpanHandlerCppToC::Get(self)->QuitModal(
CefLifeSpanHandlerCppToC::Get(self)->OnBeforeClose(
CefBrowserCToCpp::Wrap(browser));
}
@@ -130,9 +130,9 @@ CefLifeSpanHandlerCppToC::CefLifeSpanHandlerCppToC(CefLifeSpanHandler* cls)
{
struct_.struct_.on_before_popup = life_span_handler_on_before_popup;
struct_.struct_.on_after_created = life_span_handler_on_after_created;
struct_.struct_.on_before_close = life_span_handler_on_before_close;
struct_.struct_.run_modal = life_span_handler_run_modal;
struct_.struct_.quit_modal = life_span_handler_quit_modal;
struct_.struct_.do_close = life_span_handler_do_close;
struct_.struct_.on_before_close = life_span_handler_on_before_close;
}
#ifndef NDEBUG

View File

@@ -40,6 +40,14 @@ CefRefPtr<CefBrowser> CefBrowser::CreateBrowserSync(CefWindowInfo& windowInfo,
// VIRTUAL METHODS - Body may be edited by hand.
void CefBrowserCToCpp::ParentWindowWillClose()
{
if (CEF_MEMBER_MISSING(struct_, parent_window_will_close))
return;
struct_->parent_window_will_close(struct_);
}
void CefBrowserCToCpp::CloseBrowser()
{
if(CEF_MEMBER_MISSING(struct_, close_browser))

View File

@@ -31,6 +31,7 @@ public:
virtual ~CefBrowserCToCpp() {}
// CefBrowser methods
virtual void ParentWindowWillClose() OVERRIDE;
virtual void CloseBrowser() OVERRIDE;
virtual bool CanGoBack() OVERRIDE;
virtual void GoBack() OVERRIDE;

View File

@@ -55,14 +55,6 @@ void CefLifeSpanHandlerCToCpp::OnAfterCreated(CefRefPtr<CefBrowser> browser)
struct_->on_after_created(struct_, CefBrowserCppToC::Wrap(browser));
}
void CefLifeSpanHandlerCToCpp::OnBeforeClose(CefRefPtr<CefBrowser> browser)
{
if (CEF_MEMBER_MISSING(struct_, on_before_close))
return;
struct_->on_before_close(struct_, CefBrowserCppToC::Wrap(browser));
}
bool CefLifeSpanHandlerCToCpp::RunModal(CefRefPtr<CefBrowser> browser)
{
if (CEF_MEMBER_MISSING(struct_, run_modal))
@@ -73,12 +65,22 @@ bool CefLifeSpanHandlerCToCpp::RunModal(CefRefPtr<CefBrowser> browser)
return (rv ? true : false);
}
void CefLifeSpanHandlerCToCpp::QuitModal(CefRefPtr<CefBrowser> browser)
bool CefLifeSpanHandlerCToCpp::DoClose(CefRefPtr<CefBrowser> browser)
{
if (CEF_MEMBER_MISSING(struct_, quit_modal))
if (CEF_MEMBER_MISSING(struct_, do_close))
return false;
int rv = struct_->do_close(struct_, CefBrowserCppToC::Wrap(browser));
return (rv ? true : false);
}
void CefLifeSpanHandlerCToCpp::OnBeforeClose(CefRefPtr<CefBrowser> browser)
{
if (CEF_MEMBER_MISSING(struct_, on_before_close))
return;
struct_->quit_modal(struct_, CefBrowserCppToC::Wrap(browser));
struct_->on_before_close(struct_, CefBrowserCppToC::Wrap(browser));
}

View File

@@ -38,9 +38,9 @@ public:
const CefString& url, CefRefPtr<CefClient>& client,
CefBrowserSettings& settings) OVERRIDE;
virtual void OnAfterCreated(CefRefPtr<CefBrowser> browser) OVERRIDE;
virtual void OnBeforeClose(CefRefPtr<CefBrowser> browser) OVERRIDE;
virtual bool RunModal(CefRefPtr<CefBrowser> browser) OVERRIDE;
virtual void QuitModal(CefRefPtr<CefBrowser> browser) OVERRIDE;
virtual bool DoClose(CefRefPtr<CefBrowser> browser) OVERRIDE;
virtual void OnBeforeClose(CefRefPtr<CefBrowser> browser) OVERRIDE;
};
#endif // BUILDING_CEF_SHARED