[Commits] (davids) colheader - checkpoint for proportional resizing

commits at osafoundation.org commits at osafoundation.org
Fri Apr 1 01:32:02 PST 2005


Commit by: davids
Modified files:
internal/wxPython-2.5/include/wx/colheader.h 1.5 1.6
internal/wxPython-2.5/include/wx/generic/colheader.h 1.18 1.19
internal/wxPython-2.5/src/generic/colheader.cpp 1.40 1.41
internal/wxPython-2.5/wxPython/demo/ColumnHeader.py 1.16 1.17
internal/wxPython-2.5/wxPython/src/_colheader_rename.i 1.3 1.4
internal/wxPython-2.5/wxPython/src/colheader.i 1.9 1.10

Log message:

colheader - checkpoint for proportional resizing
r=TBD



ViewCVS links:
http://cvs.osafoundation.org/index.cgi/internal/wxPython-2.5/include/wx/colheader.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.6
http://cvs.osafoundation.org/index.cgi/internal/wxPython-2.5/include/wx/generic/colheader.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.19
http://cvs.osafoundation.org/index.cgi/internal/wxPython-2.5/src/generic/colheader.cpp.diff?r1=text&tr1=1.40&r2=text&tr2=1.41
http://cvs.osafoundation.org/index.cgi/internal/wxPython-2.5/wxPython/demo/ColumnHeader.py.diff?r1=text&tr1=1.16&r2=text&tr2=1.17
http://cvs.osafoundation.org/index.cgi/internal/wxPython-2.5/wxPython/src/_colheader_rename.i.diff?r1=text&tr1=1.3&r2=text&tr2=1.4
http://cvs.osafoundation.org/index.cgi/internal/wxPython-2.5/wxPython/src/colheader.i.diff?r1=text&tr1=1.9&r2=text&tr2=1.10

Index: internal/wxPython-2.5/include/wx/generic/colheader.h
diff -u internal/wxPython-2.5/include/wx/generic/colheader.h:1.18 internal/wxPython-2.5/include/wx/generic/colheader.h:1.19
--- internal/wxPython-2.5/include/wx/generic/colheader.h:1.18	Thu Mar 31 00:46:19 2005
+++ internal/wxPython-2.5/include/wx/generic/colheader.h	Fri Apr  1 01:32:00 2005
@@ -54,40 +54,40 @@
 		wxClientDC		*dc,
 		const wxRect		*boundsR,
 		bool				bUseUnicode,
-		bool				bVisibleSelection );
+		bool				bVisibleSelection ) const;
 
 	long HitTest(
-		const wxPoint		&locationPt );
+		const wxPoint		&locationPt ) const;
 
 	void GetItemData(
-		wxColumnHeaderItem				*info );
+		wxColumnHeaderItem				*info ) const;
 	void SetItemData(
 		const wxColumnHeaderItem		*info );
 
 	void GetBitmapRef(
-		wxBitmap			&bitmapRef );
+		wxBitmap			&bitmapRef ) const;
 	void SetBitmapRef(
 		wxBitmap			&bitmapRef,
 		const wxRect		*boundsR );
 
 	void GetLabelText(
-		wxString			&textBuffer );
+		wxString			&textBuffer ) const;
 	void SetLabelText(
 		const wxString		&textBuffer );
 
-	long GetLabelJustification( void );
+	long GetLabelJustification( void ) const;
 	void SetLabelJustification(
 		long			textJust );
 
 	void GetUIExtent(
 		long			&originX,
-		long			&extentX );
+		long			&extentX ) const;
 	void SetUIExtent(
 		long			originX,
 		long			extentX );
 
 	bool GetFlagAttribute(
-		wxColumnHeaderFlagAttr		flagEnum );
+		wxColumnHeaderFlagAttr		flagEnum ) const;
 	bool SetFlagAttribute(
 		wxColumnHeaderFlagAttr		flagEnum,
 		bool						bFlagValue );
@@ -137,6 +137,7 @@
 	bool					m_BSelected;
 	bool					m_BSortEnabled;
 	bool					m_BSortAscending;
+	bool					m_BFixedWidth;
 };
 
 class WXDLLIMPEXP_ADV wxColumnHeader : public wxControl
@@ -172,11 +173,16 @@
 
 	wxSize CalculateDefaultSize( void ) const;
 	long GetTotalUIExtent( void ) const;
-	void ResizeToFit( void );
+	bool ResizeToFit( void );
+	bool RescaleToFit(
+		long				newWidth );
 	bool ResizeDivision(
 		long			itemIndex,
-		long			originX );
+		long				originX );
 
+	bool GetFlagProportionalResizing( void ) const;
+	void SetFlagProportionalResizing(
+		bool				bFlagValue );
 	bool GetFlagVisibleSelection( void ) const;
 	void SetFlagVisibleSelection(
 		bool				bFlagValue );
@@ -322,6 +328,7 @@
 	wxColumnHeaderItem		**m_ItemList;
 	long					m_ItemCount;
 	long					m_ItemSelected;
+	bool					m_BProportionalResizing;
 	bool					m_BVisibleSelection;
 	bool					m_BUseUnicode;
 

Index: internal/wxPython-2.5/include/wx/colheader.h
diff -u internal/wxPython-2.5/include/wx/colheader.h:1.5 internal/wxPython-2.5/include/wx/colheader.h:1.6
--- internal/wxPython-2.5/include/wx/colheader.h:1.5	Wed Mar 23 10:42:07 2005
+++ internal/wxPython-2.5/include/wx/colheader.h	Fri Apr  1 01:31:59 2005
@@ -39,7 +39,8 @@
 	wxCOLUMNHEADER_FLAGATTR_Enabled,
 	wxCOLUMNHEADER_FLAGATTR_Selected,
 	wxCOLUMNHEADER_FLAGATTR_SortEnabled,
-	wxCOLUMNHEADER_FLAGATTR_SortDirection
+	wxCOLUMNHEADER_FLAGATTR_SortDirection,
+	wxCOLUMNHEADER_FLAGATTR_FixedWidth
 }
 wxColumnHeaderFlagAttr;
 

Index: internal/wxPython-2.5/src/generic/colheader.cpp
diff -u internal/wxPython-2.5/src/generic/colheader.cpp:1.40 internal/wxPython-2.5/src/generic/colheader.cpp:1.41
--- internal/wxPython-2.5/src/generic/colheader.cpp:1.40	Thu Mar 31 16:25:29 2005
+++ internal/wxPython-2.5/src/generic/colheader.cpp	Fri Apr  1 01:32:00 2005
@@ -159,6 +159,7 @@
 	m_ItemCount = 0;
 	m_ItemSelected = wxCOLUMNHEADER_HITTEST_NoPart;
 
+	m_BProportionalResizing = true;
 	m_BVisibleSelection = true;
 
 #if wxUSE_UNICODE
@@ -168,6 +169,20 @@
 #endif
 }
 
+bool wxColumnHeader::GetFlagProportionalResizing( void ) const
+{
+	return m_BProportionalResizing;
+}
+
+void wxColumnHeader::SetFlagProportionalResizing(
+	bool			bFlagValue )
+{
+	if (m_BProportionalResizing == bFlagValue)
+		return;
+
+	m_BProportionalResizing = bFlagValue;
+}
+
 bool wxColumnHeader::GetFlagVisibleSelection( void ) const
 {
 	return m_BVisibleSelection;
@@ -431,6 +446,9 @@
 
 	wxControl::DoSetSize( x, y, width, height, sizeFlags );
 
+	if (m_BProportionalResizing)
+		RescaleToFit( width );
+
 	// FIXME: sloppy hack
 	wxControl::DoGetPosition( &(m_NativeBoundsR.x), &(m_NativeBoundsR.y) );
 	wxControl::DoGetSize( &(m_NativeBoundsR.width), &(m_NativeBoundsR.height) );
@@ -587,17 +605,28 @@
 	return extentX;
 }
 
-void wxColumnHeader::ResizeToFit( void )
+bool wxColumnHeader::RescaleToFit(
+	long				newWidth )
+{
+	if (newWidth <= 0)
+		return false;
+
+	return true;
+}
+
+bool wxColumnHeader::ResizeToFit( void )
 {
 long		extentX;
 
 	extentX = GetTotalUIExtent();
 	DoSetSize( m_NativeBoundsR.x, m_NativeBoundsR.y, extentX, m_NativeBoundsR.height, 0 );
+
+	return true;
 }
 
 bool wxColumnHeader::ResizeDivision(
-	long			itemIndex,
-	long			originX )
+	long				itemIndex,
+	long				originX )
 {
 wxColumnHeaderItem		*itemRef1, *itemRef2;
 long						deltaV;
@@ -1458,7 +1487,7 @@
 // NB: a copy and nothing else...
 //
 void wxColumnHeaderItem::GetItemData(
-	wxColumnHeaderItem			*info )
+	wxColumnHeaderItem			*info ) const
 {
 	if (info == NULL)
 		return;
@@ -1471,6 +1500,7 @@
 	info->m_BSelected = m_BSelected;
 	info->m_BSortEnabled = m_BSortEnabled;
 	info->m_BSortAscending = m_BSortAscending;
+	info->m_BFixedWidth = m_BFixedWidth;
 
 	GetLabelText( info->m_LabelTextRef );
 
@@ -1493,6 +1523,7 @@
 	m_BSelected = info->m_BSelected;
 	m_BSortEnabled = info->m_BSortEnabled;
 	m_BSortAscending = info->m_BSortAscending;
+	m_BFixedWidth = info->m_BFixedWidth;
 
 	SetLabelText( info->m_LabelTextRef );
 
@@ -1512,7 +1543,7 @@
 }
 
 void wxColumnHeaderItem::GetBitmapRef(
-	wxBitmap			&bitmapRef )
+	wxBitmap			&bitmapRef ) const
 {
 	if (m_BitmapRef != NULL)
 		bitmapRef = *m_BitmapRef;
@@ -1545,7 +1576,7 @@
 }
 
 void wxColumnHeaderItem::GetLabelText(
-	wxString			&textBuffer )
+	wxString			&textBuffer ) const
 {
 	textBuffer = m_LabelTextRef;
 }
@@ -1556,7 +1587,7 @@
 	m_LabelTextRef = textBuffer;
 }
 
-long wxColumnHeaderItem::GetLabelJustification( void )
+long wxColumnHeaderItem::GetLabelJustification( void ) const
 {
 	return m_TextJust;
 }
@@ -1569,7 +1600,7 @@
 
 void wxColumnHeaderItem::GetUIExtent(
 	long			&originX,
-	long			&extentX )
+	long			&extentX ) const
 {
 	originX = m_OriginX;
 	extentX = m_ExtentX;
@@ -1590,7 +1621,7 @@
 }
 
 bool wxColumnHeaderItem::GetFlagAttribute(
-	wxColumnHeaderFlagAttr		flagEnum )
+	wxColumnHeaderFlagAttr		flagEnum ) const
 {
 bool			bResult;
 
@@ -1614,6 +1645,10 @@
 		bResult = m_BSortAscending;
 		break;
 
+	case wxCOLUMNHEADER_FLAGATTR_FixedWidth:
+		bResult = m_BFixedWidth;
+		break;
+
 	default:
 		break;
 	}
@@ -1647,6 +1682,10 @@
 		m_BSortAscending = bFlagValue;
 		break;
 
+	case wxCOLUMNHEADER_FLAGATTR_FixedWidth:
+		m_BFixedWidth = bFlagValue;
+		break;
+
 	default:
 		bResult = false;
 		break;
@@ -1656,7 +1695,7 @@
 }
 
 long wxColumnHeaderItem::HitTest(
-	const wxPoint		&locationPt )
+	const wxPoint		&locationPt ) const
 {
 long		targetX, resultV;
 
@@ -1671,7 +1710,7 @@
 	wxClientDC		*dc,
 	const wxRect		*boundsR,
 	bool				bUseUnicode,
-	bool				bVisibleSelection )
+	bool				bVisibleSelection ) const
 {
 //	if ((boundsR == NULL) || boundsR->IsEmpty())
 	if (boundsR == NULL)

Index: internal/wxPython-2.5/wxPython/demo/ColumnHeader.py
diff -u internal/wxPython-2.5/wxPython/demo/ColumnHeader.py:1.16 internal/wxPython-2.5/wxPython/demo/ColumnHeader.py:1.17
--- internal/wxPython-2.5/wxPython/demo/ColumnHeader.py:1.16	Thu Mar 31 00:46:20 2005
+++ internal/wxPython-2.5/wxPython/demo/ColumnHeader.py	Fri Apr  1 01:32:00 2005
@@ -17,7 +17,7 @@
         # NB: should be 17 for Mac; 20 for all other platforms
         # wxColumnHeader can handle it
         self.colHeight = 20
-        self.colStartX = 200
+        self.colStartX = 175
         self.colStartY = 20
 
         self.stepSize = 0
@@ -61,15 +61,7 @@
 
         prompt = "[Unicode build: %d]" %(ch1.GetFlagUnicode())
         hasUnicode = ch1.GetFlagUnicode()
-        l1 = wx.StaticText( self, -1, prompt, (10, miscControlsY + 50), (150, 20) )
-
-        cb1 = wx.CheckBox( self, -1, "Enable", (self.colStartX, miscControlsY), (100, 20), wx.NO_BORDER )
-        self.Bind( wx.EVT_CHECKBOX, self.OnTestEnableCheckBox, cb1 )
-        cb1.SetValue( True )
-
-        cb2 = wx.CheckBox( self, -1, "Visible Selection", (self.colStartX + 120, miscControlsY), (150, 20), wx.NO_BORDER )
-        self.Bind( wx.EVT_CHECKBOX, self.OnTestVisibleSelectionCheckBox, cb2 )
-        cb2.SetValue( True )
+        l1 = wx.StaticText( self, -1, prompt, (10, miscControlsY + 60), (150, 20) )
 
         btn = wx.Button( self, -1, "Resize Bounds", (10, self.colStartY) )
         self.Bind( wx.EVT_BUTTON, self.OnTestResizeBoundsButton, btn )
@@ -83,6 +75,20 @@
         btn = wx.Button( self, -1, "Resize Division", (10, self.colStartY + 80 + 10 + 25) )
         self.Bind( wx.EVT_BUTTON, self.OnTestResizeDivisionButton, btn )
 
+        self.colStartX += 60
+
+        cb1 = wx.CheckBox( self, -1, "Enable", (self.colStartX, miscControlsY), (100, 20), wx.NO_BORDER )
+        self.Bind( wx.EVT_CHECKBOX, self.OnTestEnableCheckBox, cb1 )
+        cb1.SetValue( True )
+
+        cb2 = wx.CheckBox( self, -1, "Visible Selection", (self.colStartX, miscControlsY + 25), (150, 20), wx.NO_BORDER )
+        self.Bind( wx.EVT_CHECKBOX, self.OnTestVisibleSelectionCheckBox, cb2 )
+        cb2.SetValue( True )
+
+        cb3 = wx.CheckBox( self, -1, "Proportional Resizing", (self.colStartX, miscControlsY + 50), (200, 20), wx.NO_BORDER )
+        self.Bind( wx.EVT_CHECKBOX, self.OnTestProportionalResizingCheckBox, cb3 )
+        cb3.SetValue( True )
+
     def OnColumnHeaderClick( self, event ):
         ch = event.GetEventObject()
         self.l0.SetLabel( "(%d): clicked - selected (%ld)" %(event.GetId(), ch.GetSelectedItem()) )
@@ -147,6 +153,13 @@
         self.ch2.SetFlagVisibleSelection( curEnabled )
         self.l0.SetLabel( "selection visible (%d)" %(curEnabled) )
 
+    def OnTestProportionalResizingCheckBox( self, event ):
+        curEnabled = self.ch1.GetFlagProportionalResizing()
+        curEnabled = not curEnabled
+        self.ch1.SetFlagProportionalResizing( curEnabled )
+        self.ch2.SetFlagProportionalResizing( curEnabled )
+        self.l0.SetLabel( "proportional resizing (%d)" %(curEnabled) )
+
 #----------------------------------------------------------------------
 
 def runTest( frame, nb, log ):

Index: internal/wxPython-2.5/wxPython/src/colheader.i
diff -u internal/wxPython-2.5/wxPython/src/colheader.i:1.9 internal/wxPython-2.5/wxPython/src/colheader.i:1.10
--- internal/wxPython-2.5/wxPython/src/colheader.i:1.9	Thu Mar 31 00:46:20 2005
+++ internal/wxPython-2.5/wxPython/src/colheader.i	Fri Apr  1 01:32:01 2005
@@ -42,7 +42,8 @@
     wxCOLUMNHEADER_FLAGATTR_Enabled,
     wxCOLUMNHEADER_FLAGATTR_Selected,
     wxCOLUMNHEADER_FLAGATTR_SortEnabled,
-    wxCOLUMNHEADER_FLAGATTR_SortDirection
+    wxCOLUMNHEADER_FLAGATTR_SortDirection,
+    wxCOLUMNHEADER_FLAGATTR_FixedWidth
 };
 
 enum wxColumnHeaderHitTestResult
@@ -99,11 +100,16 @@
 
     wxSize CalculateDefaultSize( void ) const;
     long GetTotalUIExtent( void ) const;
-    void ResizeToFit( void );
+    bool ResizeToFit( void );
+    bool RescaleToFit(
+        long            newWidth );
     bool ResizeDivision(
         long            itemIndex,
         long            originX );
 
+    bool GetFlagProportionalResizing( void ) const;
+    void SetFlagProportionalResizing(
+        bool                bFlagValue );
     bool GetFlagVisibleSelection( void ) const;
     void SetFlagVisibleSelection(
         bool                bFlagValue );

Index: internal/wxPython-2.5/wxPython/src/_colheader_rename.i
diff -u internal/wxPython-2.5/wxPython/src/_colheader_rename.i:1.3 internal/wxPython-2.5/wxPython/src/_colheader_rename.i:1.4
--- internal/wxPython-2.5/wxPython/src/_colheader_rename.i:1.3	Mon Mar  7 11:12:53 2005
+++ internal/wxPython-2.5/wxPython/src/_colheader_rename.i	Fri Apr  1 01:32:00 2005
@@ -10,6 +10,7 @@
 %rename(COLUMNHEADER_FLAGATTR_Selected)     wxCOLUMNHEADER_FLAGATTR_Selected;
 %rename(COLUMNHEADER_FLAGATTR_SortEnabled)  wxCOLUMNHEADER_FLAGATTR_SortEnabled;
 %rename(COLUMNHEADER_FLAGATTR_SortDirection)  wxCOLUMNHEADER_FLAGATTR_SortDirection;
+%rename(COLUMNHEADER_FLAGATTR_FixedWidth)   wxCOLUMNHEADER_FLAGATTR_FixedWidth;
 %rename(COLUMNHEADER_HITTEST_NoPart)        wxCOLUMNHEADER_HITTEST_NoPart;
 %rename(COLUMNHEADER_HITTEST_ItemZero)      wxCOLUMNHEADER_HITTEST_ItemZero;
 %rename(ColumnHeaderEvent)                  wxColumnHeaderEvent;



More information about the Commits mailing list