#include namespace creaImageIO { /** ** Begin of the threshold panel **/ WxGimmickTools::WxGimmickTools(wxWindow* parent) : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN) { wxButton *thresholdGoBtn = new wxButton(this,wxID_ANY,_T("Add Fake Color"), wxDefaultPosition, wxSize(200,30) ); wxButton *thresholdRemoveBtn = new wxButton(this,wxID_ANY,_T("Remove Fake Color"), wxDefaultPosition, wxSize(200,30) ); _interpolationCheckBox = new wxCheckBox(this, -1, _T("Image interpolation") ); _interpolationCheckBox->SetValue(true); _opacity = new wxSlider(this, wxID_ANY, 6, 1, 10, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS, wxDefaultValidator); _thresholdGo = false; double range[2]; interfMainPanel::getInstance()->getImageRange(range); int min = (int)floor (range[0]); int max = (int)ceil (range[1]); _mBarThreshold = new mBarRange(this,70,65); _mBarThreshold->SetMin(0); _mBarThreshold->SetStart(0); _mBarThreshold-> SetOrientation( true ); _mBarThreshold-> setActiveStateTo(true); _mBarThreshold-> setVisibleLabels( true ); _mBarThreshold-> setDeviceEndMargin(10); _mBarThreshold-> setRepresentedValues( min , max ); _mBarThreshold-> setDeviceBlitStart(10,10); _mBarThreshold-> setIfWithActualDrawed( false ); _mBarThreshold-> SetStart( min ); _mBarThreshold-> SetEnd( max ); Connect( thresholdGoBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxGimmickTools::onThresholdGo ); Connect( thresholdRemoveBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &WxGimmickTools::onThresholdRemove ); Connect( _interpolationCheckBox->GetId(), wxEVT_COMMAND_CHECKBOX_CLICKED, (wxObjectEventFunction) &WxGimmickTools::onThresholdInterpolation ); wxFlexGridSizer * sizer = new wxFlexGridSizer(1); sizer -> Add( new wxStaticText(this,-1,_T("Image Threshold")) , 1, wxGROW ); sizer -> Add( _mBarThreshold, 1, wxGROW ); sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW ); sizer -> Add( new wxStaticText(this,-1,_T("Opacity Level")) , 1, wxGROW ); sizer -> Add( _opacity, 1, wxGROW ); sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW ); sizer -> Add( thresholdGoBtn, 1, wxGROW ); sizer -> Add( thresholdRemoveBtn, 1, wxGROW ); sizer -> Add( new wxStaticText(this,-1,_T(" ")) , 1, wxGROW ); sizer -> Add( _interpolationCheckBox, 1, wxGROW ); this->SetSizer( sizer ); this->SetAutoLayout( true ); this->Layout(); } WxGimmickTools::~WxGimmickTools(){ } void WxGimmickTools::onThresholdChange(wxCommandEvent& event) { if (_thresholdGo) { //interfMainPanel::getInstance()->onThresholdChange(); } } void WxGimmickTools::onThresholdGo(wxCommandEvent& event) { if (!_thresholdGo) { //interfMainPanel::getInstance()->onThreshold(); _thresholdGo=true; } } void WxGimmickTools::onThresholdRemove(wxCommandEvent& event) { if (_thresholdGo) { //interfMainPanel::getInstance()->onThresholdRemove( ); _thresholdGo=false; } } void WxGimmickTools::onThresholdStop() { if (_thresholdGo) { //interfMainPanel::getInstance()->onThresholdRemove( ); _thresholdGo=false; } } void WxGimmickTools::onThresholdInstantChange(double range[]) { range[0] = _mBarThreshold->GetStart(); range[1] = _mBarThreshold->GetEnd(); } void WxGimmickTools::onThresholdInterpolation(wxCommandEvent& event) { //interfMainPanel::getInstance()->onThresholdInterpolation(_interpolationCheckBox->GetValue()); } void WxGimmickTools::onChangeOpacity(wxScrollEvent& event) { int opacity = _opacity->GetValue(); //interfMainPanel::getInstance()->onThresholdChangeOpacity(opacity); } BEGIN_EVENT_TABLE(WxGimmickTools, wxPanel) EVT_COMMAND(wxID_ANY, wxEVT_TSBAR_START, WxGimmickTools :: onThresholdChange) EVT_COMMAND(wxID_ANY, wxEVT_TSBAR_END, WxGimmickTools :: onThresholdChange) EVT_COMMAND(wxID_ANY, wxEVT_TSBAR_MOVED, WxGimmickTools :: onThresholdChange) EVT_SCROLL(WxGimmickTools :: onChangeOpacity) END_EVENT_TABLE() } // EO namespace creaImageIO