]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/textctrl.h
Fix compilation in !wxUSE_LOG_DEBUG && !HAVE_VARIADIC_MACROS case.
[wxWidgets.git] / include / wx / textctrl.h
index f26cb8aa10801f3d686a0ceead2cfdfdc2326740..0239ce3ca3e11a3c41a7f078d90c3922029c61fb 100644 (file)
@@ -28,7 +28,6 @@
 // some compilers don't have standard compliant rdbuf() (and MSVC has it only
 // in its new iostream library, not in the old one used with iostream.h)
 #if defined(__WATCOMC__) || \
-    defined(__MWERKS__) || \
     ((defined(__VISUALC5__) || defined(__VISUALC6__)) && wxUSE_IOSTREAMH)
     #define wxHAS_TEXT_WINDOW_STREAM 0
 #elif wxUSE_STD_IOSTREAM
@@ -171,11 +170,12 @@ enum wxTextAttrFlags
     wxTEXT_ATTR_FONT_WEIGHT          = 0x00000010,
     wxTEXT_ATTR_FONT_ITALIC          = 0x00000020,
     wxTEXT_ATTR_FONT_UNDERLINE       = 0x00000040,
+    wxTEXT_ATTR_FONT_STRIKETHROUGH   = 0x08000000,
     wxTEXT_ATTR_FONT_ENCODING        = 0x02000000,
     wxTEXT_ATTR_FONT_FAMILY          = 0x04000000,
     wxTEXT_ATTR_FONT = \
         ( wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT | \
-            wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_ENCODING | wxTEXT_ATTR_FONT_FAMILY ),
+            wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_STRIKETHROUGH | wxTEXT_ATTR_FONT_ENCODING | wxTEXT_ATTR_FONT_FAMILY ),
 
     wxTEXT_ATTR_ALIGNMENT            = 0x00000080,
     wxTEXT_ATTR_LEFT_INDENT          = 0x00000100,
@@ -317,6 +317,7 @@ public:
     void SetFontWeight(wxFontWeight fontWeight) { m_fontWeight = fontWeight; m_flags |= wxTEXT_ATTR_FONT_WEIGHT; }
     void SetFontFaceName(const wxString& faceName) { m_fontFaceName = faceName; m_flags |= wxTEXT_ATTR_FONT_FACE; }
     void SetFontUnderlined(bool underlined) { m_fontUnderlined = underlined; m_flags |= wxTEXT_ATTR_FONT_UNDERLINE; }
+    void SetFontStrikethrough(bool strikethrough) { m_fontStrikethrough = strikethrough; m_flags |= wxTEXT_ATTR_FONT_STRIKETHROUGH; }
     void SetFontEncoding(wxFontEncoding encoding) { m_fontEncoding = encoding; m_flags |= wxTEXT_ATTR_FONT_ENCODING; }
     void SetFontFamily(wxFontFamily family) { m_fontFamily = family; m_flags |= wxTEXT_ATTR_FONT_FAMILY; }
 
@@ -355,6 +356,7 @@ public:
     wxFontStyle GetFontStyle() const { return m_fontStyle; }
     wxFontWeight GetFontWeight() const { return m_fontWeight; }
     bool GetFontUnderlined() const { return m_fontUnderlined; }
+    bool GetFontStrikethrough() const { return m_fontStrikethrough; }
     const wxString& GetFontFaceName() const { return m_fontFaceName; }
     wxFontEncoding GetFontEncoding() const { return m_fontEncoding; }
     wxFontFamily GetFontFamily() const { return m_fontFamily; }
@@ -389,6 +391,7 @@ public:
     bool HasFontSize() const { return HasFlag(wxTEXT_ATTR_FONT_SIZE); }
     bool HasFontItalic() const { return HasFlag(wxTEXT_ATTR_FONT_ITALIC); }
     bool HasFontUnderlined() const { return HasFlag(wxTEXT_ATTR_FONT_UNDERLINE); }
+    bool HasFontStrikethrough() const { return HasFlag(wxTEXT_ATTR_FONT_STRIKETHROUGH); }
     bool HasFontFaceName() const { return HasFlag(wxTEXT_ATTR_FONT_FACE); }
     bool HasFontEncoding() const { return HasFlag(wxTEXT_ATTR_FONT_ENCODING); }
     bool HasFontFamily() const { return HasFlag(wxTEXT_ATTR_FONT_FAMILY); }
@@ -500,6 +503,7 @@ private:
     wxFontWeight        m_fontWeight;
     wxFontFamily        m_fontFamily;
     bool                m_fontUnderlined;
+    bool                m_fontStrikethrough;
     wxString            m_fontFaceName;
 
     // Character style
@@ -574,6 +578,11 @@ public:
     virtual long XYToPosition(long x, long y) const = 0;
     virtual bool PositionToXY(long pos, long *x, long *y) const = 0;
 
+    // translate the given position (which is just an index in the text control)
+    // to client coordinates
+    wxPoint PositionToCoords(long pos) const;
+
+
     virtual void ShowPosition(long pos) = 0;
 
     // find the character at position given in pixels
@@ -592,6 +601,13 @@ protected:
     virtual bool DoLoadFile(const wxString& file, int fileType);
     virtual bool DoSaveFile(const wxString& file, int fileType);
 
+    // Return true if the given position is valid, i.e. positive and less than
+    // the last position.
+    virtual bool IsValidPosition(long pos) const = 0;
+
+    // Default stub implementation of PositionToCoords() always returns
+    // wxDefaultPosition.
+    virtual wxPoint DoPositionToCoords(long pos) const;
 
     // the name of the last file loaded with LoadFile() which will be used by
     // SaveFile() by default
@@ -625,6 +641,12 @@ public:
        wxTextEntryBase::SetValue(value);
     }
 
+protected:
+    virtual bool IsValidPosition(long pos) const
+    {
+        return pos >= 0 && pos <= GetLastPosition();
+    }
+
 private:
     wxDECLARE_NO_COPY_CLASS(wxTextCtrlIface);
 };
@@ -720,8 +742,11 @@ protected:
     int overflow(int i);
 #endif // wxHAS_TEXT_WINDOW_STREAM
 
-    virtual bool DoLoadFile(const wxString& file, int fileType);
-    virtual bool DoSaveFile(const wxString& file, int fileType);
+    // Another wxTextAreaBase override.
+    virtual bool IsValidPosition(long pos) const
+    {
+        return pos >= 0 && pos <= GetLastPosition();
+    }
 
     // implement the wxTextEntry pure virtual method
     virtual wxWindow *GetEditableWindow() { return this; }
@@ -754,8 +779,6 @@ protected:
     #include "wx/cocoa/textctrl.h"
 #elif defined(__WXPM__)
     #include "wx/os2/textctrl.h"
-#elif defined(__WXPALMOS__)
-    #include "wx/palmos/textctrl.h"
 #endif
 
 // ----------------------------------------------------------------------------