(1) Denis Pershin's patch for wxGTK (memory leaks corrections)

(2) DELETEP/DELETEA globally renamed to wxDELETE/wxDELETEA and now also NULL
    their argument


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@450 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1998-08-07 15:09:04 +00:00
parent 0e072aac7a
commit a3622daa90
47 changed files with 877 additions and 715 deletions

View File

@@ -210,10 +210,15 @@ enum ErrCode
/** @name Very common macros */
// ----------------------------------------------------------------------------
//@{
/// delete pointer if it is not NULL
#define DELETEP(p) if ( (p) != NULL ) delete (p)
/// delete array pointer if it is not NULL
#define DELETEA(p) if ( (p) != NULL ) delete [] (p)
/// delete pointer if it is not NULL and NULL it afterwards
// (checking that it's !NULL before passing it to delete is just a
// a question of style, because delete will do it itself anyhow, but it might
// be considered as an error by some overzealous debugging implementations of
// the library, so we do it ourselves)
#define wxDELETE(p) if ( (p) != NULL ) { delete (p); p = NULL; }
// delete an array and NULL it (see comments above)
#define wxDELETEA(p) if ( (p) != NULL ) { delete [] (p); p = NULL; }
/// size of statically declared array
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))

View File

@@ -315,7 +315,9 @@ WXDLLEXPORT_DATA(extern wxCursor*) wxCROSS_CURSOR;
WXDLLEXPORT_DATA(extern wxColourDatabase*) wxTheColourDatabase;
extern void WXDLLEXPORT wxInitializeStockObjects();
extern void WXDLLEXPORT wxInitializeStockLists();
extern void WXDLLEXPORT wxDeleteStockObjects();
extern void WXDLLEXPORT wxDeleteStockLists();
extern bool WXDLLEXPORT wxColourDisplay();
@@ -345,5 +347,14 @@ extern void WXDLLEXPORT wxSetCursor(const wxCursor& cursor);
wxIcon *icon = new wxICON(wxbuild);
*/
class WXDLLEXPORT wxResourceCache: public wxList
{
DECLARE_DYNAMIC_CLASS(wxResourceCache)
public:
wxResourceCache();
wxResourceCache(const unsigned int the_key_type);
~wxResourceCache();
};
#endif
// __GDICMNH__

View File

@@ -119,7 +119,7 @@ enum {
wxLIST_NEXT_ALL, // Searches for subsequent item by index
wxLIST_NEXT_BELOW, // Searches for an item below the specified item
wxLIST_NEXT_LEFT, // Searches for an item to the left of the specified item
wxLIST_NEXT_RIGHT, // Searches for an item to the right of the specified item
wxLIST_NEXT_RIGHT // Searches for an item to the right of the specified item
};
// Alignment flags for Arrange // always wxLIST_ALIGN_LEFT in wxGLC

View File

@@ -24,7 +24,6 @@
class wxApp;
class wxLog;
class wxConfig; // it's not used #if !USE_WXCONFIG, but fwd decl doesn't harm
//-----------------------------------------------------------------------------
// global data
@@ -103,12 +102,6 @@ class wxApp: public wxEvtHandler
// user-defined classv (default implementation creates a wxLogGui object)
virtual wxLog *CreateLogTarget();
#if USE_WXCONFIG
// override this function to create a global wxConfig object of different
// than default type (right now the default implementation returns NULL)
virtual wxConfig *CreateConfig() { return NULL; }
#endif
// GTK implementation
static void CommonInit(void);

View File

@@ -37,7 +37,7 @@ class wxFontNameDirectory;
// global variables
//-----------------------------------------------------------------------------
// extern wxFontNameDirectory wxTheFontNameDirectory; // defined below
//extern wxFontNameDirectory *wxTheFontNameDirectory; // defined below
//-----------------------------------------------------------------------------
// wxFont
@@ -115,6 +115,6 @@ class wxFontNameDirectory: public wxObject
int nextFontId;
};
extern wxFontNameDirectory wxTheFontNameDirectory;
extern wxFontNameDirectory *wxTheFontNameDirectory;
#endif // __GTKFONTH__

View File

@@ -26,6 +26,7 @@
//-----------------------------------------------------------------------------
class wxListBox;
class wxArrayInt;
//-----------------------------------------------------------------------------
// global data

View File

@@ -26,6 +26,9 @@ class WXDLLEXPORT wxSystemSettings: public wxObject
public:
inline wxSystemSettings(void) {}
inline static void Init() {}
static void Done();
// Get a system colour
static wxColour GetSystemColour(int index);

View File

@@ -24,7 +24,6 @@
class wxApp;
class wxLog;
class wxConfig; // it's not used #if !USE_WXCONFIG, but fwd decl doesn't harm
//-----------------------------------------------------------------------------
// global data
@@ -103,12 +102,6 @@ class wxApp: public wxEvtHandler
// user-defined classv (default implementation creates a wxLogGui object)
virtual wxLog *CreateLogTarget();
#if USE_WXCONFIG
// override this function to create a global wxConfig object of different
// than default type (right now the default implementation returns NULL)
virtual wxConfig *CreateConfig() { return NULL; }
#endif
// GTK implementation
static void CommonInit(void);

View File

@@ -37,7 +37,7 @@ class wxFontNameDirectory;
// global variables
//-----------------------------------------------------------------------------
// extern wxFontNameDirectory wxTheFontNameDirectory; // defined below
//extern wxFontNameDirectory *wxTheFontNameDirectory; // defined below
//-----------------------------------------------------------------------------
// wxFont
@@ -115,6 +115,6 @@ class wxFontNameDirectory: public wxObject
int nextFontId;
};
extern wxFontNameDirectory wxTheFontNameDirectory;
extern wxFontNameDirectory *wxTheFontNameDirectory;
#endif // __GTKFONTH__

View File

@@ -26,6 +26,7 @@
//-----------------------------------------------------------------------------
class wxListBox;
class wxArrayInt;
//-----------------------------------------------------------------------------
// global data

View File

@@ -26,6 +26,9 @@ class WXDLLEXPORT wxSystemSettings: public wxObject
public:
inline wxSystemSettings(void) {}
inline static void Init() {}
static void Done();
// Get a system colour
static wxColour GetSystemColour(int index);

View File

@@ -60,8 +60,8 @@ class WXDLLEXPORT wxIndividualLayoutConstraint: public wxObject
bool done;
public:
wxIndividualLayoutConstraint(void);
~wxIndividualLayoutConstraint(void);
wxIndividualLayoutConstraint();
~wxIndividualLayoutConstraint();
void Set(wxRelationship rel, wxWindow *otherW, wxEdge otherE, int val = 0, int marg = wxLAYOUT_DEFAULT_MARGIN);
@@ -89,28 +89,28 @@ class WXDLLEXPORT wxIndividualLayoutConstraint: public wxObject
//
// Dimension is unconstrained
//
inline void Unconstrained(void) { relationship = wxUnconstrained; }
inline void Unconstrained() { relationship = wxUnconstrained; }
//
// Dimension is 'as is' (use current size settings)
//
inline void AsIs(void) { relationship = wxAsIs; }
inline void AsIs() { relationship = wxAsIs; }
//
// Accessors
//
inline wxWindow *GetOtherWindow(void) { return otherWin; }
inline wxEdge GetMyEdge(void) { return myEdge; }
inline wxWindow *GetOtherWindow() { return otherWin; }
inline wxEdge GetMyEdge() const { return myEdge; }
inline void SetEdge(wxEdge which) { myEdge = which; }
inline void SetValue(int v) { value = v; }
inline int GetMargin(void) { return margin; }
inline int GetMargin() { return margin; }
inline void SetMargin(int m) { margin = m; }
inline int GetValue(void) { return value; }
inline int GetPercent(void) { return percent; }
inline int GetOtherEdge(void) { return otherEdge; }
inline bool GetDone(void) { return done; }
inline int GetValue() const { return value; }
inline int GetPercent() const { return percent; }
inline int GetOtherEdge() const { return otherEdge; }
inline bool GetDone() const { return done; }
inline void SetDone(bool d) { done = d; }
inline wxRelationship GetRelationship(void) { return relationship; }
inline wxRelationship GetRelationship() { return relationship; }
inline void SetRelationship(wxRelationship r) { relationship = r; }
// Reset constraint if it mentions otherWin
@@ -121,7 +121,7 @@ class WXDLLEXPORT wxIndividualLayoutConstraint: public wxObject
// Get the value of this edge or dimension, or if this
// is not determinable, -1.
int GetEdge(wxEdge which, wxWindow *thisWin, wxWindow *other);
int GetEdge(wxEdge which, wxWindow *thisWin, wxWindow *other) const;
};
class WXDLLEXPORT wxLayoutConstraints: public wxObject
@@ -141,10 +141,15 @@ class WXDLLEXPORT wxLayoutConstraints: public wxObject
wxIndividualLayoutConstraint centreX;
wxIndividualLayoutConstraint centreY;
wxLayoutConstraints(void);
~wxLayoutConstraints(void);
wxLayoutConstraints();
~wxLayoutConstraints();
bool SatisfyConstraints(wxWindow *win, int *noChanges);
bool AreSatisfied() const
{
return left.GetDone() && top.GetDone() && right.GetDone() &&
bottom.GetDone() && centreX.GetDone() && centreY.GetDone();
}
};
bool WXDLLEXPORT wxOldDoLayout(wxWindow *win);
@@ -217,9 +222,9 @@ class WXDLLEXPORT wxSizer: public wxWindow
int sizerX;
int sizerY;
public:
wxSizer(void);
wxSizer();
wxSizer(wxWindow *parent, wxSizerBehaviour behav = wxSizerNone);
~wxSizer(void);
~wxSizer();
bool Create(wxWindow *parent, wxSizerBehaviour behav = wxSizerNone);
virtual void SetSize(int x, int y, int w, int h, int flags = wxSIZE_AUTO);
@@ -236,14 +241,14 @@ class WXDLLEXPORT wxSizer: public wxWindow
{ Move(x, y); }
virtual void SetBorder(int w, int h);
inline int GetBorderX(void) { return borderX ; }
inline int GetBorderY(void) { return borderY ; }
inline int GetBorderX() { return borderX ; }
inline int GetBorderY() { return borderY ; }
virtual void AddSizerChild(wxWindow *child);
virtual void RemoveSizerChild(wxWindow *child);
inline virtual void SetBehaviour(wxSizerBehaviour b) { sizerBehaviour = b; }
inline virtual wxSizerBehaviour GetBehaviour(void) { return sizerBehaviour; }
inline virtual wxSizerBehaviour GetBehaviour() { return sizerBehaviour; }
virtual bool LayoutPhase1(int *);
virtual bool LayoutPhase2(int *);
@@ -264,9 +269,9 @@ class WXDLLEXPORT wxRowColSizer: public wxSizer
int ySpacing;
public:
// rowOrCol = TRUE to be laid out in rows, otherwise in columns.
wxRowColSizer(void);
wxRowColSizer();
wxRowColSizer(wxWindow *parent, bool rowOrCol = wxSIZER_ROWS, int rowsOrColSize = 20, wxSizerBehaviour = wxSizerShrink);
~wxRowColSizer(void);
~wxRowColSizer();
bool Create(wxWindow *parent, bool rowOrCol = wxSIZER_ROWS, int rowsOrColSize = 20, wxSizerBehaviour = wxSizerShrink);
void SetSize(int x, int y, int w, int h, int flags = wxSIZE_AUTO);
@@ -274,9 +279,9 @@ class WXDLLEXPORT wxRowColSizer: public wxSizer
void SetSize(int w, int h) { wxSizer::SetSize(w, h); }
inline virtual void SetRowOrCol(bool rc) { rowOrCol = rc; }
inline virtual bool GetRowOrCol(void) { return rowOrCol; }
inline virtual bool GetRowOrCol() { return rowOrCol; }
inline virtual void SetRowOrColSize(int n) { rowOrColSize = n; }
inline virtual int GetRowOrColSize(void) { return rowOrColSize; }
inline virtual int GetRowOrColSize() { return rowOrColSize; }
inline virtual void SetSpacing(int x, int y) { xSpacing = x; ySpacing = y; }
inline virtual void GetSpacing(int *x, int *y) { *x = xSpacing; *y = ySpacing; }
@@ -291,10 +296,10 @@ class WXDLLEXPORT wxSpacingSizer: public wxSizer
private:
protected:
public:
wxSpacingSizer(void);
wxSpacingSizer();
wxSpacingSizer(wxWindow *parent, wxRelationship rel, wxWindow *other, int spacing);
wxSpacingSizer(wxWindow *parent);
~wxSpacingSizer(void);
~wxSpacingSizer();
bool Create(wxWindow *parent, wxRelationship rel, wxWindow *other, int sp);
bool Create(wxWindow *parent);

View File

@@ -203,7 +203,9 @@ class wxFrame;
class WXDLLEXPORT wxLogWindow : public wxLog
{
public:
wxLogWindow(const char *szTitle, bool bShow = TRUE);
wxLogWindow(const char *szTitle, // the title of the frame
bool bShow = TRUE, // show window immediately?
bool bPassToOld = TRUE); // pass log messages to the old target?
~wxLogWindow();
// window operations
@@ -213,13 +215,22 @@ public:
wxFrame *GetFrame() const;
// accessors
// the previous log target (may be NULL)
wxLog *GetOldLog() const { return m_pOldLog; }
// are we passing the messages to the previous log target?
bool IsPassingMessages() const { return m_bPassMessages; }
// we can pass the messages to the previous log target (we're in this mode by
// default: we collect all messages in the window, but also let the default
// processing take place)
void PassMessages(bool bDoPass) { m_bPassMessages = bDoPass; }
protected:
virtual void DoLog(wxLogLevel level, const char *szString);
virtual void DoLogString(const char *szString);
private:
bool m_bPassMessages; // pass messages to m_pOldLog?
wxLog *m_pOldLog; // previous log target
wxLogFrame *m_pLogFrame; // the log frame
};

View File

@@ -60,7 +60,7 @@ public:
inline bool IsEnabled(int id) const { return Enabled(id); };
void Check(int id, bool Flag);
bool Checked(int id) const;
inline bool IsChecked(int id) const { return IsChecked(id); };
inline bool IsChecked(int id) const { return Checked(id); };
// item properties
// title
@@ -84,7 +84,7 @@ public:
virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; }
inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; }
inline wxEvtHandler *GetEventHandler(void) { return m_eventHandler; }
inline wxEvtHandler *GetEventHandler() { return m_eventHandler; }
inline wxList& GetItems() const { return (wxList&) m_menuItems; }
@@ -130,9 +130,10 @@ class WXDLLEXPORT wxMenuBar: public wxEvtHandler
{
DECLARE_DYNAMIC_CLASS(wxMenuBar)
wxMenuBar(void);
public:
wxMenuBar();
wxMenuBar(int n, wxMenu *menus[], const wxString titles[]);
~wxMenuBar(void);
~wxMenuBar();
void Append(wxMenu *menu, const wxString& title);
// Must only be used AFTER menu has been attached to frame,
@@ -161,8 +162,11 @@ class WXDLLEXPORT wxMenuBar: public wxEvtHandler
// menu too if itemMenu is non-NULL.
wxMenuItem *FindItemForId(int itemId, wxMenu **menuForItem = NULL) const ;
int GetMenuCount() const { return m_menuCount; }
wxMenu *GetMenu(int n) const { return m_menus[n]; }
inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; }
inline wxEvtHandler *GetEventHandler(void) { return m_eventHandler; }
inline wxEvtHandler *GetEventHandler() { return m_eventHandler; }
inline int GetMenuCount() const { return m_menuCount; }
inline wxMenu* GetMenu(int i) const { return m_menus[i]; }

View File

@@ -62,7 +62,7 @@ private:
// @@@ this class should really derive from wxTabCtrl, but the interface is not
// exactly the same, so I can't do it right now and instead we reimplement
// part of wxTabCtrl here
class wxNotebook : public wxControl
class WXDLLEXPORT wxNotebook : public wxControl
{
public:
// ctors
@@ -156,6 +156,7 @@ public:
void OnSetFocus(wxFocusEvent& event);
void OnNavigationKey(wxNavigationKeyEvent& event);
>>>>>>> 1.5
// base class virtuals
// -------------------
virtual void Command(wxCommandEvent& event);

View File

@@ -72,7 +72,7 @@ wxBaseArray::wxBaseArray(const wxBaseArray& src)
// assignment operator
wxBaseArray& wxBaseArray::operator=(const wxBaseArray& src)
{
DELETEA(m_pItems);
wxDELETEA(m_pItems);
m_uiSize = // not src.m_uiSize to save memory
m_uiCount = src.m_uiCount;
@@ -117,7 +117,7 @@ void wxBaseArray::Grow()
// dtor
wxBaseArray::~wxBaseArray()
{
DELETEA(m_pItems);
wxDELETEA(m_pItems);
}
// clears the list
@@ -126,8 +126,7 @@ void wxBaseArray::Clear()
m_uiSize =
m_uiCount = 0;
DELETEA(m_pItems);
m_pItems = NULL;
wxDELETEA(m_pItems);
}
// pre-allocates memory (frees the previous data!)
@@ -137,7 +136,7 @@ void wxBaseArray::Alloc(uint uiSize)
// only if old buffer was not big enough
if ( uiSize > m_uiSize ) {
DELETEA(m_pItems);
wxDELETEA(m_pItems);
m_pItems = new long[uiSize];
m_uiSize = uiSize;
}

View File

@@ -41,6 +41,7 @@ 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_DYNAMIC_CLASS(wxRect, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject)
@@ -319,14 +320,15 @@ wxString wxColourDatabase::FindName (const wxColour& colour) const
}
void
wxInitializeStockObjects ()
{
void wxInitializeStockLists () {
wxTheBrushList = new wxBrushList;
wxThePenList = new wxPenList;
wxTheFontList = new wxFontList;
wxTheBitmapList = new wxBitmapList;
}
void wxInitializeStockObjects ()
{
#ifdef __WXMOTIF__
#endif
#ifdef __X__
@@ -376,44 +378,52 @@ wxInitializeStockObjects ()
void
wxDeleteStockObjects ()
{
DELETEP(wxNORMAL_FONT);
DELETEP(wxSMALL_FONT);
DELETEP(wxITALIC_FONT);
DELETEP(wxSWISS_FONT);
DELETEP(wxRED_PEN);
DELETEP(wxCYAN_PEN);
DELETEP(wxGREEN_PEN);
DELETEP(wxBLACK_PEN);
DELETEP(wxWHITE_PEN);
DELETEP(wxTRANSPARENT_PEN);
DELETEP(wxBLACK_DASHED_PEN);
DELETEP(wxGREY_PEN);
DELETEP(wxMEDIUM_GREY_PEN);
DELETEP(wxLIGHT_GREY_PEN);
wxDELETE(wxNORMAL_FONT);
wxDELETE(wxSMALL_FONT);
wxDELETE(wxITALIC_FONT);
wxDELETE(wxSWISS_FONT);
DELETEP(wxBLUE_BRUSH);
DELETEP(wxGREEN_BRUSH);
DELETEP(wxWHITE_BRUSH);
DELETEP(wxBLACK_BRUSH);
DELETEP(wxTRANSPARENT_BRUSH);
DELETEP(wxCYAN_BRUSH);
DELETEP(wxRED_BRUSH);
DELETEP(wxGREY_BRUSH);
DELETEP(wxMEDIUM_GREY_BRUSH);
DELETEP(wxLIGHT_GREY_BRUSH);
wxDELETE(wxRED_PEN);
wxDELETE(wxCYAN_PEN);
wxDELETE(wxGREEN_PEN);
wxDELETE(wxBLACK_PEN);
wxDELETE(wxWHITE_PEN);
wxDELETE(wxTRANSPARENT_PEN);
wxDELETE(wxBLACK_DASHED_PEN);
wxDELETE(wxGREY_PEN);
wxDELETE(wxMEDIUM_GREY_PEN);
wxDELETE(wxLIGHT_GREY_PEN);
DELETEP(wxBLACK);
DELETEP(wxWHITE);
DELETEP(wxRED);
DELETEP(wxBLUE);
DELETEP(wxGREEN);
DELETEP(wxCYAN);
DELETEP(wxLIGHT_GREY);
wxDELETE(wxBLUE_BRUSH);
wxDELETE(wxGREEN_BRUSH);
wxDELETE(wxWHITE_BRUSH);
wxDELETE(wxBLACK_BRUSH);
wxDELETE(wxTRANSPARENT_BRUSH);
wxDELETE(wxCYAN_BRUSH);
wxDELETE(wxRED_BRUSH);
wxDELETE(wxGREY_BRUSH);
wxDELETE(wxMEDIUM_GREY_BRUSH);
wxDELETE(wxLIGHT_GREY_BRUSH);
DELETEP(wxSTANDARD_CURSOR);
DELETEP(wxHOURGLASS_CURSOR);
DELETEP(wxCROSS_CURSOR);
wxDELETE(wxBLACK);
wxDELETE(wxWHITE);
wxDELETE(wxRED);
wxDELETE(wxBLUE);
wxDELETE(wxGREEN);
wxDELETE(wxCYAN);
wxDELETE(wxLIGHT_GREY);
wxDELETE(wxSTANDARD_CURSOR);
wxDELETE(wxHOURGLASS_CURSOR);
wxDELETE(wxCROSS_CURSOR);
}
void wxDeleteStockLists() {
wxDELETE(wxTheBrushList);
wxDELETE(wxThePenList);
wxDELETE(wxTheFontList);
wxDELETE(wxTheBitmapList);
}
wxBitmapList::wxBitmapList ()
@@ -611,3 +621,38 @@ wxSize wxGetDisplaySize()
return wxSize(x, y);
}
wxResourceCache::wxResourceCache () : wxList() {
}
wxResourceCache::wxResourceCache (const unsigned int the_key_type) : wxList(the_key_type) {
}
wxResourceCache::~wxResourceCache () {
wxNode *node = First ();
while (node) {
wxGDIObject *item = (wxGDIObject *)node->Data();
if (item->IsKindOf(CLASSINFO(wxBrush))) {
wxBrush *brush = (wxBrush *)item;
delete brush;
}
if (item->IsKindOf(CLASSINFO(wxFont))) {
wxFont *font = (wxFont *)item;
delete font;
}
if (item->IsKindOf(CLASSINFO(wxBitmap))) {
wxBitmap *bitmap = (wxBitmap *)item;
delete bitmap;
}
if (item->IsKindOf(CLASSINFO(wxColour))) {
wxColour *colour = (wxColour *)item;
delete colour;
}
wxNode *next = node->Next ();
node = next;
}
}

View File

@@ -193,8 +193,8 @@ wxMsgCatalog::wxMsgCatalog()
wxMsgCatalog::~wxMsgCatalog()
{
DELETEA(m_pData);
DELETEA(m_pszName);
wxDELETEA(m_pData);
wxDELETEA(m_pszName);
}
class NoTransErr
@@ -268,8 +268,7 @@ bool wxMsgCatalog::Load(const char *szDirPrefix, const char *szName)
// read the whole file in memory
m_pData = new uint8[nSize];
if ( fileMsg.Read(m_pData, nSize) != nSize ) {
DELETEA(m_pData);
m_pData = NULL;
wxDELETEA(m_pData);
return FALSE;
}
@@ -291,8 +290,7 @@ bool wxMsgCatalog::Load(const char *szDirPrefix, const char *szName)
// it's either too short or has incorrect magic number
wxLogWarning("'%s' is not a valid message catalog.", strFullName.c_str());
DELETEA(m_pData);
m_pData = NULL;
wxDELETEA(m_pData);
return FALSE;
}

View File

@@ -88,13 +88,13 @@ int wxSizerMarginY(wxWindow *win)
}
wxIndividualLayoutConstraint::wxIndividualLayoutConstraint(void)
wxIndividualLayoutConstraint::wxIndividualLayoutConstraint()
{
myEdge = wxTop; relationship = wxUnconstrained; margin = 0; value = 0; percent = 0; otherEdge = wxTop;
done = FALSE; otherWin = NULL;
}
wxIndividualLayoutConstraint::~wxIndividualLayoutConstraint(void)
wxIndividualLayoutConstraint::~wxIndividualLayoutConstraint()
{
}
@@ -722,7 +722,9 @@ bool wxIndividualLayoutConstraint::SatisfyConstraint(wxLayoutConstraints *constr
// Get the value of this edge or dimension, or if this
// is not determinable, -1.
int wxIndividualLayoutConstraint::GetEdge(wxEdge which, wxWindow *thisWin, wxWindow *other)
int wxIndividualLayoutConstraint::GetEdge(wxEdge which,
wxWindow *thisWin,
wxWindow *other) const
{
// If the edge or dimension belongs to the parent, then we
// know the dimension is obtainable immediately.
@@ -942,7 +944,7 @@ int wxIndividualLayoutConstraint::GetEdge(wxEdge which, wxWindow *thisWin, wxWin
return -1;
}
wxLayoutConstraints::wxLayoutConstraints(void)
wxLayoutConstraints::wxLayoutConstraints()
{
left.SetEdge(wxLeft);
top.SetEdge(wxTop);
@@ -954,7 +956,7 @@ wxLayoutConstraints::wxLayoutConstraints(void)
height.SetEdge(wxHeight);
}
wxLayoutConstraints::~wxLayoutConstraints(void)
wxLayoutConstraints::~wxLayoutConstraints()
{
}
@@ -1004,8 +1006,7 @@ bool wxLayoutConstraints::SatisfyConstraints(wxWindow *win, int *nChanges)
*nChanges = noChanges;
return (left.GetDone() && top.GetDone() && right.GetDone() && bottom.GetDone() &&
centreX.GetDone() && centreY.GetDone());
return AreSatisfied();
}
/*
@@ -1136,7 +1137,7 @@ bool wxOldDoLayout(wxWindow *win)
return TRUE;
}
wxSizer::wxSizer(void)
wxSizer::wxSizer()
{
sizerBehaviour = wxSizerNone;
borderX = 2;
@@ -1197,7 +1198,7 @@ bool wxSizer::Create(wxWindow *parent, wxSizerBehaviour behav)
return TRUE;
}
wxSizer::~wxSizer(void)
wxSizer::~wxSizer()
{
// Remove all children without deleting them,
// or ~wxbWindow will delete proper windows _twice_
@@ -1488,7 +1489,7 @@ bool wxSizer::LayoutPhase2(int *noChanges)
* wxRowColSizer
*/
wxRowColSizer::wxRowColSizer(void)
wxRowColSizer::wxRowColSizer()
{
rowOrCol = TRUE;
rowOrColSize = 20;
@@ -1513,7 +1514,7 @@ bool wxRowColSizer::Create(wxWindow *parent, bool rc, int n, wxSizerBehaviour be
return TRUE;
}
wxRowColSizer::~wxRowColSizer(void)
wxRowColSizer::~wxRowColSizer()
{
}
@@ -1677,7 +1678,7 @@ bool wxRowColSizer::LayoutPhase2(int *noChanges)
* wxSpacingSizer
*/
wxSpacingSizer::wxSpacingSizer(void)
wxSpacingSizer::wxSpacingSizer()
{
}
@@ -1738,7 +1739,7 @@ bool wxSpacingSizer::Create(wxWindow *parent, wxRelationship rel, wxWindow *othe
return TRUE;
}
wxSpacingSizer::~wxSpacingSizer(void)
wxSpacingSizer::~wxSpacingSizer()
{
}

View File

@@ -646,10 +646,12 @@ void wxLogFrame::OnClear(wxCommandEvent& WXUNUSED(event))
m_pTextCtrl->Clear();
}
wxLogWindow::wxLogWindow(const char *szTitle, bool bShow)
wxLogWindow::wxLogWindow(const char *szTitle, bool bShow, bool bDoPass)
{
m_pOldLog = wxLog::GetActiveTarget();
m_bPassMessages = bDoPass;
m_pLogFrame = new wxLogFrame(szTitle);
m_pOldLog = wxLog::SetActiveTarget(this);
if ( bShow )
m_pLogFrame->Show(TRUE);
@@ -668,7 +670,7 @@ wxFrame *wxLogWindow::GetFrame() const
void wxLogWindow::DoLog(wxLogLevel level, const char *szString)
{
// first let the previous logger show it
if ( m_pOldLog != NULL ) {
if ( m_pOldLog != NULL && m_bPassMessages ) {
// @@@ why can't we access protected wxLog method from here (we derive
// from wxLog)? gcc gives "DoLog is protected in this context", what
// does this mean? Anyhow, the cast is harmless and let's us do what

View File

@@ -1645,7 +1645,7 @@ void wxPostScriptDC::GetTextExtent (const wxString& string, long *x, long *y,
// Julian - we'll need to do this a different way now we've removed the
// font directory system. Must find Stefan's original code.
name = wxTheFontNameDirectory.GetAFMName(Family, Weight, Style);
name = wxTheFontNameDirectory->GetAFMName(Family, Weight, Style);
if (!name)
name = "unknown";

View File

@@ -1133,7 +1133,7 @@ void wxArrayString::Grow()
memcpy(pNew, m_pItems, m_nCount*sizeof(char *));
// delete old memory (but do not release the strings!)
DELETEA(m_pItems);
wxDELETEA(m_pItems);
m_pItems = pNew;
}
@@ -1163,8 +1163,7 @@ void wxArrayString::Clear()
m_nSize =
m_nCount = 0;
DELETEA(m_pItems);
m_pItems = NULL;
wxDELETEA(m_pItems);
}
// dtor
@@ -1172,7 +1171,7 @@ wxArrayString::~wxArrayString()
{
Free();
DELETEA(m_pItems);
wxDELETEA(m_pItems);
}
// pre-allocates memory (frees the previous data!)
@@ -1183,7 +1182,7 @@ void wxArrayString::Alloc(size_t nSize)
// only if old buffer was not big enough
if ( nSize > m_nSize ) {
Free();
DELETEA(m_pItems);
wxDELETEA(m_pItems);
m_pItems = new char *[nSize];
m_nSize = nSize;
}

View File

@@ -19,6 +19,8 @@
#include "wx/intl.h"
#include "wx/log.h"
#include "wx/memory.h"
#include "wx/font.h"
#include "wx/settings.h"
#include "unistd.h"
@@ -34,6 +36,7 @@ wxApp *wxTheApp = NULL;
wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
extern wxList wxPendingDelete;
extern wxResourceCache *wxTheResourceCache;
//-----------------------------------------------------------------------------
// local functions
@@ -242,9 +245,16 @@ void wxApp::CommonInit(void)
(void) wxGetResource("wxWindows", "OsVersion", &wxOsVersion);
#endif
*/
wxSystemSettings::Init();
wxTheResourceCache = new wxResourceCache(wxKEY_STRING);
wxTheFontNameDirectory = new wxFontNameDirectory;
wxTheFontNameDirectory->Initialize();
wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING);
wxTheColourDatabase->Initialize();
wxInitializeStockLists();
wxInitializeStockObjects();
// For PostScript printing
@@ -261,14 +271,24 @@ void wxApp::CommonInit(void)
g_globalCursor = new wxCursor;
*/
wxInitializeStockObjects();
// wxInitializeStockObjects();
};
void wxApp::CommonCleanUp(void)
{
wxDELETE(wxTheColourDatabase);
wxDELETE(wxThePrintPaperDatabase);
wxDELETE(wxThePrintSetupData);
wxDELETE(wxTheFontNameDirectory);
wxDeleteStockObjects();
wxFlushResources();
wxDELETE(wxTheResourceCache);
wxDeleteStockLists();
wxSystemSettings::Done();
};
wxLog *wxApp::CreateLogTarget()
@@ -311,8 +331,6 @@ int wxEntry( int argc, char *argv[] )
wxObject *test_app = app_ini();
wxTheApp = (wxApp*) test_app;
// wxTheApp = (wxApp*)( app_ini() );
};
if (!wxTheApp)
@@ -321,8 +339,6 @@ int wxEntry( int argc, char *argv[] )
return 0;
};
// printf( "Programmstart.\n" );
wxTheApp->argc = argc;
wxTheApp->argv = argv;
@@ -360,6 +376,8 @@ int wxEntry( int argc, char *argv[] )
wxApp::CommonCleanUp();
wxDELETE(wxTheApp);
#if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
// At this point we want to check if there are any memory
// blocks that aren't part of the wxDebugContext itself,

View File

@@ -23,7 +23,7 @@
#include <X11/Xutil.h>
#include <X11/Xresource.h>
wxList wxResourceCache(wxKEY_STRING);
wxResourceCache *wxTheResourceCache = NULL;
XrmDatabase wxResourceDatabase;
// Useful buffer, initialized in wxCommonInit
@@ -64,7 +64,7 @@ wxBitmapList *wxTheBitmapList = NULL;
// X only font names
wxFontNameDirectory wxTheFontNameDirectory;
wxFontNameDirectory *wxTheFontNameDirectory;
// Stock objects
wxFont *wxNORMAL_FONT;
@@ -553,7 +553,6 @@ const wxEventTable wxEvtHandler::sm_eventTable =
const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL } };
BEGIN_EVENT_TABLE(wxFrame, wxWindow)
EVT_ACTIVATE(wxFrame::OnActivate)
EVT_SIZE(wxFrame::OnSize)
EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight)
EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)

View File

@@ -31,7 +31,7 @@ static char *wx_font_weight [] = {
"wxDEFAULT", "wxNORMAL", "wxBOLD", "wxLIGHT",
};
extern wxFontNameDirectory wxTheFontNameDirectory;
extern wxFontNameDirectory *wxTheFontNameDirectory;
//-----------------------------------------------------------------------------
// wxFont
@@ -116,13 +116,13 @@ wxFont::wxFont(int PointSize, int FontIdOrFamily, int Style, int Weight,
if ((M_FONTDATA->m_faceName = (Face) ? copystring(Face) : (char*)NULL) )
{
M_FONTDATA->m_fontId = wxTheFontNameDirectory.FindOrCreateFontId( Face, FontIdOrFamily );
M_FONTDATA->m_family = wxTheFontNameDirectory.GetFamily( FontIdOrFamily );
M_FONTDATA->m_fontId = wxTheFontNameDirectory->FindOrCreateFontId( Face, FontIdOrFamily );
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( FontIdOrFamily );
}
else
{
M_FONTDATA->m_fontId = FontIdOrFamily;
M_FONTDATA->m_family = wxTheFontNameDirectory.GetFamily( FontIdOrFamily );
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( FontIdOrFamily );
};
M_FONTDATA->m_style = Style;
M_FONTDATA->m_weight = Weight;
@@ -137,9 +137,9 @@ wxFont::wxFont(int PointSize, const char *Face, int Family, int Style,
{
m_refData = new wxFontRefData();
M_FONTDATA->m_fontId = wxTheFontNameDirectory.FindOrCreateFontId( Face, Family );
M_FONTDATA->m_fontId = wxTheFontNameDirectory->FindOrCreateFontId( Face, Family );
M_FONTDATA->m_faceName = (Face) ? copystring(Face) : (char*)NULL;
M_FONTDATA->m_family = wxTheFontNameDirectory.GetFamily( M_FONTDATA->m_fontId );
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( M_FONTDATA->m_fontId );
M_FONTDATA->m_style = Style;
M_FONTDATA->m_weight = Weight;
M_FONTDATA->m_pointSize = PointSize;
@@ -193,13 +193,13 @@ int wxFont::GetPointSize(void) const
wxString wxFont::GetFaceString(void) const
{
wxString s = wxTheFontNameDirectory.GetFontName( M_FONTDATA->m_fontId );
wxString s = wxTheFontNameDirectory->GetFontName( M_FONTDATA->m_fontId );
return s;
};
wxString wxFont::GetFaceName(void) const
{
wxString s = wxTheFontNameDirectory.GetFontName( M_FONTDATA->m_fontId );
wxString s = wxTheFontNameDirectory->GetFontName( M_FONTDATA->m_fontId );
return s;
};
@@ -288,7 +288,7 @@ static GdkFont *wxLoadQueryFont(int point_size, int fontid, int style,
int weight, bool WXUNUSED(underlined))
{
char buffer[512];
char *name = wxTheFontNameDirectory.GetScreenName( fontid, weight, style );
char *name = wxTheFontNameDirectory->GetScreenName( fontid, weight, style );
if (!name)
name = "-*-*-*-*-*-*-*-%d-*-*-*-*-*-*";
@@ -698,7 +698,6 @@ wxFontNameDirectory::wxFontNameDirectory(void)
{
table = new wxHashTable(wxKEY_INTEGER, 20);
nextFontId = -1;
Initialize();
}
wxFontNameDirectory::~wxFontNameDirectory()

View File

@@ -51,6 +51,7 @@ static void gtk_listitem_select_callback( GtkWidget *WXUNUSED(widget), wxListBox
}
event.SetEventObject( listbox );
listbox->GetEventHandler()->ProcessEvent( event );
if (event.m_commandString) delete[] event.m_commandString ;
};

View File

@@ -205,31 +205,38 @@ wxString wxRadioBox::GetLabel(void) const
void wxRadioBox::SetLabel( const wxString& WXUNUSED(label) )
{
wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
};
void wxRadioBox::SetLabel( int WXUNUSED(item), const wxString& WXUNUSED(label) )
{
wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
};
void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
{
wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
};
wxString wxRadioBox::GetLabel( int WXUNUSED(item) ) const
{
wxFAIL_MSG("wxRadioBox::GetLabel not implemented.");
return "";
};
void wxRadioBox::Enable( bool WXUNUSED(enable) )
{
wxFAIL_MSG("wxRadioBox::Enable not implemented.");
};
void wxRadioBox::Enable( int WXUNUSED(item), bool WXUNUSED(enable) )
{
wxFAIL_MSG("wxRadioBox::Enable not implemented.");
};
void wxRadioBox::Show( int WXUNUSED(item), bool WXUNUSED(show) )
{
wxFAIL_MSG("wxRadioBox::Show not implemented.");
};
wxString wxRadioBox::GetStringSelection(void) const
@@ -275,5 +282,6 @@ int wxRadioBox::GetNumberOfRowsOrCols(void) const
void wxRadioBox::SetNumberOfRowsOrCols( int WXUNUSED(n) )
{
wxFAIL_MSG("wxRadioBox::SetNumberOfRowsOrCols not implemented.");
};

View File

@@ -58,6 +58,16 @@ wxColour *g_systemBtnShadowColour = NULL;
wxColour *g_systemBtnHighlightColour = NULL;
wxColour *g_systemHighlightColour = NULL;
wxFont *g_systemFont = NULL;
void wxSystemSettings::Done() {
wxDELETE(g_systemBtnFaceColour);
wxDELETE(g_systemBtnShadowColour);
wxDELETE(g_systemBtnHighlightColour);
wxDELETE(g_systemHighlightColour);
wxDELETE(g_systemFont);
}
wxColour wxSystemSettings::GetSystemColour( int index )
{
switch (index)
@@ -141,8 +151,6 @@ wxColour wxSystemSettings::GetSystemColour( int index )
return *wxWHITE;
};
wxFont *g_systemFont = NULL;
wxFont wxSystemSettings::GetSystemFont( int index )
{
switch (index)

View File

@@ -40,7 +40,7 @@ wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex,
m_deleteSecondBitmap = FALSE;
};
wxToolBarTool::~wxToolBarTool(void)
wxToolBarTool::~wxToolBarTool()
{
};
@@ -64,7 +64,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl)
BEGIN_EVENT_TABLE(wxToolBar, wxControl)
END_EVENT_TABLE()
wxToolBar::wxToolBar(void)
wxToolBar::wxToolBar()
{
};
@@ -75,7 +75,7 @@ wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id,
Create( parent, id, pos, size, style, name );
};
wxToolBar::~wxToolBar(void)
wxToolBar::~wxToolBar()
{
};

View File

@@ -31,6 +31,7 @@
#include <X11/Xutil.h>
#include <X11/Xresource.h>
#include "wx/log.h"
//-----------------------------------------------------------------------------
// constants
@@ -48,7 +49,7 @@
// glabal data (data.cpp)
//-----------------------------------------------------------------------------
extern wxList wxResourceCache;
extern wxResourceCache *wxTheResourceCache;
extern XrmDatabase wxResourceDatabase;
//-----------------------------------------------------------------------------
@@ -163,7 +164,7 @@ void wxFlushResources(void)
{
char nameBuffer[512];
wxNode *node = wxResourceCache.First();
wxNode *node = wxTheResourceCache->First();
while (node) {
char *file = node->key.string;
// If file doesn't exist, create it first.
@@ -173,21 +174,22 @@ void wxFlushResources(void)
XrmPutFileDatabase(database, nameBuffer);
XrmDestroyDatabase(database);
wxNode *next = node->Next();
delete node;
// delete node;
node = next;
}
}
void wxDeleteResources(const char *file)
{
wxLogTrace(wxTraceResAlloc, "Delete: Number = %d", wxTheResourceCache->Number());
char buffer[500];
(void)GetIniFile(buffer, file);
wxNode *node = wxResourceCache.Find(buffer);
wxNode *node = wxTheResourceCache->Find(buffer);
if (node) {
XrmDatabase database = (XrmDatabase)node->Data();
XrmDestroyDatabase(database);
delete node;
// delete node;
}
}
@@ -204,12 +206,13 @@ bool wxWriteResource(const wxString& section, const wxString& entry, const wxStr
(void)GetIniFile(buffer, file);
XrmDatabase database;
wxNode *node = wxResourceCache.Find(buffer);
wxNode *node = wxTheResourceCache->Find(buffer);
if (node)
database = (XrmDatabase)node->Data();
else {
database = XrmGetFileDatabase(buffer);
wxResourceCache.Append(buffer, (wxObject *)database);
wxLogTrace(wxTraceResAlloc, "Write: Number = %d", wxTheResourceCache->Number());
wxTheResourceCache->Append(buffer, (wxObject *)database);
}
char resName[300];
strcpy(resName, !section.IsNull() ? WXSTRINGCAST section : "wxWindows");
@@ -252,12 +255,13 @@ bool wxGetResource(const wxString& section, const wxString& entry, char **value,
// home directory instead of current directory -- JACS
(void)GetIniFile(buffer, file);
wxNode *node = wxResourceCache.Find(buffer);
wxNode *node = wxTheResourceCache->Find(buffer);
if (node)
database = (XrmDatabase)node->Data();
else {
database = XrmGetFileDatabase(buffer);
wxResourceCache.Append(buffer, (wxObject *)database);
wxLogTrace(wxTraceResAlloc, "Get: Number = %d", wxTheResourceCache->Number());
wxTheResourceCache->Append(buffer, (wxObject *)database);
}
} else
database = wxResourceDatabase;

View File

@@ -753,6 +753,7 @@ wxWindow::wxWindow( wxWindow *parent, wxWindowID id,
const wxPoint &pos, const wxSize &size,
long style, const wxString &name )
{
m_cursor = NULL;
Create( parent, id, pos, size, style, name );
};
@@ -864,7 +865,7 @@ wxWindow::~wxWindow(void)
if (m_widget) gtk_widget_destroy( m_widget );
// delete m_cursor;
wxDELETE(m_cursor);
DeleteRelatedConstraints();
if (m_constraints)
@@ -918,6 +919,7 @@ void wxWindow::PreCreation( wxWindow *parent, wxWindowID id,
m_windowValidator = NULL;
m_windowId = id;
m_sizeSet = FALSE;
if (m_cursor == NULL)
m_cursor = new wxCursor( wxCURSOR_ARROW );
m_font = *wxSWISS_FONT;
m_backgroundColour = wxWHITE;
@@ -1561,7 +1563,11 @@ wxWindowID wxWindow::GetId(void)
void wxWindow::SetCursor( const wxCursor &cursor )
{
if (*m_cursor == cursor) return;
wxASSERT(m_cursor != NULL);
if (m_cursor != NULL)
if (*m_cursor == cursor)
return;
(*m_cursor) = cursor;
if (m_widget->window)
gdk_window_set_cursor( m_widget->window, m_cursor->GetCursor() );

View File

@@ -19,6 +19,8 @@
#include "wx/intl.h"
#include "wx/log.h"
#include "wx/memory.h"
#include "wx/font.h"
#include "wx/settings.h"
#include "unistd.h"
@@ -34,6 +36,7 @@ wxApp *wxTheApp = NULL;
wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL;
extern wxList wxPendingDelete;
extern wxResourceCache *wxTheResourceCache;
//-----------------------------------------------------------------------------
// local functions
@@ -242,9 +245,16 @@ void wxApp::CommonInit(void)
(void) wxGetResource("wxWindows", "OsVersion", &wxOsVersion);
#endif
*/
wxSystemSettings::Init();
wxTheResourceCache = new wxResourceCache(wxKEY_STRING);
wxTheFontNameDirectory = new wxFontNameDirectory;
wxTheFontNameDirectory->Initialize();
wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING);
wxTheColourDatabase->Initialize();
wxInitializeStockLists();
wxInitializeStockObjects();
// For PostScript printing
@@ -261,14 +271,24 @@ void wxApp::CommonInit(void)
g_globalCursor = new wxCursor;
*/
wxInitializeStockObjects();
// wxInitializeStockObjects();
};
void wxApp::CommonCleanUp(void)
{
wxDELETE(wxTheColourDatabase);
wxDELETE(wxThePrintPaperDatabase);
wxDELETE(wxThePrintSetupData);
wxDELETE(wxTheFontNameDirectory);
wxDeleteStockObjects();
wxFlushResources();
wxDELETE(wxTheResourceCache);
wxDeleteStockLists();
wxSystemSettings::Done();
};
wxLog *wxApp::CreateLogTarget()
@@ -311,8 +331,6 @@ int wxEntry( int argc, char *argv[] )
wxObject *test_app = app_ini();
wxTheApp = (wxApp*) test_app;
// wxTheApp = (wxApp*)( app_ini() );
};
if (!wxTheApp)
@@ -321,8 +339,6 @@ int wxEntry( int argc, char *argv[] )
return 0;
};
// printf( "Programmstart.\n" );
wxTheApp->argc = argc;
wxTheApp->argv = argv;
@@ -360,6 +376,8 @@ int wxEntry( int argc, char *argv[] )
wxApp::CommonCleanUp();
wxDELETE(wxTheApp);
#if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
// At this point we want to check if there are any memory
// blocks that aren't part of the wxDebugContext itself,

View File

@@ -23,7 +23,7 @@
#include <X11/Xutil.h>
#include <X11/Xresource.h>
wxList wxResourceCache(wxKEY_STRING);
wxResourceCache *wxTheResourceCache = NULL;
XrmDatabase wxResourceDatabase;
// Useful buffer, initialized in wxCommonInit
@@ -64,7 +64,7 @@ wxBitmapList *wxTheBitmapList = NULL;
// X only font names
wxFontNameDirectory wxTheFontNameDirectory;
wxFontNameDirectory *wxTheFontNameDirectory;
// Stock objects
wxFont *wxNORMAL_FONT;
@@ -553,7 +553,6 @@ const wxEventTable wxEvtHandler::sm_eventTable =
const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL } };
BEGIN_EVENT_TABLE(wxFrame, wxWindow)
EVT_ACTIVATE(wxFrame::OnActivate)
EVT_SIZE(wxFrame::OnSize)
EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight)
EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)

View File

@@ -31,7 +31,7 @@ static char *wx_font_weight [] = {
"wxDEFAULT", "wxNORMAL", "wxBOLD", "wxLIGHT",
};
extern wxFontNameDirectory wxTheFontNameDirectory;
extern wxFontNameDirectory *wxTheFontNameDirectory;
//-----------------------------------------------------------------------------
// wxFont
@@ -116,13 +116,13 @@ wxFont::wxFont(int PointSize, int FontIdOrFamily, int Style, int Weight,
if ((M_FONTDATA->m_faceName = (Face) ? copystring(Face) : (char*)NULL) )
{
M_FONTDATA->m_fontId = wxTheFontNameDirectory.FindOrCreateFontId( Face, FontIdOrFamily );
M_FONTDATA->m_family = wxTheFontNameDirectory.GetFamily( FontIdOrFamily );
M_FONTDATA->m_fontId = wxTheFontNameDirectory->FindOrCreateFontId( Face, FontIdOrFamily );
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( FontIdOrFamily );
}
else
{
M_FONTDATA->m_fontId = FontIdOrFamily;
M_FONTDATA->m_family = wxTheFontNameDirectory.GetFamily( FontIdOrFamily );
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( FontIdOrFamily );
};
M_FONTDATA->m_style = Style;
M_FONTDATA->m_weight = Weight;
@@ -137,9 +137,9 @@ wxFont::wxFont(int PointSize, const char *Face, int Family, int Style,
{
m_refData = new wxFontRefData();
M_FONTDATA->m_fontId = wxTheFontNameDirectory.FindOrCreateFontId( Face, Family );
M_FONTDATA->m_fontId = wxTheFontNameDirectory->FindOrCreateFontId( Face, Family );
M_FONTDATA->m_faceName = (Face) ? copystring(Face) : (char*)NULL;
M_FONTDATA->m_family = wxTheFontNameDirectory.GetFamily( M_FONTDATA->m_fontId );
M_FONTDATA->m_family = wxTheFontNameDirectory->GetFamily( M_FONTDATA->m_fontId );
M_FONTDATA->m_style = Style;
M_FONTDATA->m_weight = Weight;
M_FONTDATA->m_pointSize = PointSize;
@@ -193,13 +193,13 @@ int wxFont::GetPointSize(void) const
wxString wxFont::GetFaceString(void) const
{
wxString s = wxTheFontNameDirectory.GetFontName( M_FONTDATA->m_fontId );
wxString s = wxTheFontNameDirectory->GetFontName( M_FONTDATA->m_fontId );
return s;
};
wxString wxFont::GetFaceName(void) const
{
wxString s = wxTheFontNameDirectory.GetFontName( M_FONTDATA->m_fontId );
wxString s = wxTheFontNameDirectory->GetFontName( M_FONTDATA->m_fontId );
return s;
};
@@ -288,7 +288,7 @@ static GdkFont *wxLoadQueryFont(int point_size, int fontid, int style,
int weight, bool WXUNUSED(underlined))
{
char buffer[512];
char *name = wxTheFontNameDirectory.GetScreenName( fontid, weight, style );
char *name = wxTheFontNameDirectory->GetScreenName( fontid, weight, style );
if (!name)
name = "-*-*-*-*-*-*-*-%d-*-*-*-*-*-*";
@@ -698,7 +698,6 @@ wxFontNameDirectory::wxFontNameDirectory(void)
{
table = new wxHashTable(wxKEY_INTEGER, 20);
nextFontId = -1;
Initialize();
}
wxFontNameDirectory::~wxFontNameDirectory()

View File

@@ -51,6 +51,7 @@ static void gtk_listitem_select_callback( GtkWidget *WXUNUSED(widget), wxListBox
}
event.SetEventObject( listbox );
listbox->GetEventHandler()->ProcessEvent( event );
if (event.m_commandString) delete[] event.m_commandString ;
};

View File

@@ -205,31 +205,38 @@ wxString wxRadioBox::GetLabel(void) const
void wxRadioBox::SetLabel( const wxString& WXUNUSED(label) )
{
wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
};
void wxRadioBox::SetLabel( int WXUNUSED(item), const wxString& WXUNUSED(label) )
{
wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
};
void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
{
wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
};
wxString wxRadioBox::GetLabel( int WXUNUSED(item) ) const
{
wxFAIL_MSG("wxRadioBox::GetLabel not implemented.");
return "";
};
void wxRadioBox::Enable( bool WXUNUSED(enable) )
{
wxFAIL_MSG("wxRadioBox::Enable not implemented.");
};
void wxRadioBox::Enable( int WXUNUSED(item), bool WXUNUSED(enable) )
{
wxFAIL_MSG("wxRadioBox::Enable not implemented.");
};
void wxRadioBox::Show( int WXUNUSED(item), bool WXUNUSED(show) )
{
wxFAIL_MSG("wxRadioBox::Show not implemented.");
};
wxString wxRadioBox::GetStringSelection(void) const
@@ -275,5 +282,6 @@ int wxRadioBox::GetNumberOfRowsOrCols(void) const
void wxRadioBox::SetNumberOfRowsOrCols( int WXUNUSED(n) )
{
wxFAIL_MSG("wxRadioBox::SetNumberOfRowsOrCols not implemented.");
};

View File

@@ -58,6 +58,16 @@ wxColour *g_systemBtnShadowColour = NULL;
wxColour *g_systemBtnHighlightColour = NULL;
wxColour *g_systemHighlightColour = NULL;
wxFont *g_systemFont = NULL;
void wxSystemSettings::Done() {
wxDELETE(g_systemBtnFaceColour);
wxDELETE(g_systemBtnShadowColour);
wxDELETE(g_systemBtnHighlightColour);
wxDELETE(g_systemHighlightColour);
wxDELETE(g_systemFont);
}
wxColour wxSystemSettings::GetSystemColour( int index )
{
switch (index)
@@ -141,8 +151,6 @@ wxColour wxSystemSettings::GetSystemColour( int index )
return *wxWHITE;
};
wxFont *g_systemFont = NULL;
wxFont wxSystemSettings::GetSystemFont( int index )
{
switch (index)

View File

@@ -40,7 +40,7 @@ wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex,
m_deleteSecondBitmap = FALSE;
};
wxToolBarTool::~wxToolBarTool(void)
wxToolBarTool::~wxToolBarTool()
{
};
@@ -64,7 +64,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl)
BEGIN_EVENT_TABLE(wxToolBar, wxControl)
END_EVENT_TABLE()
wxToolBar::wxToolBar(void)
wxToolBar::wxToolBar()
{
};
@@ -75,7 +75,7 @@ wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id,
Create( parent, id, pos, size, style, name );
};
wxToolBar::~wxToolBar(void)
wxToolBar::~wxToolBar()
{
};

View File

@@ -31,6 +31,7 @@
#include <X11/Xutil.h>
#include <X11/Xresource.h>
#include "wx/log.h"
//-----------------------------------------------------------------------------
// constants
@@ -48,7 +49,7 @@
// glabal data (data.cpp)
//-----------------------------------------------------------------------------
extern wxList wxResourceCache;
extern wxResourceCache *wxTheResourceCache;
extern XrmDatabase wxResourceDatabase;
//-----------------------------------------------------------------------------
@@ -163,7 +164,7 @@ void wxFlushResources(void)
{
char nameBuffer[512];
wxNode *node = wxResourceCache.First();
wxNode *node = wxTheResourceCache->First();
while (node) {
char *file = node->key.string;
// If file doesn't exist, create it first.
@@ -173,21 +174,22 @@ void wxFlushResources(void)
XrmPutFileDatabase(database, nameBuffer);
XrmDestroyDatabase(database);
wxNode *next = node->Next();
delete node;
// delete node;
node = next;
}
}
void wxDeleteResources(const char *file)
{
wxLogTrace(wxTraceResAlloc, "Delete: Number = %d", wxTheResourceCache->Number());
char buffer[500];
(void)GetIniFile(buffer, file);
wxNode *node = wxResourceCache.Find(buffer);
wxNode *node = wxTheResourceCache->Find(buffer);
if (node) {
XrmDatabase database = (XrmDatabase)node->Data();
XrmDestroyDatabase(database);
delete node;
// delete node;
}
}
@@ -204,12 +206,13 @@ bool wxWriteResource(const wxString& section, const wxString& entry, const wxStr
(void)GetIniFile(buffer, file);
XrmDatabase database;
wxNode *node = wxResourceCache.Find(buffer);
wxNode *node = wxTheResourceCache->Find(buffer);
if (node)
database = (XrmDatabase)node->Data();
else {
database = XrmGetFileDatabase(buffer);
wxResourceCache.Append(buffer, (wxObject *)database);
wxLogTrace(wxTraceResAlloc, "Write: Number = %d", wxTheResourceCache->Number());
wxTheResourceCache->Append(buffer, (wxObject *)database);
}
char resName[300];
strcpy(resName, !section.IsNull() ? WXSTRINGCAST section : "wxWindows");
@@ -252,12 +255,13 @@ bool wxGetResource(const wxString& section, const wxString& entry, char **value,
// home directory instead of current directory -- JACS
(void)GetIniFile(buffer, file);
wxNode *node = wxResourceCache.Find(buffer);
wxNode *node = wxTheResourceCache->Find(buffer);
if (node)
database = (XrmDatabase)node->Data();
else {
database = XrmGetFileDatabase(buffer);
wxResourceCache.Append(buffer, (wxObject *)database);
wxLogTrace(wxTraceResAlloc, "Get: Number = %d", wxTheResourceCache->Number());
wxTheResourceCache->Append(buffer, (wxObject *)database);
}
} else
database = wxResourceDatabase;

View File

@@ -753,6 +753,7 @@ wxWindow::wxWindow( wxWindow *parent, wxWindowID id,
const wxPoint &pos, const wxSize &size,
long style, const wxString &name )
{
m_cursor = NULL;
Create( parent, id, pos, size, style, name );
};
@@ -864,7 +865,7 @@ wxWindow::~wxWindow(void)
if (m_widget) gtk_widget_destroy( m_widget );
// delete m_cursor;
wxDELETE(m_cursor);
DeleteRelatedConstraints();
if (m_constraints)
@@ -918,6 +919,7 @@ void wxWindow::PreCreation( wxWindow *parent, wxWindowID id,
m_windowValidator = NULL;
m_windowId = id;
m_sizeSet = FALSE;
if (m_cursor == NULL)
m_cursor = new wxCursor( wxCURSOR_ARROW );
m_font = *wxSWISS_FONT;
m_backgroundColour = wxWHITE;
@@ -1561,7 +1563,11 @@ wxWindowID wxWindow::GetId(void)
void wxWindow::SetCursor( const wxCursor &cursor )
{
if (*m_cursor == cursor) return;
wxASSERT(m_cursor != NULL);
if (m_cursor != NULL)
if (*m_cursor == cursor)
return;
(*m_cursor) = cursor;
if (m_widget->window)
gdk_window_set_cursor( m_widget->window, m_cursor->GetCursor() );

View File

@@ -1011,4 +1011,3 @@ void wxFrame::PositionToolBar(void)
}
}
}

View File

@@ -4600,3 +4600,5 @@ const char *wxGetMessageName(int message)
}
}
#endif //WXDEBUG
#include "../common/wincmn.cpp"