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 @@
+
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();
+
+};
+