X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FpPlotter%2FHistogramDialogComboBox.cxx;h=2809b4e7c5c17c6bd1a99a7fdb8bf7bf3fb0bb98;hb=e60eea9083457889b9603a815db80af918f983da;hp=6c8dcd3ed31f210f6e140c88829beee1d50b005c;hpb=67508e2c541ebe1a7ab4f3a401fcb8bb53984fc8;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx index 6c8dcd3..2809b4e 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx @@ -11,6 +11,12 @@ HistogramDialogComboBox::HistogramDialogComboBox(wxWindow* parent) : wxPanel(parent) { + _img = NULL; + _bitmapcombo=NULL; + _slidercolor=NULL; + _sliderwindowlevel=NULL; + colorBar_Bitmap=NULL; + _bitmapsizer=NULL; this->SetSizer(getBitmapCombo()); _img = NULL; @@ -18,10 +24,9 @@ HistogramDialogComboBox::HistogramDialogComboBox(wxWindow* parent) _maxgreyvalue=0; } -HistogramDialogComboBox::~HistogramDialogComboBox(){ - - +HistogramDialogComboBox::~HistogramDialogComboBox(){ } + void HistogramDialogComboBox::SetColors(std::vector greyvect, std::vector redvect, std::vector greenvect, std::vector bluevect){ _greyvect=greyvect; @@ -31,9 +36,13 @@ void HistogramDialogComboBox::SetColors(std::vector greyvect, std::vecto } - wxSizer* HistogramDialogComboBox::getBitmapCombo(){ - _bitmapsizer = new wxBoxSizer(wxHORIZONTAL); + //_bitmapsizer = new wxBoxSizer(wxVERTICAL); + _bitmapsizer = new wxBoxSizer(wxVERTICAL); + + + + wxBoxSizer* comboeditsizer = new wxBoxSizer(wxHORIZONTAL); _bitmapcombo = getBitmapComboElements(); @@ -41,23 +50,87 @@ wxSizer* HistogramDialogComboBox::getBitmapCombo(){ wxBitmapButton* edit = new wxBitmapButton(this, -1, bitmap1,wxDefaultPosition,wxSize(30,30)); Connect(edit->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&HistogramDialogComboBox::OnEditBitmapCombo); - _bitmapsizer->Add(_bitmapcombo,wxSizerFlags().Center().FixedMinSize()); - _bitmapsizer->Add(edit,wxSizerFlags().Center()); + comboeditsizer->Add(_bitmapcombo,wxSizerFlags().Center().FixedMinSize()); + comboeditsizer->Add(edit,wxSizerFlags().Center()); + + + _bitmapsizer->Add(comboeditsizer,wxSizerFlags().FixedMinSize().Center()); + _bitmapsizer->AddSpacer(5); + _bitmapsizer->Add(getSlidersWlCo(),wxSizerFlags().Expand().Center()); return _bitmapsizer; } +wxSizer* HistogramDialogComboBox::getSlidersWlCo(){ + wxBoxSizer* sizersliders = new wxBoxSizer(wxVERTICAL); + + _slidercolor = new wxSlider(this, -1,1,0,1,wxDefaultPosition,wxDefaultSize,wxSL_LABELS); + _sliderwindowlevel = new wxSlider(this, -1,1,0,1,wxDefaultPosition,wxDefaultSize,wxSL_LABELS); + + sizersliders->Add(_slidercolor,wxSizerFlags().Expand().Center()); + sizersliders->Add(_sliderwindowlevel,wxSizerFlags().Expand().Center()); + + Connect(_slidercolor->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&HistogramDialogComboBox::OnColorLevelChanged); + Connect(_sliderwindowlevel->GetId(), wxEVT_SCROLL_THUMBTRACK, (wxObjectEventFunction)&HistogramDialogComboBox::OnWindowLevelChanged); + + return sizersliders; +} + +double HistogramDialogComboBox::GetWindowLevel(){ + if(_sliderwindowlevel != NULL){ + return _sliderwindowlevel->GetValue(); + } +} + +double HistogramDialogComboBox::GetColorLevel(){ + if(_slidercolor != NULL){ + return _slidercolor->GetValue(); + } +} + +void HistogramDialogComboBox::OnColorLevelChanged(wxCommandEvent& event){ + _slidercolor->GetValue(); + + wxCommandEvent newevent(wxEVT_SCROLL_THUMBTRACK,this->GetId()); + ProcessEvent(newevent); + +} +void HistogramDialogComboBox::OnWindowLevelChanged(wxCommandEvent& event){ + _sliderwindowlevel->GetValue(); + + wxCommandEvent newevent(wxEVT_SCROLL_THUMBTRACK,this->GetId()); + ProcessEvent(newevent); + +} + void HistogramDialogComboBox::setImageData(vtkImageData* img){ _maxgreyvalue = img->GetScalarRange()[1]; _img = img; + + setSlidersValue(); + } + +void HistogramDialogComboBox::setSlidersValue(){ + if(_img!=NULL){ + if(_slidercolor!=NULL){ + _slidercolor->SetRange(_img->GetScalarRange()[0],_img->GetScalarRange()[1]); + _slidercolor->SetValue((_img->GetScalarRange()[0]+_img->GetScalarRange()[1])/2); + } + if(_sliderwindowlevel!=NULL){ + _sliderwindowlevel->SetRange(_img->GetScalarRange()[0],_img->GetScalarRange()[1]); + _sliderwindowlevel->SetValue((_img->GetScalarRange()[0]+_img->GetScalarRange()[1])/2); + } + } +} + void HistogramDialogComboBox::OnEditBitmapCombo(wxCommandEvent& event){ if(_img!=NULL){ bool createaddandremovecontrols = true; HistogramDialog* dialog = new HistogramDialog(this,_T("Color Configuration"),createaddandremovecontrols); - dialog->initializeHistogram(_img); + dialog->initializeHistogram(_img); dialog->setInfoPanExtraControls(_bitmapsitems); if(dialog->ShowModal()==wxID_OK){ @@ -87,10 +160,8 @@ void HistogramDialogComboBox::OnEditBitmapCombo(wxCommandEvent& event){ } dialog->Destroy(); } - - - } + void HistogramDialogComboBox::saveCurrentConfiguration(std::vector& itembitmaps,std::string filename){ std::ofstream file; @@ -98,8 +169,6 @@ void HistogramDialogComboBox::saveCurrentConfiguration(std::vector" << std::endl; @@ -140,12 +209,9 @@ void HistogramDialogComboBox::saveCurrentConfiguration(std::vector" << std::endl; } } - file << " "<< std::endl; - } - file << "" << std::endl; - + file << "" << std::endl; } file.close(); @@ -167,13 +233,10 @@ wxBitmapComboBox* HistogramDialogComboBox::getBitmapComboElements(){ bitmapcombo->SetSize(65,30); Connect(bitmapcombo->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction)&HistogramDialogComboBox::OnBitmapComboItemSelected); - for(int i = 0; i < bitmapsitems.size(); i++){ bitmapcombo->SetItemBitmap(i, bitmapsitems[i]->GetBitmap()); } - - return bitmapcombo; } void HistogramDialogComboBox::OnBitmapComboItemSelected(wxCommandEvent& event){ @@ -191,10 +254,8 @@ void HistogramDialogComboBox::OnBitmapComboItemSelected(wxCommandEvent& event){ _value = currentconfig->getValueVector(); wxCommandEvent newevent(wxEVT_COMMAND_COMBOBOX_SELECTED,this->GetId()); ProcessEvent(newevent); - } - + } } - } void HistogramDialogComboBox::OnLoadComboBoxData(std::vector& itembitmaps, std::string filename) @@ -277,7 +338,7 @@ void HistogramDialogComboBox::OnLoadComboBoxData(std::vectorSetColors(greyvect,redvect,greenvect,bluevect); item->SetTransferFunction(greyvecttransfunct,value); - for(int i = 0; i < greyvecttransfunct.size();i++){ + /*for(int i = 0; i < greyvecttransfunct.size();i++){ std::cout<<"HistogramDialogComboBox::OnLoadComboBoxData("<& greyl { for(int i = 0; i < _greyvecttransfer.size();i++){ greylevel.push_back(_greyvecttransfer[i]*_maxgreyvalue); - value.push_back(_value[i]); - - + value.push_back(_value[i]); } } @@ -329,12 +384,11 @@ void HistogramDialogComboBox::GetValuesColorPointsFunction(std::vector& std::vector& red, std::vector& green, std::vector& blue) -{ - +{ for(int i = 0; i < _greyvect.size();i++){ greylevel.push_back(_greyvect[i]*_maxgreyvalue); red.push_back(_redvect[i]); green.push_back(_greenvect[i]); blue.push_back(_bluevect[i]); } -} \ No newline at end of file +}