]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/textcmn.cpp
Better alphabetized the event handler macros
[wxWidgets.git] / src / common / textcmn.cpp
index d60e807f3c7c20afe35d030d07f80f818d237ff1..b31c830a00756b04ec072e8d149995762e1049c0 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     13.07.99
 // RCS-ID:      $Id$
 // Copyright:   (c) wxWidgets team
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -53,18 +53,6 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_ENTER)
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_URL)
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_TEXT_MAXLEN)
 
-// ----------------------------------------------------------------------------
-// ctor
-// ----------------------------------------------------------------------------
-
-wxTextCtrlBase::wxTextCtrlBase()
-{
-}
-
-wxTextCtrlBase::~wxTextCtrlBase()
-{
-}
-
 // ----------------------------------------------------------------------------
 // style functions - not implemented here
 // ----------------------------------------------------------------------------
@@ -128,27 +116,27 @@ wxTextAttr wxTextAttr::Combine(const wxTextAttr& attr,
     }
 
     wxTextAttr newAttr(colFg, colBg, font);
-    
+
     if (attr.HasAlignment())
         newAttr.SetAlignment(attr.GetAlignment());
     else if (attrDef.HasAlignment())
         newAttr.SetAlignment(attrDef.GetAlignment());
-    
+
     if (attr.HasTabs())
         newAttr.SetTabs(attr.GetTabs());
     else if (attrDef.HasTabs())
         newAttr.SetTabs(attrDef.GetTabs());
-    
+
     if (attr.HasLeftIndent())
         newAttr.SetLeftIndent(attr.GetLeftIndent(), attr.GetLeftSubIndent());
     else if (attrDef.HasLeftIndent())
         newAttr.SetLeftIndent(attrDef.GetLeftIndent(), attr.GetLeftSubIndent());
-    
+
     if (attr.HasRightIndent())
         newAttr.SetRightIndent(attr.GetRightIndent());
     else if (attrDef.HasRightIndent())
-        newAttr.SetRightIndent(attrDef.GetRightIndent());    
-    
+        newAttr.SetRightIndent(attrDef.GetRightIndent());
+
     return newAttr;
 }
 
@@ -171,14 +159,14 @@ bool wxTextCtrlBase::SetStyle(long WXUNUSED(start), long WXUNUSED(end),
                               const wxTextAttr& WXUNUSED(style))
 {
     // to be implemented in derived TextCtrl classes
-    return FALSE;
+    return false;
 }
 
 // get the styling at the given position
 bool wxTextCtrlBase::GetStyle(long WXUNUSED(position), wxTextAttr& WXUNUSED(style))
 {
     // to be implemented in derived TextCtrl classes
-    return FALSE;
+    return false;
 }
 
 // change default text attributes
@@ -192,7 +180,7 @@ bool wxTextCtrlBase::SetDefaultStyle(const wxTextAttr& style)
     else
         m_defaultStyle = wxTextAttr::Combine(style, m_defaultStyle, this);
 
-    return TRUE;
+    return true;
 }
 
 // get default text attributes
@@ -220,14 +208,14 @@ bool wxTextCtrlBase::LoadFile(const wxString& filename)
 
             m_filename = filename;
 
-            return TRUE;
+            return true;
         }
     }
 
     wxLogError(_("File couldn't be loaded."));
 #endif // wxUSE_FFILE
 
-    return FALSE;
+    return false;
 }
 
 bool wxTextCtrlBase::SaveFile(const wxString& filename)
@@ -238,7 +226,7 @@ bool wxTextCtrlBase::SaveFile(const wxString& filename)
         // what kind of message to give? is it an error or a program bug?
         wxLogDebug(wxT("Can't save textctrl to file without filename."));
 
-        return FALSE;
+        return false;
     }
 
 #if wxUSE_FFILE
@@ -251,13 +239,13 @@ bool wxTextCtrlBase::SaveFile(const wxString& filename)
         // if it worked, save for future calls
         m_filename = filenameToUse;
 
-        return TRUE;
+        return true;
     }
 #endif // wxUSE_FFILE
 
     wxLogError(_("The text couldn't be saved."));
 
-    return FALSE;
+    return false;
 }
 
 // ----------------------------------------------------------------------------
@@ -355,7 +343,7 @@ bool wxTextCtrlBase::CanPaste() const
 // the generic version is unused in wxMSW
 bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& WXUNUSED(event))
 {
-    return FALSE;
+    return false;
 }
 #else // !__WIN32__
 bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event)
@@ -423,6 +411,13 @@ bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event)
             break;
 
         default:
+#if wxUSE_UNICODE
+            if ( event.GetUnicodeKey() )
+            {
+                ch = event.GetUnicodeKey();
+            }
+            else
+#endif
             if ( keycode < 256 && keycode >= 0 && wxIsprint(keycode) )
             {
                 // FIXME this is not going to work for non letters...
@@ -443,10 +438,10 @@ bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event)
     {
         WriteText(ch);
 
-        return TRUE;
+        return true;
     }
 
-    return FALSE;
+    return false;
 }
 #endif // !__WIN32__
 
@@ -483,22 +478,38 @@ void wxTextCtrlBase::DoUpdateWindowUI(wxUpdateUIEvent& event)
 {
     if ( event.GetSetEnabled() )
         Enable(event.GetEnabled());
-    
+
     if ( event.GetSetText() )
     {
         if ( event.GetText() != GetValue() )
             SetValue(event.GetText());
-    }    
+    }
 }
 
 // ----------------------------------------------------------------------------
 // hit testing
 // ----------------------------------------------------------------------------
 
+wxTextCtrlHitTestResult
+wxTextCtrlBase::HitTest(const wxPoint& pt, wxTextCoord *x, wxTextCoord *y) const
+{
+    // implement in terms of the other overload as the native ports typically
+    // can get the position and not (x, y) pair directly (although wxUniv
+    // directly gets x and y -- and so overrides this method as well)
+    long pos;
+    wxTextCtrlHitTestResult rc = HitTest(pt, &pos);
+
+    if ( rc != wxTE_HT_UNKNOWN )
+    {
+        PositionToXY(pos, x, y);
+    }
+
+    return rc;
+}
+
 wxTextCtrlHitTestResult
 wxTextCtrlBase::HitTest(const wxPoint& WXUNUSED(pt),
-                        wxTextCoord * WXUNUSED(col),
-                        wxTextCoord * WXUNUSED(row)) const
+                        long * WXUNUSED(pos)) const
 {
     // not implemented
     return wxTE_HT_UNKNOWN;