]> git.saurik.com Git - wxWidgets.git/commitdiff
wxTopLevelWindows is now a wxWindowList, better compatibility with the old
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 30 Mar 1999 09:43:29 +0000 (09:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 30 Mar 1999 09:43:29 +0000 (09:43 +0000)
wxList in list.h

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

22 files changed:
include/wx/gtk/window.h
include/wx/gtk1/window.h
include/wx/list.h
include/wx/motif/window.h
include/wx/msw/window.h
src/common/list.cpp
src/common/utilscmn.cpp
src/gtk/app.cpp
src/gtk/data.cpp
src/gtk/dialog.cpp
src/gtk/frame.cpp
src/gtk/window.cpp
src/gtk1/app.cpp
src/gtk1/data.cpp
src/gtk1/dialog.cpp
src/gtk1/frame.cpp
src/gtk1/window.cpp
src/motif/app.cpp
src/motif/data.cpp
src/motif/utils.cpp
src/msw/app.cpp
src/msw/data.cpp

index b969665920d319c0613e199cd8ec6e94dc34e40d..e63d825e613d4c4db9cccdf361e5af99948d27c0 100644 (file)
@@ -30,7 +30,7 @@
 //-----------------------------------------------------------------------------
 
 extern const char *wxFrameNameStr;
-extern wxList wxTopLevelWindows;
+extern wxWindowList wxTopLevelWindows;
 
 //-----------------------------------------------------------------------------
 // global function
index b969665920d319c0613e199cd8ec6e94dc34e40d..e63d825e613d4c4db9cccdf361e5af99948d27c0 100644 (file)
@@ -30,7 +30,7 @@
 //-----------------------------------------------------------------------------
 
 extern const char *wxFrameNameStr;
-extern wxList wxTopLevelWindows;
+extern wxWindowList wxTopLevelWindows;
 
 //-----------------------------------------------------------------------------
 // global function
index b5789828662db1b3244ad35185aa4cd2e8b574fa..8bd77c2d2f3f8b4864cdc0bf98d69633812e476c 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     29/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Julian Smart
-// Licence:       wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 /*
@@ -197,17 +197,17 @@ public:
     size_t GetCount() const { return m_count; }
 
     // operations
-    
+
         // delete all nodes
     void Clear();
-    
+
         // instruct it to destroy user data when deleting nodes
     void DeleteContents(bool destroy) { m_destroy = destroy; }
 
        // query if to delete
     bool GetDeleteContents() const
         { return m_destroy; }
-    
+
       // get the keytype
     wxKeyType GetKeyType() const
         { return m_keyType; }
@@ -216,6 +216,13 @@ public:
     void SetKeyType(wxKeyType keyType)
         { wxASSERT( m_count==0 ); m_keyType = keyType; }
 
+#ifdef wxLIST_COMPATIBILITY
+    int Number() const { return GetCount(); }
+    wxNode *First() const { return (wxNode *)GetFirst(); }
+    wxNode *Last() const { return (wxNode *)GetLast(); }
+    wxNode *Nth(size_t index) const { return (wxNode *)Item(index); }
+#endif // wxLIST_COMPATIBILITY
+
 protected:
 
     // all methods here are "overloaded" in derived classes to provide compile
@@ -294,7 +301,7 @@ protected:
     void *FirstThat(wxListIterateFunction func);
     void ForEach(wxListIterateFunction func);
     void *LastThat(wxListIterateFunction func);
-    
+
 private:
     // helpers
         // common part of all ctors
@@ -343,7 +350,7 @@ private:
                  nodetype *previous = (nodetype *)NULL,                     \
                  nodetype *next = (nodetype *)NULL,                         \
                  T *data = (T *)NULL,                                       \
-                 const wxListKey& key = wxDefaultListKey)                        \
+                 const wxListKey& key = wxDefaultListKey)                   \
             : wxNodeBase(list, previous, next, data, key) { }               \
                                                                             \
         nodetype *GetNext() const                                           \
@@ -359,7 +366,7 @@ private:
         virtual void DeleteData();                                          \
     };                                                                      \
                                                                             \
-    class WXDLLEXPORT name : public wxListBase                                          \
+    class WXDLLEXPORT name : public wxListBase                              \
     {                                                                       \
     public:                                                                 \
         typedef nodetype Node;                                              \
@@ -417,7 +424,7 @@ private:
     protected:                                                              \
         wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next,          \
                                void *data,                                  \
-                               const wxListKey& key = wxDefaultListKey)          \
+                               const wxListKey& key = wxDefaultListKey)     \
             {                                                               \
                 return new nodetype(this,                                   \
                                     (nodetype *)prev, (nodetype *)next,     \
@@ -433,11 +440,17 @@ private:
 //      #include <wx/listimpl.cpp>
 #define WX_DEFINE_LIST(name)    "don't forget to include listimpl.cpp!"
 
-
 // =============================================================================
 // now we can define classes 100% compatible with the old ones
 // =============================================================================
 
+// ----------------------------------------------------------------------------
+// commonly used string classes
+// ----------------------------------------------------------------------------
+
+class wxWindow;
+WX_DECLARE_LIST(wxWindow, wxWindowList);
+
 #ifdef wxLIST_COMPATIBILITY
 
 // -----------------------------------------------------------------------------
@@ -454,10 +467,6 @@ public:
     // compatibility methods
     void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); }
 
-    int Number() const { return GetCount(); }
-    wxNode *First() const { return (wxNode *)GetFirst(); }
-    wxNode *Last() const { return (wxNode *)GetLast(); }
-    wxNode *Nth(size_t index) const { return (wxNode *)Item(index); }
     wxNode *Member(wxObject *object) const { return (wxNode *)Find(object); }
 };
 
@@ -494,12 +503,6 @@ public:
     // alphabetic sort
     void Sort();
 
-    // compatibility methods
-    int Number() const { return GetCount(); }
-    wxNode *First() const { return (wxNode *)GetFirst(); }
-    wxNode *Last() const { return (wxNode *)GetLast(); }
-    wxNode *Nth(size_t index) const { return (wxNode *)Item(index); }
-
 private:
     void DoCopy(const wxStringList&); // common part of copy ctor and operator=
 };
index c5bc74b7192d9e6055cf9d4690286d8920a5522a..b90689159437a55c742e6c475a80985285b0a983 100644 (file)
@@ -757,7 +757,7 @@ inline int wxWindow::GetReturnCode() { return m_returnCode; }
 // Get the active window.
 wxWindow* WXDLLEXPORT wxGetActiveWindow();
 
-WXDLLEXPORT_DATA(extern wxList) wxTopLevelWindows;
+WXDLLEXPORT_DATA(extern wxWindowList) wxTopLevelWindows;
 
 // A little class to switch off size optimization while an instance of the object
 // exists
index 9f69b205f02ce2184f1276f898aa0264be38c4d1..f34772a067d5afca59ee5c76e15b2668f6d6dae2 100644 (file)
@@ -874,7 +874,7 @@ inline bool wxWindow::IsBeingDeleted() { return m_isBeingDeleted; }
 // Window specific (so far)
 WXDLLEXPORT wxWindow* wxGetActiveWindow();
 
-WXDLLEXPORT_DATA(extern wxList) wxTopLevelWindows;
+WXDLLEXPORT_DATA(extern wxWindowList) wxTopLevelWindows;
 
 WXDLLEXPORT int wxCharCodeMSWToWX(int keySym);
 WXDLLEXPORT int wxCharCodeWXToMSW(int id, bool *IsVirtual);
index 85448991d261d53578654e17d27446d7c37be7f4..8bc94a8c646e8ef40730ff7e8f99fb6e2dbef6e3 100644 (file)
     #include "wx/utils.h"   // for copystring() (beurk...)
 #endif
 
+// -----------------------------------------------------------------------------
+// implementation of standard lists
+// -----------------------------------------------------------------------------
+
+#include "wx/listimpl.cpp"
+WX_DEFINE_LIST(wxWindowList);
+
 // =============================================================================
 // implementation
 // =============================================================================
@@ -634,4 +641,3 @@ void wxStringList::Sort()
 
     delete [] array;
 }
-
index 3520a5f0f5038091df8fbf77f81876dde8f68cb8..52b8878187060f46b40e249b37de2a950de351bb 100644 (file)
 
 extern char *wxBuffer;
 
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+static wxWindow *wxFindWindowByLabel1(const wxString& title, wxWindow * parent);
+static wxWindow *wxFindWindowByName1 (const wxString& title, wxWindow * parent);
+
 #ifdef __WXMAC__
 int strcasecmp(const char *str_1, const char *str_2)
 {
@@ -418,53 +425,54 @@ wxString wxStripMenuCodes(const wxString& str)
  *
  */
 
-static wxWindow *wxFindWindowByLabel1 (const wxString& title, wxWindow * parent);
-
 wxWindow *
 wxFindWindowByLabel (const wxString& title, wxWindow * parent)
 {
-  if (parent)
+    if (parent)
     {
-      return wxFindWindowByLabel1 (title, parent);
+        return wxFindWindowByLabel1(title, parent);
     }
-  else
+    else
     {
-      for (wxNode * node = wxTopLevelWindows.First (); node; node = node->Next ())
+        for ( wxWindowList::Node * node = wxTopLevelWindows.GetFirst();
+              node;
+              node = node->GetNext() )
         {
-          wxWindow *win = (wxWindow *) node->Data ();
-          wxWindow *retwin = wxFindWindowByLabel1 (title, win);
-          if (retwin)
-            return retwin;
+            wxWindow *win = node->GetData();
+            wxWindow *retwin = wxFindWindowByLabel1 (title, win);
+            if (retwin)
+                return retwin;
         }                        // for()
 
     }
-  return (wxWindow *) NULL;
+    return (wxWindow *) NULL;
 }
 
 // Recursive
 static wxWindow *
 wxFindWindowByLabel1 (const wxString& title, wxWindow * parent)
 {
-  if (parent)
+    if (parent)
     {
-      if (parent->GetLabel() == title)
-                return parent;
+        if (parent->GetLabel() == title)
+            return parent;
     }
 
-  if (parent)
+    if (parent)
     {
-      for (wxNode * node = parent->GetChildren().First (); node; node = node->Next ())
+        for ( wxNode * node = parent->GetChildren().GetFirst();
+              node;
+              node = node->GetNext() )
         {
-          wxWindow *win = (wxWindow *) node->Data ();
-          wxWindow *retwin = wxFindWindowByLabel1 (title, win);
-          if (retwin)
-            return retwin;
-        }                        // for()
+            wxWindow *win = (wxWindow *)node->GetData();
+            wxWindow *retwin = wxFindWindowByLabel1 (title, win);
+            if (retwin)
+                return retwin;
+        }
 
     }
 
-  return (wxWindow *) NULL;                        // Not found
-
+    return (wxWindow *) NULL;                        // Not found
 }
 
 /*
@@ -473,28 +481,29 @@ wxFindWindowByLabel1 (const wxString& title, wxWindow * parent)
  *
  */
 
-static wxWindow *wxFindWindowByName1 (const wxString& title, wxWindow * parent);
-
 wxWindow *
 wxFindWindowByName (const wxString& title, wxWindow * parent)
 {
-  if (parent)
+    if (parent)
     {
-      return wxFindWindowByName1 (title, parent);
+        return wxFindWindowByName1 (title, parent);
     }
-  else
+    else
     {
-      for (wxNode * node = wxTopLevelWindows.First (); node; node = node->Next ())
+        for ( wxWindowList::Node * node = wxTopLevelWindows.GetFirst();
+              node;
+              node = node->GetNext() )
         {
-          wxWindow *win = (wxWindow *) node->Data ();
-          wxWindow *retwin = wxFindWindowByName1 (title, win);
-          if (retwin)
-            return retwin;
-        }                        // for()
+            wxWindow *win = node->GetData();
+            wxWindow *retwin = wxFindWindowByName1 (title, win);
+            if (retwin)
+                return retwin;
+        }
 
     }
-  // Failed? Try by label instead.
-  return wxFindWindowByLabel(title, parent);
+
+    // Failed? Try by label instead.
+    return wxFindWindowByLabel(title, parent);
 }
 
 // Recursive
@@ -730,21 +739,23 @@ whereami(name)
 // Yield to other apps/messages and disable user input
 bool wxSafeYield(wxWindow *win)
 {
-   wxNode *node;
-   for ( node = wxTopLevelWindows.GetFirst();
-         node;
-         node = node->GetNext() )
-      ((wxWindow*)node->GetData())->Enable(FALSE);
-   
-   // always enable ourselves
-   if(win) win->Enable(true);
-   bool rc = wxYield();
-
-   for ( node = wxTopLevelWindows.GetFirst();
-         node;
-         node = node->GetNext() )
-      ((wxWindow*)node->GetData())->Enable(TRUE);
-   return rc;
+    wxWindowList::Node *node;
+    for ( node = wxTopLevelWindows.GetFirst(); node; node = node->GetNext() )
+    {
+        node->GetData()->Enable(FALSE);
+    }
+
+    // always enable ourselves
+    if ( win )
+        win->Enable(TRUE);
+    bool rc = wxYield();
+
+    for ( node = wxTopLevelWindows.GetFirst(); node; node = node->GetNext() )
+    {
+        node->GetData()->Enable(TRUE);
+    }
+
+    return rc;
 }
 
 /*
index 93459c373dd053f08384a0e8cb5d2e4e48f3b8a0..81123a87cab86e762b00709498ff68dca66951ed 100644 (file)
@@ -140,11 +140,11 @@ bool wxYield()
     // it's necessary to call ProcessIdle() to update the frames sizes which
     // might have been changed (it also will update other things set from
     // OnUpdateUI() which is a nice (and desired) side effect)
-    for ( wxNode *node = wxTopLevelWindows.GetFirst();
+    for ( wxWindowList::Node *node = wxTopLevelWindows.GetFirst();
           node;
           node = node->GetNext() )
     {
-        wxWindow *win = ((wxWindow*)node->GetData());
+        wxWindow *win = node->GetData();
         win->OnInternalIdle();
     }
 
@@ -312,14 +312,15 @@ bool wxApp::SendIdleEvents()
 {
     bool needMore = FALSE;
 
-    wxNode* node = wxTopLevelWindows.First();
+    wxWindowList::Node* node = wxTopLevelWindows.GetFirst();
     while (node)
     {
-        wxWindow* win = (wxWindow*) node->Data();
+        wxWindow* win = node->GetData();
         if (SendIdleEvents(win))
             needMore = TRUE;
-        node = node->Next();
+        node = node->GetNext();
     }
+
     return needMore;
 }
 
@@ -385,7 +386,7 @@ void wxApp::ProcessPendingEvents()
         wxEvtHandler *handler = (wxEvtHandler *)node->Data();
 
         handler->ProcessPendingEvents();
-       
+
         delete node;
 
         node = wxPendingEvents.First();
@@ -411,10 +412,12 @@ void wxApp::DeletePendingObjects()
 
 wxWindow *wxApp::GetTopWindow()
 {
-    if (m_topWindow) return m_topWindow;
-    wxNode *node = wxTopLevelWindows.First();
-    if (!node) return (wxWindow *) NULL;
-    return (wxWindow*)node->Data();
+    if (m_topWindow)
+        return m_topWindow;
+    else if (wxTopLevelWindows.GetCount() > 0)
+        return wxTopLevelWindows.GetFirst()->GetData();
+    else
+        return NULL;
 }
 
 void wxApp::SetTopWindow( wxWindow *win )
@@ -565,7 +568,7 @@ int wxEntry( int argc, char *argv[] )
     if (!wxTheApp->OnInit())
         return 0;
 
-    wxTheApp->m_initialized = (wxTopLevelWindows.Number() > 0);
+    wxTheApp->m_initialized = wxTopLevelWindows.GetCount() != 0;
 
     int retValue = 0;
 
index f8c868a24773503c618f2fea7efe10c92efdfdaf..57e16d0916f4d5ef7c5a098036efa01f748d8cbd 100644 (file)
@@ -33,7 +33,7 @@ XrmDatabase wxResourceDatabase;
 char *wxBuffer = (char *) NULL;
 
 /* Windows List */
-wxList wxTopLevelWindows;
+wxWindowList wxTopLevelWindows;
 
 /* List of windows pending deletion */
 wxList wxPendingDelete;
@@ -75,7 +75,7 @@ wxPenList        *wxThePenList = (wxPenList *) NULL;
 wxFontList       *wxTheFontList = (wxFontList *) NULL;
 wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL;
 wxBitmapList     *wxTheBitmapList = (wxBitmapList *) NULL;
-  
+
 /* X only font names */
 /*
 wxFontNameDirectory *wxTheFontNameDirectory;
@@ -111,7 +111,7 @@ wxBrush *wxLIGHT_GREY_BRUSH;
 
 wxColour *wxBLACK;
 wxColour *wxWHITE;
-wxColour *wxGREY; 
+wxColour *wxGREY;
 wxColour *wxRED;
 wxColour *wxBLUE;
 wxColour *wxGREEN;
@@ -125,13 +125,13 @@ wxCursor *wxCROSS_CURSOR = (wxCursor *) NULL;
 /* 'Null' objects */
 wxAcceleratorTable   wxNullAcceleratorTable;
 wxBitmap   wxNullBitmap;
-wxIcon     wxNullIcon;  
+wxIcon     wxNullIcon;
 wxCursor   wxNullCursor;
 wxPen      wxNullPen;
 wxBrush    wxNullBrush;
 wxFont     wxNullFont;
 wxColour   wxNullColour;
-wxPalette  wxNullPalette; 
+wxPalette  wxNullPalette;
 
 /* Default window names */
 const char *wxButtonNameStr = "button";
index a2c3a2bf3e1e7b34a792608157b41a507df9b7e8..822015862d24be615ad48589ae3bfa07b84f37a0 100644 (file)
@@ -142,7 +142,7 @@ bool wxDialog::Create( wxWindow *parent,
     if (m_parent) m_parent->AddChild( this );
 
     PostCreation();
-    
+
     gtk_widget_realize( m_widget );
 
     gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
@@ -337,7 +337,7 @@ void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags )
         if ((m_x != old_x) || (m_y != old_y))
        {
             /* m_sizeSet = FALSE; */
-            gtk_widget_set_uposition( m_widget, m_x, m_y ); 
+            gtk_widget_set_uposition( m_widget, m_x, m_y );
        }
     }
 
@@ -413,7 +413,7 @@ bool wxDialog::Show( bool show )
     }
 
     wxWindow::Show( show );
-    
+
     if (show) InitDialog();
 
     return TRUE;
@@ -442,7 +442,7 @@ int wxDialog::ShowModal()
        wxFAIL_MSG( "wxDialog:ShowModal called twice" );
        return GetReturnCode();
     }
-    
+
     Show( TRUE );
 
     m_modalShowing = TRUE;
index edd72807fef18284a811da432577d85b750a28cc..b8198a328848f2aa0d24fa230f398916a158d1c5 100644 (file)
@@ -36,7 +36,6 @@ const int wxSTATUS_HEIGHT  = 25;
 // data
 //-----------------------------------------------------------------------------
 
-extern wxList wxTopLevelWindows;
 extern wxList wxPendingDelete;
 
 //-----------------------------------------------------------------------------
index 26dabd6d51b9da607e9ffeb209ad3ac47f882ef5..6a50e9e1fe31722d6de068f594e8619e15017261 100644 (file)
@@ -171,7 +171,6 @@ void debug_focus_in( GtkWidget* widget, const char* name, const char *window )
 //-----------------------------------------------------------------------------
 
 extern wxList     wxPendingDelete;
-extern wxList     wxTopLevelWindows;
 extern bool       g_blockEventsOnDrag;
 extern bool       g_blockEventsOnScroll;
 static bool       g_capturing = FALSE;
index 93459c373dd053f08384a0e8cb5d2e4e48f3b8a0..81123a87cab86e762b00709498ff68dca66951ed 100644 (file)
@@ -140,11 +140,11 @@ bool wxYield()
     // it's necessary to call ProcessIdle() to update the frames sizes which
     // might have been changed (it also will update other things set from
     // OnUpdateUI() which is a nice (and desired) side effect)
-    for ( wxNode *node = wxTopLevelWindows.GetFirst();
+    for ( wxWindowList::Node *node = wxTopLevelWindows.GetFirst();
           node;
           node = node->GetNext() )
     {
-        wxWindow *win = ((wxWindow*)node->GetData());
+        wxWindow *win = node->GetData();
         win->OnInternalIdle();
     }
 
@@ -312,14 +312,15 @@ bool wxApp::SendIdleEvents()
 {
     bool needMore = FALSE;
 
-    wxNode* node = wxTopLevelWindows.First();
+    wxWindowList::Node* node = wxTopLevelWindows.GetFirst();
     while (node)
     {
-        wxWindow* win = (wxWindow*) node->Data();
+        wxWindow* win = node->GetData();
         if (SendIdleEvents(win))
             needMore = TRUE;
-        node = node->Next();
+        node = node->GetNext();
     }
+
     return needMore;
 }
 
@@ -385,7 +386,7 @@ void wxApp::ProcessPendingEvents()
         wxEvtHandler *handler = (wxEvtHandler *)node->Data();
 
         handler->ProcessPendingEvents();
-       
+
         delete node;
 
         node = wxPendingEvents.First();
@@ -411,10 +412,12 @@ void wxApp::DeletePendingObjects()
 
 wxWindow *wxApp::GetTopWindow()
 {
-    if (m_topWindow) return m_topWindow;
-    wxNode *node = wxTopLevelWindows.First();
-    if (!node) return (wxWindow *) NULL;
-    return (wxWindow*)node->Data();
+    if (m_topWindow)
+        return m_topWindow;
+    else if (wxTopLevelWindows.GetCount() > 0)
+        return wxTopLevelWindows.GetFirst()->GetData();
+    else
+        return NULL;
 }
 
 void wxApp::SetTopWindow( wxWindow *win )
@@ -565,7 +568,7 @@ int wxEntry( int argc, char *argv[] )
     if (!wxTheApp->OnInit())
         return 0;
 
-    wxTheApp->m_initialized = (wxTopLevelWindows.Number() > 0);
+    wxTheApp->m_initialized = wxTopLevelWindows.GetCount() != 0;
 
     int retValue = 0;
 
index f8c868a24773503c618f2fea7efe10c92efdfdaf..57e16d0916f4d5ef7c5a098036efa01f748d8cbd 100644 (file)
@@ -33,7 +33,7 @@ XrmDatabase wxResourceDatabase;
 char *wxBuffer = (char *) NULL;
 
 /* Windows List */
-wxList wxTopLevelWindows;
+wxWindowList wxTopLevelWindows;
 
 /* List of windows pending deletion */
 wxList wxPendingDelete;
@@ -75,7 +75,7 @@ wxPenList        *wxThePenList = (wxPenList *) NULL;
 wxFontList       *wxTheFontList = (wxFontList *) NULL;
 wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL;
 wxBitmapList     *wxTheBitmapList = (wxBitmapList *) NULL;
-  
+
 /* X only font names */
 /*
 wxFontNameDirectory *wxTheFontNameDirectory;
@@ -111,7 +111,7 @@ wxBrush *wxLIGHT_GREY_BRUSH;
 
 wxColour *wxBLACK;
 wxColour *wxWHITE;
-wxColour *wxGREY; 
+wxColour *wxGREY;
 wxColour *wxRED;
 wxColour *wxBLUE;
 wxColour *wxGREEN;
@@ -125,13 +125,13 @@ wxCursor *wxCROSS_CURSOR = (wxCursor *) NULL;
 /* 'Null' objects */
 wxAcceleratorTable   wxNullAcceleratorTable;
 wxBitmap   wxNullBitmap;
-wxIcon     wxNullIcon;  
+wxIcon     wxNullIcon;
 wxCursor   wxNullCursor;
 wxPen      wxNullPen;
 wxBrush    wxNullBrush;
 wxFont     wxNullFont;
 wxColour   wxNullColour;
-wxPalette  wxNullPalette; 
+wxPalette  wxNullPalette;
 
 /* Default window names */
 const char *wxButtonNameStr = "button";
index a2c3a2bf3e1e7b34a792608157b41a507df9b7e8..822015862d24be615ad48589ae3bfa07b84f37a0 100644 (file)
@@ -142,7 +142,7 @@ bool wxDialog::Create( wxWindow *parent,
     if (m_parent) m_parent->AddChild( this );
 
     PostCreation();
-    
+
     gtk_widget_realize( m_widget );
 
     gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
@@ -337,7 +337,7 @@ void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags )
         if ((m_x != old_x) || (m_y != old_y))
        {
             /* m_sizeSet = FALSE; */
-            gtk_widget_set_uposition( m_widget, m_x, m_y ); 
+            gtk_widget_set_uposition( m_widget, m_x, m_y );
        }
     }
 
@@ -413,7 +413,7 @@ bool wxDialog::Show( bool show )
     }
 
     wxWindow::Show( show );
-    
+
     if (show) InitDialog();
 
     return TRUE;
@@ -442,7 +442,7 @@ int wxDialog::ShowModal()
        wxFAIL_MSG( "wxDialog:ShowModal called twice" );
        return GetReturnCode();
     }
-    
+
     Show( TRUE );
 
     m_modalShowing = TRUE;
index edd72807fef18284a811da432577d85b750a28cc..b8198a328848f2aa0d24fa230f398916a158d1c5 100644 (file)
@@ -36,7 +36,6 @@ const int wxSTATUS_HEIGHT  = 25;
 // data
 //-----------------------------------------------------------------------------
 
-extern wxList wxTopLevelWindows;
 extern wxList wxPendingDelete;
 
 //-----------------------------------------------------------------------------
index 26dabd6d51b9da607e9ffeb209ad3ac47f882ef5..6a50e9e1fe31722d6de068f594e8619e15017261 100644 (file)
@@ -171,7 +171,6 @@ void debug_focus_in( GtkWidget* widget, const char* name, const char *window )
 //-----------------------------------------------------------------------------
 
 extern wxList     wxPendingDelete;
-extern wxList     wxTopLevelWindows;
 extern bool       g_blockEventsOnDrag;
 extern bool       g_blockEventsOnScroll;
 static bool       g_capturing = FALSE;
index 65859d3f7b046ab1903f579bf5c7f2fe8475d42e..48519f37d29409e8bac7bb9328592fc1b97636f3 100644 (file)
@@ -211,9 +211,8 @@ int wxEntry( int argc, char *argv[] )
     // GUI-specific initialization, such as creating an app context.
     wxTheApp->OnInitGui();
 
-    // Here frames insert themselves automatically
-    // into wxTopLevelWindows by getting created
-    // in OnInit().
+    // Here frames insert themselves automatically into wxTopLevelWindows by
+    // getting created in OnInit().
 
     int retValue = 0;
     if (wxTheApp->OnInit())
@@ -438,15 +437,16 @@ void wxApp::OnIdle(wxIdleEvent& event)
 bool wxApp::SendIdleEvents()
 {
     bool needMore = FALSE;
-    wxNode* node = wxTopLevelWindows.First();
+
+    wxWindowList::Node* node = wxTopLevelWindows.GetFirst();
     while (node)
     {
-        wxWindow* win = (wxWindow*) node->Data();
+        wxWindow* win = node->GetData();
         if (SendIdleEvents(win))
             needMore = TRUE;
-
-        node = node->Next();
+        node = node->GetNext();
     }
+
     return needMore;
 }
 
@@ -519,8 +519,8 @@ wxWindow* wxApp::GetTopWindow() const
 {
     if (m_topWindow)
         return m_topWindow;
-    else if (wxTopLevelWindows.Number() > 0)
-        return (wxWindow*) wxTopLevelWindows.First()->Data();
+    else if (wxTopLevelWindows.GetCount() > 0)
+        return wxTopLevelWindows.GetFirst()->GetData();
     else
         return NULL;
 }
index 4767438a1cfd15c5d5912d8a9fe3a22c51943e71..f37d94fd39cc7f6289fb932c3eda09d3c3ea0934 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -22,7 +22,7 @@
 char *wxBuffer = NULL;
 
 // Windows List
-wxList wxTopLevelWindows;
+wxWindowList wxTopLevelWindows;
 
 // List of windows pending deletion
 wxList wxPendingDelete;
index 287774c77be47d8f5fc5c6ab433a60a17829b26a..b2a48459f09e4ce5910fe962eabee203ec4548d1 100644 (file)
@@ -22,6 +22,7 @@
 #include "wx/app.h"
 #include "wx/msgdlg.h"
 #include "wx/cursor.h"
+#include "wx/window.h" // for wxTopLevelWindows
 
 #include <ctype.h>
 #include <stdarg.h>
@@ -60,8 +61,6 @@
 
 static char *GetIniFile (char *dest, const char *filename);
 
-extern wxList wxTopLevelWindows;
-
 // ============================================================================
 // implementation
 // ============================================================================
index 82851e6f1392e52f0620d3e378de7aa6c1e98d83..91433c5051fcd665d4c8ba20085034be1e4aebb9 100644 (file)
@@ -1016,14 +1016,14 @@ void wxApp::OnIdle(wxIdleEvent& event)
 bool wxApp::SendIdleEvents()
 {
     bool needMore = FALSE;
-    wxNode* node = wxTopLevelWindows.First();
+
+    wxWindowList::Node* node = wxTopLevelWindows.First();
     while (node)
     {
-        wxWindow* win = (wxWindow*) node->Data();
+        wxWindow* win = node->GetData();
         if (SendIdleEvents(win))
             needMore = TRUE;
-
-        node = node->Next();
+        node = node->GetNext();
     }
 
     return needMore;
@@ -1097,8 +1097,8 @@ wxWindow* wxApp::GetTopWindow() const
 {
     if (m_topWindow)
         return m_topWindow;
-    else if (wxTopLevelWindows.Number() > 0)
-        return (wxWindow*) wxTopLevelWindows.First()->Data();
+    else if (wxTopLevelWindows.GetCount() > 0)
+        return wxTopLevelWindows.GetFirst()->GetData();
     else
         return NULL;
 }
index 439c73cd49712bf9efcd2801357b1d527a554430..e8302954e763b8de7940a5189486d290747beab0 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -32,7 +32,7 @@
 char *wxBuffer = NULL;
 
 // Windows List
-wxList wxTopLevelWindows;
+wxWindowList wxTopLevelWindows;
 
 // List of windows pending deletion
 wxList WXDLLEXPORT wxPendingDelete;
@@ -469,7 +469,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxTCPConnection, wxConnectionBase)
 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()
 
@@ -625,14 +625,14 @@ 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_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)
@@ -667,9 +667,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 __WXMSW__
@@ -691,32 +691,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 __WXMSW__
 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)
@@ -728,28 +728,28 @@ END_EVENT_TABLE()
 
 #if !defined(__WXMSW__) || wxUSE_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)
@@ -761,25 +761,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