mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Add the histogram viewer and clock guess button.
This commit is contained in:
@@ -8,6 +8,7 @@ FLUXENGINE_GUI_SRCS = \
|
||||
src/gui/fileviewerwindow.cc \
|
||||
src/gui/fluxviewercontrol.cc \
|
||||
src/gui/fluxviewerwindow.cc \
|
||||
src/gui/histogramviewer.cc \
|
||||
src/gui/iconbutton.cc \
|
||||
src/gui/idlepanel.cc \
|
||||
src/gui/imagerpanel.cc \
|
||||
|
||||
@@ -109,7 +109,13 @@ private:
|
||||
UpdateExplorerData();
|
||||
}
|
||||
|
||||
private:
|
||||
void OnGuessClockButton(wxCommandEvent& event) override
|
||||
{
|
||||
nanoseconds_t clock = histogram->GetMedian();
|
||||
explorerClockSpinCtrl->SetValue(clock / 1e3);
|
||||
UpdateExplorerData();
|
||||
}
|
||||
|
||||
void OnQueueEmpty() override
|
||||
{
|
||||
SetState(STATE_IDLE);
|
||||
@@ -159,9 +165,9 @@ private:
|
||||
FluxmapReader fmr(*_explorerFluxmap);
|
||||
fmr.seek(explorerStartTimeSpinCtrl->GetValue() * 1e6);
|
||||
|
||||
FluxDecoder fluxDecoder(&fmr,
|
||||
explorerClockSpinCtrl->GetValue() * 1e3,
|
||||
DecoderProto());
|
||||
nanoseconds_t clock =
|
||||
explorerClockSpinCtrl->GetValue() * 1e3;
|
||||
FluxDecoder fluxDecoder(&fmr, clock, DecoderProto());
|
||||
fluxDecoder.readBits(
|
||||
explorerBitOffsetSpinCtrl->GetValue());
|
||||
auto bits = fluxDecoder.readBits();
|
||||
@@ -183,9 +189,10 @@ private:
|
||||
|
||||
std::stringstream s;
|
||||
hexdump(s, bytes);
|
||||
|
||||
explorerText->SetValue(s.str());
|
||||
|
||||
histogram->Redraw(*_explorerFluxmap, clock);
|
||||
|
||||
if (_explorerUpdatePending)
|
||||
UpdateExplorerData();
|
||||
});
|
||||
|
||||
83
src/gui/histogramviewer.cc
Normal file
83
src/gui/histogramviewer.cc
Normal file
@@ -0,0 +1,83 @@
|
||||
#include "lib/globals.h"
|
||||
#include "gui.h"
|
||||
#include "lib/fluxmap.h"
|
||||
#include "histogramviewer.h"
|
||||
|
||||
static constexpr int BORDER = 10;
|
||||
static constexpr int WIDTH = 256;
|
||||
static constexpr int HEIGHT = 100;
|
||||
|
||||
// clang-format off
|
||||
wxBEGIN_EVENT_TABLE(HistogramViewer, wxWindow)
|
||||
EVT_PAINT(HistogramViewer::OnPaint)
|
||||
wxEND_EVENT_TABLE();
|
||||
// clang-format on
|
||||
|
||||
HistogramViewer::HistogramViewer(wxWindow* parent,
|
||||
wxWindowID winid,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size,
|
||||
long style):
|
||||
wxWindow(parent,
|
||||
winid,
|
||||
pos,
|
||||
wxSize(WIDTH + 2 * BORDER, HEIGHT + 2 * BORDER),
|
||||
style)
|
||||
{
|
||||
_font = GetFont().MakeSmaller().MakeSmaller().MakeSmaller();
|
||||
}
|
||||
|
||||
void HistogramViewer::Redraw(const Fluxmap& fluxmap, nanoseconds_t clock)
|
||||
{
|
||||
_data = fluxmap.guessClock();
|
||||
_clock = clock;
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void HistogramViewer::OnPaint(wxPaintEvent&)
|
||||
{
|
||||
wxPaintDC dc(this);
|
||||
dc.SetBackground(wxSystemSettings::GetColour(wxSYS_COLOUR_FRAMEBK));
|
||||
dc.Clear();
|
||||
|
||||
uint32_t max =
|
||||
*std::max_element(std::begin(_data.buckets), std::end(_data.buckets));
|
||||
dc.SetPen(*wxGREY_PEN);
|
||||
for (int x = 0; x < 256; x++)
|
||||
{
|
||||
double v = (double)_data.buckets[x] / (double)max;
|
||||
dc.DrawLine({BORDER + x, BORDER + HEIGHT},
|
||||
{BORDER + x, BORDER + HEIGHT - (int)(v * HEIGHT)});
|
||||
}
|
||||
|
||||
dc.SetPen(*wxBLACK_PEN);
|
||||
dc.DrawLine({BORDER, BORDER + HEIGHT}, {BORDER + WIDTH, BORDER + HEIGHT});
|
||||
dc.DrawLine({BORDER, BORDER + HEIGHT}, {BORDER, BORDER});
|
||||
|
||||
dc.SetPen(*wxRED_PEN);
|
||||
{
|
||||
int y = ((double)_data.signalLevel / (double)max) * HEIGHT;
|
||||
dc.DrawLine({0, BORDER + HEIGHT - y},
|
||||
{2 * BORDER + WIDTH, BORDER + HEIGHT - y});
|
||||
}
|
||||
|
||||
{
|
||||
int x = _clock / NS_PER_TICK;
|
||||
dc.DrawLine({BORDER + x, 2 * BORDER + HEIGHT}, {BORDER + x, 0});
|
||||
}
|
||||
|
||||
{
|
||||
wxString text = "Clock interval";
|
||||
dc.SetFont(_font);
|
||||
auto size = dc.GetTextExtent(text);
|
||||
dc.DrawText(text, {BORDER + WIDTH - size.GetWidth(), BORDER + HEIGHT});
|
||||
}
|
||||
|
||||
{
|
||||
wxString text = "Frequency";
|
||||
dc.SetFont(_font);
|
||||
auto size = dc.GetTextExtent(text);
|
||||
dc.DrawRotatedText(
|
||||
text, BORDER - size.GetHeight(), BORDER + size.GetWidth(), 90);
|
||||
}
|
||||
}
|
||||
29
src/gui/histogramviewer.h
Normal file
29
src/gui/histogramviewer.h
Normal file
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include "lib/globals.h"
|
||||
#include "lib/fluxmap.h"
|
||||
|
||||
class HistogramViewer : public wxWindow
|
||||
{
|
||||
public:
|
||||
HistogramViewer(wxWindow* parent,
|
||||
wxWindowID winid,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0);
|
||||
virtual ~HistogramViewer() {}
|
||||
|
||||
public:
|
||||
void Redraw(const Fluxmap& fluxmap, nanoseconds_t clock);
|
||||
nanoseconds_t GetMedian() const { return _data.median; }
|
||||
|
||||
private:
|
||||
void OnPaint(wxPaintEvent&);
|
||||
|
||||
private:
|
||||
Fluxmap::ClockData _data;
|
||||
wxFont _font;
|
||||
nanoseconds_t _clock;
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
};
|
||||
|
||||
@@ -891,6 +891,13 @@ ExplorerPanelGen::ExplorerPanelGen( wxWindow* parent, wxWindowID id, const wxPoi
|
||||
fgSizer12->SetFlexibleDirection( wxBOTH );
|
||||
fgSizer12->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
wxFlexGridSizer* fgSizer13;
|
||||
fgSizer13 = new wxFlexGridSizer( 0, 1, 0, 0 );
|
||||
fgSizer13->AddGrowableCol( 0 );
|
||||
fgSizer13->AddGrowableRow( 1 );
|
||||
fgSizer13->SetFlexibleDirection( wxBOTH );
|
||||
fgSizer13->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
wxFlexGridSizer* fgSizer10;
|
||||
fgSizer10 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
||||
fgSizer10->AddGrowableCol( 1 );
|
||||
@@ -919,9 +926,22 @@ ExplorerPanelGen::ExplorerPanelGen( wxWindow* parent, wxWindowID id, const wxPoi
|
||||
explorerStartTimeSpinCtrl->SetDigits( 3 );
|
||||
fgSizer10->Add( explorerStartTimeSpinCtrl, 0, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxFlexGridSizer* fgSizer121;
|
||||
fgSizer121 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
||||
fgSizer121->AddGrowableCol( 0 );
|
||||
fgSizer121->AddGrowableRow( 0 );
|
||||
fgSizer121->SetFlexibleDirection( wxBOTH );
|
||||
fgSizer121->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_staticText24 = new wxStaticText( this, wxID_ANY, wxT("Clock (us)"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticText24->Wrap( -1 );
|
||||
fgSizer10->Add( m_staticText24, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||
fgSizer121->Add( m_staticText24, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||
|
||||
guessButton = new wxButton( this, wxID_ANY, wxT("Guess"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );
|
||||
fgSizer121->Add( guessButton, 0, wxALIGN_BOTTOM|wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALIGN_TOP, 5 );
|
||||
|
||||
|
||||
fgSizer10->Add( fgSizer121, 1, wxEXPAND, 5 );
|
||||
|
||||
explorerClockSpinCtrl = new wxSpinCtrlDouble( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 100, 4, 1 );
|
||||
explorerClockSpinCtrl->SetDigits( 1 );
|
||||
@@ -952,7 +972,13 @@ ExplorerPanelGen::ExplorerPanelGen( wxWindow* parent, wxWindowID id, const wxPoi
|
||||
fgSizer10->Add( explorerReverseCheckBox, 0, wxALL, 5 );
|
||||
|
||||
|
||||
fgSizer12->Add( fgSizer10, 1, wxEXPAND, 5 );
|
||||
fgSizer13->Add( fgSizer10, 1, wxEXPAND, 5 );
|
||||
|
||||
histogram = new HistogramViewer( this, wxID_ANY, wxDefaultPosition, wxSize( 256,100 ), 0 );
|
||||
fgSizer13->Add( histogram, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_TOP|wxALL, 5 );
|
||||
|
||||
|
||||
fgSizer12->Add( fgSizer13, 1, wxEXPAND, 5 );
|
||||
|
||||
explorerText = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY );
|
||||
explorerText->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_TELETYPE, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
|
||||
@@ -972,6 +998,7 @@ ExplorerPanelGen::ExplorerPanelGen( wxWindow* parent, wxWindowID id, const wxPoi
|
||||
explorerTrackSpinCtrl->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
explorerSideSpinCtrl->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
explorerStartTimeSpinCtrl->Connect( wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED, wxSpinDoubleEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
guessButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ExplorerPanelGen::OnGuessClockButton ), NULL, this );
|
||||
explorerClockSpinCtrl->Connect( wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED, wxSpinDoubleEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
explorerBitOffsetSpinCtrl->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
explorerDecodeChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
@@ -986,6 +1013,7 @@ ExplorerPanelGen::~ExplorerPanelGen()
|
||||
explorerTrackSpinCtrl->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
explorerSideSpinCtrl->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
explorerStartTimeSpinCtrl->Disconnect( wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED, wxSpinDoubleEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
guessButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ExplorerPanelGen::OnGuessClockButton ), NULL, this );
|
||||
explorerClockSpinCtrl->Disconnect( wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED, wxSpinDoubleEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
explorerBitOffsetSpinCtrl->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
explorerDecodeChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ExplorerPanelGen::OnExplorerSettingChange ), NULL, this );
|
||||
|
||||
@@ -4897,11 +4897,27 @@
|
||||
<property name="permission">none</property>
|
||||
<property name="rows">0</property>
|
||||
<property name="vgap">0</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxFlexGridSizer" expanded="0">
|
||||
<object class="wxFlexGridSizer" expanded="1">
|
||||
<property name="cols">1</property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols">0</property>
|
||||
<property name="growablerows">1</property>
|
||||
<property name="hgap">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">fgSizer13</property>
|
||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="rows">0</property>
|
||||
<property name="vgap">0</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxFlexGridSizer" expanded="1">
|
||||
<property name="cols">2</property>
|
||||
<property name="flexible_direction">wxHORIZONTAL</property>
|
||||
<property name="growablecols">1</property>
|
||||
@@ -5293,6 +5309,22 @@
|
||||
<event name="OnSpinCtrlDouble">OnExplorerSettingChange</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxFlexGridSizer" expanded="1">
|
||||
<property name="cols">2</property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols">0</property>
|
||||
<property name="growablerows">0</property>
|
||||
<property name="hgap">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">fgSizer121</property>
|
||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="rows">0</property>
|
||||
<property name="vgap">0</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||
@@ -5355,6 +5387,83 @@
|
||||
<property name="wrap">-1</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_BOTTOM|wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALIGN_TOP</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxButton" 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="auth_needed">0</property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="bitmap"></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="current"></property>
|
||||
<property name="default">0</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="disabled"></property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="drag_accept_files">0</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="focus"></property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Guess</property>
|
||||
<property name="margins"></property>
|
||||
<property name="markup">0</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></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">guessButton</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="position"></property>
|
||||
<property name="pressed"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style">wxBU_EXACTFIT</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="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnButtonClick">OnGuessClockButton</event>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
@@ -5805,6 +5914,71 @@
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_HORIZONTAL|wxALIGN_TOP|wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="CustomControl" 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="class">HistogramViewer</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="construction"></property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="declaration"></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="drag_accept_files">0</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="include">#include "histogramviewer.h"</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size">-1,-1</property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">histogram</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="settings"></property>
|
||||
<property name="show">1</property>
|
||||
<property name="size">256,100</property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include <wx/dataview.h>
|
||||
#include <wx/gauge.h>
|
||||
#include <wx/spinctrl.h>
|
||||
#include "histogramviewer.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -458,6 +459,7 @@ class ExplorerPanelGen : public wxPanel
|
||||
wxStaticText* m_staticText231;
|
||||
wxSpinCtrlDouble* explorerStartTimeSpinCtrl;
|
||||
wxStaticText* m_staticText24;
|
||||
wxButton* guessButton;
|
||||
wxSpinCtrlDouble* explorerClockSpinCtrl;
|
||||
wxStaticText* m_staticText25;
|
||||
wxSpinCtrl* explorerBitOffsetSpinCtrl;
|
||||
@@ -465,6 +467,7 @@ class ExplorerPanelGen : public wxPanel
|
||||
wxChoice* explorerDecodeChoice;
|
||||
wxStaticText* m_staticText241;
|
||||
wxCheckBox* explorerReverseCheckBox;
|
||||
HistogramViewer* histogram;
|
||||
wxTextCtrl* explorerText;
|
||||
|
||||
// Virtual event handlers, override them in your derived class
|
||||
@@ -472,6 +475,7 @@ class ExplorerPanelGen : public wxPanel
|
||||
virtual void OnExplorerRefreshButton( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnExplorerSettingChange( wxSpinEvent& event ) { event.Skip(); }
|
||||
virtual void OnExplorerSettingChange( wxSpinDoubleEvent& event ) { event.Skip(); }
|
||||
virtual void OnGuessClockButton( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnExplorerSettingChange( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user