]> git.saurik.com Git - wxWidgets.git/commitdiff
corrections for event handling changes in wxWindows
authorGilles Depeyrot <gilles_depeyrot@mac.com>
Sun, 4 Feb 2001 20:11:49 +0000 (20:11 +0000)
committerGilles Depeyrot <gilles_depeyrot@mac.com>
Sun, 4 Feb 2001 20:11:49 +0000 (20:11 +0000)
renamed Cell and CellBox to LifeCell and LifeCellBox to avoid conflict
with Classic Mac OS Toolbox type

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

demos/life/dialogs.cpp
demos/life/game.cpp
demos/life/game.h
demos/life/life.cpp

index 98b1cc21b6b88d8df22e409df4cbf5f43ebc35e2..70e6a347166e73b11390307f11c835aacdffc9fd 100644 (file)
@@ -40,7 +40,7 @@
 // resources
 // --------------------------------------------------------------------------
 
-#if defined(__WXGTK__) || defined(__WXMOTIF__)
+#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__)
     // logo for the about dialog
     #include "bitmaps/life.xpm"
 #endif
index 46264b5238fc907a85e3b2b3b1695666f0e965a0..a356f550a1216aadd9fb87ff76c80caef2dc811c 100644 (file)
@@ -54,7 +54,7 @@
 #define CELLBOX    8          // cells in a cellbox (do not change!)
 
 
-class CellBox
+class LifeCellBox
 {
 public:
     // members
@@ -62,21 +62,21 @@ public:
     inline bool SetCell(int dx, int dy, bool alive);
 
     // attributes
-    wxInt32   m_x, m_y;                     // position in universe
-    wxUint32  m_live1, m_live2;             // alive cells (1 bit per cell)
-    wxUint32  m_old1, m_old2;               // old values for m_live1, 2
-    wxUint32  m_on[8];                      // neighbouring info
-    wxUint32  m_dead;                       // been dead for n generations
-    CellBox  *m_up, *m_dn, *m_lf, *m_rt;    // neighbour CellBoxes
-    CellBox  *m_prev, *m_next;              // in linked list
-    CellBox  *m_hprev, *m_hnext;            // in hash table
+    wxInt32       m_x, m_y;                     // position in universe
+    wxUint32      m_live1, m_live2;             // alive cells (1 bit per cell)
+    wxUint32      m_old1, m_old2;               // old values for m_live1, 2
+    wxUint32      m_on[8];                      // neighbouring info
+    wxUint32      m_dead;                       // been dead for n generations
+    LifeCellBox  *m_up, *m_dn, *m_lf, *m_rt;    // neighbour CellBoxes
+    LifeCellBox  *m_prev, *m_next;              // in linked list
+    LifeCellBox  *m_hprev, *m_hnext;            // in hash table
 };
 
 
 // IsAlive:
 //  Returns whether cell dx, dy in this box is alive
 //
-bool CellBox::IsAlive(int dx, int dy) const
+bool LifeCellBox::IsAlive(int dx, int dy) const
 {
     if (dy > 3)
         return (m_live2 & 1 << ((dy - 4) * 8 + dx));
@@ -88,7 +88,7 @@ bool CellBox::IsAlive(int dx, int dy) const
 //  Sets cell dx, dy in this box to 'alive', returns TRUE if
 //  the previous value was different, FALSE if it was the same.
 //
-bool CellBox::SetCell(int dx, int dy, bool alive)
+bool LifeCellBox::SetCell(int dx, int dy, bool alive)
 {
     if (IsAlive(dx, dy) != alive)
     {
@@ -124,14 +124,14 @@ Life::Life()
 
     // pattern data
     m_numcells    = 0;
-    m_boxes       = new CellBox *[HASHSIZE];
+    m_boxes       = new LifeCellBox *[HASHSIZE];
     m_head        = NULL;
     m_available   = NULL;
     for (int i = 0; i < HASHSIZE; i++)
         m_boxes[i] = NULL;
 
     // state vars for BeginFind & FindMore
-    m_cells       = new Cell[ARRAYSIZE];
+    m_cells       = new LifeCell[ARRAYSIZE];
     m_ncells      = 0;
     m_findmore    = FALSE;
     m_changed     = FALSE;
@@ -150,7 +150,7 @@ Life::~Life()
 //
 void Life::Clear()
 {
-    CellBox *c, *nc;
+    LifeCellBox *c, *nc;
 
     // clear the hash table pointers
     for (int i = 0; i < HASHSIZE; i++)
@@ -192,7 +192,7 @@ void Life::Clear()
 //
 bool Life::IsAlive(wxInt32 x, wxInt32 y)
 {
-    CellBox *c = LinkBox(x, y, FALSE);
+    LifeCellBox *c = LinkBox(x, y, FALSE);
 
     return (c && c->IsAlive( x - c->m_x, y - c->m_y ));
 }
@@ -202,7 +202,7 @@ bool Life::IsAlive(wxInt32 x, wxInt32 y)
 //
 void Life::SetCell(wxInt32 x, wxInt32 y, bool alive)
 {
-    CellBox *c  = LinkBox(x, y);
+    LifeCellBox *c  = LinkBox(x, y);
     wxUint32 dx = x - c->m_x;
     wxUint32 dy = y - c->m_y;
 
@@ -257,15 +257,15 @@ void Life::SetPattern(const LifePattern& pattern)
 //  Creates a box in x, y, either taking it from the list
 //  of available boxes, or allocating a new one.
 //
-CellBox* Life::CreateBox(wxInt32 x, wxInt32 y, wxUint32 hv)
+LifeCellBox* Life::CreateBox(wxInt32 x, wxInt32 y, wxUint32 hv)
 {
-    CellBox *c;
+    LifeCellBox *c;
 
     // if there are no available boxes, alloc a few more
     if (!m_available)
         for (int i = 1; i <= ALLOCBOXES; i++)
         {
-            c = new CellBox();
+            c = new LifeCellBox();
 
             if (!c)
             {
@@ -289,7 +289,7 @@ CellBox* Life::CreateBox(wxInt32 x, wxInt32 y, wxUint32 hv)
     m_available = c->m_next;
 
     // reset everything
-    memset((void *) c, 0, sizeof(CellBox));
+    memset((void *) c, 0, sizeof(LifeCellBox));
     c->m_x = x;
     c->m_y = y;
 
@@ -311,10 +311,10 @@ CellBox* Life::CreateBox(wxInt32 x, wxInt32 y, wxUint32 hv)
 //  it returns NULL or creates a new one, depending on the value
 //  of the 'create' parameter.
 //
-CellBox* Life::LinkBox(wxInt32 x, wxInt32 y, bool create)
+LifeCellBox* Life::LinkBox(wxInt32 x, wxInt32 y, bool create)
 {
     wxUint32 hv;
-    CellBox *c;
+    LifeCellBox *c;
 
     x &= 0xfffffff8;
     y &= 0xfffffff8;
@@ -325,14 +325,14 @@ CellBox* Life::LinkBox(wxInt32 x, wxInt32 y, bool create)
         if ((c->m_x == x) && (c->m_y == y)) return c;
 
     // if not found, and (create == TRUE), create a new one
-    return create? CreateBox(x, y, hv) : (CellBox*) NULL;
+    return create? CreateBox(x, y, hv) : (LifeCellBox*) NULL;
 }
 
 // KillBox:
 //  Removes this box from the list and the hash table and
 //  puts it in the list of available boxes.
 //
-void Life::KillBox(CellBox *c)
+void Life::KillBox(LifeCellBox *c)
 {
     wxUint32 hv = HASH(c->m_x, c->m_y);
 
@@ -365,7 +365,7 @@ void Life::KillBox(CellBox *c)
 // Navigation
 // --------------------------------------------------------------------------
 
-Cell Life::FindCenter()
+LifeCell Life::FindCenter()
 {
     double sx, sy;
     int n;
@@ -373,7 +373,7 @@ Cell Life::FindCenter()
     sy = 0.0;
     n = 0;
 
-    CellBox *c;
+    LifeCellBox *c;
     for (c = m_head; c; c = c->m_next)
         if (!c->m_dead)
         {
@@ -388,18 +388,18 @@ Cell Life::FindCenter()
         sy = (sy / n) + CELLBOX / 2;
     }
 
-    Cell cell;
+    LifeCell cell;
     cell.i = (wxInt32) sx;
     cell.j = (wxInt32) sy;
     return cell;
 }
 
-Cell Life::FindNorth()
+LifeCell Life::FindNorth()
 {
     wxInt32 x = 0, y = 0;
     bool first = TRUE;
 
-    CellBox *c;
+    LifeCellBox *c;
     for (c = m_head; c; c = c->m_next)
         if (!c->m_dead && ((first) || (c->m_y < y)))
         {
@@ -408,18 +408,18 @@ Cell Life::FindNorth()
             first = FALSE;
         }
     
-    Cell cell;
+    LifeCell cell;
     cell.i = first? 0 : x + CELLBOX / 2;
     cell.j = first? 0 : y + CELLBOX / 2;
     return cell;
 }
 
-Cell Life::FindSouth()
+LifeCell Life::FindSouth()
 {
     wxInt32 x = 0, y = 0;
     bool first = TRUE;
 
-    CellBox *c;
+    LifeCellBox *c;
     for (c = m_head; c; c = c->m_next)
         if (!c->m_dead && ((first) || (c->m_y > y)))
         {
@@ -428,18 +428,18 @@ Cell Life::FindSouth()
             first = FALSE;
         }
     
-    Cell cell;
+    LifeCell cell;
     cell.i = first? 0 : x + CELLBOX / 2;
     cell.j = first? 0 : y + CELLBOX / 2;
     return cell;
 }
 
-Cell Life::FindWest()
+LifeCell Life::FindWest()
 {
     wxInt32 x = 0, y = 0;
     bool first = TRUE;
 
-    CellBox *c;
+    LifeCellBox *c;
     for (c = m_head; c; c = c->m_next)
         if (!c->m_dead && ((first) || (c->m_x < x)))
         {
@@ -448,18 +448,18 @@ Cell Life::FindWest()
             first = FALSE;
         }
     
-    Cell cell;
+    LifeCell cell;
     cell.i = first? 0 : x + CELLBOX / 2;
     cell.j = first? 0 : y + CELLBOX / 2;
     return cell;
 }
 
-Cell Life::FindEast()
+LifeCell Life::FindEast()
 {
     wxInt32 x = 0, y = 0;
     bool first = TRUE;
 
-    CellBox *c;
+    LifeCellBox *c;
     for (c = m_head; c; c = c->m_next)
         if (!c->m_dead && ((first) || (c->m_x > x)))
         {
@@ -468,7 +468,7 @@ Cell Life::FindEast()
             first = FALSE;
         }
     
-    Cell cell;
+    LifeCell cell;
     cell.i = first? 0 : x + CELLBOX / 2;
     cell.j = first? 0 : y + CELLBOX / 2;
     return cell;
@@ -517,9 +517,9 @@ void Life::BeginFind(wxInt32 x0, wxInt32 y0, wxInt32 x1, wxInt32 y1, bool change
     m_changed = changed;
 }
 
-bool Life::FindMore(Cell *cells[], size_t *ncells)
+bool Life::FindMore(LifeCell *cells[], size_t *ncells)
 {
-    CellBox *c;
+    LifeCellBox *c;
     *cells = m_cells;
     m_ncells = 0;
 
@@ -592,7 +592,7 @@ extern int g_tab2[];
 //
 bool Life::NextTic()
 {
-    CellBox  *c, *up, *dn, *lf, *rt;
+    LifeCellBox  *c, *up, *dn, *lf, *rt;
     wxUint32 t1, t2, t3, t4;
     bool     changed = FALSE;
 
@@ -896,7 +896,7 @@ bool Life::NextTic()
         }
         else
         {
-            CellBox *aux = c->m_next;
+            LifeCellBox *aux = c->m_next;
             if (c->m_dead++ > MAXDEAD)
                KillBox(c);
 
index cca12fae4bed9985d355e35c63f3dd2f14d6e805..1366c18fecaf83ba74c083a552977f7149ebc204 100644 (file)
@@ -75,14 +75,14 @@ public:
 // --------------------------------------------------------------------------
 
 // A struct used to pass cell coordinates around
-struct Cell
+struct LifeCell
 {
     wxInt32 i;
     wxInt32 j;
 };       
 
 // A private class that contains data about a block of cells
-class CellBox;
+class LifeCellBox;
 
 // A class that models a Life game instance
 class Life
@@ -105,11 +105,11 @@ public:
     bool NextTic();
 
     // navigation
-    Cell FindNorth();
-    Cell FindSouth();
-    Cell FindWest();
-    Cell FindEast();
-    Cell FindCenter();
+    LifeCell FindNorth();
+    LifeCell FindSouth();
+    LifeCell FindWest();
+    LifeCell FindEast();
+    LifeCell FindCenter();
 
     // The following functions find cells within a given viewport; either
     // all alive cells, or only those cells which have changed since last
@@ -132,13 +132,13 @@ public:
     void BeginFind(wxInt32 x0, wxInt32 y0,
                    wxInt32 x1, wxInt32 y1,
                    bool changed);
-    bool FindMore(Cell *cells[], size_t *ncells);
+    bool FindMore(LifeCell *cells[], size_t *ncells);
 
 private:
     // cellbox-related
-    CellBox *CreateBox(wxInt32 x, wxInt32 y, wxUint32 hv);
-    CellBox *LinkBox(wxInt32 x, wxInt32 y, bool create = TRUE);
-    void KillBox(CellBox *c);
+    LifeCellBox *CreateBox(wxInt32 x, wxInt32 y, wxUint32 hv);
+    LifeCellBox *LinkBox(wxInt32 x, wxInt32 y, bool create = TRUE);
+    void KillBox(LifeCellBox *c);
 
     // helper for BeginFind & FindMore
     void DoLine(wxInt32 x, wxInt32 y, wxUint32 alive, wxUint32 old = 0);
@@ -150,13 +150,13 @@ private:
     wxString   m_description;   // description
 
     // pattern data
-    CellBox   *m_head;          // list of alive boxes
-    CellBox   *m_available;     // list of reusable dead boxes
-    CellBox  **m_boxes;         // hash table of alive boxes
+    LifeCellBox   *m_head;          // list of alive boxes
+    LifeCellBox   *m_available;     // list of reusable dead boxes
+    LifeCellBox  **m_boxes;         // hash table of alive boxes
     wxUint32   m_numcells;      // population (number of alive cells)
 
     // state vars for BeginFind & FindMore
-    Cell      *m_cells;         // array of cells
+    LifeCell  *m_cells;         // array of cells
     size_t     m_ncells;        // number of valid entries in m_cells
     wxInt32    m_x, m_y,        // counters and search mode
                m_x0, m_y0,
index f01e3e0be77de9375d53e71a67671a3fb1fb0b73..f4f80eac16a7c683d357cdc1a390543764073a48 100644 (file)
@@ -41,7 +41,7 @@
 // resources
 // --------------------------------------------------------------------------
 
-#if defined(__WXGTK__) || defined(__WXMOTIF__)
+#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__)
     // application icon
     #include "mondrian.xpm"
 
@@ -503,7 +503,7 @@ void LifeFrame::OnZoom(wxCommandEvent& event)
 
 void LifeFrame::OnNavigate(wxCommandEvent& event)
 {
-    Cell c;
+    LifeCell c;
 
     switch (event.GetId())
     {
@@ -772,7 +772,7 @@ void LifeCanvas::DrawChanged()
     wxClientDC dc(this);
 
     size_t ncells;
-    Cell *cells;
+    LifeCell *cells;
     bool done = FALSE;
 
     m_life->BeginFind(m_viewportX,
@@ -824,7 +824,7 @@ void LifeCanvas::OnPaint(wxPaintEvent& event)
     j1 = YToCell(y + h - 1);
 
     size_t ncells;
-    Cell *cells;
+    LifeCell *cells;
     bool done = FALSE;
 
     m_life->BeginFind(i0, j0, i1, j1, FALSE);
@@ -1021,48 +1021,61 @@ void LifeCanvas::OnScroll(wxScrollWinEvent& event)
 
     // calculate scroll increment
     int scrollinc = 0;
-    switch (type)
+    if (type == wxEVT_SCROLLWIN_TOP)
     {
-        case wxEVT_SCROLLWIN_TOP:
-        {
-            if (orient == wxHORIZONTAL)
-                scrollinc = -m_viewportW;
-            else
-                scrollinc = -m_viewportH;
-            break;    
-        }
-        case wxEVT_SCROLLWIN_BOTTOM:
-        {
-            if (orient == wxHORIZONTAL)
-                scrollinc = m_viewportW;
-            else
-                scrollinc = m_viewportH;
-            break;    
-        }
-        case wxEVT_SCROLLWIN_LINEUP:   scrollinc = -1; break;
-        case wxEVT_SCROLLWIN_LINEDOWN: scrollinc = +1; break;
-        case wxEVT_SCROLLWIN_PAGEUP:   scrollinc = -10; break;
-        case wxEVT_SCROLLWIN_PAGEDOWN: scrollinc = +10; break;
-        case wxEVT_SCROLLWIN_THUMBTRACK:
+        if (orient == wxHORIZONTAL)
+            scrollinc = -m_viewportW;
+        else
+            scrollinc = -m_viewportH;
+    }
+    else
+    if (type == wxEVT_SCROLLWIN_BOTTOM)
+    {
+        if (orient == wxHORIZONTAL)
+            scrollinc = m_viewportW;
+        else
+            scrollinc = m_viewportH;
+    }
+    else
+    if (type == wxEVT_SCROLLWIN_LINEUP)
+    {
+        scrollinc = -1;
+    }
+    else
+    if (type == wxEVT_SCROLLWIN_LINEDOWN)
+    {
+        scrollinc = +1;
+    }
+    else
+    if (type == wxEVT_SCROLLWIN_PAGEUP)
+    {
+        scrollinc = -10;
+    }
+    else
+    if (type == wxEVT_SCROLLWIN_PAGEDOWN)
+    {
+        scrollinc = -10;
+    }
+    else
+    if (type == wxEVT_SCROLLWIN_THUMBTRACK)
+    {
+        if (orient == wxHORIZONTAL)
         {
-            if (orient == wxHORIZONTAL)
-            {
-                scrollinc = pos - m_thumbX;
-                m_thumbX = pos;
-            }
-            else
-            {
-                scrollinc = pos - m_thumbY;
-                m_thumbY = pos;
-            }
-            break;
+            scrollinc = pos - m_thumbX;
+            m_thumbX = pos;
         }
-        case wxEVT_SCROLLWIN_THUMBRELEASE:
+        else
         {
-            m_thumbX = m_viewportW;
-            m_thumbY = m_viewportH;
+            scrollinc = pos - m_thumbY;
+            m_thumbY = pos;
         }
     }
+    else
+    if (type == wxEVT_SCROLLWIN_THUMBRELEASE)
+    {
+        m_thumbX = m_viewportW;
+        m_thumbY = m_viewportH;
+    }
 
 #if defined(__WXGTK__) || defined(__WXMOTIF__)
     // wxGTK and wxMotif update the thumb automatically (wxMSW doesn't);