diff --git a/src/gui/build.mk b/src/gui/build.mk index f0dc0d34..f45582b6 100644 --- a/src/gui/build.mk +++ b/src/gui/build.mk @@ -3,6 +3,7 @@ ifneq ($(shell $(WX_CONFIG) --version),) FLUXENGINE_GUI_SRCS = \ src/gui/fluxviewercontrol.cc \ src/gui/fluxviewerwindow.cc \ + src/gui/hexviewerwindow.cc \ src/gui/layout.cpp \ src/gui/main.cc \ src/gui/mainwindow.cc \ diff --git a/src/gui/hexviewerwindow.cc b/src/gui/hexviewerwindow.cc new file mode 100644 index 00000000..08555fb1 --- /dev/null +++ b/src/gui/hexviewerwindow.cc @@ -0,0 +1,16 @@ +#include "globals.h" +#include "gui.h" +#include "layout.h" +#include "hexviewerwindow.h" + +HexViewerWindow::HexViewerWindow(const std::string& text): + HexViewerWindowGen(nullptr) +{ +} + +void HexViewerWindow::OnExit(wxCommandEvent& event) +{ + Close(true); +} + + diff --git a/src/gui/hexviewerwindow.h b/src/gui/hexviewerwindow.h new file mode 100644 index 00000000..91ceb4e1 --- /dev/null +++ b/src/gui/hexviewerwindow.h @@ -0,0 +1,16 @@ +#ifndef HEXVIEWERWINDOW_H +#define HEXVIEWERWINDOW_H + +#include "layout.h" + +class HexViewerWindow : public HexViewerWindowGen +{ +public: + HexViewerWindow(const std::string& text); + +private: + void OnExit(wxCommandEvent& event); +}; + +#endif + diff --git a/src/gui/layout.cpp b/src/gui/layout.cpp index b905a69f..e442df3a 100644 --- a/src/gui/layout.cpp +++ b/src/gui/layout.cpp @@ -225,3 +225,43 @@ FluxViewerWindowGen::~FluxViewerWindowGen() // Disconnect Events } + +HexViewerWindowGen::HexViewerWindowGen( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + m_menubar2 = new wxMenuBar( 0 ); + m_menu1 = new wxMenu(); + wxMenuItem* m_menuItem1; + m_menuItem1 = new wxMenuItem( m_menu1, wxID_CLOSE, wxString( wxT("&Close") ) , wxEmptyString, wxITEM_NORMAL ); + m_menu1->Append( m_menuItem1 ); + + m_menubar2->Append( m_menu1, wxT("&Window") ); + + this->SetMenuBar( m_menubar2 ); + + wxFlexGridSizer* fgSizer8; + fgSizer8 = new wxFlexGridSizer( 1, 1, 0, 0 ); + fgSizer8->AddGrowableCol( 0 ); + fgSizer8->AddGrowableRow( 0 ); + fgSizer8->SetFlexibleDirection( wxHORIZONTAL ); + fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL ); + + hexEntry = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxTE_RICH ); + fgSizer8->Add( hexEntry, 0, wxALL|wxEXPAND, 5 ); + + + this->SetSizer( fgSizer8 ); + this->Layout(); + + this->Centre( wxBOTH ); + + // Connect Events + m_menu1->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( HexViewerWindowGen::OnExit ), this, m_menuItem1->GetId()); +} + +HexViewerWindowGen::~HexViewerWindowGen() +{ + // Disconnect Events + +} diff --git a/src/gui/layout.fbp b/src/gui/layout.fbp index a42caaa4..184e32db 100644 --- a/src/gui/layout.fbp +++ b/src/gui/layout.fbp @@ -1760,5 +1760,152 @@ + + 0 + wxAUI_MGR_DEFAULT + + wxBOTH + + 1 + 1 + impl_virtual + + + + 0 + wxID_ANY + + + HexViewerWindowGen + + 500,300 + wxDEFAULT_FRAME_STYLE + ; ; forward_declare + Hex Viewer + + 0 + + + wxTAB_TRAVERSAL + 1 + + + + 1 + 1 + + + 0 + wxID_ANY + + + m_menubar2 + protected + + + + ; ; forward_declare + + + + + + &Window + m_menu1 + protected + + + 0 + 1 + + wxID_CLOSE + wxITEM_NORMAL + &Close + m_menuItem1 + none + + + OnExit + + + + + 1 + wxHORIZONTAL + 0 + 0 + 0 + + fgSizer8 + wxFLEX_GROWMODE_ALL + none + 1 + 0 + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + + 0 + + 1 + hexEntry + 1 + + + protected + 1 + + Resizable + 1 + + wxTE_MULTILINE|wxTE_READONLY|wxTE_RICH + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + diff --git a/src/gui/layout.h b/src/gui/layout.h index cab1d72f..861fad76 100644 --- a/src/gui/layout.h +++ b/src/gui/layout.h @@ -106,3 +106,27 @@ class FluxViewerWindowGen : public wxFrame }; +/////////////////////////////////////////////////////////////////////////////// +/// Class HexViewerWindowGen +/////////////////////////////////////////////////////////////////////////////// +class HexViewerWindowGen : public wxFrame +{ + private: + + protected: + wxMenuBar* m_menubar2; + wxMenu* m_menu1; + wxTextCtrl* hexEntry; + + // Virtual event handlers, override them in your derived class + virtual void OnExit( wxCommandEvent& event ) { event.Skip(); } + + + public: + + HexViewerWindowGen( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Hex Viewer"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL ); + + ~HexViewerWindowGen(); + +}; +