Changed wxFont, wxPen, wxBrush to not implicitly use the wxTheXXXList

behind the scenes, but to use normal ctor and dtors.

Exposed the wxTheXXXLists to wxPython.

Also wxTheColourDatabase and added a library module to load LOTS more
colour names into the colour database.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2001-03-14 08:05:03 +00:00
parent 83b18bab39
commit 0569df0fc9
17 changed files with 1531 additions and 56 deletions
+63 -31
View File
@@ -268,23 +268,15 @@ enum wxFontEncoding
wxFONTENCODING_MAX
};
class wxFont {
public:
// I'll do it this way to use long-lived objects and not have to
// worry about when python may delete the object.
%addmethods {
wxFont( int pointSize, int family, int style, int weight,
int underline=FALSE, char* faceName = "",
wxFontEncoding encoding=wxFONTENCODING_DEFAULT) {
return wxTheFontList->FindOrCreateFont(pointSize, family, style, weight,
underline, faceName, encoding);
}
// NO Destructor.
}
wxFont( int pointSize, int family, int style, int weight,
int underline=FALSE, char* faceName = "",
wxFontEncoding encoding=wxFONTENCODING_DEFAULT);
~wxFont();
bool Ok();
wxString GetFaceName();
int GetFamily();
#ifdef __WXMSW__
@@ -317,6 +309,18 @@ public:
}
%}
class wxFontList {
public:
void AddFont(wxFont* font);
wxFont * FindOrCreateFont(int point_size, int family, int style, int weight,
bool underline = FALSE, const char* facename = NULL,
wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
void RemoveFont(wxFont *font);
};
//----------------------------------------------------------------------
class wxColour {
@@ -352,19 +356,28 @@ public:
%}
class wxColourDatabase {
public:
wxColour *FindColour(const wxString& colour);
wxString FindName(const wxColour& colour) const;
%addmethods {
void Append(const wxString& name, int red, int green, int blue) {
self->Append(name.c_str(), new wxColour(red, green, blue));
}
}
};
//----------------------------------------------------------------------
class wxPen {
public:
// I'll do it this way to use long-lived objects and not have to
// worry about when python may delete the object.
%addmethods {
wxPen(wxColour* colour, int width=1, int style=wxSOLID) {
return wxThePenList->FindOrCreatePen(*colour, width, style);
}
// NO Destructor.
}
wxPen(wxColour& colour, int width=1, int style=wxSOLID);
~wxPen();
int GetCap();
wxColour& GetColour();
@@ -389,20 +402,23 @@ public:
#endif
};
class wxPenList {
public:
void AddPen(wxPen* pen);
wxPen* FindOrCreatePen(const wxColour& colour, int width, int style);
void RemovePen(wxPen* pen);
};
//----------------------------------------------------------------------
class wxBrush {
public:
// I'll do it this way to use long-lived objects and not have to
// worry about when python may delete the object.
%addmethods {
wxBrush(const wxColour* colour, int style=wxSOLID) {
return wxTheBrushList->FindOrCreateBrush(*colour, style);
}
// NO Destructor.
}
// wxBrush(const wxColour& colour, int style=wxSOLID);
wxBrush(const wxColour& colour, int style=wxSOLID);
~wxBrush();
wxColour& GetColour();
wxBitmap * GetStipple();
@@ -413,6 +429,15 @@ public:
void SetStyle(int style);
};
class wxBrushList {
public:
void AddBrush(wxBrush *brush);
wxBrush * FindOrCreateBrush(const wxColour& colour, int style);
void RemoveBrush(wxBrush *brush);
};
//----------------------------------------------------------------------
@@ -659,6 +684,13 @@ extern wxPalette wxNullPalette;
extern wxFont wxNullFont;
extern wxColour wxNullColour;
extern wxFontList* wxTheFontList;
extern wxPenList* wxThePenList;
extern wxBrushlist* wxTheBrushList;
extern wxColourDatabase* wxTheColourDatabase;
%readwrite
%{
#endif
+2
View File
@@ -3622,6 +3622,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxFont","_wxFont",0},
{ "_wxClipboard","_class_wxClipboard",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
{ "_wxClientDC","_class_wxClientDC",0},
{ "_class_wxPoint","_wxPoint",0},
@@ -3704,6 +3705,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxPyDropTarget","_wxPyTextDropTarget",SwigwxPyTextDropTargetTowxPyDropTarget},
{ "_wxPyDropTarget","_class_wxPyDropTarget",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_wxCustomDataObject","_class_wxCustomDataObject",0},
{ "_class_wxSize","_wxSize",0},
+2
View File
@@ -3150,6 +3150,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPyValidator","_wxPyValidator",0},
{ "_class_wxCloseEvent","_wxCloseEvent",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_class_wxMenuEvent","_wxMenuEvent",0},
{ "_wxPaletteChangedEvent","_class_wxPaletteChangedEvent",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
@@ -3291,6 +3292,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxGauge","_class_wxGauge",0},
{ "_class_wxCheckListBox","_wxCheckListBox",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxCommandEvent","_wxCommandEvent",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSizeEvent","_wxSizeEvent",0},
+2
View File
@@ -8257,6 +8257,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPyValidator","_wxPyValidator",0},
{ "_class_wxCloseEvent","_wxCloseEvent",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_class_wxMenuEvent","_wxMenuEvent",0},
{ "_wxPaletteChangedEvent","_class_wxPaletteChangedEvent",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
@@ -8457,6 +8458,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxGauge","_class_wxGauge",0},
{ "_class_wxCheckListBox","_wxCheckListBox",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxCommandEvent","_wxCommandEvent",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSizeEvent","_wxSizeEvent",0},
+2
View File
@@ -8443,6 +8443,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPyValidator","_wxPyValidator",0},
{ "_class_wxCloseEvent","_wxCloseEvent",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_class_wxMenuEvent","_wxMenuEvent",0},
{ "_wxPaletteChangedEvent","_class_wxPaletteChangedEvent",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
@@ -8575,6 +8576,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxGauge","_class_wxGauge",0},
{ "_class_wxCheckListBox","_wxCheckListBox",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxCommandEvent","_class_wxTreeEvent",SwigwxTreeEventTowxCommandEvent},
{ "_class_wxCommandEvent","_wxTreeEvent",SwigwxTreeEventTowxCommandEvent},
{ "_class_wxCommandEvent","_class_wxListEvent",SwigwxListEventTowxCommandEvent},
+2
View File
@@ -2304,6 +2304,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxDateSpan","_class_wxDateSpan",0},
{ "_class_wxFont","_wxFont",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_wxClientDC","_class_wxClientDC",0},
{ "_class_wxPoint","_wxPoint",0},
{ "_class_wxPyInputStream","_wxPyInputStream",0},
@@ -2402,6 +2403,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPCXHandler","_wxPCXHandler",0},
{ "_wxTIFFHandler","_class_wxTIFFHandler",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSize","_wxSize",0},
{ "_class_wxBitmap","_wxBitmap",0},
+2
View File
@@ -1419,6 +1419,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPyValidator","_wxPyValidator",0},
{ "_class_wxCloseEvent","_wxCloseEvent",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_class_wxMenuEvent","_wxMenuEvent",0},
{ "_wxPaletteChangedEvent","_class_wxPaletteChangedEvent",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
@@ -1543,6 +1544,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxGauge","_class_wxGauge",0},
{ "_class_wxCheckListBox","_wxCheckListBox",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxCommandEvent","_wxCommandEvent",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSizeEvent","_wxSizeEvent",0},
+675 -14
View File
File diff suppressed because it is too large Load Diff
+104
View File
@@ -216,6 +216,9 @@ class wxFontPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def __del__(self,gdic=gdic):
if self.thisown == 1 :
gdic.delete_wxFont(self)
def Ok(self, *_args, **_kwargs):
val = apply(gdic.wxFont_Ok,(self,) + _args, _kwargs)
return val
@@ -283,6 +286,29 @@ class wxFont(wxFontPtr):
class wxFontListPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def AddFont(self, *_args, **_kwargs):
val = apply(gdic.wxFontList_AddFont,(self,) + _args, _kwargs)
return val
def FindOrCreateFont(self, *_args, **_kwargs):
val = apply(gdic.wxFontList_FindOrCreateFont,(self,) + _args, _kwargs)
if val: val = wxFontPtr(val)
return val
def RemoveFont(self, *_args, **_kwargs):
val = apply(gdic.wxFontList_RemoveFont,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxFontList instance at %s>" % (self.this,)
class wxFontList(wxFontListPtr):
def __init__(self,this):
self.this = this
class wxColourPtr :
def __init__(self,this):
self.this = this
@@ -321,10 +347,36 @@ class wxColour(wxColourPtr):
class wxColourDatabasePtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def FindColour(self, *_args, **_kwargs):
val = apply(gdic.wxColourDatabase_FindColour,(self,) + _args, _kwargs)
if val: val = wxColourPtr(val)
return val
def FindName(self, *_args, **_kwargs):
val = apply(gdic.wxColourDatabase_FindName,(self,) + _args, _kwargs)
return val
def Append(self, *_args, **_kwargs):
val = apply(gdic.wxColourDatabase_Append,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxColourDatabase instance at %s>" % (self.this,)
class wxColourDatabase(wxColourDatabasePtr):
def __init__(self,this):
self.this = this
class wxPenPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def __del__(self,gdic=gdic):
if self.thisown == 1 :
gdic.delete_wxPen(self)
def GetCap(self, *_args, **_kwargs):
val = apply(gdic.wxPen_GetCap,(self,) + _args, _kwargs)
return val
@@ -382,10 +434,36 @@ class wxPen(wxPenPtr):
class wxPenListPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def AddPen(self, *_args, **_kwargs):
val = apply(gdic.wxPenList_AddPen,(self,) + _args, _kwargs)
return val
def FindOrCreatePen(self, *_args, **_kwargs):
val = apply(gdic.wxPenList_FindOrCreatePen,(self,) + _args, _kwargs)
if val: val = wxPenPtr(val)
return val
def RemovePen(self, *_args, **_kwargs):
val = apply(gdic.wxPenList_RemovePen,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxPenList instance at %s>" % (self.this,)
class wxPenList(wxPenListPtr):
def __init__(self,this):
self.this = this
class wxBrushPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def __del__(self,gdic=gdic):
if self.thisown == 1 :
gdic.delete_wxBrush(self)
def GetColour(self, *_args, **_kwargs):
val = apply(gdic.wxBrush_GetColour,(self,) + _args, _kwargs)
if val: val = wxColourPtr(val)
@@ -419,6 +497,29 @@ class wxBrush(wxBrushPtr):
class wxBrushListPtr :
def __init__(self,this):
self.this = this
self.thisown = 0
def AddBrush(self, *_args, **_kwargs):
val = apply(gdic.wxBrushList_AddBrush,(self,) + _args, _kwargs)
return val
def FindOrCreateBrush(self, *_args, **_kwargs):
val = apply(gdic.wxBrushList_FindOrCreateBrush,(self,) + _args, _kwargs)
if val: val = wxBrushPtr(val)
return val
def RemoveBrush(self, *_args, **_kwargs):
val = apply(gdic.wxBrushList_RemoveBrush,(self,) + _args, _kwargs)
return val
def __repr__(self):
return "<C wxBrushList instance at %s>" % (self.this,)
class wxBrushList(wxBrushListPtr):
def __init__(self,this):
self.this = this
class wxDCPtr :
def __init__(self,this):
self.this = this
@@ -980,6 +1081,9 @@ wxNullBrush = wxBrushPtr(gdic.cvar.wxNullBrush)
wxNullPalette = wxPalettePtr(gdic.cvar.wxNullPalette)
wxNullFont = wxFontPtr(gdic.cvar.wxNullFont)
wxNullColour = wxColourPtr(gdic.cvar.wxNullColour)
wxTheFontList = wxFontListPtr(gdic.cvar.wxTheFontList)
wxThePenList = wxPenListPtr(gdic.cvar.wxThePenList)
wxTheColourDatabase = wxColourDatabasePtr(gdic.cvar.wxTheColourDatabase)
wxIMAGELIST_DRAW_NORMAL = gdic.wxIMAGELIST_DRAW_NORMAL
wxIMAGELIST_DRAW_TRANSPARENT = gdic.wxIMAGELIST_DRAW_TRANSPARENT
wxIMAGELIST_DRAW_SELECTED = gdic.wxIMAGELIST_DRAW_SELECTED
+2
View File
@@ -2235,6 +2235,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_unsigned_short","_short",0},
{ "_class_wxFont","_wxFont",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_wxClientDC","_class_wxClientDC",0},
{ "_class_wxPoint","_wxPoint",0},
{ "_wxRealPoint","_class_wxRealPoint",0},
@@ -2323,6 +2324,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPCXHandler","_wxPCXHandler",0},
{ "_wxTIFFHandler","_class_wxTIFFHandler",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSize","_wxSize",0},
{ "_class_wxBitmap","_wxBitmap",0},
+2
View File
@@ -1011,6 +1011,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPyValidator","_wxPyValidator",0},
{ "_class_wxCloseEvent","_wxCloseEvent",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_class_wxMenuEvent","_wxMenuEvent",0},
{ "_wxPaletteChangedEvent","_class_wxPaletteChangedEvent",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
@@ -1138,6 +1139,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxGauge","_class_wxGauge",0},
{ "_class_wxCheckListBox","_wxCheckListBox",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxCommandEvent","_wxCommandEvent",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSizeEvent","_wxSizeEvent",0},
+2
View File
@@ -4739,6 +4739,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPyValidator","_wxPyValidator",0},
{ "_class_wxCloseEvent","_wxCloseEvent",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_class_wxMenuEvent","_wxMenuEvent",0},
{ "_wxPaletteChangedEvent","_class_wxPaletteChangedEvent",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
@@ -4875,6 +4876,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxGauge","_class_wxGauge",0},
{ "_class_wxCheckListBox","_wxCheckListBox",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxCommandEvent","_wxCommandEvent",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSizeEvent","_wxSizeEvent",0},
+2
View File
@@ -3006,6 +3006,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPyValidator","_wxPyValidator",0},
{ "_class_wxCloseEvent","_wxCloseEvent",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_class_wxMenuEvent","_wxMenuEvent",0},
{ "_wxPaletteChangedEvent","_class_wxPaletteChangedEvent",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
@@ -3145,6 +3146,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxGauge","_class_wxGauge",0},
{ "_class_wxCheckListBox","_wxCheckListBox",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxCommandEvent","_wxCommandEvent",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSizeEvent","_wxSizeEvent",0},
+2
View File
@@ -3486,6 +3486,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_class_wxPyValidator","_wxPyValidator",0},
{ "_class_wxCloseEvent","_wxCloseEvent",0},
{ "_wxBusyInfo","_class_wxBusyInfo",0},
{ "_wxFontList","_class_wxFontList",0},
{ "_class_wxMenuEvent","_wxMenuEvent",0},
{ "_wxPaletteChangedEvent","_class_wxPaletteChangedEvent",0},
{ "_class_wxPyBitmapDataObject","_wxPyBitmapDataObject",0},
@@ -3622,6 +3623,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
{ "_wxGauge","_class_wxGauge",0},
{ "_class_wxCheckListBox","_wxCheckListBox",0},
{ "_class_wxBusyInfo","_wxBusyInfo",0},
{ "_class_wxFontList","_wxFontList",0},
{ "_class_wxCommandEvent","_wxCommandEvent",0},
{ "_class_wxClientDC","_wxClientDC",0},
{ "_class_wxSizeEvent","_wxSizeEvent",0},