From 3d8f194f91b97f9fa8cc3b5a78a1d297f83fc107 Mon Sep 17 00:00:00 2001
From: corredor <Ricardo.Corredor@creatis.insa-lyon.fr>
Date: Fri, 30 Nov 2012 11:50:11 +0100
Subject: [PATCH] RaCNov2012 Correct resize of internal panels according to the
 window resize event

---
 .../src/interface/wxWindows/widgets/wxMPRWidget.cxx   | 11 ++++++++++-
 .../wxWindows/widgets/wxMaracasDialog_NViewers.cpp    |  2 ++
 .../wxWindows/widgets/wxMaracas_N_ViewersWidget.cxx   |  9 +++++++++
 .../wxWindows/widgets/wxMaracas_ViewerWidget.cxx      |  5 +++++
 4 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx
index e25d2c9..a11e073 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMPRWidget.cxx
@@ -168,6 +168,8 @@ wxMPRWidget::wxMPRWidget( wxWindow* parent,
 
 		wxSplitterWindow	*pnlSplitter		= new wxSplitterWindow( this , -1);
 		pnlSplitter	-> SetMinimumPaneSize( 2 );
+		//RaC Nov2012 Correctly resize internal panels with the window resize event
+		pnlSplitter->SetSashGravity(0.5);
 
 		wxPanel				*MPRPanel	= CreateMPRPanel(pnlSplitter,_vtkmprbasedata);
 		wxPanel				*controlPanel	= CreateControlPanel(pnlSplitter);	
@@ -206,6 +208,8 @@ void wxMPRWidget::setImageData(vtkImageData * img, double voxelsize){
 
 		wxSplitterWindow	*pnlSplitter		= new wxSplitterWindow( this , -1);
 		pnlSplitter	-> SetMinimumPaneSize( 2 );
+		//RaC Nov2012 Correctly resize internal panels with the window resize event
+				pnlSplitter->SetSashGravity(0.5);
 
 		wxPanel				*MPRPanel	= CreateMPRPanel(pnlSplitter,_vtkmprbasedata);
 		wxPanel				*controlPanel	= CreateControlPanel(pnlSplitter);	
@@ -405,6 +409,8 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm
 //EEDxx2.4
 		panelMPR3D	-> SetMinimumPaneSize( 5 );
 		panelMPR3D	-> SplitHorizontally( controlPanel3D,window3D,600  );
+		//RaC Nov2012 Correctly resize internal panels with the window resize event
+		panelMPR3D->SetSashGravity(0.5);
 
 		wxwindow=panelMPR3D;
 	}
@@ -449,6 +455,8 @@ wxPanel* wxMPRWidget::CreateView(int type,wxWindow *parent, vtkMPRBaseData *vtkm
 //EEDxx2.4
 		panelClipping3D	-> SetMinimumPaneSize( 5 );
 		panelClipping3D	-> SplitHorizontally( panelControl , window3D , 10  );
+		//RaC Nov2012 Correctly resize internal panels with the window resize event
+		panelClipping3D->SetSashGravity(0.5);
 		wxwindow=panelClipping3D;
 	}
 
@@ -574,7 +582,8 @@ wxPanel* wxMPRWidget::CreateMPRPanel4View(wxWindow *parent, vtkMPRBaseData *vtkm
 
 //EEDxx2.4
 	panelMPR3D	-> SetMinimumPaneSize( 5 );
-
+	//RaC Nov2012 Correctly resize internal panels with the window resize event
+	panelMPR3D->SetSashGravity(0.5);
 	panelMPR3D	-> SplitHorizontally( panelControl,window3D,200  );
 
 	notebook->AddPage( panelMPR3D, _T("MPR 3D - Clipping") );
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.cpp
index cd60332..867b425 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.cpp
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracasDialog_NViewers.cpp
@@ -43,6 +43,8 @@ wxMaracasDialog_NViewers::wxMaracasDialog_NViewers(wxWindow* parent, vtkImageDat
 {
 	wxSplitterWindow *splitpanel = new wxSplitterWindow(this, -1);
 	splitpanel->SetMinimumPaneSize(5);
+	//RaC Nov2012 Correctly resize internal panels with the window resize event
+	splitpanel->SetSashGravity(0.5);
 
 	viewer = new wxMaracas_N_ViewersWidget(splitpanel, img, type);
 //	std::string path = crea::System::GetDllAppPath("bbcreaMaracasVisu.dll"); // JPR
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_N_ViewersWidget.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_N_ViewersWidget.cxx
index dffd795..ed4001b 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_N_ViewersWidget.cxx
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_N_ViewersWidget.cxx
@@ -254,6 +254,8 @@
 		}else	if (nTypeView->size()==2)	{
 			wxSplitterWindow	*spliter	= new wxSplitterWindow( this , -1);
 			spliter->SetMinimumPaneSize(1);
+			//RaC Nov2012 Correctly resize internal panels with the window resize event
+			spliter->SetSashGravity(0.5);
  			wxwindow1 = new wxMaracas_ViewerWidget(spliter, imagedata, (*nTypeView)[0], mvtkmprbasedata);
  			wxwindow2 = new wxMaracas_ViewerWidget(spliter, imagedata, (*nTypeView)[1], mvtkmprbasedata);
 			spliter	-> SplitHorizontally( wxwindow1 , wxwindow2  );
@@ -264,6 +266,9 @@
 			wxSplitterWindow	*spliterA	= new wxSplitterWindow( spliter , -1);
 			spliter->SetMinimumPaneSize(1);
 			spliterA->SetMinimumPaneSize(1);
+			//RaC Nov2012 Correctly resize internal panels with the window resize event
+			spliter->SetSashGravity(0.5);
+			spliterA->SetSashGravity(0.5);
  			wxwindow1 = new wxMaracas_ViewerWidget(spliter , imagedata, (*nTypeView)[0], mvtkmprbasedata);
  			wxwindow2 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[1], mvtkmprbasedata);
  			wxwindow3 = new wxMaracas_ViewerWidget(spliterA, imagedata, (*nTypeView)[2], mvtkmprbasedata);
@@ -277,6 +282,10 @@
 			spliter->SetMinimumPaneSize(1);
 			spliterA->SetMinimumPaneSize(1);
 			spliterB->SetMinimumPaneSize(1);
+			//RaC Nov2012 Correctly resize internal panels with the window resize event
+			spliter->SetSashGravity(0.5);
+			spliterA->SetSashGravity(0.5);
+			spliterB->SetSashGravity(0.5);
 
 			spliter	-> SplitVertically( spliterA , spliterB   );
 			
diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx
index 7527bf2..b61bb0d 100644
--- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx
+++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxMaracas_ViewerWidget.cxx
@@ -162,6 +162,8 @@
 			panelClipping3D->SplitHorizontally( notebook , window3D , 10  );
 			//panelClipping3D->SetMinimumPaneSize( 15 );
 			panelClipping3D->SetMinimumPaneSize( 70 ); // JPR
+			//RaC Nov2012 Correctly resize internal panels with the window resize event
+			panelClipping3D->SetSashGravity(0.5);
 
 	/*		EED 04 / Febrary / 2010
 			panelControl			= new wxPanel(panelClipping3D,-1);
@@ -206,6 +208,9 @@
 			panelClipping3D->SetMinimumPaneSize( 130 );  // FCY
 			panelClipping3D->SplitHorizontally( panelControl , window3D , 0  );
 			//panelClipping3D->SetSashSize(10);
+
+			//RaC Nov2012 Correctly resize internal panels with the window resize event
+			panelClipping3D->SetSashGravity(0.5);
 			panelClipping3D->UpdateSize(); //FCY
 			wxwindow=panelClipping3D;
 
-- 
2.49.0