Add the boilerplate for the hex viewer.

This commit is contained in:
David Given
2022-08-06 12:58:15 +02:00
parent 69bb6a74b8
commit 9a5c66a311
6 changed files with 244 additions and 0 deletions

View File

@@ -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 \

View File

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

16
src/gui/hexviewerwindow.h Normal file
View File

@@ -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

View File

@@ -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
}

View File

@@ -1760,5 +1760,152 @@
<property name="window_style"></property>
</object>
</object>
<object class="Frame" expanded="1">
<property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
<property name="bg"></property>
<property name="center">wxBOTH</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="event_handler">impl_virtual</property>
<property name="extra_style"></property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">HexViewerWindowGen</property>
<property name="pos"></property>
<property name="size">500,300</property>
<property name="style">wxDEFAULT_FRAME_STYLE</property>
<property name="subclass">; ; forward_declare</property>
<property name="title">Hex Viewer</property>
<property name="tooltip"></property>
<property name="two_step_creation">0</property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property>
<property name="xrc_skip_sizer">1</property>
<object class="wxMenuBar" expanded="1">
<property name="bg"></property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">m_menubar2</property>
<property name="permission">protected</property>
<property name="pos"></property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<object class="wxMenu" expanded="1">
<property name="label">&amp;Window</property>
<property name="name">m_menu1</property>
<property name="permission">protected</property>
<object class="wxMenuItem" expanded="1">
<property name="bitmap"></property>
<property name="checked">0</property>
<property name="enabled">1</property>
<property name="help"></property>
<property name="id">wxID_CLOSE</property>
<property name="kind">wxITEM_NORMAL</property>
<property name="label">&amp;Close</property>
<property name="name">m_menuItem1</property>
<property name="permission">none</property>
<property name="shortcut"></property>
<property name="unchecked_bitmap"></property>
<event name="OnMenuSelection">OnExit</event>
</object>
</object>
</object>
<object class="wxFlexGridSizer" expanded="1">
<property name="cols">1</property>
<property name="flexible_direction">wxHORIZONTAL</property>
<property name="growablecols">0</property>
<property name="growablerows">0</property>
<property name="hgap">0</property>
<property name="minimum_size"></property>
<property name="name">fgSizer8</property>
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_ALL</property>
<property name="permission">none</property>
<property name="rows">1</property>
<property name="vgap">0</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxTextCtrl" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="maxlength"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">hexEntry</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxTE_MULTILINE|wxTE_READONLY|wxTE_RICH</property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
</object>
</object>
</object>
</wxFormBuilder_Project>

View File

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