]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/grid.cpp
Added more 3d rendering to row and col labels and removed sunken border style from...
[wxWidgets.git] / src / generic / grid.cpp
index dccc132f5b2e2e3dc0ba0dacd4b285a7264969ca..a999ea3e08a6717f7f331a6dacd0caf4e4ddf0b5 100644 (file)
@@ -854,7 +854,7 @@ wxGridWindow::wxGridWindow( wxGrid *parent,
                             wxGridRowLabelWindow *rowLblWin,
                             wxGridColLabelWindow *colLblWin,
                             wxWindowID id, const wxPoint &pos, const wxSize &size )
-        : wxPanel( parent, id, pos, size, wxSUNKEN_BORDER, "grid window" )
+        : wxPanel( parent, id, pos, size, 0, "grid window" )
 {
     m_owner = parent;
     m_rowLabelWin = rowLblWin;
@@ -1124,8 +1124,8 @@ void wxGrid::CalcDimensions()
 
     if ( m_numRows > 0  &&  m_numCols > 0 )
     {
-        int right = m_colRights[ m_numCols-1 ] + 20;
-        int bottom = m_rowBottoms[ m_numRows-1 ] + 20;
+        int right = m_colRights[ m_numCols-1 ] + 50;
+        int bottom = m_rowBottoms[ m_numRows-1 ] + 50;
 
         // TODO: restore the scroll position that we had before sizing
         //
@@ -1600,7 +1600,7 @@ void wxGrid::ProcessRowLabelMouseEvent( wxMouseEvent& event )
                   rect.height = ch - rect.y;
                   m_rowLabelWin->Refresh( TRUE, &rect );
                   rect.width = cw;
-                  m_gridWin->Refresh( TRUE, &rect );
+                  m_gridWin->Refresh( FALSE, &rect );
                 }
 
                 ShowCellEditControl();
@@ -1787,7 +1787,7 @@ void wxGrid::ProcessColLabelMouseEvent( wxMouseEvent& event )
                   rect.height = m_colLabelHeight;
                   m_colLabelWin->Refresh( TRUE, &rect );
                   rect.height = ch;
-                  m_gridWin->Refresh( TRUE, &rect );
+                  m_gridWin->Refresh( FALSE, &rect );
                 }
 
                 ShowCellEditControl();
@@ -2558,7 +2558,7 @@ void wxGrid::SetCurrentCell( const wxGridCellCoords& coords )
     {
         wxRect r( SelectionToDeviceRect() );
         ClearSelection();
-        if ( !GetBatchCount() ) m_gridWin->Refresh( TRUE, &r );
+        if ( !GetBatchCount() ) m_gridWin->Refresh( FALSE, &r );
     }
 }
 
@@ -2814,18 +2814,18 @@ void wxGrid::DrawRowLabel( wxDC& dc, int row )
 {
     if ( m_rowHeights[row] <= 0 ) return;
 
-    // draw the label's horizontal border (the vertical border is
-    // provided by the cell area window margin)
-    //
+    int rowTop = m_rowBottoms[row] - m_rowHeights[row];
+    
     dc.SetPen( *wxBLACK_PEN );
-
-    dc.DrawLine( 0, m_rowBottoms[row]+1,
-                 m_rowLabelWidth, m_rowBottoms[row]+1 );
-
+    dc.DrawLine( m_rowLabelWidth-1, rowTop,
+                 m_rowLabelWidth-1, m_rowBottoms[row]-1 );
+    
+    dc.DrawLine( 0, m_rowBottoms[row]-1,
+                 m_rowLabelWidth-1, m_rowBottoms[row]-1 );
+    
     dc.SetPen( *wxWHITE_PEN );
-
-    dc.DrawLine( 0, m_rowBottoms[row]+2,
-                 m_rowLabelWidth, m_rowBottoms[row]+2 );
+    dc.DrawLine( 0, rowTop, 0, m_rowBottoms[row]-1 );
+    dc.DrawLine( 0, rowTop, m_rowLabelWidth-1, rowTop );
 
     dc.SetBackgroundMode( wxTRANSPARENT );
     dc.SetTextForeground( GetLabelTextColour() );
@@ -2861,18 +2861,22 @@ void wxGrid::DrawColLabel( wxDC& dc, int col )
 {
     if ( m_colWidths[col] <= 0 ) return;
 
-    // draw the label's vertical border (the horizontal border is
-    // provided by the cell area window margin)
-    //
+    int colLeft = m_colRights[col] - m_colWidths[col];
+    
     dc.SetPen( *wxBLACK_PEN );
-
-    dc.DrawLine( m_colRights[col]+1, 0,
-                 m_colRights[col]+1, m_colLabelHeight );
-
+    dc.DrawLine( m_colRights[col]-1, 0,
+                 m_colRights[col]-1, m_colLabelHeight-1 );
+    
+    dc.DrawLine( colLeft, m_colLabelHeight-1,
+                 m_colRights[col]-1, m_colLabelHeight-1 );
+    
     dc.SetPen( *wxWHITE_PEN );
+    dc.DrawLine( colLeft, 0, colLeft, m_colLabelHeight-1 );
+    dc.DrawLine( colLeft, 0, m_colRights[col]-1, 0 );
 
-    dc.DrawLine( m_colRights[col]+2, 0,
-                 m_colRights[col]+2, m_colLabelHeight );
+    dc.SetBackgroundMode( wxTRANSPARENT );
+    dc.SetTextForeground( GetLabelTextColour() );
+    dc.SetFont( GetLabelFont() );
 
     dc.SetBackgroundMode( wxTRANSPARENT );
     dc.SetTextForeground( GetLabelTextColour() );
@@ -4152,7 +4156,7 @@ void wxGrid::SetGridLineColour( const wxColour& colour )
 
         wxClientDC dc( m_gridWin );
         PrepareDC( dc );
-        DrawAllGridLines( dc );
+        DrawAllGridLines( dc, wxRegion() );
     }
 }
 
@@ -4168,7 +4172,7 @@ void wxGrid::EnableGridLines( bool enable )
             {
                 wxClientDC dc( m_gridWin );
                 PrepareDC( dc );
-                DrawAllGridLines( dc );
+                DrawAllGridLines( dc, wxRegion() );
             }
             else
             {
@@ -4492,18 +4496,18 @@ void wxGrid::SelectRow( int row, bool addToSelected )
 
         for (i = 0; i < 4; i++ )
             if ( need_refresh[i] && rect[i] != wxGridNoCellRect )
-                m_gridWin->Refresh( TRUE, &(rect[i]) );
+                m_gridWin->Refresh( FALSE, &(rect[i]) );
     }
     else
     {
         r = SelectionToDeviceRect();
         ClearSelection();
-        if ( r != wxGridNoCellRect ) m_gridWin->Refresh( TRUE, &r );
+        if ( r != wxGridNoCellRect ) m_gridWin->Refresh( FALSE, &r );
 
         m_selectedTopLeft.Set( row, 0 );
         m_selectedBottomRight.Set( row, m_numCols-1 );
         r = SelectionToDeviceRect();
-        m_gridWin->Refresh( TRUE, &r );
+        m_gridWin->Refresh( FALSE, &r );
     }
 
     wxGridRangeSelectEvent gridEvt( GetId(),
@@ -4568,7 +4572,7 @@ void wxGrid::SelectCol( int col, bool addToSelected )
 
         for (i = 0; i < 4; i++ )
             if ( need_refresh[i] && rect[i] != wxGridNoCellRect )
-                m_gridWin->Refresh( TRUE, &(rect[i]) );
+                m_gridWin->Refresh( FALSE, &(rect[i]) );
     }
     else
     {
@@ -4576,12 +4580,12 @@ void wxGrid::SelectCol( int col, bool addToSelected )
     
         r = SelectionToDeviceRect();
         ClearSelection();
-        if ( r != wxGridNoCellRect ) m_gridWin->Refresh( TRUE, &r );
+        if ( r != wxGridNoCellRect ) m_gridWin->Refresh( FALSE, &r );
 
         m_selectedTopLeft.Set( 0, col );
         m_selectedBottomRight.Set( m_numRows-1, col );
         r = SelectionToDeviceRect();
-        m_gridWin->Refresh( TRUE, &r );
+        m_gridWin->Refresh( FALSE, &r );
     }
 
     wxGridRangeSelectEvent gridEvt( GetId(),
@@ -4706,7 +4710,7 @@ void wxGrid::SelectBlock( int topRow, int leftCol, int bottomRow, int rightCol )
         // various Refresh() calls
         for (i = 0; i < 4; i++ )
             if ( need_refresh[i] && rect[i] != wxGridNoCellRect )
-                m_gridWin->Refresh( TRUE, &(rect[i]) );
+                m_gridWin->Refresh( FALSE, &(rect[i]) );
     }
 
     // only generate an event if the block is not being selected by