]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/gdicmn.cpp
compilation fix for !PCH
[wxWidgets.git] / src / common / gdicmn.cpp
index 7bf932f207d0664789196739cccb6e0d563d255e..280d4d94c3e680f0df0a278df137ec32b6e4e55b 100644 (file)
@@ -43,7 +43,7 @@
 #include <string.h>
 
 #ifdef __WXMSW__
-#include <windows.h>
+#include "wx/msw/wrapwin.h"
 #endif
 
 #ifdef __WXMOTIF__
 #include "wx/mac/private.h"
 #include "wx/mac/uma.h"
 #endif
-//IMPLEMENT_CLASS(wxColourDatabase, wxList)
-//IMPLEMENT_DYNAMIC_CLASS(wxFontList, wxList)
-//IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList)
-//IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList)
-//IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList)
-//IMPLEMENT_DYNAMIC_CLASS(wxResourceCache, wxList)
 
 IMPLEMENT_ABSTRACT_CLASS(wxDCBase, wxObject)
 
@@ -196,10 +190,7 @@ wxColourDatabase::wxColourDatabase ()
 
 wxColourDatabase::~wxColourDatabase ()
 {
-    typedef wxStringToColourHashMap::iterator iterator;
-
-    for( iterator it = m_map->begin(), en = m_map->end(); it != en; ++it )
-        delete it->second;
+    WX_CLEAR_HASH_MAP(wxStringToColourHashMap, *m_map);
 
     delete m_map;
     m_map = NULL;
@@ -289,10 +280,7 @@ void wxColourDatabase::Initialize ()
         {wxT("WHITE"), 255, 255, 255},
         {wxT("YELLOW"), 255, 255, 0},
         {wxT("YELLOW GREEN"), 153, 204, 50},
-        {wxT("MEDIUM GOLDENROD"), 234, 234, 173},
-        {wxT("MEDIUM FOREST GREEN"), 107, 142, 35},
-        {wxT("LIGHT MAGENTA"), 255, 0, 255},
-        {wxT("MEDIUM GREY"), 100, 100, 100},
+        {wxT("YELLOW GREEN"), 153, 204, 50}
     };
 
     size_t      n;
@@ -300,7 +288,7 @@ void wxColourDatabase::Initialize ()
     for ( n = 0; n < WXSIZEOF(wxColourTable); n++ )
     {
         const wxColourDesc& cc = wxColourTable[n];
-        (*m_map)[cc.name] =  new wxColour(cc.r,cc.g,cc.b);
+        AddColour(cc.name, new wxColour(cc.r,cc.g,cc.b));
     }
 #ifdef __WXPM__
     m_palTable = new long[n];
@@ -332,6 +320,26 @@ wxColour *wxColourDatabase::FindColourNoAdd(const wxString& colour) const
     return ((wxColourDatabase*)this)->FindColour(colour, false);
 }
 
+void wxColourDatabase::AddColour (const wxString& name, wxColour* colour)
+{
+    wxString colName = name;
+    colName.MakeUpper();
+    wxString colName2 = colName;
+    if ( !colName2.Replace(_T("GRAY"), _T("GREY")) )
+        colName2.clear();
+
+    wxStringToColourHashMap::iterator it = m_map->find(colName);
+    if ( it == m_map->end() )
+        it = m_map->find(colName2);
+    if ( it != m_map->end() )
+    {
+        delete it->second;
+        it->second = colour;
+    }
+
+    (*m_map)[name] = colour;
+}
+
 wxColour *wxColourDatabase::FindColour(const wxString& colour, bool add)
 {
     // VZ: make the comparaison case insensitive and also match both grey and
@@ -381,7 +389,7 @@ wxColour *wxColourDatabase::FindColour(const wxString& colour, bool add)
       delete col;
       return (wxColour *) NULL;
   }
-  (*m_map)[colour] = col;
+  AddColour(colour, col);
   return col;
 #endif
 
@@ -409,7 +417,7 @@ wxColour *wxColourDatabase::FindColour(const wxString& colour, bool add)
 #endif
 
     wxColour *col = new wxColour(r, g, b);
-    (*m_map)[colour] = col;
+    AddColour(colour, col);
 
     return col;
 #endif // __X__
@@ -436,10 +444,13 @@ wxString wxColourDatabase::FindName (const wxColour& colour) const
 
 void wxInitializeStockLists()
 {
-  wxTheBrushList = new wxBrushList;
-  wxThePenList = new wxPenList;
-  wxTheFontList = new wxFontList;
-  wxTheBitmapList = new wxBitmapList;
+    wxTheColourDatabase = new wxColourDatabase;
+    wxTheColourDatabase->Initialize();
+
+    wxTheBrushList = new wxBrushList;
+    wxThePenList = new wxPenList;
+    wxTheFontList = new wxFontList;
+    wxTheBitmapList = new wxBitmapList;
 }
 
 void wxInitializeStockObjects ()