#pragma once
|
#include "stdafx.h"
|
#include "exptcef.h"
|
#include "webview/Cef3WebVWndHandler.h"
|
#include "webview/Cef3MainContext.h"
|
#include <functional>
|
|
namespace SOUI {
|
|
#define WM_WEBSITE_SIZE 100
|
|
class DLL_EXPORT_IMPORT SWebViewWnd :
|
public CSimpleWnd, public browser::IBrowserClient
|
{
|
public:
|
SWebViewWnd(void);
|
~SWebViewWnd(void);
|
public:
|
browser::CCef3WebVWndHandler *webview_handler_;
|
SStringT m_strUrl;
|
SStringT m_strTitle;
|
public:
|
// ʵÏÖµÄ½Ó¿Ú IBrowserClient
|
virtual HWND getWindowHandle();
|
virtual CefClient *getClient();
|
|
// ÉèÖõ÷ÊÔ¹¤¾ß
|
void SetDevTools(bool devtools);
|
// ------------------------------------------------------------------------------
|
//
|
// methods for user
|
//
|
// ------------------------------------------------------------------------------
|
BOOL LoadURL(const SStringT& url);
|
BOOL LoadHtml(const SStringT& strHtml);
|
SStringW GetTitle();
|
SStringW GetURL();
|
void ExecJavaScript(const SStringT& js);
|
BOOL CanGoBack();
|
void GoBack();
|
BOOL CanGoForward();
|
void GoForward();
|
BOOL IsLoading();
|
void Reload();
|
void StopLoad();
|
BOOL Open(SStringT strUrl);
|
void Close();
|
void GetWebViewSource(std::function<void(const CefString&)> &&callback);
|
// µ¯³ö´°£¬ÎªÁ˽â¾öcefµÄbug
|
LRESULT OnOpenFileDialog(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL & bHandled);
|
LRESULT OnWebUrlDialog(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL & bHandled);
|
public:
|
void ReDraw();
|
public:
|
int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
BOOL OnInitDialog(HWND wndFocus,LPARAM lInitParam);
|
BOOL OnEraseBkgnd(HDC dc);
|
void OnClose();
|
void OnSize(UINT nType, CSize size);
|
void OnPaint(IRenderTarget *pRT);
|
void OnTimer(UINT_PTR nIDEvent);
|
//HostWndÕæÊµ´°¿ÚÏûÏ¢´¦Àí
|
BEGIN_MSG_MAP_EX(SWebViewWnd)
|
MSG_WM_PAINT_EX(OnPaint)
|
MSG_WM_CREATE(OnCreate)
|
MSG_WM_INITDIALOG(OnInitDialog)
|
MSG_WM_ERASEBKGND(OnEraseBkgnd)
|
MSG_WM_CLOSE(OnClose)
|
MSG_WM_SIZE(OnSize)
|
CHAIN_MSG_MAP(CSimpleWnd)
|
MSG_WM_TIMER_EX(OnTimer)
|
MESSAGE_HANDLER(WM_OPENFILEDIALOG,OnOpenFileDialog) // µ¯³ö´°£¬ÎªÁ˽â¾öcefµÄbug
|
MESSAGE_HANDLER(WM_WEBURLDIALOG,OnWebUrlDialog)
|
REFLECT_NOTIFICATIONS_EX();
|
END_MSG_MAP()
|
//private:
|
// SOUI::CRect m_rc; // ³õʼ»¯rc
|
//public:
|
//void SetInitRc( SOUI::CRect &rc );
|
};
|
|
}
|