Szontágh Ferenc
2025-03-12 77bc7063534ab317a2ef96249a4f78198d01ef01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#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__