]> git.saurik.com Git - wxWidgets.git/commitdiff
(1) Denis Pershin's patch for wxGTK (memory leaks corrections)
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 7 Aug 1998 15:09:04 +0000 (15:09 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 7 Aug 1998 15:09:04 +0000 (15:09 +0000)
(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

47 files changed:
include/wx/defs.h
include/wx/gdicmn.h
include/wx/generic/listctrl.h
include/wx/gtk/app.h
include/wx/gtk/font.h
include/wx/gtk/listbox.h
include/wx/gtk/settings.h
include/wx/gtk1/app.h
include/wx/gtk1/font.h
include/wx/gtk1/listbox.h
include/wx/gtk1/settings.h
include/wx/layout.h
include/wx/log.h
include/wx/msw/menu.h
include/wx/msw/notebook.h
src/common/datstrm.cpp
src/common/dynarray.cpp
src/common/gdicmn.cpp
src/common/intl.cpp
src/common/layout.cpp
src/common/log.cpp
src/common/postscrp.cpp
src/common/string.cpp
src/gtk/app.cpp
src/gtk/data.cpp
src/gtk/filedlg.cpp
src/gtk/font.cpp
src/gtk/listbox.cpp
src/gtk/mdi.cpp
src/gtk/radiobox.cpp
src/gtk/settings.cpp
src/gtk/tbargtk.cpp
src/gtk/utilsres.cpp
src/gtk/window.cpp
src/gtk1/app.cpp
src/gtk1/data.cpp
src/gtk1/filedlg.cpp
src/gtk1/font.cpp
src/gtk1/listbox.cpp
src/gtk1/mdi.cpp
src/gtk1/radiobox.cpp
src/gtk1/settings.cpp
src/gtk1/tbargtk.cpp
src/gtk1/utilsres.cpp
src/gtk1/window.cpp
src/msw/frame.cpp
src/msw/window.cpp

index 1f0ba22911ea838a058c643103fae6de67e25a00..f84200020c3ff87565619f9c586c09d47be4e4d2 100644 (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]))
index f0b52eefdee26de52d80cfe055c12a5e07e9cd4f..9ce9b66abf0896b92a83a6fcb2ea776df9fdb27f 100644 (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__
index e38c503ea8c12e247dca2e45d3f93929a1e1efa5..02d797f8bb8460c8a4cb8b159ee0deb6461aeb3b 100644 (file)
@@ -69,7 +69,7 @@ typedef int (*wxListCtrlCompare)(long item1, long item2, long sortData);
 #define wxLC_NO_HEADER       0x0800  // not supported in wxGLC
 #define wxLC_NO_SORT_HEADER  0x1000  // not supported in wxGLC
 #define wxLC_SINGLE_SEL      0x2000
-#define wxLC_SORT_ASCENDING  0x4000  
+#define wxLC_SORT_ASCENDING  0x4000
 #define wxLC_SORT_DESCENDING 0x8000  // not supported in wxGLC
 
 #define wxLC_MASK_TYPE       (wxLC_ICON | wxLC_SMALL_ICON | wxLC_LIST | wxLC_REPORT)
@@ -95,7 +95,7 @@ typedef int (*wxListCtrlCompare)(long item1, long item2, long sortData);
 #define wxLIST_STATE_DONTCARE       0x0000
 #define wxLIST_STATE_DROPHILITED    0x0001  // not supported in wxGLC
 #define wxLIST_STATE_FOCUSED        0x0002
-#define wxLIST_STATE_SELECTED       0x0004  
+#define wxLIST_STATE_SELECTED       0x0004
 #define wxLIST_STATE_CUT            0x0008  // not supported in wxGLC
 
 // Hit test flags, used in HitTest // wxGLC suppots 20 and 80
@@ -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
@@ -238,7 +238,7 @@ class wxListItemData : public wxObject
     int        m_xpos,m_ypos;
     int        m_width,m_height;
     wxColour   *m_colour;
-    
+
   public:
     wxListItemData(void);
     wxListItemData( const wxListItem &info );
@@ -278,7 +278,7 @@ class wxListHeaderData : public wxObject
     int       m_width;
     int       m_xpos,m_ypos;
     int       m_height;
-    
+
   public:
     wxListHeaderData(void);
     wxListHeaderData( const wxListItem &info );
@@ -361,14 +361,14 @@ class wxListHeaderWindow : public wxWindow
 
   public:
     wxListHeaderWindow( void );
-    wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMainWindow *owner, 
+    wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMainWindow *owner,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
       long style = 0, const wxString &name = "columntitles" );
     void DoDrawRect( wxPaintDC *dc, int x, int y, int w, int h );
     void OnPaint( wxPaintEvent &event );
     void OnMouse( wxMouseEvent &event );
     void OnSetFocus( wxFocusEvent &event );
-    
+
   DECLARE_EVENT_TABLE()
 };
 
@@ -380,7 +380,7 @@ class wxListRenameTimer: public wxTimer
 {
  private:
    wxListMainWindow   *m_owner;
-   
+
  public:
    wxListRenameTimer( wxListMainWindow *owner );
    void Notify();
@@ -395,7 +395,7 @@ class wxListRenameTimer: public wxTimer
 class wxListTextCtrl: public wxTextCtrl
 {
   DECLARE_DYNAMIC_CLASS(wxListTextCtrl);
-  
+
   private:
     bool               *m_accept;
     wxString           *m_res;
@@ -403,10 +403,10 @@ class wxListTextCtrl: public wxTextCtrl
 
   public:
     wxListTextCtrl(void) : wxTextCtrl() {};
-    wxListTextCtrl(  wxWindow *parent, const char *value = "", 
+    wxListTextCtrl(  wxWindow *parent, const char *value = "",
       bool *accept, wxString *res, wxListMainWindow *owner,
       int x = -1, int y = -1, int w = -1, int h = -1, int style = 0, char *name = "rawtext" ) :
-      wxTextCtrl( parent, value, x, y, w, h, style, name ) 
+      wxTextCtrl( parent, value, x, y, w, h, style, name )
       {
         m_res = res;
         m_accept = accept;
@@ -455,7 +455,7 @@ class wxListMainWindow: public wxScrolledWindow
   public:
     long                 m_mode;
     wxList               m_lines;
-    wxList               m_columns; 
+    wxList               m_columns;
     wxListLineData      *m_current;
     int                  m_visibleLines;
     wxBrush             *m_hilightBrush;
@@ -478,8 +478,8 @@ class wxListMainWindow: public wxScrolledWindow
     int                  m_dragCount;
 
   public:
-    wxListMainWindow(void); 
-    wxListMainWindow( wxWindow *parent, wxWindowID id, 
+    wxListMainWindow(void);
+    wxListMainWindow( wxWindow *parent, wxWindowID id,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
       long style = 0, const wxString &name = "listctrl" );
     ~wxListMainWindow(void);
@@ -517,10 +517,10 @@ class wxListMainWindow: public wxScrolledWindow
     void GetColumn( int col, wxListItem &item );
     int GetColumnWidth( int vol );
     int GetColumnCount( void );
-    int GetCountPerPage( void );     
+    int GetCountPerPage( void );
     void SetItem( wxListItem &item );
     void GetItem( wxListItem &item );
-    void SetItemState( long item, long state, long stateMask ); 
+    void SetItemState( long item, long state, long stateMask );
     int GetItemState( long item, long stateMask );
     int GetItemCount( void );
     void GetItemRect( long index, wxRectangle &rect );
@@ -543,7 +543,7 @@ class wxListMainWindow: public wxScrolledWindow
     void InsertColumn( long col, wxListItem &item );
     void SortItems( wxListCtrlCompare fn, long data );
     virtual bool OnListNotify( wxListEvent &event );
-    
+
   DECLARE_EVENT_TABLE()
 };
 
@@ -554,15 +554,15 @@ class wxListMainWindow: public wxScrolledWindow
 class wxListCtrl: public wxControl
 {
   DECLARE_DYNAMIC_CLASS(wxListCtrl);
-  
+
   public:
-  
+
     wxListCtrl(void);
-    wxListCtrl( wxWindow *parent, wxWindowID id, 
+    wxListCtrl( wxWindow *parent, wxWindowID id,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
       long style = 0, const wxString &name = "listctrl" );
     ~wxListCtrl(void);
-    bool Create( wxWindow *parent, wxWindowID id, 
+    bool Create( wxWindow *parent, wxWindowID id,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
       long style = 0, const wxString &name = "listctrl" );
     void OnSize( wxSizeEvent &event );
@@ -583,7 +583,7 @@ class wxListCtrl: public wxControl
     void SetItemText( long item, const wxString& str );
     long GetItemData( long item );
     bool SetItemData( long item, long data );
-    bool GetItemRect( long item, wxRectangle& rect, int code = wxLIST_RECT_BOUNDS ); 
+    bool GetItemRect( long item, wxRectangle& rect, int code = wxLIST_RECT_BOUNDS );
     bool GetItemPosition( long item, wxPoint& pos );
     bool SetItemPosition( long item, const wxPoint& pos ); // not supported in wxGLC
     int GetItemCount(void);
@@ -624,18 +624,18 @@ class wxListCtrl: public wxControl
       { m_mainWin->SetDropTarget( dropTarget ); };
     wxDropTarget *GetDropTarget() const
       { return m_mainWin->GetDropTarget(); };
-      
+
     void OnIdle( wxIdleEvent &event );
 
   protected:
-  
+
 //  wxListTextCtrl       m_textCtrl;
-    wxImageList         *m_imageListNormal; 
-    wxImageList         *m_imageListSmall;  
+    wxImageList         *m_imageListNormal;
+    wxImageList         *m_imageListSmall;
     wxImageList         *m_imageListState;  // what's that ?
     wxListHeaderWindow  *m_headerWin;
     wxListMainWindow    *m_mainWin;
-    
+
   DECLARE_EVENT_TABLE()
 
 };
index ee9f9fd0eda24bac79af29f153c255c66884f7fd..7b79768cbbf5b6262839c9bd60493defae868ba4 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef __GTKAPPH__
@@ -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
@@ -55,18 +54,18 @@ class wxApp: public wxEvtHandler
   DECLARE_DYNAMIC_CLASS(wxApp)
 
   public:
-  
+
     wxApp(void);
     ~wxApp(void);
-    
+
     static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; }
     static wxAppInitializerFunction GetInitializerFunction(void) { return m_appInitFn; }
-    
+
     virtual bool OnInit(void);
     virtual bool OnInitGui(void);
     virtual int OnRun(void);
     virtual int OnExit(void);
-    
+
     wxWindow *GetTopWindow(void);
     void SetTopWindow( wxWindow *win );
     virtual int MainLoop(void);
@@ -78,10 +77,10 @@ class wxApp: public wxEvtHandler
     inline void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; }
     inline bool GetWantDebugOutput(void) { return m_wantDebugOutput; }
 
-    void OnIdle( wxIdleEvent &event );    
+    void OnIdle( wxIdleEvent &event );
     bool SendIdleEvents(void);
     bool SendIdleEvents( wxWindow* win );
-        
+
     inline wxString GetAppName(void) const {
       if (m_appName != "")
         return m_appName;
@@ -95,38 +94,32 @@ class wxApp: public wxEvtHandler
 
     inline void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; }
     inline bool GetExitOnFrameDelete(void) const { return m_exitOnFrameDelete; }
-  
-    void SetPrintMode(int WXUNUSED(mode) ) {}; 
+
+    void SetPrintMode(int WXUNUSED(mode) ) {};
     int GetPrintMode(void) const { return wxPRINT_POSTSCRIPT; };
-    
+
     // override this function to create default log target of arbitrary
     // 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);
-    static void CommonCleanUp(void);    
-    
+    static void CommonCleanUp(void);
+
     bool ProcessIdle(void);
     void DeletePendingObjects(void);
-    
+
     bool          m_initialized;
     bool          m_exitOnFrameDelete;
     bool          m_wantDebugOutput;
     wxWindow     *m_topWindow;
     
     gint          m_idleTag;
-    
+
     int         argc;
     char      **argv;
-    
+
     static wxAppInitializerFunction m_appInitFn;
     
 private:
index 619813b17ed4da4f47474385a29eb476b38401bc..bb928ffa7499b308fdbbf99c6b230289f137e09c 100644 (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__
index fa14d3d6093ec476a1ff7f980c77f4b6bfaa71bb..88dafbcc4583effe61e9da6e1a3541cc63340a61 100644 (file)
@@ -26,6 +26,7 @@
 //-----------------------------------------------------------------------------
 
 class wxListBox;
+class wxArrayInt;
 
 //-----------------------------------------------------------------------------
 // global data
index 7b801bbb812bae73e01e99a0949a73ae62b548af..b446e86b1f55585ee67441fff39f0538e7d2e15a 100644 (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);
 
index ee9f9fd0eda24bac79af29f153c255c66884f7fd..7b79768cbbf5b6262839c9bd60493defae868ba4 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef __GTKAPPH__
@@ -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
@@ -55,18 +54,18 @@ class wxApp: public wxEvtHandler
   DECLARE_DYNAMIC_CLASS(wxApp)
 
   public:
-  
+
     wxApp(void);
     ~wxApp(void);
-    
+
     static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; }
     static wxAppInitializerFunction GetInitializerFunction(void) { return m_appInitFn; }
-    
+
     virtual bool OnInit(void);
     virtual bool OnInitGui(void);
     virtual int OnRun(void);
     virtual int OnExit(void);
-    
+
     wxWindow *GetTopWindow(void);
     void SetTopWindow( wxWindow *win );
     virtual int MainLoop(void);
@@ -78,10 +77,10 @@ class wxApp: public wxEvtHandler
     inline void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; }
     inline bool GetWantDebugOutput(void) { return m_wantDebugOutput; }
 
-    void OnIdle( wxIdleEvent &event );    
+    void OnIdle( wxIdleEvent &event );
     bool SendIdleEvents(void);
     bool SendIdleEvents( wxWindow* win );
-        
+
     inline wxString GetAppName(void) const {
       if (m_appName != "")
         return m_appName;
@@ -95,38 +94,32 @@ class wxApp: public wxEvtHandler
 
     inline void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; }
     inline bool GetExitOnFrameDelete(void) const { return m_exitOnFrameDelete; }
-  
-    void SetPrintMode(int WXUNUSED(mode) ) {}; 
+
+    void SetPrintMode(int WXUNUSED(mode) ) {};
     int GetPrintMode(void) const { return wxPRINT_POSTSCRIPT; };
-    
+
     // override this function to create default log target of arbitrary
     // 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);
-    static void CommonCleanUp(void);    
-    
+    static void CommonCleanUp(void);
+
     bool ProcessIdle(void);
     void DeletePendingObjects(void);
-    
+
     bool          m_initialized;
     bool          m_exitOnFrameDelete;
     bool          m_wantDebugOutput;
     wxWindow     *m_topWindow;
     
     gint          m_idleTag;
-    
+
     int         argc;
     char      **argv;
-    
+
     static wxAppInitializerFunction m_appInitFn;
     
 private:
index 619813b17ed4da4f47474385a29eb476b38401bc..bb928ffa7499b308fdbbf99c6b230289f137e09c 100644 (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__
index fa14d3d6093ec476a1ff7f980c77f4b6bfaa71bb..88dafbcc4583effe61e9da6e1a3541cc63340a61 100644 (file)
@@ -26,6 +26,7 @@
 //-----------------------------------------------------------------------------
 
 class wxListBox;
+class wxArrayInt;
 
 //-----------------------------------------------------------------------------
 // global data
index 7b801bbb812bae73e01e99a0949a73ae62b548af..b446e86b1f55585ee67441fff39f0538e7d2e15a 100644 (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);
 
index 13ae082ee2bf25a97c68f43a8cf712aa24417a29..2f525bb1f05bb863a303058eef43f08fe918b2e1 100644 (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);
index 573d180eb3729bdb34dff376119c230dd93f8b39..c4550d25fd2b8a6f6188d610b4fe3a28e285a738 100644 (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,15 +215,24 @@ 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:
-  wxLog      *m_pOldLog;    // previous log target
-  wxLogFrame *m_pLogFrame;  // the log frame
+  bool        m_bPassMessages;  // pass messages to m_pOldLog?
+  wxLog      *m_pOldLog;        // previous log target
+  wxLogFrame *m_pLogFrame;      // the log frame
 };
 
 // ----------------------------------------------------------------------------
index d193d990483983cc53e6cd7d7ff68eb1986e496e..f2ced3f6d46e94e3818f42b179e6a05dd58858b2 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef __MENUH__
@@ -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]; }
index 21540dac79bcceba2dca397b2755a6878226c7a3..9b0af68f26bef8507c3bb724b9c2149e03e07046 100644 (file)
@@ -5,7 +5,7 @@
 // Modified by: Vadim Zeitlin for Windows version
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _NOTEBOOK_H
@@ -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);
index 80dbb536fc3d0c8a3b1fa298c9041470182db987..93850acd65e90aa9615f1d6caca4c17c08a8aee0 100644 (file)
@@ -123,7 +123,7 @@ wxString wxDataInputStream::ReadString()
   wx_string = string;
   delete string;
 
-  return wx_string; 
+  return wx_string;
 }
 
 wxDataOutputStream::wxDataOutputStream(wxOutputStream& s)
@@ -187,7 +187,7 @@ void wxDataOutputStream::WriteDouble(double d)
 #if USE_APPLE_IEEE
   ConvertToIeeeExtended(d, (unsigned char *)buf);
 #else
-#      pragma warning "wxDataStream::WriteDouble() not using IeeeExtended - will not work!"
+#  pragma warning "wxDataStream::WriteDouble() not using IeeeExtended - will not work!"
  buf[0] = '\0';
 #endif
   Write(buf, 10);
index 7ea0930aef5d7d8df613ff5864b112ff8843b072..fbf3972fe35cc27bf27dff963801ff6e33c63db7 100644 (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;
   }
index 913b36b7b90ec44ba452e3dda05dd230957d7111..639619c5a7a5f72084abfa6f8e79828de7e20447 100644 (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);
-
-  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);
-
-  DELETEP(wxBLACK);
-  DELETEP(wxWHITE);
-  DELETEP(wxRED);
-  DELETEP(wxBLUE);
-  DELETEP(wxGREEN);
-  DELETEP(wxCYAN);
-  DELETEP(wxLIGHT_GREY);
-
-  DELETEP(wxSTANDARD_CURSOR);
-  DELETEP(wxHOURGLASS_CURSOR);
-  DELETEP(wxCROSS_CURSOR);
+
+  wxDELETE(wxNORMAL_FONT);
+  wxDELETE(wxSMALL_FONT);
+  wxDELETE(wxITALIC_FONT);
+  wxDELETE(wxSWISS_FONT);
+
+  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);
+
+  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);
+
+  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;
+  }
+}
+
index 6f70f2fa3bc951d0c5e12f133a8a1bad0ad9dd23..a0df0794d6e523819268b8d79df799f97c278da4 100644 (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;
   }
       
index 23917159ad10fe16221adcc7d62f07c249c4d4d0..3ac377c21bdbf16e7bb477a53f4a15cc45702377 100644 (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();
 }
 
 /*
@@ -1085,7 +1086,7 @@ bool wxOldDoLayout(wxWindow *win)
       if (constr)
       {
         int tempNoChanges = 0;
-        (void) constr->SatisfyConstraints(child, &tempNoChanges);
+        (void)constr->SatisfyConstraints(child, &tempNoChanges);
         noChanges += tempNoChanges;
       }
       node = node->Next();
@@ -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()
 {
 }
 
index b3bc58fbdbe3b31de1347ff873311070c910b250..aba5c2c1f287c3b16baad17b8f83aa570dd9dac9 100644 (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
index bee66a51cf049da9f7897b48ebbb8f2777c5dbdc..815a981711fb63922cb082d2df725be42b48dcf9 100644 (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";
 
index 407d143e3c3ec2f337722b8dcf9e04966cd0ba78..ac64abaeb62e35edb86ffb51ef1c7948b894c160 100644 (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;
   }
index 2317ad532011f25cd4bb2b95242458d45468044b..74f5e13cee263111b888469878bfa215d4229691 100644 (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;
   
@@ -359,6 +375,8 @@ int wxEntry( int argc, char *argv[] )
   wxTheApp->OnExit();
   
   wxApp::CommonCleanUp();
+
+  wxDELETE(wxTheApp);
   
 #if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
   // At this point we want to check if there are any memory
index 42facd4ae83e0c4ba483c11da8e44d9df103e288..826d9102c7ee75db2cc93ded7a6d9b348b51edc4 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -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;
@@ -398,7 +398,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar95, wxToolBarBase)
 IMPLEMENT_DYNAMIC_CLASS(wxStatusBar, wxWindow)
 
 BEGIN_EVENT_TABLE(wxStatusBar, wxWindow)
-       EVT_PAINT(wxStatusBar::OnPaint)
+  EVT_PAINT(wxStatusBar::OnPaint)
     EVT_SYS_COLOUR_CHANGED(wxStatusBar::OnSysColourChanged)
 END_EVENT_TABLE()
 
@@ -548,17 +548,16 @@ IMPLEMENT_DYNAMIC_CLASS(wxGenericGrid, wxPanel)
 const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; }
 
 const wxEventTable wxEvtHandler::sm_eventTable =
-       { NULL, &wxEvtHandler::sm_eventTableEntries[0] };
+  { NULL, &wxEvtHandler::sm_eventTableEntries[0] };
 
 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)
-    EVT_IDLE(wxFrame::OnIdle)
-    EVT_CLOSE(wxFrame::OnCloseWindow)
+  EVT_SIZE(wxFrame::OnSize)
+  EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight)
+  EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
+  EVT_IDLE(wxFrame::OnIdle)
+  EVT_CLOSE(wxFrame::OnCloseWindow)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxDialog, wxPanel)
@@ -589,9 +588,9 @@ BEGIN_EVENT_TABLE(wxPanel, wxWindow)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
-       EVT_CHAR(wxTextCtrl::OnChar)
-       EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
-       EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
+  EVT_CHAR(wxTextCtrl::OnChar)
+  EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
+  EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
 END_EVENT_TABLE()
 
 #ifdef wx_msw
@@ -613,32 +612,32 @@ BEGIN_EVENT_TABLE(wxToolBarBase, wxControl)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxToolBarSimple, wxToolBarBase)
-       EVT_SIZE(wxToolBarSimple::OnSize)
-       EVT_PAINT(wxToolBarSimple::OnPaint)
-       EVT_KILL_FOCUS(wxToolBarSimple::OnKillFocus)
-       EVT_MOUSE_EVENTS(wxToolBarSimple::OnMouseEvent)
+  EVT_SIZE(wxToolBarSimple::OnSize)
+  EVT_PAINT(wxToolBarSimple::OnPaint)
+  EVT_KILL_FOCUS(wxToolBarSimple::OnKillFocus)
+  EVT_MOUSE_EVENTS(wxToolBarSimple::OnMouseEvent)
 END_EVENT_TABLE()
 
 #ifdef wx_msw
 BEGIN_EVENT_TABLE(wxToolBarMSW, wxToolBarBase)
-       EVT_SIZE(wxToolBarMSW::OnSize)
-       EVT_PAINT(wxToolBarMSW::OnPaint)
-       EVT_MOUSE_EVENTS(wxToolBarMSW::OnMouseEvent)
+  EVT_SIZE(wxToolBarMSW::OnSize)
+  EVT_PAINT(wxToolBarMSW::OnPaint)
+  EVT_MOUSE_EVENTS(wxToolBarMSW::OnMouseEvent)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxToolBar95, wxToolBarBase)
-       EVT_SIZE(wxToolBar95::OnSize)
-       EVT_PAINT(wxToolBar95::OnPaint)
-       EVT_KILL_FOCUS(wxToolBar95::OnKillFocus)
-       EVT_MOUSE_EVENTS(wxToolBar95::OnMouseEvent)
+  EVT_SIZE(wxToolBar95::OnSize)
+  EVT_PAINT(wxToolBar95::OnPaint)
+  EVT_KILL_FOCUS(wxToolBar95::OnKillFocus)
+  EVT_MOUSE_EVENTS(wxToolBar95::OnMouseEvent)
     EVT_SYS_COLOUR_CHANGED(wxToolBar95::OnSysColourChanged)
 END_EVENT_TABLE()
 #endif
 
 BEGIN_EVENT_TABLE(wxGenericGrid, wxPanel)
-       EVT_SIZE(wxGenericGrid::OnSize)
-       EVT_PAINT(wxGenericGrid::OnPaint)
-       EVT_MOUSE_EVENTS(wxGenericGrid::OnMouseEvent)
+  EVT_SIZE(wxGenericGrid::OnSize)
+  EVT_PAINT(wxGenericGrid::OnPaint)
+  EVT_MOUSE_EVENTS(wxGenericGrid::OnMouseEvent)
     EVT_TEXT(wxGRID_TEXT_CTRL, wxGenericGrid::OnText)
     EVT_COMMAND_SCROLL(wxGRID_HSCROLL, wxGenericGrid::OnGridScroll)
     EVT_COMMAND_SCROLL(wxGRID_VSCROLL, wxGenericGrid::OnGridScroll)
@@ -650,28 +649,28 @@ END_EVENT_TABLE()
 
 #if !defined(wx_msw) || USE_GENERIC_DIALOGS_IN_MSW
 BEGIN_EVENT_TABLE(wxGenericMessageDialog, wxDialog)
-       EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes)
-       EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo)
-       EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel)
+  EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes)
+  EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo)
+  EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog)
-       EVT_BUTTON(wxID_ADD_CUSTOM, wxGenericColourDialog::OnAddCustom)
-       EVT_SLIDER(wxID_RED_SLIDER, wxGenericColourDialog::OnRedSlider)
-       EVT_SLIDER(wxID_GREEN_SLIDER, wxGenericColourDialog::OnGreenSlider)
-       EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider)
-       EVT_PAINT(wxGenericColourDialog::OnPaint)
-       EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent)
+  EVT_BUTTON(wxID_ADD_CUSTOM, wxGenericColourDialog::OnAddCustom)
+  EVT_SLIDER(wxID_RED_SLIDER, wxGenericColourDialog::OnRedSlider)
+  EVT_SLIDER(wxID_GREEN_SLIDER, wxGenericColourDialog::OnGreenSlider)
+  EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider)
+  EVT_PAINT(wxGenericColourDialog::OnPaint)
+  EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog)
-       EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
-       EVT_PAINT(wxGenericFontDialog::OnPaint)
+  EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
+  EVT_PAINT(wxGenericFontDialog::OnPaint)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxGenericPrintDialog, wxDialog)
@@ -683,25 +682,25 @@ END_EVENT_TABLE()
 #endif
 
 BEGIN_EVENT_TABLE(wxTextEntryDialog, wxDialog)
-       EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK)
+  EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxSingleChoiceDialog, wxDialog)
-       EVT_BUTTON(wxID_OK, wxSingleChoiceDialog::OnOK)
+  EVT_BUTTON(wxID_OK, wxSingleChoiceDialog::OnOK)
 END_EVENT_TABLE()
 
 #include "wx/prntbase.h"
 
 BEGIN_EVENT_TABLE(wxPrintAbortDialog, wxDialog)
-       EVT_BUTTON(wxID_CANCEL, wxPrintAbortDialog::OnCancel)
+  EVT_BUTTON(wxID_CANCEL, wxPrintAbortDialog::OnCancel)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxPreviewControlBar, wxWindow)
-       EVT_BUTTON(wxID_PREVIEW_CLOSE,          wxPreviewControlBar::OnClose)
-       EVT_BUTTON(wxID_PREVIEW_PRINT,          wxPreviewControlBar::OnPrint)
-       EVT_BUTTON(wxID_PREVIEW_PREVIOUS,       wxPreviewControlBar::OnPrevious)
-       EVT_BUTTON(wxID_PREVIEW_NEXT,           wxPreviewControlBar::OnNext)
-       EVT_CHOICE(wxID_PREVIEW_ZOOM,           wxPreviewControlBar::OnZoom)
+  EVT_BUTTON(wxID_PREVIEW_CLOSE,     wxPreviewControlBar::OnClose)
+  EVT_BUTTON(wxID_PREVIEW_PRINT,     wxPreviewControlBar::OnPrint)
+  EVT_BUTTON(wxID_PREVIEW_PREVIOUS,   wxPreviewControlBar::OnPrevious)
+  EVT_BUTTON(wxID_PREVIEW_NEXT,     wxPreviewControlBar::OnNext)
+  EVT_CHOICE(wxID_PREVIEW_ZOOM,     wxPreviewControlBar::OnZoom)
 END_EVENT_TABLE()
 
 #endif
index b4d0ed159285c7b8ceeffbde3446047df4150114..a555c487be690e69fb588ad69ab7e1d5674199a8 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -48,12 +48,12 @@ void gtk_filedialog_cancel_callback( GtkWidget *WXUNUSED(widget), gpointer data
 IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxDialog)
 
 wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
-        const wxString& defaultDir, const wxString& defaultFileName, 
-       const wxString& wildCard,
+        const wxString& defaultDir, const wxString& defaultFileName,
+  const wxString& wildCard,
         long style, const wxPoint& pos )
 {
   m_needParent = FALSE;
-  
+
   PreCreation( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, "filedialog" );
   m_message = message;
   m_path = "";
@@ -62,7 +62,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
   m_wildCard = wildCard;
   m_dialogStyle = style;
   m_filterIndex = 1;
-  
+
   m_widget = gtk_file_selection_new( "File selection" );
   
   int x = (gdk_screen_width () - 400) / 2;
@@ -76,11 +76,11 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
   m_path.Append(m_fileName);
 
   if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path);
-  
-  gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked", 
+
+  gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
     GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
 
-  gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked", 
+  gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked",
     GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this );
 };
 
@@ -95,48 +95,48 @@ int wxFileDialog::ShowModal(void)
   };
   return ret;
 };
-    
+
 
 char *wxFileSelector(const char *title,
                      const char *defaultDir, const char *defaultFileName,
                      const char *defaultExtension, const char *filter, int flags,
                      wxWindow *parent, int x, int y)
 {
-       wxString filter2("");
-       if ( defaultExtension && !filter )
-               filter2 = wxString("*.") + wxString(defaultExtension) ;
-       else if ( filter )
-               filter2 = filter;
-
-       wxString defaultDirString;
-       if (defaultDir)
-               defaultDirString = defaultDir;
-       else
-               defaultDirString = "";
-
-       wxString defaultFilenameString;
-       if (defaultFileName)
-               defaultFilenameString = defaultFileName;
-       else
-               defaultFilenameString = "";
-
-       wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString, 
-         filter2, flags, wxPoint(x, y));
-
-       if ( fileDialog.ShowModal() == wxID_OK )
-       {
-               strcpy(wxBuffer, (const char *)fileDialog.GetPath());
-               return wxBuffer;
-       }
-       else
-               return NULL;
+  wxString filter2("");
+  if ( defaultExtension && !filter )
+    filter2 = wxString("*.") + wxString(defaultExtension) ;
+  else if ( filter )
+    filter2 = filter;
+
+  wxString defaultDirString;
+  if (defaultDir)
+    defaultDirString = defaultDir;
+  else
+    defaultDirString = "";
+
+  wxString defaultFilenameString;
+  if (defaultFileName)
+    defaultFilenameString = defaultFileName;
+  else
+    defaultFilenameString = "";
+
+  wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString,
+    filter2, flags, wxPoint(x, y));
+
+  if ( fileDialog.ShowModal() == wxID_OK )
+  {
+    strcpy(wxBuffer, (const char *)fileDialog.GetPath());
+    return wxBuffer;
+  }
+  else
+    return NULL;
 };
 
-char* wxLoadFileSelector(const char *what, const char *extension, const char *default_name, 
+char* wxLoadFileSelector(const char *what, const char *extension, const char *default_name,
          wxWindow *parent )
 {
   char *ext = (char *)extension;
-  
+
   char prompt[50];
   wxString str = _("Load %s file");
   sprintf(prompt, str, what);
@@ -148,11 +148,11 @@ char* wxLoadFileSelector(const char *what, const char *extension, const char *de
   return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent);
 };
 
-char* wxSaveFileSelector(const char *what, const char *extension, const char *default_name, 
+char* wxSaveFileSelector(const char *what, const char *extension, const char *default_name,
          wxWindow *parent )
 {
   char *ext = (char *)extension;
-  
+
   char prompt[50];
   wxString str = _("Save %s file");
   sprintf(prompt, str, what);
index 1418bc06617c1fd0595f64500f9df7f8f0ca4ba4..ad4f5e96544aeade8ad59dc757b22f7e0532ce8d 100644 (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()
index ba55ab7bd74fb1ae959b5613c148e06a0959a894..ade85f736928a2b3c63045961b2995e7fdc89bef 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -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 ;
 };
index 1d8c9ffb6223ff603603272ded13c2fc31729e9e..66a39023cd23742efa7d22b2b23069849f337c76 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -26,7 +26,7 @@ extern wxList wxPendingDelete;
 //-----------------------------------------------------------------------------
 
 static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
-{ 
+{
   if ((win->m_x == alloc->x) &&
       (win->m_y == alloc->y) &&
       (win->m_width == alloc->width) &&
@@ -34,7 +34,7 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
   {
     return;
   };
-  
+
   win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 };
 
@@ -94,22 +94,22 @@ bool wxMDIParentFrame::Create( wxWindow *parent,
       long style, const wxString& name )
 {
   wxFrame::Create( parent, id, title, pos, size, style, name );
-  
+
   OnCreateClient();
-  
+
   return TRUE;
 };
 
 void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height )
 {
   wxFrame::GtkOnSize( x, y, width, height );
-  
+
   if (m_mdiMenuBar)
   {
     int x = 0;
     int y = 0;
     GetClientSize( &x, &y );
-    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 ); 
+    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 );
   }
 };
 
@@ -122,7 +122,7 @@ void wxMDIParentFrame::SetMDIMenuBar( wxMenuBar *menu_bar )
     int x = 0;
     int y = 0;
     GetClientSize( &x, &y );
-    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 ); 
+    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 );
     m_mdiMenuBar->Show( TRUE );
   }
 };
@@ -243,11 +243,11 @@ static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
 void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
 {
   m_menuBar = menu_bar;
-  
+
   if (m_menuBar)
   {
     wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
-    
+
     if (m_menuBar->m_parent != this)
     {
       wxNode *node = m_menuBar->m_menus.First();
@@ -257,7 +257,7 @@ void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
         SetInvokingWindow( menu, this );
         node = node->Next();
       };
-      
+
       m_menuBar->m_parent = mdi_frame;
     }
     mdi_frame->SetMDIMenuBar( m_menuBar );
@@ -302,20 +302,20 @@ wxMDIClientWindow::~wxMDIClientWindow(void)
 bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
 {
   m_needParent = TRUE;
-  
+
   PreCreation( parent, -1, wxPoint(10,10), wxSize(100,100), style, "wxMDIClientWindow" );
 
   m_widget = gtk_notebook_new();
-  
+
   gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
                       GTK_SIGNAL_FUNC(gtk_page_change_callback), (gpointer)this );
-                 
+
   gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
-  
+
   PostCreation();
-  
+
   Show( TRUE );
-  
+
   return TRUE;
 };
 
@@ -326,25 +326,25 @@ void wxMDIClientWindow::AddChild( wxWindow *child )
      wxFAIL_MSG("wxNotebook::AddChild: Child has to be wxMDIChildFrame");
      return;
   };
-  
+
   m_children.Append( child );
-  
+
   wxString s;
   wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child;
   s = mdi_child->m_title;
   if (s.IsNull()) s = "MDI child";
-  
+
   GtkWidget *label_widget;
   label_widget = gtk_label_new( s );
   gtk_misc_set_alignment( GTK_MISC(label_widget), 0.0, 0.5 );
-  
+
   gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate",
     GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
     
   gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget );
-  
+
   mdi_child->m_page = (GtkNotebookPage*) (g_list_last(GTK_NOTEBOOK(m_widget)->children)->data);
-    
+
   gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), m_children.Number()-1 );
   
   gtk_page_change_callback( NULL, mdi_child->m_page, 0, this );
index 9ff546a945b93a1879b1c054d78debfaf3927739..64a36484027a0c076b7240c46b60dc4a8fc5fb5a 100644 (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.");
 };
 
index dfcf1d81db6f2d638f116ddb7b9db4524ce71573..aa24393c68eb03e74f28eacddf86f819f70c8522 100644 (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)
index 12dd7b66a73b2c6faf7b2de0386c57060e82c3d2..3892f89d73a73c698c5db3aaf77bc0f6b078a2ca 100644 (file)
@@ -4,9 +4,9 @@
 // Author:      Robert Roebling
 // Modified by:
 // Created:     01/02/97
-// RCS-ID:      
+// RCS-ID:
 // Copyright:   (c) Robert Roebling
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -20,8 +20,8 @@
 //-----------------------------------------------------------------------------
 
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool,wxObject)
-  
-wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex, 
+
+wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex,
       const wxBitmap& bitmap1, const  wxBitmap& bitmap2,
       bool toggle, wxObject *clientData,
       const wxString& shortHelpString, const wxString& longHelpString )
@@ -40,7 +40,7 @@ wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex,
   m_deleteSecondBitmap = FALSE;
 };
 
-wxToolBarTool::~wxToolBarTool(void)
+wxToolBarTool::~wxToolBarTool()
 {
 };
 
@@ -51,9 +51,9 @@ wxToolBarTool::~wxToolBarTool(void)
 static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *tool )
 {
   if (!tool->m_enabled) return;
-  
+
   if (tool->m_isToggle) tool->m_toggleState = !tool->m_toggleState;
-  
+
   tool->m_owner->OnLeftClick( tool->m_index, tool->m_toggleState );
 };
 
@@ -64,43 +64,43 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl)
 BEGIN_EVENT_TABLE(wxToolBar, wxControl)
 END_EVENT_TABLE()
 
-wxToolBar::wxToolBar(void)
+wxToolBar::wxToolBar()
 {
 };
 
-wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id, 
+wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id,
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   Create( parent, id, pos, size, style, name );
 };
 
-wxToolBar::~wxToolBar(void)
+wxToolBar::~wxToolBar()
 {
 };
 
-bool wxToolBar::Create( wxWindow *parent, wxWindowID id, 
+bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   m_needParent = TRUE;
-  
+
   PreCreation( parent, id, pos, size, style, name );
 
   m_tools.DeleteContents( TRUE );
-    
+
   m_widget = gtk_handle_box_new();
-  
+
   m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS ) );
-  
+
   gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) );
-  
+
   gtk_widget_show( GTK_WIDGET(m_toolbar) );
-  
+
   PostCreation();
-  
+
   Show( TRUE );
-    
+
   return TRUE;
 };
 
@@ -134,32 +134,32 @@ void wxToolBar::OnMouseEnter( int toolIndex )
   GetEventHandler()->ProcessEvent(event);
 };
 
-wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, 
+wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap,
   const wxBitmap& pushedBitmap, bool toggle,
   float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData,
   const wxString& helpString1, const wxString& helpString2 )
 {
   if (!bitmap.Ok()) return NULL;
-  
-  wxToolBarTool *tool = new wxToolBarTool( this, toolIndex, bitmap, pushedBitmap, toggle, 
+
+  wxToolBarTool *tool = new wxToolBarTool( this, toolIndex, bitmap, pushedBitmap, toggle,
   clientData, helpString1, helpString2 );
-  
+
   GdkPixmap *pixmap = bitmap.GetPixmap();
-  
+
   GdkBitmap *mask = NULL;
   if (bitmap.GetMask()) mask = bitmap.GetMask()->GetBitmap();
-  
+
   GtkWidget *tool_pixmap = gtk_pixmap_new( pixmap, mask );
   gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
-  
+
   GtkToolbarChildType ctype = GTK_TOOLBAR_CHILD_BUTTON;
   if (toggle) ctype = GTK_TOOLBAR_CHILD_TOGGLEBUTTON;
-  
-  gtk_toolbar_append_element( m_toolbar, 
+
+  gtk_toolbar_append_element( m_toolbar,
     ctype, NULL, NULL, helpString1, "", tool_pixmap, (GtkSignalFunc)gtk_toolbar_callback, (gpointer)tool );
-    
-  m_tools.Append( tool );    
-    
+
+  m_tools.Append( tool );
+
   return tool;
 };
 
index 24e7904c2608e524936c60a1ab7273507db7b70c..db55e4f964498e5272902aa2aeb1c48a9906d90e 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:           wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -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;
 
 //-----------------------------------------------------------------------------
@@ -58,21 +59,21 @@ extern XrmDatabase wxResourceDatabase;
 static char *GetResourcePath(char *buf, char *name, bool create)
 {
     if (create && FileExists(name)) {
-       strcpy(buf, name);
-       return buf; // Exists so ...
+        strcpy(buf, name);
+        return buf; // Exists so ...
     }
     if (*name == '/')
-       strcpy(buf, name);
+        strcpy(buf, name);
     else {
-       // Put in standard place for resource files if not absolute
-       strcpy(buf, DEFAULT_XRESOURCE_DIR);
-       strcat(buf, "/");
-       strcat(buf, FileNameFromPath(name));
+        // Put in standard place for resource files if not absolute
+        strcpy(buf, DEFAULT_XRESOURCE_DIR);
+        strcat(buf, "/");
+        strcat(buf, FileNameFromPath(name));
     }
     if (create) {
-       // Touch the file to create it
-       FILE *fd = fopen(buf, "w");
-       if (fd) fclose(fd);
+        // Touch the file to create it
+        FILE *fd = fopen(buf, "w");
+        if (fd) fclose(fd);
     }
     return buf;
 }
@@ -83,27 +84,27 @@ static char *GetResourcePath(char *buf, char *name, bool create)
 static char *GetIniFile(char *dest, const char *filename)
 {
     char *home = NULL;
-    if (filename && wxIsAbsolutePath(filename)) 
+    if (filename && wxIsAbsolutePath(filename))
     {
       strcpy(dest, filename);
-    } 
+    }
     else
     {
-      if ((home = wxGetUserHome(wxString())) != NULL) 
+      if ((home = wxGetUserHome(wxString())) != NULL)
       {
-       strcpy(dest, home);
-       if (dest[strlen(dest) - 1] != '/') strcat(dest, "/");
-       if (filename == NULL) 
-       {
-         if ((filename = getenv("XENVIRONMENT")) == NULL) filename = ".Xdefaults";
-       } 
-       else 
-         if (*filename != '.') strcat(dest, ".");
-       strcat(dest, filename);
+        strcpy(dest, home);
+        if (dest[strlen(dest) - 1] != '/') strcat(dest, "/");
+        if (filename == NULL)
+        {
+          if ((filename = getenv("XENVIRONMENT")) == NULL) filename = ".Xdefaults";
+        }
+        else
+          if (*filename != '.') strcat(dest, ".");
+        strcat(dest, filename);
       }
-      else 
+      else
       {
-        dest[0] = '\0';    
+        dest[0] = '\0';
       }
     }
     return dest;
@@ -121,38 +122,38 @@ static void wxXMergeDatabases(void)
     (void)strcpy(name, "/usr/lib/X11/app-defaults/");
     (void)strcat(name, classname ? classname : "wxWindows");
 
-    // Get application defaults file, if any 
+    // Get application defaults file, if any
     if ((applicationDB = XrmGetFileDatabase(name)))
-       (void)XrmMergeDatabases(applicationDB, &wxResourceDatabase);
+        (void)XrmMergeDatabases(applicationDB, &wxResourceDatabase);
 
     // Merge server defaults, created by xrdb, loaded as a property of the root
     // window when the server initializes and loaded into the display
     // structure on XOpenDisplay;
     // if not defined, use .Xdefaults
     if (XResourceManagerString(GDK_DISPLAY()) != NULL) {
-       serverDB = XrmGetStringDatabase(XResourceManagerString(GDK_DISPLAY()));
+        serverDB = XrmGetStringDatabase(XResourceManagerString(GDK_DISPLAY()));
     } else {
-       (void)GetIniFile(filename, NULL);
-       serverDB = XrmGetFileDatabase(filename);
+        (void)GetIniFile(filename, NULL);
+        serverDB = XrmGetFileDatabase(filename);
     }
     if (serverDB)
-       XrmMergeDatabases(serverDB, &wxResourceDatabase);
+        XrmMergeDatabases(serverDB, &wxResourceDatabase);
 
     // Open XENVIRONMENT file, or if not defined, the .Xdefaults,
     // and merge into existing database
 
     if ((environment = getenv("XENVIRONMENT")) == NULL) {
-       size_t len;
-       environment = GetIniFile(filename, NULL);
-       len = strlen(environment);
+        size_t len;
+        environment = GetIniFile(filename, NULL);
+        len = strlen(environment);
 #if !defined(SVR4) || defined(__sgi)
-       (void)gethostname(environment + len, 1024 - len);
+        (void)gethostname(environment + len, 1024 - len);
 #else
-       (void)sysinfo(SI_HOSTNAME, environment + len, 1024 - len);
+        (void)sysinfo(SI_HOSTNAME, environment + len, 1024 - len);
 #endif
     }
     if ((homeDB = XrmGetFileDatabase(environment)))
-       XrmMergeDatabases(homeDB, &wxResourceDatabase);
+        XrmMergeDatabases(homeDB, &wxResourceDatabase);
 }
 
 //-----------------------------------------------------------------------------
@@ -163,31 +164,32 @@ 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.
-       (void)GetResourcePath(nameBuffer, file, TRUE);
-
-       XrmDatabase database = (XrmDatabase)node->Data();
-       XrmPutFileDatabase(database, nameBuffer);
-       XrmDestroyDatabase(database);
-       wxNode *next = node->Next();
-       delete node;
-       node = next;
+        char *file = node->key.string;
+        // If file doesn't exist, create it first.
+        (void)GetResourcePath(nameBuffer, file, TRUE);
+
+        XrmDatabase database = (XrmDatabase)node->Data();
+        XrmPutFileDatabase(database, nameBuffer);
+        XrmDestroyDatabase(database);
+        wxNode *next = node->Next();
+//        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;
+        XrmDatabase database = (XrmDatabase)node->Data();
+        XrmDestroyDatabase(database);
+//        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();
+        database = (XrmDatabase)node->Data();
     else {
-       database = XrmGetFileDatabase(buffer);
-       wxResourceCache.Append(buffer, (wxObject *)database);
+        database = XrmGetFileDatabase(buffer);
+        wxLogTrace(wxTraceResAlloc, "Write: Number = %d", wxTheResourceCache->Number());
+        wxTheResourceCache->Append(buffer, (wxObject *)database);
     }
     char resName[300];
     strcpy(resName, !section.IsNull() ? WXSTRINGCAST section : "wxWindows");
@@ -243,24 +246,25 @@ bool wxWriteResource(const wxString& section, const wxString& entry, int value,
 bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file )
 {
     if (!wxResourceDatabase)
-       wxXMergeDatabases();
+        wxXMergeDatabases();
 
     XrmDatabase database;
     if (file) {
-       char buffer[500];
-       // Is this right? Trying to get it to look in the user's
-       // home directory instead of current directory -- JACS
-       (void)GetIniFile(buffer, file);
-
-       wxNode *node = wxResourceCache.Find(buffer);
-       if (node)
-           database = (XrmDatabase)node->Data();
-       else {
-           database = XrmGetFileDatabase(buffer);
-           wxResourceCache.Append(buffer, (wxObject *)database);
-       }
+        char buffer[500];
+        // Is this right? Trying to get it to look in the user's
+        // home directory instead of current directory -- JACS
+        (void)GetIniFile(buffer, file);
+
+        wxNode *node = wxTheResourceCache->Find(buffer);
+        if (node)
+            database = (XrmDatabase)node->Data();
+        else {
+            database = XrmGetFileDatabase(buffer);
+            wxLogTrace(wxTraceResAlloc, "Get: Number = %d", wxTheResourceCache->Number());
+            wxTheResourceCache->Append(buffer, (wxObject *)database);
+        }
     } else
-       database = wxResourceDatabase;
+        database = wxResourceDatabase;
 
     XrmValue xvalue;
     char *str_type[20];
@@ -272,15 +276,15 @@ bool wxGetResource(const wxString& section, const wxString& entry, char **value,
     bool success = XrmGetResource(database, buf, "*", str_type, &xvalue);
     // Try different combinations of upper/lower case, just in case...
     if (!success) {
-       buf[0] = (isupper(buf[0]) ? tolower(buf[0]) : toupper(buf[0]));
-       success = XrmGetResource(database, buf, "*", str_type,  &xvalue);
+        buf[0] = (isupper(buf[0]) ? tolower(buf[0]) : toupper(buf[0]));
+        success = XrmGetResource(database, buf, "*", str_type,        &xvalue);
     }
     if (success) {
-       if (*value)
-           delete[] *value;
-       *value = new char[xvalue.size + 1];
-       strncpy(*value, xvalue.addr, (int)xvalue.size);
-       return TRUE;
+        if (*value)
+            delete[] *value;
+        *value = new char[xvalue.size + 1];
+        strncpy(*value, xvalue.addr, (int)xvalue.size);
+        return TRUE;
     }
     return FALSE;
 };
@@ -290,11 +294,11 @@ bool wxGetResource(const wxString& section, const wxString& entry, float *value,
     char *s = NULL;
     bool succ = wxGetResource(section, entry, &s, file);
     if (succ) {
-       *value = (float)strtod(s, NULL);
-       delete[]s;
-       return TRUE;
+        *value = (float)strtod(s, NULL);
+        delete[]s;
+        return TRUE;
     } else
-       return FALSE;
+        return FALSE;
 };
 
 bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file )
@@ -302,11 +306,11 @@ bool wxGetResource(const wxString& section, const wxString& entry, long *value,
     char *s = NULL;
     bool succ = wxGetResource(section, entry, &s, file);
     if (succ) {
-       *value = strtol(s, NULL, 10);
-       delete[]s;
-       return TRUE;
+        *value = strtol(s, NULL, 10);
+        delete[]s;
+        return TRUE;
     } else
-       return FALSE;
+        return FALSE;
 };
 
 bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file )
@@ -314,19 +318,19 @@ bool wxGetResource(const wxString& section, const wxString& entry, int *value, c
     char *s = NULL;
     bool succ = wxGetResource(section, entry, &s, file);
     if (succ) {
-       // Handle True, False here 
-       // True, Yes, Enables, Set or  Activated 
-       if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A')
-           *value = TRUE;
-       // False, No, Disabled, Reset, Cleared, Deactivated
-       else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C')
-           *value = FALSE;
-       // Handle as Integer
-       else
-           *value = (int)strtol(s, NULL, 10);
-       delete[]s;
-       return TRUE;
+        // Handle True, False here
+        // True, Yes, Enables, Set or  Activated
+        if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A')
+            *value = TRUE;
+        // False, No, Disabled, Reset, Cleared, Deactivated
+        else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C')
+            *value = FALSE;
+        // Handle as Integer
+        else
+            *value = (int)strtol(s, NULL, 10);
+        delete[]s;
+        return TRUE;
     } else
-       return FALSE;
+        return FALSE;
 };
 
index 8cb306519187d0c0f409b5fe5b9ef52d4ce6f9fa..d65fec1d0906395e8589bcb80d3f352555209a4b 100644 (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,7 +919,8 @@ void wxWindow::PreCreation( wxWindow *parent, wxWindowID id,
   m_windowValidator = NULL;
   m_windowId = id;
   m_sizeSet = FALSE;
-  m_cursor = new wxCursor( wxCURSOR_ARROW );
+  if (m_cursor == NULL)
+    m_cursor = new wxCursor( wxCURSOR_ARROW );
   m_font = *wxSWISS_FONT;
   m_backgroundColour = wxWHITE;
   m_foregroundColour = wxBLACK;
@@ -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() );
index 2317ad532011f25cd4bb2b95242458d45468044b..74f5e13cee263111b888469878bfa215d4229691 100644 (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;
   
@@ -359,6 +375,8 @@ int wxEntry( int argc, char *argv[] )
   wxTheApp->OnExit();
   
   wxApp::CommonCleanUp();
+
+  wxDELETE(wxTheApp);
   
 #if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
   // At this point we want to check if there are any memory
index 42facd4ae83e0c4ba483c11da8e44d9df103e288..826d9102c7ee75db2cc93ded7a6d9b348b51edc4 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -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;
@@ -398,7 +398,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar95, wxToolBarBase)
 IMPLEMENT_DYNAMIC_CLASS(wxStatusBar, wxWindow)
 
 BEGIN_EVENT_TABLE(wxStatusBar, wxWindow)
-       EVT_PAINT(wxStatusBar::OnPaint)
+  EVT_PAINT(wxStatusBar::OnPaint)
     EVT_SYS_COLOUR_CHANGED(wxStatusBar::OnSysColourChanged)
 END_EVENT_TABLE()
 
@@ -548,17 +548,16 @@ IMPLEMENT_DYNAMIC_CLASS(wxGenericGrid, wxPanel)
 const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; }
 
 const wxEventTable wxEvtHandler::sm_eventTable =
-       { NULL, &wxEvtHandler::sm_eventTableEntries[0] };
+  { NULL, &wxEvtHandler::sm_eventTableEntries[0] };
 
 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)
-    EVT_IDLE(wxFrame::OnIdle)
-    EVT_CLOSE(wxFrame::OnCloseWindow)
+  EVT_SIZE(wxFrame::OnSize)
+  EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight)
+  EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged)
+  EVT_IDLE(wxFrame::OnIdle)
+  EVT_CLOSE(wxFrame::OnCloseWindow)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxDialog, wxPanel)
@@ -589,9 +588,9 @@ BEGIN_EVENT_TABLE(wxPanel, wxWindow)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
-       EVT_CHAR(wxTextCtrl::OnChar)
-       EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
-       EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
+  EVT_CHAR(wxTextCtrl::OnChar)
+  EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
+  EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
 END_EVENT_TABLE()
 
 #ifdef wx_msw
@@ -613,32 +612,32 @@ BEGIN_EVENT_TABLE(wxToolBarBase, wxControl)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxToolBarSimple, wxToolBarBase)
-       EVT_SIZE(wxToolBarSimple::OnSize)
-       EVT_PAINT(wxToolBarSimple::OnPaint)
-       EVT_KILL_FOCUS(wxToolBarSimple::OnKillFocus)
-       EVT_MOUSE_EVENTS(wxToolBarSimple::OnMouseEvent)
+  EVT_SIZE(wxToolBarSimple::OnSize)
+  EVT_PAINT(wxToolBarSimple::OnPaint)
+  EVT_KILL_FOCUS(wxToolBarSimple::OnKillFocus)
+  EVT_MOUSE_EVENTS(wxToolBarSimple::OnMouseEvent)
 END_EVENT_TABLE()
 
 #ifdef wx_msw
 BEGIN_EVENT_TABLE(wxToolBarMSW, wxToolBarBase)
-       EVT_SIZE(wxToolBarMSW::OnSize)
-       EVT_PAINT(wxToolBarMSW::OnPaint)
-       EVT_MOUSE_EVENTS(wxToolBarMSW::OnMouseEvent)
+  EVT_SIZE(wxToolBarMSW::OnSize)
+  EVT_PAINT(wxToolBarMSW::OnPaint)
+  EVT_MOUSE_EVENTS(wxToolBarMSW::OnMouseEvent)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxToolBar95, wxToolBarBase)
-       EVT_SIZE(wxToolBar95::OnSize)
-       EVT_PAINT(wxToolBar95::OnPaint)
-       EVT_KILL_FOCUS(wxToolBar95::OnKillFocus)
-       EVT_MOUSE_EVENTS(wxToolBar95::OnMouseEvent)
+  EVT_SIZE(wxToolBar95::OnSize)
+  EVT_PAINT(wxToolBar95::OnPaint)
+  EVT_KILL_FOCUS(wxToolBar95::OnKillFocus)
+  EVT_MOUSE_EVENTS(wxToolBar95::OnMouseEvent)
     EVT_SYS_COLOUR_CHANGED(wxToolBar95::OnSysColourChanged)
 END_EVENT_TABLE()
 #endif
 
 BEGIN_EVENT_TABLE(wxGenericGrid, wxPanel)
-       EVT_SIZE(wxGenericGrid::OnSize)
-       EVT_PAINT(wxGenericGrid::OnPaint)
-       EVT_MOUSE_EVENTS(wxGenericGrid::OnMouseEvent)
+  EVT_SIZE(wxGenericGrid::OnSize)
+  EVT_PAINT(wxGenericGrid::OnPaint)
+  EVT_MOUSE_EVENTS(wxGenericGrid::OnMouseEvent)
     EVT_TEXT(wxGRID_TEXT_CTRL, wxGenericGrid::OnText)
     EVT_COMMAND_SCROLL(wxGRID_HSCROLL, wxGenericGrid::OnGridScroll)
     EVT_COMMAND_SCROLL(wxGRID_VSCROLL, wxGenericGrid::OnGridScroll)
@@ -650,28 +649,28 @@ END_EVENT_TABLE()
 
 #if !defined(wx_msw) || USE_GENERIC_DIALOGS_IN_MSW
 BEGIN_EVENT_TABLE(wxGenericMessageDialog, wxDialog)
-       EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes)
-       EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo)
-       EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel)
+  EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes)
+  EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo)
+  EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog)
-       EVT_BUTTON(wxID_ADD_CUSTOM, wxGenericColourDialog::OnAddCustom)
-       EVT_SLIDER(wxID_RED_SLIDER, wxGenericColourDialog::OnRedSlider)
-       EVT_SLIDER(wxID_GREEN_SLIDER, wxGenericColourDialog::OnGreenSlider)
-       EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider)
-       EVT_PAINT(wxGenericColourDialog::OnPaint)
-       EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent)
+  EVT_BUTTON(wxID_ADD_CUSTOM, wxGenericColourDialog::OnAddCustom)
+  EVT_SLIDER(wxID_RED_SLIDER, wxGenericColourDialog::OnRedSlider)
+  EVT_SLIDER(wxID_GREEN_SLIDER, wxGenericColourDialog::OnGreenSlider)
+  EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider)
+  EVT_PAINT(wxGenericColourDialog::OnPaint)
+  EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog)
-       EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
-       EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
-       EVT_PAINT(wxGenericFontDialog::OnPaint)
+  EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
+  EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
+  EVT_PAINT(wxGenericFontDialog::OnPaint)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxGenericPrintDialog, wxDialog)
@@ -683,25 +682,25 @@ END_EVENT_TABLE()
 #endif
 
 BEGIN_EVENT_TABLE(wxTextEntryDialog, wxDialog)
-       EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK)
+  EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxSingleChoiceDialog, wxDialog)
-       EVT_BUTTON(wxID_OK, wxSingleChoiceDialog::OnOK)
+  EVT_BUTTON(wxID_OK, wxSingleChoiceDialog::OnOK)
 END_EVENT_TABLE()
 
 #include "wx/prntbase.h"
 
 BEGIN_EVENT_TABLE(wxPrintAbortDialog, wxDialog)
-       EVT_BUTTON(wxID_CANCEL, wxPrintAbortDialog::OnCancel)
+  EVT_BUTTON(wxID_CANCEL, wxPrintAbortDialog::OnCancel)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(wxPreviewControlBar, wxWindow)
-       EVT_BUTTON(wxID_PREVIEW_CLOSE,          wxPreviewControlBar::OnClose)
-       EVT_BUTTON(wxID_PREVIEW_PRINT,          wxPreviewControlBar::OnPrint)
-       EVT_BUTTON(wxID_PREVIEW_PREVIOUS,       wxPreviewControlBar::OnPrevious)
-       EVT_BUTTON(wxID_PREVIEW_NEXT,           wxPreviewControlBar::OnNext)
-       EVT_CHOICE(wxID_PREVIEW_ZOOM,           wxPreviewControlBar::OnZoom)
+  EVT_BUTTON(wxID_PREVIEW_CLOSE,     wxPreviewControlBar::OnClose)
+  EVT_BUTTON(wxID_PREVIEW_PRINT,     wxPreviewControlBar::OnPrint)
+  EVT_BUTTON(wxID_PREVIEW_PREVIOUS,   wxPreviewControlBar::OnPrevious)
+  EVT_BUTTON(wxID_PREVIEW_NEXT,     wxPreviewControlBar::OnNext)
+  EVT_CHOICE(wxID_PREVIEW_ZOOM,     wxPreviewControlBar::OnZoom)
 END_EVENT_TABLE()
 
 #endif
index b4d0ed159285c7b8ceeffbde3446047df4150114..a555c487be690e69fb588ad69ab7e1d5674199a8 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -48,12 +48,12 @@ void gtk_filedialog_cancel_callback( GtkWidget *WXUNUSED(widget), gpointer data
 IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxDialog)
 
 wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
-        const wxString& defaultDir, const wxString& defaultFileName, 
-       const wxString& wildCard,
+        const wxString& defaultDir, const wxString& defaultFileName,
+  const wxString& wildCard,
         long style, const wxPoint& pos )
 {
   m_needParent = FALSE;
-  
+
   PreCreation( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, "filedialog" );
   m_message = message;
   m_path = "";
@@ -62,7 +62,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
   m_wildCard = wildCard;
   m_dialogStyle = style;
   m_filterIndex = 1;
-  
+
   m_widget = gtk_file_selection_new( "File selection" );
   
   int x = (gdk_screen_width () - 400) / 2;
@@ -76,11 +76,11 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
   m_path.Append(m_fileName);
 
   if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path);
-  
-  gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked", 
+
+  gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
     GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
 
-  gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked", 
+  gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked",
     GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this );
 };
 
@@ -95,48 +95,48 @@ int wxFileDialog::ShowModal(void)
   };
   return ret;
 };
-    
+
 
 char *wxFileSelector(const char *title,
                      const char *defaultDir, const char *defaultFileName,
                      const char *defaultExtension, const char *filter, int flags,
                      wxWindow *parent, int x, int y)
 {
-       wxString filter2("");
-       if ( defaultExtension && !filter )
-               filter2 = wxString("*.") + wxString(defaultExtension) ;
-       else if ( filter )
-               filter2 = filter;
-
-       wxString defaultDirString;
-       if (defaultDir)
-               defaultDirString = defaultDir;
-       else
-               defaultDirString = "";
-
-       wxString defaultFilenameString;
-       if (defaultFileName)
-               defaultFilenameString = defaultFileName;
-       else
-               defaultFilenameString = "";
-
-       wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString, 
-         filter2, flags, wxPoint(x, y));
-
-       if ( fileDialog.ShowModal() == wxID_OK )
-       {
-               strcpy(wxBuffer, (const char *)fileDialog.GetPath());
-               return wxBuffer;
-       }
-       else
-               return NULL;
+  wxString filter2("");
+  if ( defaultExtension && !filter )
+    filter2 = wxString("*.") + wxString(defaultExtension) ;
+  else if ( filter )
+    filter2 = filter;
+
+  wxString defaultDirString;
+  if (defaultDir)
+    defaultDirString = defaultDir;
+  else
+    defaultDirString = "";
+
+  wxString defaultFilenameString;
+  if (defaultFileName)
+    defaultFilenameString = defaultFileName;
+  else
+    defaultFilenameString = "";
+
+  wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString,
+    filter2, flags, wxPoint(x, y));
+
+  if ( fileDialog.ShowModal() == wxID_OK )
+  {
+    strcpy(wxBuffer, (const char *)fileDialog.GetPath());
+    return wxBuffer;
+  }
+  else
+    return NULL;
 };
 
-char* wxLoadFileSelector(const char *what, const char *extension, const char *default_name, 
+char* wxLoadFileSelector(const char *what, const char *extension, const char *default_name,
          wxWindow *parent )
 {
   char *ext = (char *)extension;
-  
+
   char prompt[50];
   wxString str = _("Load %s file");
   sprintf(prompt, str, what);
@@ -148,11 +148,11 @@ char* wxLoadFileSelector(const char *what, const char *extension, const char *de
   return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent);
 };
 
-char* wxSaveFileSelector(const char *what, const char *extension, const char *default_name, 
+char* wxSaveFileSelector(const char *what, const char *extension, const char *default_name,
          wxWindow *parent )
 {
   char *ext = (char *)extension;
-  
+
   char prompt[50];
   wxString str = _("Save %s file");
   sprintf(prompt, str, what);
index 1418bc06617c1fd0595f64500f9df7f8f0ca4ba4..ad4f5e96544aeade8ad59dc757b22f7e0532ce8d 100644 (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()
index ba55ab7bd74fb1ae959b5613c148e06a0959a894..ade85f736928a2b3c63045961b2995e7fdc89bef 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -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 ;
 };
index 1d8c9ffb6223ff603603272ded13c2fc31729e9e..66a39023cd23742efa7d22b2b23069849f337c76 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -26,7 +26,7 @@ extern wxList wxPendingDelete;
 //-----------------------------------------------------------------------------
 
 static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
-{ 
+{
   if ((win->m_x == alloc->x) &&
       (win->m_y == alloc->y) &&
       (win->m_width == alloc->width) &&
@@ -34,7 +34,7 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
   {
     return;
   };
-  
+
   win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 };
 
@@ -94,22 +94,22 @@ bool wxMDIParentFrame::Create( wxWindow *parent,
       long style, const wxString& name )
 {
   wxFrame::Create( parent, id, title, pos, size, style, name );
-  
+
   OnCreateClient();
-  
+
   return TRUE;
 };
 
 void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height )
 {
   wxFrame::GtkOnSize( x, y, width, height );
-  
+
   if (m_mdiMenuBar)
   {
     int x = 0;
     int y = 0;
     GetClientSize( &x, &y );
-    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 ); 
+    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 );
   }
 };
 
@@ -122,7 +122,7 @@ void wxMDIParentFrame::SetMDIMenuBar( wxMenuBar *menu_bar )
     int x = 0;
     int y = 0;
     GetClientSize( &x, &y );
-    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 ); 
+    m_mdiMenuBar->SetSize( 1, 1, x-2, 26 );
     m_mdiMenuBar->Show( TRUE );
   }
 };
@@ -243,11 +243,11 @@ static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
 void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
 {
   m_menuBar = menu_bar;
-  
+
   if (m_menuBar)
   {
     wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->m_parent;
-    
+
     if (m_menuBar->m_parent != this)
     {
       wxNode *node = m_menuBar->m_menus.First();
@@ -257,7 +257,7 @@ void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
         SetInvokingWindow( menu, this );
         node = node->Next();
       };
-      
+
       m_menuBar->m_parent = mdi_frame;
     }
     mdi_frame->SetMDIMenuBar( m_menuBar );
@@ -302,20 +302,20 @@ wxMDIClientWindow::~wxMDIClientWindow(void)
 bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style )
 {
   m_needParent = TRUE;
-  
+
   PreCreation( parent, -1, wxPoint(10,10), wxSize(100,100), style, "wxMDIClientWindow" );
 
   m_widget = gtk_notebook_new();
-  
+
   gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page",
                       GTK_SIGNAL_FUNC(gtk_page_change_callback), (gpointer)this );
-                 
+
   gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
-  
+
   PostCreation();
-  
+
   Show( TRUE );
-  
+
   return TRUE;
 };
 
@@ -326,25 +326,25 @@ void wxMDIClientWindow::AddChild( wxWindow *child )
      wxFAIL_MSG("wxNotebook::AddChild: Child has to be wxMDIChildFrame");
      return;
   };
-  
+
   m_children.Append( child );
-  
+
   wxString s;
   wxMDIChildFrame* mdi_child = (wxMDIChildFrame*) child;
   s = mdi_child->m_title;
   if (s.IsNull()) s = "MDI child";
-  
+
   GtkWidget *label_widget;
   label_widget = gtk_label_new( s );
   gtk_misc_set_alignment( GTK_MISC(label_widget), 0.0, 0.5 );
-  
+
   gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate",
     GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
     
   gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget );
-  
+
   mdi_child->m_page = (GtkNotebookPage*) (g_list_last(GTK_NOTEBOOK(m_widget)->children)->data);
-    
+
   gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), m_children.Number()-1 );
   
   gtk_page_change_callback( NULL, mdi_child->m_page, 0, this );
index 9ff546a945b93a1879b1c054d78debfaf3927739..64a36484027a0c076b7240c46b60dc4a8fc5fb5a 100644 (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.");
 };
 
index dfcf1d81db6f2d638f116ddb7b9db4524ce71573..aa24393c68eb03e74f28eacddf86f819f70c8522 100644 (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)
index 12dd7b66a73b2c6faf7b2de0386c57060e82c3d2..3892f89d73a73c698c5db3aaf77bc0f6b078a2ca 100644 (file)
@@ -4,9 +4,9 @@
 // Author:      Robert Roebling
 // Modified by:
 // Created:     01/02/97
-// RCS-ID:      
+// RCS-ID:
 // Copyright:   (c) Robert Roebling
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -20,8 +20,8 @@
 //-----------------------------------------------------------------------------
 
 IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool,wxObject)
-  
-wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex, 
+
+wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex,
       const wxBitmap& bitmap1, const  wxBitmap& bitmap2,
       bool toggle, wxObject *clientData,
       const wxString& shortHelpString, const wxString& longHelpString )
@@ -40,7 +40,7 @@ wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex,
   m_deleteSecondBitmap = FALSE;
 };
 
-wxToolBarTool::~wxToolBarTool(void)
+wxToolBarTool::~wxToolBarTool()
 {
 };
 
@@ -51,9 +51,9 @@ wxToolBarTool::~wxToolBarTool(void)
 static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *tool )
 {
   if (!tool->m_enabled) return;
-  
+
   if (tool->m_isToggle) tool->m_toggleState = !tool->m_toggleState;
-  
+
   tool->m_owner->OnLeftClick( tool->m_index, tool->m_toggleState );
 };
 
@@ -64,43 +64,43 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl)
 BEGIN_EVENT_TABLE(wxToolBar, wxControl)
 END_EVENT_TABLE()
 
-wxToolBar::wxToolBar(void)
+wxToolBar::wxToolBar()
 {
 };
 
-wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id, 
+wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id,
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   Create( parent, id, pos, size, style, name );
 };
 
-wxToolBar::~wxToolBar(void)
+wxToolBar::~wxToolBar()
 {
 };
 
-bool wxToolBar::Create( wxWindow *parent, wxWindowID id, 
+bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
   const wxPoint& pos, const wxSize& size,
   long style, const wxString& name )
 {
   m_needParent = TRUE;
-  
+
   PreCreation( parent, id, pos, size, style, name );
 
   m_tools.DeleteContents( TRUE );
-    
+
   m_widget = gtk_handle_box_new();
-  
+
   m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS ) );
-  
+
   gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) );
-  
+
   gtk_widget_show( GTK_WIDGET(m_toolbar) );
-  
+
   PostCreation();
-  
+
   Show( TRUE );
-    
+
   return TRUE;
 };
 
@@ -134,32 +134,32 @@ void wxToolBar::OnMouseEnter( int toolIndex )
   GetEventHandler()->ProcessEvent(event);
 };
 
-wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, 
+wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap,
   const wxBitmap& pushedBitmap, bool toggle,
   float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData,
   const wxString& helpString1, const wxString& helpString2 )
 {
   if (!bitmap.Ok()) return NULL;
-  
-  wxToolBarTool *tool = new wxToolBarTool( this, toolIndex, bitmap, pushedBitmap, toggle, 
+
+  wxToolBarTool *tool = new wxToolBarTool( this, toolIndex, bitmap, pushedBitmap, toggle,
   clientData, helpString1, helpString2 );
-  
+
   GdkPixmap *pixmap = bitmap.GetPixmap();
-  
+
   GdkBitmap *mask = NULL;
   if (bitmap.GetMask()) mask = bitmap.GetMask()->GetBitmap();
-  
+
   GtkWidget *tool_pixmap = gtk_pixmap_new( pixmap, mask );
   gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
-  
+
   GtkToolbarChildType ctype = GTK_TOOLBAR_CHILD_BUTTON;
   if (toggle) ctype = GTK_TOOLBAR_CHILD_TOGGLEBUTTON;
-  
-  gtk_toolbar_append_element( m_toolbar, 
+
+  gtk_toolbar_append_element( m_toolbar,
     ctype, NULL, NULL, helpString1, "", tool_pixmap, (GtkSignalFunc)gtk_toolbar_callback, (gpointer)tool );
-    
-  m_tools.Append( tool );    
-    
+
+  m_tools.Append( tool );
+
   return tool;
 };
 
index 24e7904c2608e524936c60a1ab7273507db7b70c..db55e4f964498e5272902aa2aeb1c48a9906d90e 100644 (file)
@@ -5,7 +5,7 @@
 // Created:     01/02/97
 // Id:
 // Copyright:   (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:           wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -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;
 
 //-----------------------------------------------------------------------------
@@ -58,21 +59,21 @@ extern XrmDatabase wxResourceDatabase;
 static char *GetResourcePath(char *buf, char *name, bool create)
 {
     if (create && FileExists(name)) {
-       strcpy(buf, name);
-       return buf; // Exists so ...
+        strcpy(buf, name);
+        return buf; // Exists so ...
     }
     if (*name == '/')
-       strcpy(buf, name);
+        strcpy(buf, name);
     else {
-       // Put in standard place for resource files if not absolute
-       strcpy(buf, DEFAULT_XRESOURCE_DIR);
-       strcat(buf, "/");
-       strcat(buf, FileNameFromPath(name));
+        // Put in standard place for resource files if not absolute
+        strcpy(buf, DEFAULT_XRESOURCE_DIR);
+        strcat(buf, "/");
+        strcat(buf, FileNameFromPath(name));
     }
     if (create) {
-       // Touch the file to create it
-       FILE *fd = fopen(buf, "w");
-       if (fd) fclose(fd);
+        // Touch the file to create it
+        FILE *fd = fopen(buf, "w");
+        if (fd) fclose(fd);
     }
     return buf;
 }
@@ -83,27 +84,27 @@ static char *GetResourcePath(char *buf, char *name, bool create)
 static char *GetIniFile(char *dest, const char *filename)
 {
     char *home = NULL;
-    if (filename && wxIsAbsolutePath(filename)) 
+    if (filename && wxIsAbsolutePath(filename))
     {
       strcpy(dest, filename);
-    } 
+    }
     else
     {
-      if ((home = wxGetUserHome(wxString())) != NULL) 
+      if ((home = wxGetUserHome(wxString())) != NULL)
       {
-       strcpy(dest, home);
-       if (dest[strlen(dest) - 1] != '/') strcat(dest, "/");
-       if (filename == NULL) 
-       {
-         if ((filename = getenv("XENVIRONMENT")) == NULL) filename = ".Xdefaults";
-       } 
-       else 
-         if (*filename != '.') strcat(dest, ".");
-       strcat(dest, filename);
+        strcpy(dest, home);
+        if (dest[strlen(dest) - 1] != '/') strcat(dest, "/");
+        if (filename == NULL)
+        {
+          if ((filename = getenv("XENVIRONMENT")) == NULL) filename = ".Xdefaults";
+        }
+        else
+          if (*filename != '.') strcat(dest, ".");
+        strcat(dest, filename);
       }
-      else 
+      else
       {
-        dest[0] = '\0';    
+        dest[0] = '\0';
       }
     }
     return dest;
@@ -121,38 +122,38 @@ static void wxXMergeDatabases(void)
     (void)strcpy(name, "/usr/lib/X11/app-defaults/");
     (void)strcat(name, classname ? classname : "wxWindows");
 
-    // Get application defaults file, if any 
+    // Get application defaults file, if any
     if ((applicationDB = XrmGetFileDatabase(name)))
-       (void)XrmMergeDatabases(applicationDB, &wxResourceDatabase);
+        (void)XrmMergeDatabases(applicationDB, &wxResourceDatabase);
 
     // Merge server defaults, created by xrdb, loaded as a property of the root
     // window when the server initializes and loaded into the display
     // structure on XOpenDisplay;
     // if not defined, use .Xdefaults
     if (XResourceManagerString(GDK_DISPLAY()) != NULL) {
-       serverDB = XrmGetStringDatabase(XResourceManagerString(GDK_DISPLAY()));
+        serverDB = XrmGetStringDatabase(XResourceManagerString(GDK_DISPLAY()));
     } else {
-       (void)GetIniFile(filename, NULL);
-       serverDB = XrmGetFileDatabase(filename);
+        (void)GetIniFile(filename, NULL);
+        serverDB = XrmGetFileDatabase(filename);
     }
     if (serverDB)
-       XrmMergeDatabases(serverDB, &wxResourceDatabase);
+        XrmMergeDatabases(serverDB, &wxResourceDatabase);
 
     // Open XENVIRONMENT file, or if not defined, the .Xdefaults,
     // and merge into existing database
 
     if ((environment = getenv("XENVIRONMENT")) == NULL) {
-       size_t len;
-       environment = GetIniFile(filename, NULL);
-       len = strlen(environment);
+        size_t len;
+        environment = GetIniFile(filename, NULL);
+        len = strlen(environment);
 #if !defined(SVR4) || defined(__sgi)
-       (void)gethostname(environment + len, 1024 - len);
+        (void)gethostname(environment + len, 1024 - len);
 #else
-       (void)sysinfo(SI_HOSTNAME, environment + len, 1024 - len);
+        (void)sysinfo(SI_HOSTNAME, environment + len, 1024 - len);
 #endif
     }
     if ((homeDB = XrmGetFileDatabase(environment)))
-       XrmMergeDatabases(homeDB, &wxResourceDatabase);
+        XrmMergeDatabases(homeDB, &wxResourceDatabase);
 }
 
 //-----------------------------------------------------------------------------
@@ -163,31 +164,32 @@ 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.
-       (void)GetResourcePath(nameBuffer, file, TRUE);
-
-       XrmDatabase database = (XrmDatabase)node->Data();
-       XrmPutFileDatabase(database, nameBuffer);
-       XrmDestroyDatabase(database);
-       wxNode *next = node->Next();
-       delete node;
-       node = next;
+        char *file = node->key.string;
+        // If file doesn't exist, create it first.
+        (void)GetResourcePath(nameBuffer, file, TRUE);
+
+        XrmDatabase database = (XrmDatabase)node->Data();
+        XrmPutFileDatabase(database, nameBuffer);
+        XrmDestroyDatabase(database);
+        wxNode *next = node->Next();
+//        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;
+        XrmDatabase database = (XrmDatabase)node->Data();
+        XrmDestroyDatabase(database);
+//        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();
+        database = (XrmDatabase)node->Data();
     else {
-       database = XrmGetFileDatabase(buffer);
-       wxResourceCache.Append(buffer, (wxObject *)database);
+        database = XrmGetFileDatabase(buffer);
+        wxLogTrace(wxTraceResAlloc, "Write: Number = %d", wxTheResourceCache->Number());
+        wxTheResourceCache->Append(buffer, (wxObject *)database);
     }
     char resName[300];
     strcpy(resName, !section.IsNull() ? WXSTRINGCAST section : "wxWindows");
@@ -243,24 +246,25 @@ bool wxWriteResource(const wxString& section, const wxString& entry, int value,
 bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file )
 {
     if (!wxResourceDatabase)
-       wxXMergeDatabases();
+        wxXMergeDatabases();
 
     XrmDatabase database;
     if (file) {
-       char buffer[500];
-       // Is this right? Trying to get it to look in the user's
-       // home directory instead of current directory -- JACS
-       (void)GetIniFile(buffer, file);
-
-       wxNode *node = wxResourceCache.Find(buffer);
-       if (node)
-           database = (XrmDatabase)node->Data();
-       else {
-           database = XrmGetFileDatabase(buffer);
-           wxResourceCache.Append(buffer, (wxObject *)database);
-       }
+        char buffer[500];
+        // Is this right? Trying to get it to look in the user's
+        // home directory instead of current directory -- JACS
+        (void)GetIniFile(buffer, file);
+
+        wxNode *node = wxTheResourceCache->Find(buffer);
+        if (node)
+            database = (XrmDatabase)node->Data();
+        else {
+            database = XrmGetFileDatabase(buffer);
+            wxLogTrace(wxTraceResAlloc, "Get: Number = %d", wxTheResourceCache->Number());
+            wxTheResourceCache->Append(buffer, (wxObject *)database);
+        }
     } else
-       database = wxResourceDatabase;
+        database = wxResourceDatabase;
 
     XrmValue xvalue;
     char *str_type[20];
@@ -272,15 +276,15 @@ bool wxGetResource(const wxString& section, const wxString& entry, char **value,
     bool success = XrmGetResource(database, buf, "*", str_type, &xvalue);
     // Try different combinations of upper/lower case, just in case...
     if (!success) {
-       buf[0] = (isupper(buf[0]) ? tolower(buf[0]) : toupper(buf[0]));
-       success = XrmGetResource(database, buf, "*", str_type,  &xvalue);
+        buf[0] = (isupper(buf[0]) ? tolower(buf[0]) : toupper(buf[0]));
+        success = XrmGetResource(database, buf, "*", str_type,        &xvalue);
     }
     if (success) {
-       if (*value)
-           delete[] *value;
-       *value = new char[xvalue.size + 1];
-       strncpy(*value, xvalue.addr, (int)xvalue.size);
-       return TRUE;
+        if (*value)
+            delete[] *value;
+        *value = new char[xvalue.size + 1];
+        strncpy(*value, xvalue.addr, (int)xvalue.size);
+        return TRUE;
     }
     return FALSE;
 };
@@ -290,11 +294,11 @@ bool wxGetResource(const wxString& section, const wxString& entry, float *value,
     char *s = NULL;
     bool succ = wxGetResource(section, entry, &s, file);
     if (succ) {
-       *value = (float)strtod(s, NULL);
-       delete[]s;
-       return TRUE;
+        *value = (float)strtod(s, NULL);
+        delete[]s;
+        return TRUE;
     } else
-       return FALSE;
+        return FALSE;
 };
 
 bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file )
@@ -302,11 +306,11 @@ bool wxGetResource(const wxString& section, const wxString& entry, long *value,
     char *s = NULL;
     bool succ = wxGetResource(section, entry, &s, file);
     if (succ) {
-       *value = strtol(s, NULL, 10);
-       delete[]s;
-       return TRUE;
+        *value = strtol(s, NULL, 10);
+        delete[]s;
+        return TRUE;
     } else
-       return FALSE;
+        return FALSE;
 };
 
 bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file )
@@ -314,19 +318,19 @@ bool wxGetResource(const wxString& section, const wxString& entry, int *value, c
     char *s = NULL;
     bool succ = wxGetResource(section, entry, &s, file);
     if (succ) {
-       // Handle True, False here 
-       // True, Yes, Enables, Set or  Activated 
-       if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A')
-           *value = TRUE;
-       // False, No, Disabled, Reset, Cleared, Deactivated
-       else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C')
-           *value = FALSE;
-       // Handle as Integer
-       else
-           *value = (int)strtol(s, NULL, 10);
-       delete[]s;
-       return TRUE;
+        // Handle True, False here
+        // True, Yes, Enables, Set or  Activated
+        if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A')
+            *value = TRUE;
+        // False, No, Disabled, Reset, Cleared, Deactivated
+        else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C')
+            *value = FALSE;
+        // Handle as Integer
+        else
+            *value = (int)strtol(s, NULL, 10);
+        delete[]s;
+        return TRUE;
     } else
-       return FALSE;
+        return FALSE;
 };
 
index 8cb306519187d0c0f409b5fe5b9ef52d4ce6f9fa..d65fec1d0906395e8589bcb80d3f352555209a4b 100644 (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,7 +919,8 @@ void wxWindow::PreCreation( wxWindow *parent, wxWindowID id,
   m_windowValidator = NULL;
   m_windowId = id;
   m_sizeSet = FALSE;
-  m_cursor = new wxCursor( wxCURSOR_ARROW );
+  if (m_cursor == NULL)
+    m_cursor = new wxCursor( wxCURSOR_ARROW );
   m_font = *wxSWISS_FONT;
   m_backgroundColour = wxWHITE;
   m_foregroundColour = wxBLACK;
@@ -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() );
index 75f2e5d0af36908376e055f14a24aac9da00e2fc..71309be7240bf5886e7c92d2b8f75edbb5b617ae 100644 (file)
@@ -1011,4 +1011,3 @@ void wxFrame::PositionToolBar(void)
         }
     }
 }
-
index d8207f2e1883b8bd6397586914ed77afb4b198eb..efa74903a30241f5000fe3814c296a8f77d6eba1 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -4600,3 +4600,5 @@ const char *wxGetMessageName(int message)
   }
 }
 #endif //WXDEBUG
+
+#include "../common/wincmn.cpp"