]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialogComboBox.cxx
*** empty log message ***
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / HistogramDialogComboBox.cxx
index 6c8dcd3ed31f210f6e140c88829beee1d50b005c..3a997d5d22b75a6a63546958fa5a60b258f6d709 100644 (file)
@@ -12,6 +12,13 @@ HistogramDialogComboBox::HistogramDialogComboBox(wxWindow* parent)
 : wxPanel(parent)
 {
 
+       _img = NULL;    
+       _bitmapcombo=NULL;
+       _slidercolor=NULL;
+       _sliderwindowlevel=NULL;        
+       colorBar_Bitmap=NULL;
+       _bitmapsizer=NULL;
+
        this->SetSizer(getBitmapCombo());
        _img = NULL;
        _currentitem = -1;
@@ -33,7 +40,12 @@ void HistogramDialogComboBox::SetColors(std::vector<double> 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,15 +53,76 @@ 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){
        
@@ -167,7 +240,8 @@ 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());
@@ -192,6 +266,8 @@ void HistogramDialogComboBox::OnBitmapComboItemSelected(wxCommandEvent& event){
                        wxCommandEvent newevent(wxEVT_COMMAND_COMBOBOX_SELECTED,this->GetId());
             ProcessEvent(newevent);
                }
+
+
                
        }