]> git.saurik.com Git - wxWidgets.git/blobdiff - src/x11/textctrl.cpp
simplify code so it always returns the same object
[wxWidgets.git] / src / x11 / textctrl.cpp
index e1a366aa37d04a0c087cc0b4247d8ea0b08ed43d..d37b6670680ca3a6c23facb05ce649bef8df2a6c 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        textctrl.cpp
+// Name:        src/x11/textctrl.cpp
 // Purpose:
 // Author:      Robert Roebling
 // Id:          $Id$
 // Purpose:
 // Author:      Robert Roebling
 // Id:          $Id$
@@ -7,20 +7,22 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "textctrl.h"
-#endif
+// for compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
 
 #include "wx/textctrl.h"
 
 
 #include "wx/textctrl.h"
 
-#include "wx/utils.h"
-#include "wx/intl.h"
-#include "wx/log.h"
-#include "wx/settings.h"
-#include "wx/panel.h"
+#ifndef WX_PRECOMP
+    #include "wx/intl.h"
+    #include "wx/log.h"
+    #include "wx/utils.h"
+    #include "wx/panel.h"
+    #include "wx/dcclient.h"
+    #include "wx/settings.h"
+#endif
+
 #include "wx/clipbrd.h"
 #include "wx/tokenzr.h"
 #include "wx/clipbrd.h"
 #include "wx/tokenzr.h"
-#include "wx/dcclient.h"
 
 #include "wx/univ/inphand.h"
 #include "wx/univ/renderer.h"
 
 #include "wx/univ/inphand.h"
 #include "wx/univ/renderer.h"
@@ -54,7 +56,7 @@ wxSourceUndoStep::wxSourceUndoStep( wxSourceUndo type, int y1, int y2, wxTextCtr
         for (int i = m_y1; i < m_y2+2; i++)
         {
             if (i >= (int)m_owner->m_lines.GetCount())
         for (int i = m_y1; i < m_y2+2; i++)
         {
             if (i >= (int)m_owner->m_lines.GetCount())
-                m_lines.Add( wxT("") );
+                m_lines.Add( wxEmptyString );
             else
                 m_lines.Add( m_owner->m_lines[i].m_text );
         }
             else
                 m_lines.Add( m_owner->m_lines[i].m_text );
         }
@@ -129,9 +131,7 @@ WX_DEFINE_OBJARRAY(wxSourceLineArray);
 //  wxTextCtrl
 //-----------------------------------------------------------------------------
 
 //  wxTextCtrl
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl,wxControl)
-
-BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
+BEGIN_EVENT_TABLE(wxTextCtrl, wxTextCtrlBase)
     EVT_PAINT(wxTextCtrl::OnPaint)
     EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
     EVT_CHAR(wxTextCtrl::OnChar)
     EVT_PAINT(wxTextCtrl::OnPaint)
     EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
     EVT_CHAR(wxTextCtrl::OnChar)
@@ -275,7 +275,7 @@ wxString wxTextCtrl::GetValue() const
     return ret;
 }
 
     return ret;
 }
 
-void wxTextCtrl::SetValue(const wxString& value)
+void wxTextCtrl::DoSetValue(const wxString& value, int flags)
 {
     m_modified = false;
 
 {
     m_modified = false;
 
@@ -289,7 +289,7 @@ void wxTextCtrl::SetValue(const wxString& value)
 
     if (value.empty())
     {
 
     if (value.empty())
     {
-        m_lines.Add( new wxSourceLine( wxT("") ) );
+        m_lines.Add( new wxSourceLine( wxEmptyString ) );
     }
     else
     {
     }
     else
     {
@@ -341,6 +341,9 @@ void wxTextCtrl::SetValue(const wxString& value)
     MyAdjustScrollbars();
 
     Refresh();
     MyAdjustScrollbars();
 
     Refresh();
+
+    if ( flags & SetValue_SendEvent )
+        SendTextUpdatedEvent();
 }
 
 int wxTextCtrl::GetLineLength(long lineNo) const
 }
 
 int wxTextCtrl::GetLineLength(long lineNo) const
@@ -354,7 +357,7 @@ int wxTextCtrl::GetLineLength(long lineNo) const
 wxString wxTextCtrl::GetLineText(long lineNo) const
 {
     if (lineNo >= (long)m_lines.GetCount())
 wxString wxTextCtrl::GetLineText(long lineNo) const
 {
     if (lineNo >= (long)m_lines.GetCount())
-        return wxT("");
+        return wxEmptyString;
 
     return m_lines[lineNo].m_text;
 }
 
     return m_lines[lineNo].m_text;
 }
@@ -397,7 +400,7 @@ void wxTextCtrl::Clear()
     ClearSelection();
 
     m_lines.Clear();
     ClearSelection();
 
     m_lines.Clear();
-    m_lines.Add( new wxSourceLine( wxT("") ) );
+    m_lines.Add( new wxSourceLine( wxEmptyString ) );
 
     SetScrollbars( m_charWidth, m_lineHeight, 0, 0, 0, 0 );
     Refresh();
 
     SetScrollbars( m_charWidth, m_lineHeight, 0, 0, 0, 0 );
     Refresh();
@@ -1553,7 +1556,7 @@ void wxTextCtrl::DrawLine( wxDC &dc, int x, int y, const wxString &line2, int li
 
         size_t pos = 0;
         wxString token( GetNextToken( line, pos ) );
 
         size_t pos = 0;
         wxString token( GetNextToken( line, pos ) );
-        while (!token.IsNull())
+        while ( !token.empty() )
         {
             if (m_keywords.Index( token ) != wxNOT_FOUND)
             {
         {
             if (m_keywords.Index( token ) != wxNOT_FOUND)
             {
@@ -1740,7 +1743,7 @@ void wxTextCtrl::OnMouse( wxMouseEvent &event )
 #if 0  // there is no middle button on iPAQs
     if (event.MiddleDown())
     {
 #if 0  // there is no middle button on iPAQs
     if (event.MiddleDown())
     {
-        Paste( TRUE );
+        Paste( true );
         return;
     }
 #endif
         return;
     }
 #endif
@@ -1796,15 +1799,15 @@ void wxTextCtrl::OnChar( wxKeyEvent &event )
     {
         switch (event.GetKeyCode())
         {
     {
         switch (event.GetKeyCode())
         {
-            case '4': event.m_keyCode = WXK_LEFT;   break;
-            case '8': event.m_keyCode = WXK_UP;     break;
-            case '6': event.m_keyCode = WXK_RIGHT;  break;
-            case '2': event.m_keyCode = WXK_DOWN;   break;
-            case '9': event.m_keyCode = WXK_PRIOR;  break;
-            case '3': event.m_keyCode = WXK_NEXT;   break;
-            case '7': event.m_keyCode = WXK_HOME;   break;
-            case '1': event.m_keyCode = WXK_END;    break;
-            case '0': event.m_keyCode = WXK_INSERT; break;
+            case '4': event.m_keyCode = WXK_LEFT;     break;
+            case '8': event.m_keyCode = WXK_UP;       break;
+            case '6': event.m_keyCode = WXK_RIGHT;    break;
+            case '2': event.m_keyCode = WXK_DOWN;     break;
+            case '9': event.m_keyCode = WXK_PAGEUP;   break;
+            case '3': event.m_keyCode = WXK_PAGEDOWN; break;
+            case '7': event.m_keyCode = WXK_HOME;     break;
+            case '1': event.m_keyCode = WXK_END;      break;
+            case '0': event.m_keyCode = WXK_INSERT;   break;
         }
     }
 
         }
     }
 
@@ -1872,7 +1875,7 @@ void wxTextCtrl::OnChar( wxKeyEvent &event )
             m_ignoreInput = true;
             return;
         }
             m_ignoreInput = true;
             return;
         }
-        case WXK_PRIOR:
+        case WXK_PAGEUP:
         {
             if (m_ignoreInput) return;
             MoveCursor( m_cursorX, wxMax( 0, m_cursorY-size_y ), event.ShiftDown() );
         {
             if (m_ignoreInput) return;
             MoveCursor( m_cursorX, wxMax( 0, m_cursorY-size_y ), event.ShiftDown() );
@@ -1891,12 +1894,12 @@ void wxTextCtrl::OnChar( wxKeyEvent &event )
         }
         case WXK_RETURN:
         {
         }
         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);
                 event.SetString(GetValue());
             {
                 wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
                 event.SetEventObject(this);
                 event.SetString(GetValue());
-                if (GetEventHandler()->ProcessEvent(event)) return;
+                if (HandleWindowEvent(event)) return;
             }
 
             if (IsSingleLine())
             }
 
             if (IsSingleLine())
@@ -2370,18 +2373,6 @@ wxSize wxTextCtrl::DoGetBestSize() const
     }
 }
 
     }
 }
 
-// ----------------------------------------------------------------------------
-// freeze/thaw
-// ----------------------------------------------------------------------------
-
-void wxTextCtrl::Freeze()
-{
-}
-
-void wxTextCtrl::Thaw()
-{
-}
-
 void wxTextCtrl::OnSetFocus( wxFocusEvent& event )
 {
     // To hide or show caret, as appropriate
 void wxTextCtrl::OnSetFocus( wxFocusEvent& event )
 {
     // To hide or show caret, as appropriate
@@ -2411,4 +2402,3 @@ bool wxTextCtrl::ScrollPages(int pages)
 
     return false;
 }
 
     return false;
 }
-