#ifndef __BrowserFrame__
|
#define __BrowserFrame__
|
|
/**
|
@file
|
Subclass of BrowserFrame, which is generated by wxFormBuilder.
|
*/
|
#include <map>
|
#include <memory>
|
#include <wx/panel.h>
|
#include <wx/regex.h>
|
#include <wx/webview.h>
|
|
#include "base/wxBrowserBase.h"
|
#include "handlers/WebViewHandler.h"
|
|
//// end generated include
|
|
/** Implementing BrowserFrame */
|
class BrowserFrame : public wxBrowserBase {
|
protected:
|
// Handlers for BrowserFrame events.
|
void OnPageClose(wxAuiNotebookEvent &event) override;
|
void OnPageClosed(wxAuiNotebookEvent &event) override;
|
void OnPageChanging(wxAuiNotebookEvent &event) override;
|
void OnPageChanged(wxAuiNotebookEvent &event) override;
|
void OnUrlEnter(wxCommandEvent &event) override;
|
void OnNewTab(wxCommandEvent &event) override;
|
void OnReload(wxCommandEvent &event) override;
|
void OnBack(wxCommandEvent &event) override;
|
void OnForward(wxCommandEvent &event) override;
|
void OnHome(wxCommandEvent &event) override;
|
void m_urlbarOnSetFocus(wxFocusEvent &event) override;
|
void m_urlbarOnLeftUp(wxMouseEvent &event) override;
|
|
public:
|
/** Constructor */
|
BrowserFrame(wxWindow *parent);
|
~BrowserFrame();
|
|
private:
|
// webview, tab position
|
std::map<wxWebView *, std::shared_ptr<WebViewHandler>> webViews;
|
std::map<int, wxWebView *> webViewtabMap;
|
int currentWebViewIndex = 0;
|
wxWebView *currentWebView = nullptr;
|
|
size_t GetTabIndex(wxWebView *webView);
|
void ChangeTabIndex(wxWebView *webView, int index);
|
void WebViewHandlerCallback(WebViewHandler::CallbackType type,
|
const wxString data, WebViewHandler *handler);
|
};
|
|
#endif // __BrowserFrame__
|