/
viewframe.cpp
56 lines (43 loc) · 1.26 KB
/
viewframe.cpp
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
55
56
#include <iostream>
#include "markview.hpp"
#include "renderer.hpp"
BEGIN_EVENT_TABLE(ViewFrame, wxFrame)
EVT_MENU(wxID_CLOSE, ViewFrame::OnClose)
EVT_WEB_VIEW_NAVIGATING(wxID_ANY, ViewFrame::OnNavigating)
END_EVENT_TABLE()
ViewFrame::ViewFrame(const wxString& filepath)
: wxFrame(NULL, wxID_ANY, filepath, wxDefaultPosition, wxSize(250, 150))
{
frozen = false;
wxMenuBar* menubar = new wxMenuBar();
wxMenu* filemenu = new wxMenu();
filemenu->Append(wxID_OPEN, "Open\tCtrl-O");
filemenu->Append(wxID_CLOSE, "Close Window\tCtrl-W");
filemenu->Append(wxID_EXIT, "Quit\tCtrl-Q");
menubar->Append(filemenu, "File");
SetMenuBar(menubar);
MarkdownRenderer renderer;
viewer = wxWebView::New(this, wxID_ANY);
if(!renderer.render(filepath.GetData())) {
std::cerr << renderer.getErrMsg() << std::endl;
return;
}
viewer->SetPage(renderer.getData(), filepath);
frozen = true;
Centre();
Show(true);
}
void ViewFrame::OnClose(wxCommandEvent& evt)
{
this->Destroy();
}
void ViewFrame::OnNavigating(wxWebViewEvent& evt)
{
if(!frozen) {
return;
}
// veto event, to prohibit in-page links
evt.Veto();
// instead, load the default web-browser
openBrowser(evt.GetURL());
}