]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cmndata.h
fixed memory leak in wxXmlResource introduced when fixing wxVector<> usage (patch...
[wxWidgets.git] / include / wx / cmndata.h
index 5aa5f102f7fb892ff82df56a2c87351ac88de208..630415f4c359b166405906d506265c0abb003dee 100644 (file)
 class WXDLLIMPEXP_FWD_CORE wxPrintNativeDataBase;
 
 
-class WXDLLEXPORT wxColourData: public wxObject
+class WXDLLEXPORT wxColourData : public wxObject
 {
 public:
+    // number of custom colours we store
+    enum
+    {
+        NUM_CUSTOM = 16
+    };
+
     wxColourData();
     wxColourData(const wxColourData& data);
+    wxColourData& operator=(const wxColourData& data);
     virtual ~wxColourData();
 
     void SetChooseFull(bool flag) { m_chooseFull = flag; }
@@ -39,15 +46,18 @@ public:
     const wxColour& GetColour() const { return m_dataColour; }
     wxColour& GetColour() { return m_dataColour; }
 
-    // Array of 16 custom colours
+    // These functions modify colours in an internal array of NUM_CUSTOM custom
+    // colours
     void SetCustomColour(int i, const wxColour& colour);
     wxColour GetCustomColour(int i);
 
-    void operator=(const wxColourData& data);
+    // Serialize the object to a string and restore it from it
+    wxString ToString() const;
+    bool FromString(const wxString& str);
 
-public:
+public: // TODO: make these fields private
     wxColour        m_dataColour;
-    wxColour        m_custColours[16];
+    wxColour        m_custColours[NUM_CUSTOM];
     bool            m_chooseFull;
 
 private:
@@ -77,17 +87,20 @@ public:
 
     wxFontData& operator=(const wxFontData& data)
     {
-        wxObject::operator=(data);
-        m_fontColour     = data.m_fontColour;
-        m_showHelp       = data.m_showHelp;
-        m_allowSymbols   = data.m_allowSymbols;
-        m_enableEffects  = data.m_enableEffects;
-        m_initialFont    = data.m_initialFont;
-        m_chosenFont     = data.m_chosenFont;
-        m_minSize        = data.m_minSize;
-        m_maxSize        = data.m_maxSize;
-        m_encoding       = data.m_encoding;
-        m_encodingInfo   = data.m_encodingInfo;
+        if (&data != this)
+        {
+            wxObject::operator=(data);
+            m_fontColour     = data.m_fontColour;
+            m_showHelp       = data.m_showHelp;
+            m_allowSymbols   = data.m_allowSymbols;
+            m_enableEffects  = data.m_enableEffects;
+            m_initialFont    = data.m_initialFont;
+            m_chosenFont     = data.m_chosenFont;
+            m_minSize        = data.m_minSize;
+            m_maxSize        = data.m_maxSize;
+            m_encoding       = data.m_encoding;
+            m_encodingInfo   = data.m_encodingInfo;
+        }
         return *this;
     }