]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/textcmn.cpp
wxTLW::SetLeft/RightMenu of smart phones documented.
[wxWidgets.git] / src / common / textcmn.cpp
index cf77965c5b8d0149acdef14cd942013654799df1..541c5732da5ec23ffb1543c3e766688563762006 100644 (file)
@@ -5,7 +5,7 @@
 // Modified by:
 // Created:     13.07.99
 // RCS-ID:      $Id$
-// Copyright:   (c) wxWindows team
+// Copyright:   (c) wxWidgets team
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -77,6 +77,7 @@ wxTextAttr::wxTextAttr(const wxColour& colText,
 {
     m_flags = 0;
     m_leftIndent = 0;
+    m_leftSubIndent = 0;
     m_rightIndent = 0;
     if (m_colText.Ok()) m_flags |= wxTEXT_ATTR_TEXT_COLOUR;
     if (m_colBack.Ok()) m_flags |= wxTEXT_ATTR_BACKGROUND_COLOUR;
@@ -90,6 +91,7 @@ void wxTextAttr::Init()
     m_textAlignment = wxTEXT_ALIGNMENT_DEFAULT;
     m_flags = 0;
     m_leftIndent = 0;
+    m_leftSubIndent = 0;
     m_rightIndent = 0;
 }
 
@@ -126,27 +128,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());
+        newAttr.SetLeftIndent(attr.GetLeftIndent(), attr.GetLeftSubIndent());
     else if (attrDef.HasLeftIndent())
-        newAttr.SetLeftIndent(attrDef.GetLeftIndent());
-    
+        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;
 }
 
@@ -157,6 +159,7 @@ void wxTextAttr::operator= (const wxTextAttr& attr)
     m_colBack = attr.m_colBack;
     m_textAlignment = attr.m_textAlignment;
     m_leftIndent = attr.m_leftIndent;
+    m_leftSubIndent = attr.m_leftSubIndent;
     m_rightIndent = attr.m_rightIndent;
     m_tabs = attr.m_tabs;
     m_flags = attr.m_flags;
@@ -168,14 +171,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
@@ -189,7 +192,7 @@ bool wxTextCtrlBase::SetDefaultStyle(const wxTextAttr& style)
     else
         m_defaultStyle = wxTextAttr::Combine(style, m_defaultStyle, this);
 
-    return TRUE;
+    return true;
 }
 
 // get default text attributes
@@ -217,14 +220,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)
@@ -235,7 +238,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
@@ -248,13 +251,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;
 }
 
 // ----------------------------------------------------------------------------
@@ -352,7 +355,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)
@@ -440,10 +443,10 @@ bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event)
     {
         WriteText(ch);
 
-        return TRUE;
+        return true;
     }
 
-    return FALSE;
+    return false;
 }
 #endif // !__WIN32__
 
@@ -480,14 +483,42 @@ 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),
+                        long * WXUNUSED(pos)) const
+{
+    // not implemented
+    return wxTE_HT_UNKNOWN;
+}
 
 #else // !wxUSE_TEXTCTRL