]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/gdicmn.cpp
Stripped out miscellaneous Motif/Xt-specific code
[wxWidgets.git] / src / common / gdicmn.cpp
index 0145deabfca97cdb7f7c39af97bc3960e8d5a4e7..31e336762b553f90bd731db0a46fcaae627ed9e4 100644 (file)
@@ -418,7 +418,8 @@ wxString wxColourDatabase::FindName (const wxColour& colour) const
     return name;
 }
 
-void wxInitializeStockLists () {
+void wxInitializeStockLists()
+{
   wxTheBrushList = new wxBrushList;
   wxThePenList = new wxPenList;
   wxTheFontList = new wxFontList;
@@ -441,17 +442,30 @@ void wxInitializeStockObjects ()
 #else
 #endif
 */
-#if defined(__WXPM__) || defined(__WXMAC__)
+#if defined(__WXMAC__)
   static const int sizeFont = 12;
   wxNORMAL_FONT = new wxFont (sizeFont, wxMODERN, wxNORMAL, wxNORMAL);
+#elif defined(__WXPM__)
+  static const int sizeFont = 12;
 #else
-  wxNORMAL_FONT = new wxFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT));
+  wxNORMAL_FONT = new wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
   static const int sizeFont = wxNORMAL_FONT->GetPointSize();
 #endif
 
+#if defined(__WXPM__)
+  /*
+  // Basic OS/2 has a fairly limited number of fonts and these are as good
+  // as I can do to get something that looks halfway "wx" normal
+  */
+  wxNORMAL_FONT = new wxFont (sizeFont, wxMODERN, wxNORMAL, wxNORMAL); /* System VIO */
+  wxSMALL_FONT = new wxFont (sizeFont - 4, wxMODERN, wxNORMAL, wxNORMAL); /* System VIO */
+  wxITALIC_FONT = new wxFont (sizeFont, wxROMAN, wxITALIC, wxNORMAL);
+  wxSWISS_FONT = new wxFont (sizeFont, wxSWISS, wxNORMAL, wxNORMAL); /* Helv */
+#else
   wxSMALL_FONT = new wxFont (sizeFont - 2, wxSWISS, wxNORMAL, wxNORMAL);
   wxITALIC_FONT = new wxFont (sizeFont, wxROMAN, wxITALIC, wxNORMAL);
   wxSWISS_FONT = new wxFont (sizeFont, wxSWISS, wxNORMAL, wxNORMAL);
+#endif
 
   wxRED_PEN = new wxPen (wxT("RED"), 1, wxSOLID);
   wxCYAN_PEN = new wxPen (wxT("CYAN"), 1, wxSOLID);
@@ -530,14 +544,19 @@ void wxDeleteStockObjects ()
   wxDELETE(wxCROSS_CURSOR);
 }
 
-void wxDeleteStockLists() {
+void wxDeleteStockLists()
+{
   wxDELETE(wxTheBrushList);
   wxDELETE(wxThePenList);
   wxDELETE(wxTheFontList);
   wxDELETE(wxTheBitmapList);
 }
 
-wxBitmapList::wxBitmapList ()
+// ============================================================================
+// wxTheXXXList stuff (semi-obsolete)
+// ============================================================================
+
+wxBitmapList::wxBitmapList()
 {
 }
 
@@ -602,10 +621,9 @@ wxPen *wxPenList::FindOrCreatePen (const wxColour& colour, int width, int style)
         return NULL;
     }
 
-    // Yes, we can return a pointer to this in a later FindOrCreatePen call,
-    // because we created it within FindOrCreatePen. Safeguards against
-    // returning a pointer to an automatic variable and hanging on to it
-    // (dangling pointer).
+    AddPen(pen);
+
+    // we'll delete it ourselves later
     pen->SetVisible(TRUE);
 
     return pen;
@@ -618,7 +636,7 @@ wxBrushList::~wxBrushList ()
     {
       wxBrush *brush = (wxBrush *) node->Data ();
       wxNode *next = node->Next ();
-      if (brush->GetVisible())
+      if (brush && brush->GetVisible())
         delete brush;
       node = next;
     }
@@ -653,12 +671,11 @@ wxBrush *wxBrushList::FindOrCreateBrush (const wxColour& colour, int style)
         return NULL;
     }
 
+    AddBrush(brush);
+
+    // we'll delete it ourselves later
     brush->SetVisible(TRUE);
 
-    // Yes, we can return a pointer to this in a later FindOrCreateBrush call,
-    // because we created it within FindOrCreateBrush. Safeguards against
-    // returning a pointer to an automatic variable and hanging on to it
-    // (dangling pointer).
     return brush;
 }
 
@@ -759,6 +776,8 @@ wxFont *wxFontList::FindOrCreateFont(int pointSize,
         font = new wxFont(pointSize, family, style, weight,
                           underline, facename, encoding);
 
+        AddFont(font);
+
         // and mark it as being cacheable
         font->SetVisible(TRUE);
     }