(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:
@@ -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]))
|
||||
|
@@ -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__
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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__
|
||||
|
@@ -26,6 +26,7 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class wxListBox;
|
||||
class wxArrayInt;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// global data
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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__
|
||||
|
@@ -26,6 +26,7 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
class wxListBox;
|
||||
class wxArrayInt;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// global data
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
};
|
||||
|
@@ -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]; }
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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()
|
||||
{
|
||||
}
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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";
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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,
|
||||
|
@@ -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)
|
||||
|
@@ -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()
|
||||
|
@@ -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 ;
|
||||
};
|
||||
|
@@ -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.");
|
||||
};
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -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()
|
||||
{
|
||||
};
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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() );
|
||||
|
@@ -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,
|
||||
|
@@ -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)
|
||||
|
@@ -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()
|
||||
|
@@ -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 ;
|
||||
};
|
||||
|
@@ -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.");
|
||||
};
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -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()
|
||||
{
|
||||
};
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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() );
|
||||
|
@@ -1011,4 +1011,3 @@ void wxFrame::PositionToolBar(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -4600,3 +4600,5 @@ const char *wxGetMessageName(int message)
|
||||
}
|
||||
}
|
||||
#endif //WXDEBUG
|
||||
|
||||
#include "../common/wincmn.cpp"
|
||||
|
Reference in New Issue
Block a user