create stock GDI objects on demand; use const with GDI objects appropriately (patch 1445355)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-04-16 22:18:29 +00:00
parent c4edcd7c86
commit f516d98637
35 changed files with 486 additions and 280 deletions

View File

@@ -12,7 +12,48 @@
#include "wx/wxprec.h"
#include "wx/gdiobj.h"
#include "wx/gdicmn.h"
IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject)
// TODO: Nothing to do, unless you want to.
class wxStockGDIPM: public wxStockGDI
{
public:
wxStockGDIPM();
virtual const wxFont* GetFont(Item item);
private:
typedef wxStockGDI super;
};
static wxStockGDIPM gs_wxStockGDIPM_instance;
wxStockGDIPM::wxStockGDIPM()
{
// Override default instance
ms_instance = this;
}
const wxFont* wxStockGDIPM::GetFont(Item item)
{
wxFont* font = wx_static_cast(wxFont*, ms_stockObject[item]);
if (font == NULL)
{
const int fontSize = 12;
switch (item)
{
case FONT_NORMAL:
font = new wxFont(fontSize, wxMODERN, wxNORMAL, wxBOLD);
break;
case FONT_SMALL:
font = new wxFont(fontSize - 4, wxSWISS, wxNORMAL, wxNORMAL);
break;
default:
font = wx_const_cast(wxFont*, super::GetFont(item));
break;
}
ms_stockObject[item] = font;
}
return font;
}