]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/stattextg.h
activating DrawRectangle optimization
[wxWidgets.git] / include / wx / generic / stattextg.h
index 69ef8b08f6408dd6b887e5f73dd13f44c65d36d4..9df2cd912fa4ecb9528a8693c6d8388940b12813 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     wxGenericStaticText header
 // Author:      Marcin Wojdyr
 // Created:     2008-06-26
-// Id:          $Id:$
+// Id:          $Id$
 // Copyright:   Marcin Wojdyr
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 #ifndef _WX_GENERIC_STATTEXTG_H_
 #define _WX_GENERIC_STATTEXTG_H_
 
+// prevent it from including the platform-specific wxStaticText declaration as
+// this is not going to compile if it derives from wxGenericStaticText defined
+// below (currently this is only the case in wxUniv but it could also happen
+// with other ports)
+#define wxNO_PORT_STATTEXT_INCLUDE
 #include "wx/stattext.h"
+#undef wxNO_PORT_STATTEXT_INCLUDE
 
 class WXDLLIMPEXP_CORE wxGenericStaticText : public wxStaticTextBase
 {
 public:
-    wxGenericStaticText() { }
+    wxGenericStaticText() { Init(); }
 
     wxGenericStaticText(wxWindow *parent,
                  wxWindowID id,
@@ -26,6 +32,8 @@ public:
                  long style = 0,
                  const wxString& name = wxStaticTextNameStr)
     {
+        Init();
+
         Create(parent, id, label, pos, size, style, name);
     }
 
@@ -37,24 +45,45 @@ public:
                 long style = 0,
                 const wxString& name = wxStaticTextNameStr);
 
+    virtual ~wxGenericStaticText();
 
-    virtual wxSize DoGetBestClientSize() const;
-    virtual wxSize DoGetBestSize() const;
 
+    // overridden base class virtual methods
     virtual void SetLabel(const wxString& label);
     virtual bool SetFont(const wxFont &font);
 
+protected:
+    virtual wxSize DoGetBestClientSize() const;
+
     virtual wxString DoGetLabel() const { return m_label; }
     virtual void DoSetLabel(const wxString& label);
 
-protected:
-    void OnPaint(wxPaintEvent& event);
     void DoSetSize(int x, int y, int width, int height, int sizeFlags);
 
+#if wxUSE_MARKUP
+    virtual bool DoSetLabelMarkup(const wxString& markup);
+#endif // wxUSE_MARKUP
+
 private:
+    void Init()
+    {
+#if wxUSE_MARKUP
+        m_markupText = NULL;
+#endif // wxUSE_MARKUP
+    }
+
+    void OnPaint(wxPaintEvent& event);
+
+    void DoDrawLabel(wxDC& dc, const wxRect& rect);
+
+    // These fields are only used if m_markupText == NULL.
     wxString m_label;
     int m_mnemonic;
 
+#if wxUSE_MARKUP
+    class wxMarkupText *m_markupText;
+#endif // wxUSE_MARKUP
+
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxGenericStaticText)
 };