HistogramDialogComboBox::HistogramDialogComboBox(wxWindow* parent)
: wxPanel(parent)
{
+ _img = NULL;
+ _bitmapcombo=NULL;
+ _slidercolor=NULL;
+ _sliderwindowlevel=NULL;
+ colorBar_Bitmap=NULL;
+ _bitmapsizer=NULL;
this->SetSizer(getBitmapCombo());
_img = NULL;
_maxgreyvalue=0;
}
-HistogramDialogComboBox::~HistogramDialogComboBox(){
-
-
+HistogramDialogComboBox::~HistogramDialogComboBox(){
}
+
void HistogramDialogComboBox::SetColors(std::vector<double> greyvect, std::vector<double> redvect, std::vector<double> greenvect, std::vector<double> bluevect){
_greyvect=greyvect;
}
-
wxSizer* HistogramDialogComboBox::getBitmapCombo(){
- _bitmapsizer = new wxBoxSizer(wxHORIZONTAL);
+ //_bitmapsizer = new wxBoxSizer(wxVERTICAL);
+ _bitmapsizer = new wxBoxSizer(wxVERTICAL);
+
+
+
+ wxBoxSizer* comboeditsizer = new wxBoxSizer(wxHORIZONTAL);
_bitmapcombo = getBitmapComboElements();
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){
}
dialog->Destroy();
}
-
-
-
}
+
void HistogramDialogComboBox::saveCurrentConfiguration(std::vector<HistogramDialogComboBoxItem*>& itembitmaps,std::string filename){
std::ofstream file;
double gv=-1,red=-1,gr=-1,bl=-1;
int in=-1;
-
-
if(file.is_open())
{
file << "<ComboBoxData>" << std::endl;
file << " </Colors>" << std::endl;
}
}
-
file << " </ComboBoxItem>"<< std::endl;
-
}
- file << "</ComboBoxData>" << std::endl;
-
+ file << "</ComboBoxData>" << std::endl;
}
file.close();
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){
_value = currentconfig->getValueVector();
wxCommandEvent newevent(wxEVT_COMMAND_COMBOBOX_SELECTED,this->GetId());
ProcessEvent(newevent);
- }
-
+ }
}
-
}
void HistogramDialogComboBox::OnLoadComboBoxData(std::vector<HistogramDialogComboBoxItem*>& itembitmaps, std::string filename)
item->SetColors(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("<<greyvecttransfunct[i]<<std::endl;
std::cout<<value[i]<<std::endl;
}
std::cout<<redvect[i]<<std::endl;
std::cout<<greenvect[i]<<std::endl;
std::cout<<bluevect[i]<<std::endl;
- }
+ }*/
itembitmaps.push_back(item);
-
greyvecttransfunct.clear();
value.clear();
greyvect.clear();
redvect.clear();
greenvect.clear();
bluevect.clear();
-
}
-
line.clear();
}
file.close();
//std::cout<<itembitmaps.size()<<std::endl;
- }
-
+ }
}
/**
{
for(int i = 0; i < _greyvecttransfer.size();i++){
greylevel.push_back(_greyvecttransfer[i]*_maxgreyvalue);
- value.push_back(_value[i]);
-
-
+ value.push_back(_value[i]);
}
}
std::vector<double>& red,
std::vector<double>& green,
std::vector<double>& 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
+}