]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/gridg.cpp
some updates...
[wxWidgets.git] / src / generic / gridg.cpp
index 5798ad501e2346f77adac3de8397c9871d4874ea..e1a020e44d95ab36235c0a6b773afede45aca943 100644 (file)
@@ -98,7 +98,7 @@ wxGenericGrid::wxGenericGrid()
   m_currentRectVisible = FALSE;
   m_editable = TRUE;
 
-  m_editInPlace = TRUE;
+  m_editInPlace = FALSE;
   m_inOnTextInPlace = FALSE;
 
 #if defined(__WIN95__)
@@ -165,6 +165,8 @@ bool wxGenericGrid::Create(wxWindow *parent,
   m_textItem = (wxTextCtrl *) NULL;
   m_currentRectVisible = FALSE;
   m_editable = TRUE;
+  m_editInPlace = FALSE;
+  m_inOnTextInPlace = FALSE;
 #if defined(__WIN95__)
   m_scrollWidth = wxSystemSettings::GetSystemMetric(wxSYS_VSCROLL_X);
 #elif defined(__WXGTK__)
@@ -250,8 +252,9 @@ bool wxGenericGrid::Create(wxWindow *parent,
                                       wxPoint( m_currentRect.x-2, m_currentRect.y-2 ),
                                       wxSize( m_currentRect.width+4, m_currentRect.height+4 ),
                                       wxNO_BORDER | wxTE_PROCESS_ENTER );
-  m_inPlaceTextItem->Show(TRUE);
-  m_inPlaceTextItem->SetFocus();
+  m_inPlaceTextItem->Show(m_editInPlace);
+  if ( m_editInPlace )
+    m_inPlaceTextItem->SetFocus();
 
   return TRUE;
 }
@@ -1445,8 +1448,30 @@ void wxGenericGrid::OnSelectCellImplementation(wxDC *dc, int row, int col)
 
   if ( m_editable && m_editInPlace )
     {
-      m_inPlaceTextItem->SetSize( m_currentRect.x-2, m_currentRect.y-2,
-                                  m_currentRect.width+4, m_currentRect.height+4 );
+      int x, y, width, height;
+      if ( m_currentRect.x <= 0 )
+        {
+          x = 0;
+          width = m_currentRect.width + 2;
+        }
+      else
+        {
+          x = m_currentRect.x - 2;
+          width = m_currentRect.width + 4;
+        }
+
+      if ( m_currentRect.y <= 0 )
+        {
+          y = 0;
+          height = m_currentRect.height + 2;
+        }
+      else
+        {
+          y = m_currentRect.y - 2;
+          height = m_currentRect.height + 4;
+        }
+
+      m_inPlaceTextItem->SetSize( x, y, width, height );
 
       if ( cell )
         {