]> Creatis software - creaMaracasVisu.git/commitdiff
*** empty log message ***
authorJuan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Tue, 4 Aug 2009 15:35:04 +0000 (15:35 +0000)
committerJuan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Tue, 4 Aug 2009 15:35:04 +0000 (15:35 +0000)
lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialog.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramDialog.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramWidget.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/HistogramWidget.h
lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mathplot.cxx

index a60429eaad88f0730d6b8eb046f0cb4765048daa..d4b9809df89e3eecac7c3e7c62df4313b2611b3a 100644 (file)
@@ -1,6 +1,15 @@
 #include "HistogramDialog.h"
 #include <vector>
 
+#include "OpenImage.xpm"
+#include "Save.xpm"
+#include "Ok.xpm"
+#include "Cancel.xpm"
+#include "Edit.xpm"
+#include "creaSystem.h"
+
+
+
 // IMPLEMENT_CLASS(HistogramDialog, wxDialog)
 
 
@@ -18,8 +27,20 @@ HistogramDialog::HistogramDialog(wxWindow *parent,wxString title,vtkImageData* i
 :wxDialog(parent,-1,title,wxDefaultPosition,wxDefaultSize,wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE   ,_T("dialogBox"))
 {
 
-       _ctfun=NULL;
+       initializeHistogramDialog();
+       initializeHistogram(imageData);
+
+}
+
+HistogramDialog::HistogramDialog(wxWindow *parent,wxString title)
+:wxDialog(parent,-1,title,wxDefaultPosition,wxDefaultSize,wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE   ,_T("dialogBox")){
+       initializeHistogramDialog();
+}
+
+void HistogramDialog::initializeHistogramDialog(){
+    _ctfun=NULL;
        _tfun=NULL;
+       _maxgreyvalue=0;
 
        SetBackgroundColour(wxColour(255,255,255));
        /*
@@ -32,23 +53,24 @@ HistogramDialog::HistogramDialog(wxWindow *parent,wxString title,vtkImageData* i
         Histogram
        */
        
-       histogramW=new HistogramWidget(this, -1, wxPoint(0,0), wxSize(400,400),wxNO_BORDER ,imageData,type);
+       histogramW=new HistogramWidget(this, -1);
        
-       refreshed=false;
-
        /*
        Buttons
        */
-       okBtn = new wxButton(this,wxID_OK ,_T("OK"));
-       cancelBtn = new wxButton(this,wxID_CANCEL,_T("Cancel"));
+       wxBitmap bitmap0(Ok_xpm);
+       okBtn = new wxBitmapButton(this, wxID_OK, bitmap0,wxDefaultPosition,wxDefaultSize);             
+       
+       wxBitmap bitmap1(Cancel_xpm);
+       cancelBtn = new wxBitmapButton(this, wxID_CANCEL, bitmap1,wxDefaultPosition,wxDefaultSize);     
        
-       saveDataBtn = new wxButton(this,ID_SAVE,_T("Save"));
-       loadDataBtn = new wxButton(this,ID_LOAD,_T("Load"));
-       refreshBtn = new wxButton(this,ID_REFRESH,_T("Refresh"));
+       //saveDataBtn = new wxButton(this,ID_SAVE,_T("Save"));
+       //loadDataBtn = new wxButton(this,ID_LOAD,_T("Load"));
+       //refreshBtn = new wxButton(this,ID_REFRESH,_T("Refresh"));
        
-       Connect(saveDataBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &HistogramDialog::OnSaveData       );
-       Connect(loadDataBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &HistogramDialog::OnLoadData       );
-       Connect(refreshBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &HistogramDialog::OnRefreshBtn      );
+       //Connect(saveDataBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &HistogramDialog::OnSaveData     );
+       //Connect(loadDataBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &HistogramDialog::OnLoadData     );
+       //Connect(refreshBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &HistogramDialog::OnRefreshBtn    );
        
        //-------------------
        //GUI
@@ -58,19 +80,20 @@ HistogramDialog::HistogramDialog(wxWindow *parent,wxString title,vtkImageData* i
        wxBoxSizer * upper_box = new wxBoxSizer( wxHORIZONTAL );
        //Including components for plotter control
        upper_box->Add( histogramW, 4, wxGROW);
-       
+       upper_box->Add( getControls(),wxSizerFlags().Center() );
 
        //bottom Sizer
        wxBoxSizer *bottomBox = new wxBoxSizer( wxHORIZONTAL );
        bottomBox->Add( okBtn, wxSizerFlags().Center());
        bottomBox->AddSpacer(40);
-       bottomBox->Add( saveDataBtn,wxSizerFlags().Center() );
-       bottomBox->AddSpacer(40);
-       bottomBox->Add( loadDataBtn,wxSizerFlags().Center() );
-       bottomBox->AddSpacer(40);
-       bottomBox->Add( refreshBtn,wxSizerFlags().Center() );
-       bottomBox->AddSpacer(40);
+       //bottomBox->Add( saveDataBtn,wxSizerFlags().Center() );
+       //bottomBox->AddSpacer(40);
+       //bottomBox->Add( loadDataBtn,wxSizerFlags().Center() );
+       //bottomBox->AddSpacer(40);
+       //bottomBox->Add( refreshBtn,wxSizerFlags().Center() );
+       //bottomBox->AddSpacer(40);
        bottomBox->Add( cancelBtn,wxSizerFlags().Center() );
+       
        //Sizer
        wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
        sizer->Add(upper_box,1,wxEXPAND);       
@@ -80,70 +103,193 @@ HistogramDialog::HistogramDialog(wxWindow *parent,wxString title,vtkImageData* i
        SetBestSize(wxSize(600,600));
 }
 
-HistogramDialog::HistogramDialog(wxWindow *parent,wxString title)
-:wxDialog(parent,-1,title,wxDefaultPosition,wxDefaultSize,wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE   ,_T("dialogBox")){
-       _ctfun=NULL;
-       _tfun=NULL;
-
-       SetBackgroundColour(wxColour(255,255,255));
-       /*
-       Pointers
-       */
-       wxvtkmpr3Dview=NULL;
-       wxvtkclipping3Dview=NULL;
+wxSizer* HistogramDialog::getControls(){               
+               
+       wxSizer* sizer = new wxBoxSizer(wxVERTICAL);
        
-       /*
-        Histogram
-       */
+       wxBitmap bitmap0(OpenImage_xpm);
+       wxBitmapButton* opendata = new wxBitmapButton(this, -1, bitmap0,wxDefaultPosition,wxSize(30,30));       
+       Connect(opendata->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&HistogramDialog::OnLoadData);                  
+       sizer->Add(opendata,wxSizerFlags().Center());   
+       sizer->AddSpacer(5);
+
+       wxBitmap bitmap1(Save_xpm);
+       wxBitmapButton* savedata = new wxBitmapButton(this, -1, bitmap1,wxDefaultPosition,wxSize(30,30));       
+       Connect(savedata->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&HistogramDialog::OnSaveData);                  
+       sizer->Add(savedata,wxSizerFlags().Center());
+       sizer->AddSpacer(5);
+
+    sizer->Add(getBitmapCombo(),wxSizerFlags().Center());
        
-       histogramW=new HistogramWidget(this, -1);
        
-       refreshed=false;
-
-       /*
-       Buttons
-       */
-       okBtn = new wxButton(this,wxID_OK ,_T("OK"));
-       cancelBtn = new wxButton(this,wxID_CANCEL,_T("Cancel"));
        
-       saveDataBtn = new wxButton(this,ID_SAVE,_T("Save"));
-       loadDataBtn = new wxButton(this,ID_LOAD,_T("Load"));
-       refreshBtn = new wxButton(this,ID_REFRESH,_T("Refresh"));
+       return sizer;
+
+
+}
+
+wxSizer* HistogramDialog::getBitmapCombo(){
+       _bitmapsizer = new wxBoxSizer(wxHORIZONTAL);
+
+       _bitmapcombo = getBitmapComboElements();
+
+       wxBitmap bitmap1(Edit_xpm);
+       wxBitmapButton* edit = new wxBitmapButton(this, -1, bitmap1,wxDefaultPosition,wxSize(30,30));   
+       Connect(edit->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&HistogramDialog::OnEditBitmapCombo);                       
        
-       Connect(saveDataBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &HistogramDialog::OnSaveData       );
-       Connect(loadDataBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &HistogramDialog::OnLoadData       );
-       Connect(refreshBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &HistogramDialog::OnRefreshBtn      );
+       _bitmapsizer->Add(_bitmapcombo,wxSizerFlags().Center().FixedMinSize());
+       _bitmapsizer->Add(edit,wxSizerFlags().Center());
+
+       return _bitmapsizer;
        
-       //-------------------
-       //GUI
-       //-------------------
+}
+
+void HistogramDialog::OnEditBitmapCombo(wxCommandEvent& event){
+
+       wxBitmapComboBox* tempbitmapcombo = _bitmapcombo;
+
+       for(int i = 0; i < _bitmapsitems.size();i++){
+               delete _bitmapsitems[i];
+       }
+       _bitmapsitems.clear();
+
+       _bitmapcombo = getBitmapComboElements();
+       if(_bitmapsizer->Replace(tempbitmapcombo,_bitmapcombo)){
+               
+               
+               tempbitmapcombo->Destroy();
+       }
+       this->Layout();
+}
+
+wxBitmapComboBox* HistogramDialog::getBitmapComboElements(){
+       std::string currentpath = crea::System::GetDllAppPath("bbcreaMaracasVisu");     
+       currentpath.append(FILENAME);
+
+       std::vector<int> redvect,greenvect,bluevect;
+       std::vector<double> greyvect;
+
+
+       std::vector<HistogramDialogComboBoxItem*> bitmapsitems;
+       OnLoadComboBoxData(bitmapsitems, currentpath,greyvect, redvect,greenvect,bluevect);     
+       _bitmapsitems = bitmapsitems;
+       wxString* choices;
+       choices = new wxString[bitmapsitems.size()];
+       for(int i = 0; i < bitmapsitems.size();i++){
+               choices[i] = _T("");
+       }
+       wxBitmapComboBox* bitmapcombo = new wxBitmapComboBox(this, -1, _T(""), wxDefaultPosition, wxDefaultSize, bitmapsitems.size(),choices);
+
+       Connect(bitmapcombo->GetId(), wxEVT_COMMAND_COMBOBOX_SELECTED, (wxObjectEventFunction)&HistogramDialog::OnBitmapComboItemSelected);                     
        
-       //Upper Box
-       wxBoxSizer * upper_box = new wxBoxSizer( wxHORIZONTAL );
-       //Including components for plotter control
-       upper_box->Add( histogramW, 4, wxGROW);
+
+       for(int i = 0; i < bitmapsitems.size(); i++){
+        bitmapcombo->SetItemBitmap(i, bitmapsitems[i]->GetBitmap());
+       }
+
        
+       return  bitmapcombo;
+}
+void HistogramDialog::OnBitmapComboItemSelected(wxCommandEvent& event){
+       if(_bitmapcombo!=NULL){
+               int selecteditem = event.GetInt();              
+               if(_bitmapsitems.size()>selecteditem){
+                       HistogramDialogComboBoxItem* currentconfig = _bitmapsitems[selecteditem];
+                       this->eraseColorPoints();
+                       for(int i = 0; i < currentconfig->getGreyVector().size();i++){
+                               int greyv = currentconfig->getGreyVector()[i]*_maxgreyvalue;
+                               int red = currentconfig->getRedVector()[i];
+                               int green = currentconfig->getGreenVector()[i];
+                               int blue = currentconfig->getBlueVector()[i];
+
+                               this->addColorPoint(greyv, red, green, blue);
+                       }
+               }
+               
+       }
+}
+std::vector<wxBitmap*> HistogramDialog::GetBitmapsList(std::vector<double> greyvect, std::vector<int> redvect, std::vector<int> greenvect, std::vector<int> bluevect){
 
-       //bottom Sizer
-       wxBoxSizer *bottomBox = new wxBoxSizer( wxHORIZONTAL );
-       bottomBox->Add( okBtn, wxSizerFlags().Center());
-       bottomBox->AddSpacer(40);
-       bottomBox->Add( saveDataBtn,wxSizerFlags().Center() );
-       bottomBox->AddSpacer(40);
-       bottomBox->Add( loadDataBtn,wxSizerFlags().Center() );
-       bottomBox->AddSpacer(40);
-       bottomBox->Add( refreshBtn,wxSizerFlags().Center() );
-       bottomBox->AddSpacer(40);
-       bottomBox->Add( cancelBtn,wxSizerFlags().Center() );
-       //Sizer
-       wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
-       sizer->Add(upper_box,1,wxEXPAND);       
-    sizer->Add(bottomBox,0,wxCENTER);
-       SetAutoLayout( TRUE );
-       SetSizer( sizer );
-       SetBestSize(wxSize(600,600));
+       std::vector<wxBitmap*> bitmaps;
+       for(int i = 0; i < greyvect.size();i++){
+        //bitmaps.push_back();
+       }
 }
+void HistogramDialog::OnLoadComboBoxData(std::vector<HistogramDialogComboBoxItem*>& itembitmaps, std::string filename, std::vector<double>& greyvect, std::vector<int>& redvect, std::vector<int>& greenvect, std::vector<int>& bluevect){    
 
+       
+       std::ifstream file;     
+       file.open(  (const char*) (filename.c_str()) ); 
+       double gv=-1;
+       int in=-1,red=-1,gr=-1,bl=-1;
+
+       std::cout<<filename<<std::endl;
+       itembitmaps.clear();
+       if(file.is_open())
+       {       
+               bool add = false;
+               HistogramDialogComboBoxItem* item=NULL;
+               while(!file.eof())
+               {
+                       std::string line;
+                       std::getline(file,line);
+
+            if( (int)(line.find("<Colors>")!=-1))
+                       {
+                               item = new HistogramDialogComboBoxItem();
+                       }else if( (int)(line.find("RGBgreyValue"))!=-1)
+                       {
+                               int pos1=line.find(">");
+                               int pos2=line.find("<",pos1+1);
+                               std::string x=line.substr(pos1+1,pos2-pos1-1);
+                               gv=atof(x.c_str());                             
+                               
+                       }
+                       else if( (int)(line.find("red"))!=-1)
+                       {
+                               int pos1=line.find(">");
+                               int pos2=line.find("<",pos1+1);
+                               std::string x=line.substr(pos1+1,pos2-pos1-1);
+                               red=atoi(x.c_str());
+                               
+                       }
+                       else if( (int)(line.find("green"))!=-1)
+                       {
+                               int pos1=line.find(">");
+                               int pos2=line.find("<",pos1+1);
+                               std::string x=line.substr(pos1+1,pos2-pos1-1);
+                               gr=atoi(x.c_str());
+                       }
+                       else if( (int)(line.find("blue"))!=-1 )
+                       {
+                               int pos1=line.find(">");
+                               int pos2=line.find("<",pos1+1);
+                               std::string x=line.substr(pos1+1,pos2-pos1-1);
+                               bl=atoi(x.c_str());                                                             
+                               greyvect.push_back(gv);
+                               redvect.push_back(red);
+                               greenvect.push_back(gr);
+                               bluevect.push_back(bl);
+                       }else if( (int)(line.find("</Colors>"))!=-1 ){
+
+                               item->SetColors(greyvect,redvect,greenvect,bluevect);
+
+                               itembitmaps.push_back(item);
+
+                               greyvect.clear();
+                               redvect.clear();
+                               greenvect.clear();
+                               bluevect.clear();
+
+                       }
+                       
+                       line.clear();
+               }
+               file.close();                   
+               std::cout<<itembitmaps.size()<<std::endl;
+     } 
+       
+}
 //-----------------------
 //Handling events
 //-----------------------
@@ -556,6 +702,7 @@ void HistogramDialog::OnRefreshBtn(wxCommandEvent &event)
 **     Initialize the histogram 
 */
        void HistogramDialog::initializeHistogram(vtkImageData* img){
+               _maxgreyvalue = img->GetScalarRange()[1];
                histogramW->initializeHistogram(img);
        }
 /**
index d1881f6dd883cd620d5f09ade7825d24ccb11732..011314d19e71d17e5e0fc5f4d64435b4a78e016d 100644 (file)
  #include <vtkVolumeRayCastMapper.h>
  #include <vtkVolume.h>
  #include "../wxMPRWidget.h"
+#include "HistogramDialogComboBoxItem.h"
+
+#include <wx/bmpcbox.h>
+
+
+#define FILENAME "/Data/colorsfunction.txt"
 
 class HistogramDialog:public wxDialog
 {
@@ -128,6 +134,7 @@ public:
        void OnSaveData(wxCommandEvent& event);
        void OnLoadData(wxCommandEvent& event);
        void OnRefreshBtn(wxCommandEvent& event);
+       void OnEditBitmapCombo(wxCommandEvent& event);
 
        /**
        **      Initialize the histogram 
@@ -147,20 +154,27 @@ public:
                                                                        std::vector<double>& green,
                                                                        std::vector<double>& blue);
        void SetFunctions(vtkPiecewiseFunction* _opac, vtkColorTransferFunction* _color);
+
+       void OnBitmapComboItemSelected(wxCommandEvent& event);
 private:
        /*
        Histogram Widget
        */
        HistogramWidget*  histogramW;
-
+/**
+**     
+**/
+       double _maxgreyvalue;
        /*
         ok Button
        */
-       wxButton                *okBtn;
+       //wxButton              *okBtn;
+       wxBitmapButton          *okBtn;
        /*
         cancel Button
        */
-       wxButton                *cancelBtn;
+       //wxButton              *cancelBtn;
+       wxBitmapButton          *cancelBtn;
        /*
         save Button
        */
@@ -174,7 +188,7 @@ private:
        */
        wxButton                *refreshBtn;
 
-       
+       wxSizer* _bitmapsizer;
        
        // the user had pressed refresh
        bool refreshed;
@@ -187,11 +201,19 @@ private:
        //things to refresh
        wxVtkMPR3DView                                          *wxvtkmpr3Dview;
        wxVtkClipping3DView                                     *wxvtkclipping3Dview;
-       
-       
+
+       wxBitmapComboBox*       _bitmapcombo;   
+       std::vector<HistogramDialogComboBoxItem*> _bitmapsitems;
+       wxSizer* getControls();
+       wxSizer* getBitmapCombo();
+       wxBitmapComboBox* getBitmapComboElements();
+       void OnLoadComboBoxData(std::vector<HistogramDialogComboBoxItem*>& itembitmaps, std::string filename,std::vector<double>& greyvect, std::vector<int>& redvect, std::vector<int>& greenvect, std::vector<int>& bluevect);
+       std::vector<wxBitmap*> GetBitmapsList(std::vector<double> greyvect, std::vector<int> redvect, std::vector<int> greenvect, std::vector<int> bluevect);
 //     DECLARE_CLASS(HistogramDialog);
        // any class wishing to process wxWindows events must use this macro
        //DECLARE_EVENT_TABLE()
+
+       void initializeHistogramDialog();
 };
 
 #endif
index 1badcefd5ddff0a367a7622d46443ede3ecddf04..51a30e7354cf7e6b9c0b1237a89570c97b6a91e9 100644 (file)
@@ -8,6 +8,7 @@
  #include "HistogramWidget.h"
  #include  "vtkImageCast.h"
  #include  <math.h>
+
 // ----------------------------------------------------------------------------
 // WX headers inclusion.
 // For compilers that support precompilation, includes <wx/wx.h>.
@@ -15,8 +16,9 @@
 
        #ifndef WX_PRECOMP
        #include <wx/wx.h>
-       #endif
 
+       #endif
+#include <wx/bitmap.h>
 //----------------------------------------------------------------------------
 // Class implementation
 //----------------------------------------------------------------------------
@@ -41,15 +43,16 @@ HistogramWidget::HistogramWidget( wxWindow *parent, wxWindowID id, const wxPoint
        }
  */
        HistogramWidget::HistogramWidget( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, int flag,vtkImageData* imageData,int type):
-       wxPanel(parent,id,pos,size)
+       wxPanel(parent,id,wxDefaultPosition,wxDefaultSize)
        {
                 SetBackgroundColour(wxColour(255,255,255));
                //histogram
                histogram= new pHistogram(imageData);
+
                
                //plotter
                plotter=new pPlotter(this, 400,350);
-
+               
                //is a plotter of histograms
                plotter->setType(2);
                //setting the popMenu
@@ -59,8 +62,11 @@ HistogramWidget::HistogramWidget( wxWindow *parent, wxWindowID id, const wxPoint
                idHistogram=-1;
                transferenceFunctionHasColor=true;
                transferenceFunctionHasPoints=true;
-               this->type=type;;
+               this->type=type;
                
+               this->SetAutoLayout(true);
+               this->Refresh();
+        
                //drawing
                drawHistogram();
                drawTransferenceFunction();
@@ -74,9 +80,10 @@ HistogramWidget::HistogramWidget( wxWindow *parent, wxWindowID id, const wxPoint
                        SetBackgroundColour(wxColour(255,255,255));
                        histogram = NULL;       
                        
+                       
                        //plotter
                        plotter=new pPlotter(this, 400,350);
-
+                       
                        //is a plotter of histograms
                        plotter->setType(2);
                        //setting the popMenu
@@ -87,10 +94,14 @@ HistogramWidget::HistogramWidget( wxWindow *parent, wxWindowID id, const wxPoint
                        transferenceFunctionHasColor=true;
                        transferenceFunctionHasPoints=true;
                        this->type=type;;
+                       this->SetAutoLayout(true);
+                       this->Refresh();
                
                                
        }
 
+       
+       
        void HistogramWidget::initializeHistogram(vtkImageData* img){
                if(histogram ==NULL){
                        histogram= new pHistogram(img);
index 28c5184de22bb4bf31659c1b65a9972c3f4feffa..e04bbb150662f63a4bfdf8378b6547ee52ef892c 100644 (file)
@@ -155,6 +155,7 @@ public:
                                                                        std::vector<double>& blue);
 
 
+       
 private:
        
         pHistogram* histogram;
@@ -169,11 +170,12 @@ private:
         */
         bool transferenceFunctionHasPoints;
         bool transferenceFunctionHasColor;
+        wxPanel* getControls();
         /*
         * type=1 with transference function for moving
         * type=2 without transference function for moving
         */
-        int type;
+        int type;      
         
         DECLARE_CLASS(HistogramWidget);
         //----------------------------------------------------------------------------
index fc7203f6be4fac7673d9efbf32ad21f92bc6845f..5a34b170b12e57d2a12b07b2a0f6a22c85771e47 100644 (file)
@@ -394,7 +394,7 @@ EVT_MENU( mpID_LOCKASPECT,mpWindow::OnLockAspect)
 END_EVENT_TABLE()
 
 mpWindow::mpWindow( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, int flag )
-: wxScrolledWindow( parent, id, pos, size, flag, wxT("wxPlotter") )
+: wxScrolledWindow( parent, id, wxDefaultPosition, wxDefaultSize, flag, wxT("wxPlotter") )
 {
        m_scaleX = m_scaleY = 1.0;
        m_posX   = m_posY   = 0;