// Copyright (c) 2009 The Chromium Embedded Framework Authors. All rights // reserved. Use of this source code is governed by a BSD-style license that // can be found in the LICENSE file. // // --------------------------------------------------------------------------- // // A portion of this file was generated by the CEF translator tool. When // making changes by hand only do so within the body of existing function // implementations. See the translator.README.txt file in the tools directory // for more information. // #include "../precompiled_libcef.h" #include "cpptoc/browser_cpptoc.h" #include "cpptoc/frame_cpptoc.h" #include "ctocpp/handler_ctocpp.h" // GLOBAL FUNCTIONS - Body may be edited by hand. CEF_EXPORT int cef_browser_create(cef_window_info_t* windowInfo, int popup, struct _cef_handler_t* handler, const wchar_t* url) { DCHECK(windowInfo); CefRefPtr handlerPtr; std::wstring urlStr; CefWindowInfo wi = *windowInfo; if(handler) handlerPtr = CefHandlerCToCpp::Wrap(handler); if(url) urlStr = url; return CefBrowser::CreateBrowser(wi, popup, handlerPtr, urlStr); } CEF_EXPORT cef_browser_t* cef_browser_create_sync(cef_window_info_t* windowInfo, int popup, struct _cef_handler_t* handler, const wchar_t* url) { DCHECK(windowInfo); CefRefPtr handlerPtr; std::wstring urlStr; CefWindowInfo wi = *windowInfo; if(handler) handlerPtr = CefHandlerCToCpp::Wrap(handler); if(url) urlStr = url; CefRefPtr browserPtr( CefBrowser::CreateBrowserSync(wi, popup, handlerPtr, urlStr)); if(browserPtr.get()) return CefBrowserCppToC::Wrap(browserPtr); return NULL; } // MEMBER FUNCTIONS - Body may be edited by hand. int CEF_CALLBACK browser_can_go_back(struct _cef_browser_t* self) { DCHECK(self); if(!self) return 0; return CefBrowserCppToC::Get(self)->CanGoBack(); } void CEF_CALLBACK browser_go_back(struct _cef_browser_t* self) { DCHECK(self); if(!self) return; CefBrowserCppToC::Get(self)->GoBack(); } int CEF_CALLBACK browser_can_go_forward(struct _cef_browser_t* self) { DCHECK(self); if(!self) return 0; return CefBrowserCppToC::Get(self)->CanGoForward(); } void CEF_CALLBACK browser_go_forward(struct _cef_browser_t* self) { DCHECK(self); if(!self) return; CefBrowserCppToC::Get(self)->GoForward(); } void CEF_CALLBACK browser_reload(struct _cef_browser_t* self) { DCHECK(self); if(!self) return; CefBrowserCppToC::Get(self)->Reload(); } void CEF_CALLBACK browser_stop_load(struct _cef_browser_t* self) { DCHECK(self); if(!self) return; CefBrowserCppToC::Get(self)->StopLoad(); } void CEF_CALLBACK browser_set_focus(struct _cef_browser_t* self, int enable) { DCHECK(self); if(!self) return; CefBrowserCppToC::Get(self)->SetFocus(enable ? true : false); } cef_window_handle_t CEF_CALLBACK browser_get_window_handle( struct _cef_browser_t* self) { DCHECK(self); if(!self) return NULL; return CefBrowserCppToC::Get(self)->GetWindowHandle(); } int CEF_CALLBACK browser_is_popup(struct _cef_browser_t* self) { DCHECK(self); if(!self) return 0; return CefBrowserCppToC::Get(self)->IsPopup(); } struct _cef_handler_t* CEF_CALLBACK browser_get_handler( struct _cef_browser_t* self) { DCHECK(self); if(!self) return NULL; CefRefPtr browserPtr = CefBrowserCppToC::Get(self); CefRefPtr handlerPtr = browserPtr->GetHandler(); if(handlerPtr.get()) return CefHandlerCToCpp::Unwrap(handlerPtr); return NULL; } struct _cef_frame_t* CEF_CALLBACK browser_get_main_frame( struct _cef_browser_t* self) { DCHECK(self); if(!self) return NULL; CefRefPtr browserPtr = CefBrowserCppToC::Get(self); CefRefPtr framePtr = browserPtr->GetMainFrame(); if(framePtr.get()) return CefFrameCppToC::Wrap(framePtr); return NULL; } struct _cef_frame_t* CEF_CALLBACK browser_get_focused_frame( struct _cef_browser_t* self) { DCHECK(self); if(!self) return NULL; CefRefPtr browserPtr = CefBrowserCppToC::Get(self); CefRefPtr framePtr = browserPtr->GetFocusedFrame(); if(framePtr.get()) return CefFrameCppToC::Wrap(framePtr); return NULL; } struct _cef_frame_t* CEF_CALLBACK browser_get_frame(struct _cef_browser_t* self, const wchar_t* name) { DCHECK(self); if(!self) return NULL; std::wstring nameStr; if(name) nameStr = name; if(nameStr.empty()) return NULL; CefRefPtr browserPtr = CefBrowserCppToC::Get(self); CefRefPtr framePtr = browserPtr->GetFrame(nameStr); if(framePtr.get()) return CefFrameCppToC::Wrap(framePtr); return NULL; } void CEF_CALLBACK browser_get_frame_names(struct _cef_browser_t* self, cef_string_list_t names) { DCHECK(self); DCHECK(names); if(!self || !names) return; CefRefPtr browserPtr = CefBrowserCppToC::Get(self); std::vector stringList; browserPtr->GetFrameNames(stringList); size_t size = stringList.size(); for(size_t i = 0; i < size; ++i) cef_string_list_append(names, stringList[i].c_str()); } // CONSTRUCTOR - Do not edit by hand. CefBrowserCppToC::CefBrowserCppToC(CefBrowser* cls) : CefCppToC(cls) { struct_.struct_.can_go_back = browser_can_go_back; struct_.struct_.go_back = browser_go_back; struct_.struct_.can_go_forward = browser_can_go_forward; struct_.struct_.go_forward = browser_go_forward; struct_.struct_.reload = browser_reload; struct_.struct_.stop_load = browser_stop_load; struct_.struct_.set_focus = browser_set_focus; struct_.struct_.get_window_handle = browser_get_window_handle; struct_.struct_.is_popup = browser_is_popup; struct_.struct_.get_handler = browser_get_handler; struct_.struct_.get_main_frame = browser_get_main_frame; struct_.struct_.get_focused_frame = browser_get_focused_frame; struct_.struct_.get_frame = browser_get_frame; struct_.struct_.get_frame_names = browser_get_frame_names; } #ifdef _DEBUG long CefCppToC::DebugObjCt = 0; #endif