]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/classic/textctrl.cpp
wxGetOsVersion() compilation andl inking fixes for wxMac
[wxWidgets.git] / src / mac / classic / textctrl.cpp
index 0c1a9e6e771df85f2cb0fea2a331823435f18fd6..076e53e031cf4e9936789c72f4a71ffc99bd6e65 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        textctrl.cpp
+// Name:        src/mac/classic/textctrl.cpp
 // Purpose:     wxTextCtrl
 // Author:      Stefan Csomor
 // Modified by:
@@ -9,19 +9,33 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#include "wx/defs.h"
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
 
 #if wxUSE_TEXTCTRL
 
+#include "wx/textctrl.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/app.h"
+    #include "wx/utils.h"
+    #include "wx/dc.h"
+    #include "wx/button.h"
+    #include "wx/settings.h"
+    #include "wx/msgdlg.h"
+    #include "wx/toplevel.h"
+#endif
+
 #ifdef __DARWIN__
-  #include <sys/types.h>
-  #include <sys/stat.h>
+    #include <sys/types.h>
+    #include <sys/stat.h>
 #else
-  #include <stat.h>
+    #include <stat.h>
 #endif
 
-#include "wx/msgdlg.h"
-
 #if wxUSE_STD_IOSTREAM
     #if wxUSE_IOSTREAMH
         #include <fstream.h>
     #endif
 #endif
 
-#include "wx/app.h"
-#include "wx/dc.h"
-#include "wx/button.h"
-#include "wx/toplevel.h"
-#include "wx/textctrl.h"
 #include "wx/notebook.h"
 #include "wx/tabctrl.h"
-#include "wx/settings.h"
 #include "wx/filefn.h"
-#include "wx/utils.h"
 
 #if defined(__BORLANDC__) && !defined(__WIN32__)
-  #include <alloc.h>
+    #include <alloc.h>
 #elif !defined(__MWERKS__) && !defined(__GNUWIN32) && !defined(__DARWIN__)
-  #include <malloc.h>
+    #include <malloc.h>
 #endif
 
 #ifndef __DARWIN__
@@ -633,9 +640,9 @@ OSStatus mUPOpenControl(ControlHandle theControl, long wxStyle )
 
 
 
-IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxTextCtrlBase)
 
-BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
+BEGIN_EVENT_TABLE(wxTextCtrl, wxTextCtrlBase)
     EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
     EVT_CHAR(wxTextCtrl::OnChar)
     EVT_MENU(wxID_CUT, wxTextCtrl::OnCut)
@@ -655,7 +662,7 @@ static void SetTXNData( TXNObject txn , const wxString& st , TXNOffset start , T
 {
 #if wxUSE_UNICODE
 #if SIZEOF_WCHAR_T == 2
-    size_t len = st.Len() ;
+    size_t len = st.length() ;
     TXNSetData( txn , kTXNUnicodeTextData,  (void*)st.wc_str(), len * 2,
       start, end);
 #else
@@ -1192,7 +1199,7 @@ void wxTextCtrl::Replace(long from, long to, const wxString& str)
         ::SetControlData((ControlHandle)  m_macControl , 0, kControlEditTextSelectionTag , sizeof( selection ) , (char*) &selection ) ;
         TESetSelect( from , to  , ((TEHandle) m_macTE) ) ;
         TEDelete( ((TEHandle) m_macTE) ) ;
-        TEInsert( value , value.Length() , ((TEHandle) m_macTE) ) ;
+        TEInsert( value , value.length() , ((TEHandle) m_macTE) ) ;
     }
     else
     {
@@ -1448,7 +1455,7 @@ int wxTextCtrl::GetNumberOfLines() const
         wxString content = GetValue() ;
 
         int count = 1;
-        for (size_t i = 0; i < content.Length() ; i++)
+        for (size_t i = 0; i < content.length() ; i++)
         {
             if (content[i] == '\r') count++;
         }
@@ -1499,13 +1506,13 @@ int wxTextCtrl::GetLineLength(long lineNo) const
 
     // Find line first
     int count = 0;
-    for (size_t i = 0; i < content.Length() ; i++)
+    for (size_t i = 0; i < content.length() ; i++)
     {
         if (count == lineNo)
         {
             // Count chars in line then
             count = 0;
-            for (size_t j = i; j < content.Length(); j++)
+            for (size_t j = i; j < content.length(); j++)
             {
                 count++;
                 if (content[j] == '\n') return count;
@@ -1525,14 +1532,14 @@ wxString wxTextCtrl::GetLineText(long lineNo) const
 
     // Find line first
     int count = 0;
-    for (size_t i = 0; i < content.Length() ; i++)
+    for (size_t i = 0; i < content.length() ; i++)
     {
         if (count == lineNo)
         {
             // Add chars in line then
             wxString tmp;
 
-            for (size_t j = i; j < content.Length(); j++)
+            for (size_t j = i; j < content.length(); j++)
             {
                 if (content[j] == '\n')
                     return tmp;
@@ -1579,8 +1586,8 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
     }
 
     if ( !IsEditable() && key != WXK_LEFT && key != WXK_RIGHT && key != WXK_DOWN && key != WXK_UP && key != WXK_TAB &&
-        !( key == WXK_RETURN && ( (m_windowStyle & wxPROCESS_ENTER) || (m_windowStyle & wxTE_MULTILINE) ) )
-/*        && key != WXK_PRIOR && key != WXK_NEXT && key != WXK_HOME && key != WXK_END */
+        !( key == WXK_RETURN && ( (m_windowStyle & wxTE_PROCESS_ENTER) || (m_windowStyle & wxTE_MULTILINE) ) )
+/*        && key != WXK_PAGEUP && key != WXK_PAGEDOWN && key != WXK_HOME && key != WXK_END */
         )
     {
         // eat it
@@ -1605,7 +1612,7 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
     switch ( key )
     {
         case WXK_RETURN:
-            if (m_windowStyle & wxPROCESS_ENTER)
+            if (m_windowStyle & wxTE_PROCESS_ENTER)
             {
                 wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
                 event.SetEventObject( this );
@@ -1615,14 +1622,10 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
             }
             if ( !(m_windowStyle & wxTE_MULTILINE) )
             {
-                wxWindow *parent = GetParent();
-                while( parent && !parent->IsTopLevel() && parent->GetDefaultItem() == NULL ) {
-                  parent = parent->GetParent() ;
-                }
-                if ( parent && parent->GetDefaultItem() )
+                wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow);
+                if ( tlw && tlw->GetDefaultItem() )
                 {
-                    wxButton *def = wxDynamicCast(parent->GetDefaultItem(),
-                                                          wxButton);
+                    wxButton *def = wxDynamicCast(tlw->GetDefaultItem(), wxButton);
                     if ( def && def->IsEnabled() )
                     {
                         wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, def->GetId() );