]> git.saurik.com Git - wxWidgets.git/commitdiff
Removed lots of OnClose functions; doc'ed OnCloseWindow better;
authorJulian Smart <julian@anthemion.co.uk>
Fri, 5 Feb 1999 23:55:04 +0000 (23:55 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Fri, 5 Feb 1999 23:55:04 +0000 (23:55 +0000)
MM_... -> wxMM_...

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

130 files changed:
docs/latex/wx/body.tex
docs/latex/wx/dc.tex
docs/latex/wx/function.tex
docs/latex/wx/prevwin.tex
docs/latex/wx/tdelwin.tex
docs/latex/wx/tfont.tex
docs/latex/wx/window.tex
docs/msw/install.txt
include/wx/defs.h
include/wx/docview.h
include/wx/event.h
include/wx/generic/colrdlgg.h
include/wx/generic/fontdlgg.h
include/wx/mac/dialog.h
include/wx/mac/frame.h
include/wx/mac/metafile.h
include/wx/motif/dialog.h
include/wx/motif/frame.h
include/wx/motif/metafile.h
include/wx/msw/dc.h
include/wx/msw/dialog.h
include/wx/msw/frame.h
include/wx/msw/metafile.h
include/wx/prntbase.h
include/wx/propform.h
include/wx/proplist.h
include/wx/qt/dialog.h
include/wx/qt/frame.h
include/wx/stubs/dialog.h
include/wx/stubs/frame.h
include/wx/stubs/metafile.h
samples/bombs/bombs.cpp
samples/checklst/checklst.cpp
samples/config/conftest.cpp
samples/db/dbtest.cpp
samples/db/dbtest.h
samples/dialogs/dialogs.h
samples/dnd/dnd.cpp
samples/dynamic/dynamic.cpp
samples/forty/canvas.cpp
samples/forty/canvas.h
samples/forty/forty.cpp
samples/forty/playerdg.cpp
samples/forty/playerdg.h
samples/forty/scoredg.cpp
samples/forty/scoredg.h
samples/grid/test.cpp
samples/internat/internat.cpp
samples/joytest/joytest.cpp
samples/joytest/joytest.h
samples/layout/layout.cpp
samples/layout/layout.h
samples/listctrl/listtest.h
samples/mdi/mdi.cpp
samples/mdi/mdi.h
samples/mfc/mfctest.cpp
samples/nativdlg/nativdlg.cpp
samples/nativdlg/nativdlg.h
samples/ownerdrw/ownerdrw.cpp
samples/png/pngdemo.cpp
samples/png/pngdemo.h
samples/printing/printing.cpp
samples/printing/printing.h
samples/resource/resource.cpp
samples/resource/resource.h
samples/sashtest/sashtest.cpp
samples/sashtest/sashtest.h
samples/splitter/test.cpp
samples/thread/test.cpp
samples/typetest/typetest.h
samples/validate/validate.h
samples/wxpoem/wxpoem.cpp
src/common/event.cpp
src/common/prntbase.cpp
src/generic/colrdlgg.cpp
src/generic/fontdlgg.cpp
src/generic/propform.cpp
src/generic/proplist.cpp
src/gtk/dc.cpp
src/gtk/dialog.cpp
src/gtk/frame.cpp
src/gtk1/dc.cpp
src/gtk1/dialog.cpp
src/gtk1/frame.cpp
src/mac/app.cpp
src/mac/carbon/app.cpp
src/mac/carbon/dc.cpp
src/mac/carbon/dialog.cpp
src/mac/carbon/frame.cpp
src/mac/carbon/metafile.cpp
src/mac/carbon/window.cpp
src/mac/dc.cpp
src/mac/dialog.cpp
src/mac/frame.cpp
src/mac/metafile.cpp
src/mac/window.cpp
src/motif/dc.cpp
src/motif/dialog.cpp
src/motif/frame.cpp
src/motif/metafile.cpp
src/motif/window.cpp
src/msw/curico.cpp
src/msw/dc.cpp
src/msw/dcprint.cpp
src/msw/dialog.cpp
src/msw/dibutils.cpp
src/msw/frame.cpp
src/msw/metafile.cpp
src/msw/window.cpp
src/qt/dc.cpp
src/qt/dialog.cpp
src/qt/frame.cpp
src/qt/window.cpp
src/stubs/dc.cpp
src/stubs/dialog.cpp
src/stubs/frame.cpp
src/stubs/metafile.cpp
src/stubs/window.cpp
utils/dialoged/src/reseditr.cpp
utils/dialoged/src/reseditr.h
utils/glcanvas/samples/cube/cube.cpp
utils/glcanvas/samples/cube/cube.h
utils/glcanvas/samples/isosurf/isosurf.cpp
utils/glcanvas/samples/isosurf/isosurf.h
utils/glcanvas/samples/penguin/penguin.cpp
utils/glcanvas/samples/penguin/penguin.h
utils/nplugin/src/npapp.cpp
utils/ogl/samples/ogledit/ogledit.cpp
utils/ogl/samples/ogledit/ogledit.h
utils/tex2rtf/src/tex2rtf.cpp

index b78e3f6c251238bf9cf98a83e6967bacbca00585..2c82cd9080e890e22c87aee12ebc841855900daf 100644 (file)
@@ -148,7 +148,7 @@ same API;
 temporarily with the window as an argument;
 \item events from sliders and scrollbars can be handled more flexibly;
 \item the handling of window close events has been changed in line with the new
-event system, but backward {\bf OnClose} compatibility has been retained;
+event system;
 \item the concept of {\it validator} has been added to allow much easier coding of
 the relationship between controls and application data;
 \item the documentation has been revised, with more cross-referencing.
index ed3c32073c1c0b1307760729774d16bcadadec59..26aa80fc9aceff8f6f9637ef6ee59d476eb208c6 100644 (file)
@@ -644,12 +644,12 @@ PostScript output.
 The mapping mode can be one of the following:
 
 \begin{twocollist}\itemsep=0pt
-\twocolitem{MM\_TWIPS}{Each logical unit is 1/20 of a point, or 1/1440 of
+\twocolitem{wxMM\_TWIPS}{Each logical unit is 1/20 of a point, or 1/1440 of
   an inch.}
-\twocolitem{MM\_POINTS}{Each logical unit is a point, or 1/72 of an inch.}
-\twocolitem{MM\_METRIC}{Each logical unit is 1 mm.}
-\twocolitem{MM\_LOMETRIC}{Each logical unit is 1/10 of a mm.}
-\twocolitem{MM\_TEXT}{Each logical unit is 1 pixel.}
+\twocolitem{wxMM\_POINTS}{Each logical unit is a point, or 1/72 of an inch.}
+\twocolitem{wxMM\_METRIC}{Each logical unit is 1 mm.}
+\twocolitem{wxMM\_LOMETRIC}{Each logical unit is 1/10 of a mm.}
+\twocolitem{wxMM\_TEXT}{Each logical unit is 1 pixel.}
 \end{twocollist}
 
 \membersection{wxDC::SetOptimization}\label{wxsetoptimization}
index 6062e1acb79b9e95737e4f6f44007929908c59b1..f9487cdb4dd0a9c5466a50513dcb47f916a59fd2 100644 (file)
@@ -463,7 +463,7 @@ the equivalent of the following code to the start of the metafile data:
  SetWindowExt(dc, maxX - minX, maxY - minY);
 \end{verbatim}
 
-This simulates the MM\_TEXT mapping mode, which wxWindows assumes.
+This simulates the wxMM\_TEXT mapping mode, which wxWindows assumes.
 
 Placeable metafiles may be imported by many Windows applications, and can be
 used in RTF (Rich Text Format) files.
index 30793384b03ce3b52352802daa7129c2e7fcb76a..fbf2203a4fe8ed5595323fb81b4fab057d266b45 100644 (file)
@@ -167,9 +167,9 @@ in the application.
 This function should be called by the application prior to
 showing the frame.
 
-\membersection{wxPreviewFrame::OnClose}
+\membersection{wxPreviewFrame::OnCloseWindow}
 
-\func{bool}{OnClose}{\void}
+\func{void}{OnCloseWindow}{\param{wxCloseEvent\&}{ event}}
 
 Enables the other frames in the application, and deletes the print preview
 object, implicitly deleting any printout objects associated with the print
index 33e368dd68c5b38e08d2d98e43a639c6bd6f7a36..4600573cd4af2ca65e5e8f84e3bec54dbc707981 100644 (file)
@@ -9,15 +9,18 @@ to close windows.
 \wxheading{What is the sequence of events in a window deletion?}
 
 When the user clicks on the system close button or system close command,
-in a frame or a dialog, wxWindows calls \helpref{wxWindow::Close}{wxwindowclose}.
+in a frame or a dialog, wxWindows calls \helpref{wxWindow::Close}{wxwindowclose}. This
+in turn generates an EVT\_CLOSE event: see \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow}.
 
-This function then generates a \helpref{wxCloseEvent}{wxcloseevent} event which
-can be handled by the application (by using an EVT\_CLOSE event table entry). It is the duty of the application to
-define a suitable event handler, and decide whether or not to destroy the window.
-If the application is for some reason forcing the application to close,
-the window should always be destroyed, otherwise there is the option to
+It is the duty of the application to define a suitable event handler, and
+decide whether or not to destroy the window.
+If the application is for some reason forcing the application to close
+(\helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto} returns FALSE), the window should always be destroyed, otherwise there is the option to
 ignore the request, or maybe wait until the user has answered a question
-before deciding whether it's safe to close.
+before deciding whether it's safe to close. The handler for EVT\_CLOSE should
+signal to the calling code if it does not destroy the window, by calling 
+\helpref{wxCloseEvent::Veto}{wxcloseeventveto}. Calling this provides useful information
+to the calling code.
 
 The wxCloseEvent handler should only call \helpref{wxWindow::Destroy}{wxwindowdestroy} to
 delete the window, and not use the {\bf delete} operator. This is because
@@ -26,24 +29,28 @@ since otherwise there is the danger that events will be sent to a non-existent w
 
 \wxheading{How can the application close a window itself?}
 
-Your application can use the \helpref{wxWindow::Close}{wxwindowclose} event just as
-the framework does. Pass a TRUE argument to this function to tell the event handler
-that we definitely want to delete the frame.
+Your application can either use \helpref{wxWindow::Close}{wxwindowclose} event just as
+the framework does, or it can call \helpref{wxWindow::Destroy}{wxwindowdestroy} directly.
+If using Close(), you can pass a TRUE argument to this function to tell the event handler
+that we definitely want to delete the frame and it cannot be vetoed.
 
-If for some reason you don't wish to use the {\bf Close} function to delete a window, at least use
-the {\bf Destroy} function so that wxWindows can decide when it's safe to delete the window.
+The advantage of using Close instead of Destroy is that it will call any clean-up code
+defined by the EVT\_CLOSE handler; for example it may close a document contained in
+a window after first asking the user whether the work should be saved. Close can be vetoed
+by this process (return FALSE), whereas Destroy definitely destroys the window.
 
 \wxheading{What is the default behaviour?}
 
-By default, the close event handlers for wxFrame and wxDialog
-both call the old \helpref{wxWindow::OnClose}{wxwindowonclose} handler
-for backward compatibility. So you can still use the old form if you wish.
-
-In addition, the default close event handler for wxDialog simulates a Cancel command,
+The default close event handler for wxDialog simulates a Cancel command,
 generating a wxID\_CANCEL event. Since the handler for this cancel event might
-itself call {\bf Close}, there is a check for infinite looping.
+itself call {\bf Close}, there is a check for infinite looping. The default handler
+for wxID\_CANCEL hides the dialog (if modeless) or calls EndModal(wxID\_CANCEL) (if modal).
+In other words, by default, the dialog is not destroyed (it might have been created
+on the stack, so the assumption of dynamic creation cannot be made).
+
+The default close event handler for wxFrame destroys the frame using Destroy().
 
-Under Windows, wxDialog also defines a handler for \helpref{wxWindow::OnCharHook}{wxwindowoncharhook} that
+Under Windows, wxDialog defines a handler for \helpref{wxWindow::OnCharHook}{wxwindowoncharhook} that
 generates a Cancel event if the Escape key has been pressed.
 
 \wxheading{What should I do when the user calls up Exit from a menu?}
@@ -63,9 +70,6 @@ In wxWindows 1.xx, the {\bf OnClose} function did not actually delete 'this', bu
 to the calling function (either {\bf Close}, or the wxWindows framework) to delete
 or not delete the window.
 
-You can still use this function unchanged in 2.0, but it's worth upgrading to
-the new method in case future versions of wxWindows does not support the old one.
-
 To update your code, you should provide an event table entry in your frame or
 dialog, using the EVT\_CLOSE macro. The event handler function might look like this:
 
@@ -73,22 +77,13 @@ dialog, using the EVT\_CLOSE macro. The event handler function might look like t
 \begin{verbatim}
   void MyFrame::OnCloseWindow(wxCloseEvent& event)
   {
-    // If the application forces the deletion,
-    // obey without question.
-    if (event.GetForce())
-    {
-      this->Destroy();
-      return;
-    }
-
-    // Otherwise...
     if (MyDataHasBeenModified())
     {
       wxMessageDialog* dialog = new wxMessageDialog(this,
         "Save changed data?", "My app", wxYES_NO|wxCANCEL);
 
       int ans = dialog->ShowModal();
-      dialog->Close(TRUE);
+      dialog->Destroy();
 
       switch (ans)
       {
@@ -101,6 +96,10 @@ dialog, using the EVT\_CLOSE macro. The event handler function might look like t
           break;
         case wxID_CANCEL:   // Do nothing - so don't quit app.
         default:
+          if (!event.CanVeto()) // Test if we can veto this deletion
+            this->Destroy();    // If not, destroy the window anyway.
+          else
+            event.Veto();     // Notify the calling code that we didn't delete the frame.
           break;
       }
     }
@@ -111,7 +110,8 @@ dialog, using the EVT\_CLOSE macro. The event handler function might look like t
 \wxheading{How do I exit the application gracefully?}
 
 A wxWindows application automatically exits when the designated top window, or the
-last frame or dialog, is destroyed.
+last frame or dialog, is destroyed. Put any application-wide cleanup code in \helpref{wxApp::OnExit}{wxapponexit} (this
+is a virtual function, not an event handler).
 
 \wxheading{Do child windows get deleted automatically?}
 
index 47fbfdef2b8244b71767640c49a517f0f3a46dcb..f79794290ad58150ee6e7e0497c86d5c2acdf4e6 100644 (file)
@@ -27,7 +27,7 @@ or if allowing the user to specify a face name, store the family id with any fil
 might be transported to a different Windows machine or other platform.
 
 \normalbox{{\bf Note:} There is currently a difference between the appearance of fonts on the
-two platforms, if the mapping mode is anything other than MM\_TEXT.
+two platforms, if the mapping mode is anything other than wxMM\_TEXT.
 Under X, font size is always specified in points. Under MS Windows, the
 unit for text is points but the text is scaled according to the
 current mapping mode. However, user scaling on a device context will
index add8503f92d980c4c0ac35ab5a21ea001f63d092..c5421a8edb7cef73c93c1c7efec9ee61e92a569d 100644 (file)
@@ -898,7 +898,7 @@ the control(s) in question.
 Called when the user has tried to close a a frame
 or dialog box using the window manager (X) or system menu (Windows).
 
-{\bf Note:} This is an obsolete function retained for backward compatibility.
+{\bf Note:} This is an obsolete function.
 It is superceded by the \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow} event
 handler.
 
@@ -908,10 +908,6 @@ If TRUE is returned by OnClose, the window will be deleted by the system, otherw
 attempt will be ignored. Do not delete the window from within this handler, although
 you may delete other windows.
 
-\wxheading{Remarks}
-
-Derive your own class to handle this message. The default handler returns TRUE.
-
 \wxheading{See also}
 
 \helpref{Window deletion overview}{windowdeletionoverview},\rtfsp
index 429760264c7de93e4703c106719fe8e57072796d..ee25d87c2697568189504d67d45d47bb3f0734d5 100644 (file)
@@ -296,3 +296,7 @@ General Notes
 
   and it's also on the wxWindows CD-ROM under Packages.
 
+- If you are installing wxWindows 2 from CVS, you may find that
+  include/wx/msw/setup.h is missing. This is deliberate, to avoid
+  developers' different setup.h configurations getting confused.
+  Please copy setup0.h to setup.h before compiling.
index 5aac4cbde8e3111e727625f75fb56fdf3c9a786d..25e148dd55ce02dacc7ef60b1cb944e1a0a29fe5 100644 (file)
@@ -946,6 +946,19 @@ enum
 
 #define wxID_HIGHEST            5999
 
+// Mapping modes (as per Windows)
+#define wxMM_TEXT             1
+#define wxMM_LOMETRIC         2
+#define wxMM_HIMETRIC         3
+#define wxMM_LOENGLISH        4
+#define wxMM_HIENGLISH        5
+#define wxMM_TWIPS            6
+#define wxMM_ISOTROPIC        7
+#define wxMM_ANISOTROPIC      8
+
+#define wxMM_POINTS           9
+#define wxMM_METRIC          10
+
 /* Shortcut for easier dialog-unit-to-pixel conversion */
 #define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
 
index 86ad9c3801415558e2b9e19f998c1272f87913ed..b2a1d6879767db01af392f9200cfb23c317e2c09 100644 (file)
@@ -188,7 +188,7 @@ class WXDLLEXPORT wxView: public wxEvtHandler
   // Override to do cleanup/veto close
   virtual bool OnClose(bool deleteWindow);
 
-#ifdef WXWIN_COMPATIBILITY
+#if WXWIN_COMPATIBILITY
   // Defeat compiler warning
   bool OnClose(void) { return wxEvtHandler::OnClose(); }
 #endif
index 009336ade783bffb3acfa7d205c3477dded211c6..76e31ed6cded858617bb10dcf5befae93bb81834 100644 (file)
@@ -771,6 +771,7 @@ public:
         m_veto = veto;
     }
     void SetCanVeto(bool canVeto) { m_canVeto = canVeto; }
+    // No more asserts here please, the one you put here was wrong.
     bool CanVeto() const { return m_canVeto; }
     bool GetVeto() const { return m_canVeto && m_veto; }
 
@@ -1156,7 +1157,9 @@ public:
     virtual long Default()
         { return GetNextHandler() ? GetNextHandler()->Default() : 0; };
 
+#if WXWIN_COMPATIBILITY
     virtual bool OnClose();
+#endif
 
     virtual bool ProcessEvent(wxEvent& event);
     virtual bool SearchEventTable(wxEventTable& table, wxEvent& event);
index 942d2ed8ee166666bd49ac1f9c009f96ec2e4708..35dc8fd95ed6ada59521b55c1280cbec888f4cd5 100644 (file)
@@ -88,8 +88,6 @@ class WXDLLEXPORT wxGenericColourDialog: public wxDialog
   void OnMouseEvent(wxMouseEvent& event);
   void OnPaint(wxPaintEvent& event);
 
-  bool OnClose(void);
-
   virtual void CalculateMeasurements(void);
   virtual void CreateWidgets(void);
   virtual void InitializeColours(void);
@@ -102,17 +100,14 @@ class WXDLLEXPORT wxGenericColourDialog: public wxDialog
   virtual void OnBasicColourClick(int which);
   virtual void OnCustomColourClick(int which);
 
-/*
-  virtual void OnOk(void);
-  virtual void OnCancel(void);
-  virtual void OnAddCustom(void);
-*/
   void OnAddCustom(wxCommandEvent& event);
 
   void OnRedSlider(wxCommandEvent& event);
   void OnGreenSlider(wxCommandEvent& event);
   void OnBlueSlider(wxCommandEvent& event);
 
+  void OnCloseWindow(wxCloseEvent& event);
+
 DECLARE_EVENT_TABLE()
 };
 
index b02d7093b01ffd69f5c5472c34c6f24cae3e9d99..ade8d4040410375cf9381446c5a516bba2cf62a8 100644 (file)
@@ -72,7 +72,7 @@ class WXDLLEXPORT wxGenericFontDialog: public wxDialog
   // Internal functions
   void OnPaint(wxPaintEvent& event);
 
-  bool OnClose(void);
+  void OnCloseWindow(wxCloseEvent& event);
 
   virtual void CreateWidgets(void);
   virtual void InitializeFont(void);
index ebd7bff2a807f2dffa8b36b129d3e80bb37d6408..d68cc7c9a0f0612e7138e02c0a8f4d08c1e52c9a 100644 (file)
@@ -71,7 +71,6 @@ public:
   void SetTitle(const wxString& title);
   wxString GetTitle() const ;
 
-  bool OnClose();
   void OnCharHook(wxKeyEvent& event);
   void OnCloseWindow(wxCloseEvent& event);
 
index c01336217509ba2e0d85c1f84a71aa8084b19f82..c2b5eb39a82ef30b03ac5d37a6b49d1f02ff3612 100644 (file)
@@ -63,8 +63,6 @@ public:
   void ClientToScreen(int *x, int *y) const;
   void ScreenToClient(int *x, int *y) const;
 
-  virtual bool OnClose();
-
   void OnSize(wxSizeEvent& event);
   void OnMenuHighlight(wxMenuEvent& event);
   void OnActivate(wxActivateEvent& event);
index eb86b97a04e72214194586ba5726528acb9d8a54..e4be296d929fe941e6063147387f4ee1870d4300 100644 (file)
@@ -87,7 +87,7 @@ protected:
 /*
  * Pass filename of existing non-placeable metafile, and bounding box.
  * Adds a placeable metafile header, sets the mapping mode to anisotropic,
- * and sets the window origin and extent to mimic the MM_TEXT mapping mode.
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
  *
  */
 
index f1d351436b040188ed967ab63976534496a167fb..ca8290e082696ea8ea9d9138f73c1704c80a783f 100644 (file)
@@ -80,7 +80,7 @@ public:
   void SetTitle(const wxString& title);
   wxString GetTitle() const ;
 
-  bool OnClose();
+//  bool OnClose();
   void OnCharHook(wxKeyEvent& event);
   void OnCloseWindow(wxCloseEvent& event);
 
index 25afb91bd8236f15e67bebfc030fc4b47d900f50..bd2a51a950a1e02c349a5a6c046b71dd1304dc0f 100644 (file)
@@ -79,8 +79,6 @@ public:
   void ScreenToClient(int *x, int *y) const;
   wxPoint ScreenToClient(const wxPoint& pt) const { return wxWindow::ScreenToClient(pt); }
 
-  virtual bool OnClose();
-
   void OnSize(wxSizeEvent& event);
   void OnMenuHighlight(wxMenuEvent& event);
   void OnActivate(wxActivateEvent& event);
index 2a8843952ca3ab4789d4464717aae7d1ed6f4ac6..b6f823b860a98f38a556ce2ae8108c3e623030df 100644 (file)
@@ -87,7 +87,7 @@ protected:
 /*
  * Pass filename of existing non-placeable metafile, and bounding box.
  * Adds a placeable metafile header, sets the mapping mode to anisotropic,
- * and sets the window origin and extent to mimic the MM_TEXT mapping mode.
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
  *
  */
 
index bba7bd5f81dd9e4e848dc5b1ec4e81c9fbaa2303..29a3ca1acbbf4c719f3f0babe6e9877949cc1349 100644 (file)
@@ -420,8 +420,8 @@ protected:
 #define MS_XDEV2LOGREL(x) DeviceToLogicalXRel(x)
 #define MS_YDEV2LOGREL(y) DeviceToLogicalYRel(y)
 
-#define MM_POINTS      7
-#define MM_METRIC      8
+#define MM_POINTS      9
+#define MM_METRIC     10
 
 extern int wxPageNumber;
 
index b63c9875d07487690416ee3e95886dec444a6ada..235d431aa96868a55e4d84925e864ba1a6830668 100644 (file)
@@ -82,7 +82,6 @@ public:
   wxString GetTitle() const ;
 
   void OnSize(wxSizeEvent& event);
-  bool OnClose();
   void OnCharHook(wxKeyEvent& event);
   void OnPaint(wxPaintEvent& event);
   void OnCloseWindow(wxCloseEvent& event);
index d039be9de4cfc2fdb0f370b8670738b48f9720df..9e976c896a947c2cb09ab618d2ece6fbf76ff916 100644 (file)
@@ -74,8 +74,6 @@ public:
     
     virtual void ScreenToClient(int *x, int *y) const;
     
-    virtual bool OnClose();
-    
     void OnSize(wxSizeEvent& event);
     void OnMenuHighlight(wxMenuEvent& event);
     void OnActivate(wxActivateEvent& event);
index d5f6f3f8db4e7099c61bac4381dec2984d2b3c65..ec1237bf2937b3ece44c9ebc40ed7caad4a87858 100644 (file)
@@ -119,7 +119,7 @@ protected:
 /*
  * Pass filename of existing non-placeable metafile, and bounding box.
  * Adds a placeable metafile header, sets the mapping mode to anisotropic,
- * and sets the window origin and extent to mimic the MM_TEXT mapping mode.
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
  *
  */
 
index 9bd3aeb0c1e7cc0c2c328d7b4baf434d448d413e..73a1b410a7d954480c9981a95262a9e5791364e9 100644 (file)
@@ -173,7 +173,7 @@ public:
     long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
   ~wxPreviewFrame();
 
-  bool OnClose();
+  void OnCloseWindow(wxCloseEvent& event);
   virtual void Initialize();
   virtual void CreateCanvas();
   virtual void CreateControlBar();
@@ -182,6 +182,8 @@ protected:
   wxWindow*             m_previewCanvas;
   wxPreviewControlBar*  m_controlBar;
   wxPrintPreviewBase*   m_printPreview;
+
+DECLARE_EVENT_TABLE()
 };
 
 /*
index ede043929e4be991b051cb78423f5a634fcbf6c8..4acff593bb97dcd3d1325a84a66d9e64bab91e1c 100644 (file)
@@ -61,7 +61,7 @@ class WXDLLEXPORT wxPropertyFormView: public wxPropertyView
   void OnUpdate(wxCommandEvent& event);
   void OnRevert(wxCommandEvent& event);
 
-  virtual bool OnClose(void);
+  virtual bool OnClose();
   virtual void OnDoubleClick(wxControl *item);
 
   // TODO: does OnCommand still get called...???
@@ -230,7 +230,8 @@ class WXDLLEXPORT wxPropertyFormDialog: public wxDialog
   wxPropertyFormDialog(wxPropertyFormView *v, wxWindow *parent, const wxString& title,
     const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
     long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox");
-  bool OnClose(void);
+
+  void OnCloseWindow(wxCloseEvent& event);
   void OnDefaultAction(wxControl *item);
   void OnCommand(wxWindow& win, wxCommandEvent& event);
 
@@ -239,6 +240,8 @@ class WXDLLEXPORT wxPropertyFormDialog: public wxDialog
 
  private:
   wxPropertyFormView*       m_view;
+
+DECLARE_EVENT_TABLE()
 };
 
 /*
@@ -281,7 +284,7 @@ class WXDLLEXPORT wxPropertyFormFrame: public wxFrame
     m_view = v;
     m_propertyPanel = NULL;
   }
-  bool OnClose(void);
+  void OnCloseWindow(wxCloseEvent& event);
 
   // Must call this to create panel and associate view
   virtual bool Initialize(void);
@@ -291,6 +294,8 @@ class WXDLLEXPORT wxPropertyFormFrame: public wxFrame
  private:
   wxPropertyFormView*       m_view;
   wxPanel*                  m_propertyPanel;
+
+DECLARE_EVENT_TABLE()
 };
 
 #endif
index a18213ae87138a4386ea4f875645be7073b20450..a3c6a5e24f481df79efd855c55a814901b36a246 100644 (file)
@@ -276,7 +276,7 @@ class WXDLLEXPORT wxPropertyListDialog: public wxDialog
   wxPropertyListDialog(wxPropertyListView *v, wxWindow *parent, const wxString& title,
     const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
     long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox");
-  bool OnClose(void);
+  void OnCloseWindow(wxCloseEvent& event);
   void OnDefaultAction(wxControl *item);
   void OnCancel(wxCommandEvent& event);
 
@@ -338,7 +338,7 @@ class WXDLLEXPORT wxPropertyListFrame: public wxFrame
     m_view = v;
     m_propertyPanel = NULL;
   }
-  bool OnClose(void);
+  void OnCloseWindow(wxCloseEvent& event);
 
   // Must call this to create panel and associate view
   virtual bool Initialize(void);
@@ -348,6 +348,8 @@ class WXDLLEXPORT wxPropertyListFrame: public wxFrame
  private:
   wxPropertyListView*       m_view;
   wxPropertyListPanel*      m_propertyPanel;
+
+DECLARE_EVENT_TABLE()
 };
 
 /*
index ebd7bff2a807f2dffa8b36b129d3e80bb37d6408..d68cc7c9a0f0612e7138e02c0a8f4d08c1e52c9a 100644 (file)
@@ -71,7 +71,6 @@ public:
   void SetTitle(const wxString& title);
   wxString GetTitle() const ;
 
-  bool OnClose();
   void OnCharHook(wxKeyEvent& event);
   void OnCloseWindow(wxCloseEvent& event);
 
index 70247ae171f0b631d791644a3337d7264fa8e56c..2e76caab026cc3ac9038623f71abf47d9b5269fa 100644 (file)
@@ -61,8 +61,6 @@ public:
   void GetPosition(int *x, int *y) const ;
   void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO);
 
-  virtual bool OnClose();
-
   void OnSize(wxSizeEvent& event);
   void OnMenuHighlight(wxMenuEvent& event);
   void OnActivate(wxActivateEvent& event);
index ebd7bff2a807f2dffa8b36b129d3e80bb37d6408..d68cc7c9a0f0612e7138e02c0a8f4d08c1e52c9a 100644 (file)
@@ -71,7 +71,6 @@ public:
   void SetTitle(const wxString& title);
   wxString GetTitle() const ;
 
-  bool OnClose();
   void OnCharHook(wxKeyEvent& event);
   void OnCloseWindow(wxCloseEvent& event);
 
index c01336217509ba2e0d85c1f84a71aa8084b19f82..c2b5eb39a82ef30b03ac5d37a6b49d1f02ff3612 100644 (file)
@@ -63,8 +63,6 @@ public:
   void ClientToScreen(int *x, int *y) const;
   void ScreenToClient(int *x, int *y) const;
 
-  virtual bool OnClose();
-
   void OnSize(wxSizeEvent& event);
   void OnMenuHighlight(wxMenuEvent& event);
   void OnActivate(wxActivateEvent& event);
index eb86b97a04e72214194586ba5726528acb9d8a54..e4be296d929fe941e6063147387f4ee1870d4300 100644 (file)
@@ -87,7 +87,7 @@ protected:
 /*
  * Pass filename of existing non-placeable metafile, and bounding box.
  * Adds a placeable metafile header, sets the mapping mode to anisotropic,
- * and sets the window origin and extent to mimic the MM_TEXT mapping mode.
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
  *
  */
 
index cd652bcd462afb53e6362891c03343e577db5552..cdf7b8570dce846ecf88670111df495616eb8259 100644 (file)
@@ -167,7 +167,7 @@ BombsCanvasClass::BombsCanvasClass(wxFrame *parent, const wxPoint& pos, const wx
   dc.GetTextExtent(buf, &chw, &chh);
   dc.SetFont(wxNullFont);
 
-  dc.SetMapMode(MM_METRIC);
+  dc.SetMapMode(wxMM_METRIC);
 
   int xcm = dc.LogicalToDeviceX(10.0);
   int ycm = dc.LogicalToDeviceY(10.0);
@@ -183,7 +183,7 @@ BombsCanvasClass::BombsCanvasClass(wxFrame *parent, const wxPoint& pos, const wx
     }
   x_cell = (sx+3+X_UNIT)/X_UNIT;
   y_cell = (sy+3+Y_UNIT)/Y_UNIT;
-  dc.SetMapMode(MM_TEXT);
+  dc.SetMapMode(wxMM_TEXT);
   bmp=NULL;
   UpdateFieldSize();
 }
index 8f26703e8a0b01c736d42bec700e20eb9087505e..fcc848ded6abb4afbac6cb21670dc8397ff7728a 100644 (file)
@@ -154,7 +154,7 @@ void CheckListBoxFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 
 void CheckListBoxFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
-  wxMessageDialog dialog(this, "Demo of wxCheckListBox control\n"
+  wxMessageDialog dialog(this, "Demo of wxCheckListBox control\n",
                          "About wxCheckListBox", wxYES_NO | wxCANCEL);
   dialog.ShowModal();
 }
index 6c47dc4bd61c551abe6ec20c01451ba31ff3ab66..b5ed3c607ffa250ec5c6eef5dadc20ef448543b5 100644 (file)
@@ -46,7 +46,7 @@ public:
   void OnQuit(wxCommandEvent& event);
   void OnAbout(wxCommandEvent& event);
   void OnDelete(wxCommandEvent& event);
-  bool OnClose() { return TRUE; }
+  void OnCloseWindow(wxCloseEvent& event);
 
 private:
   wxTextCtrl *m_text;
@@ -69,6 +69,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
   EVT_MENU(Minimal_Quit, MyFrame::OnQuit)
   EVT_MENU(Minimal_About, MyFrame::OnAbout)
   EVT_MENU(Minimal_Delete, MyFrame::OnDelete)
+  EVT_CLOSE(MyFrame::OnCloseWindow)
 END_EVENT_TABLE()
 
 // ============================================================================
@@ -189,6 +190,11 @@ MyFrame::MyFrame()
   SetClientSize(w, h);
 }
 
+void MyFrame::OnCloseWindow(wxCloseEvent& event)
+{
+    this->Destroy();
+}
+
 void MyFrame::OnQuit(wxCommandEvent&)
 {
   Close(TRUE);
index 466dfaf42822c0913c45052fd300b6af5e0a41b2..b4c08995e42980a5cb0efbeae30470fd71930e15 100644 (file)
@@ -264,7 +264,7 @@ void DatabaseDemoFrame::OnCloseWindow(wxCloseEvent& event)
        // to close the program here that is not done elsewhere
 
     this->Destroy();
-}  // DatabaseDemoFrame::OnClose()
+}  // DatabaseDemoFrame::OnCloseWindow()
 
 
 void DatabaseDemoFrame::CreateDataTable()
@@ -651,21 +651,21 @@ CeditorDlg::CeditorDlg(wxWindow *parent) : wxPanel (parent, 1, 1, 460, 455)
 }  // CeditorDlg constructor
 
 
-bool CeditorDlg::OnClose()
+void CeditorDlg::OnCloseWindow(wxCloseEvent& event)
 {
        // Clean up time
        if ((mode != mCreate) && (mode != mEdit))
        {
                if (Contact)
                        delete Contact;
-               return TRUE;
+               this->Destroy();
        }
        else
        {
                wxMessageBox("Must finish processing the current record being created/modified before exiting","Notice...",wxOK | wxICON_INFORMATION);
-               return FALSE;
+               event.Veto();
        }
-}  // CeditorDlg::OnClose()
+}  // CeditorDlg::OnCloseWindow()
 
 
 void CeditorDlg::OnButton( wxCommandEvent &event )
@@ -1283,6 +1283,11 @@ bool CeditorDlg::GetRec(char *whereStr)
 /*
  * CparameterDlg constructor
  */
+
+BEGIN_EVENT_TABLE(CparameterDlg, wxDialog)
+    EVT_CLOSE(CparameterDlg::OnCloseWindow)
+END_EVENT_TABLE()
+
 CparameterDlg::CparameterDlg(wxWindow *parent) : wxDialog (parent, PARAMETER_DIALOG, "ODBC parameter settings", wxPoint(-1, -1), wxSize(400, 275))
 {
        // Since the ::OnCommand() function is overridden, this prevents the widget
@@ -1315,7 +1320,7 @@ CparameterDlg::CparameterDlg(wxWindow *parent) : wxDialog (parent, PARAMETER_DIA
 }  // CparameterDlg constructor
 
 
-bool CparameterDlg::OnClose()
+void CparameterDlg::OnCloseWindow(wxCloseEvent& event)
 {
        // Put any additional checking necessary to make certain it is alright
        // to close the program here that is not done elsewhere
@@ -1324,15 +1329,19 @@ bool CparameterDlg::OnClose()
                bool Ok = (wxMessageBox("No changes have been saved.\n\nAre you sure you wish exit the parameter screen?","Confirm",wxYES_NO|wxICON_QUESTION) == wxYES);
 
                if (!Ok)
-                       return FALSE;
+        {
+            event.Veto();
+                       return;
+        }
 
                wxGetApp().params = savedParamSettings;
        }
 
        if (GetParent() != NULL)
                GetParent()->SetFocus();
-       return TRUE;
-}  // Cparameter::OnClose()
+       this->Destroy();
+
+}  // Cparameter::OnCloseWindow()
 
 
 void CparameterDlg::OnCommand(wxWindow& win, wxCommandEvent& event)
@@ -1471,6 +1480,7 @@ void CparameterDlg::FillDataSourceList()
 
 BEGIN_EVENT_TABLE(CqueryDlg, wxDialog)
     EVT_BUTTON(-1,  CqueryDlg::OnButton)
+    EVT_CLOSE(CqueryDlg::OnCloseWindow)
 END_EVENT_TABLE()
  
 // CqueryDlg() constructor
@@ -1800,7 +1810,7 @@ void CqueryDlg::OnCommand(wxWindow& win, wxCommandEvent& event)
 }  // CqueryDlg::OnCommand
 
 
-bool CqueryDlg::OnClose()
+void CqueryDlg::OnCloseWindow(wxCloseEvent& event)
 {
        // Clean up
        if (colInf)
@@ -1817,9 +1827,10 @@ bool CqueryDlg::OnClose()
 
        GetParent()->SetFocus();
        wxEndBusyCursor();
-       return TRUE;
 
-}  // CqueryDlg::OnClose()
+       this->Destroy();
+
+}  // CqueryDlg::OnCloseWindow()
 
 /*
 bool CqueryDlg::SetWidgetPtrs()
index 516204e3897aeea72a468c422f208f005f3ac6b6..b6d1bd6ea34501c7ee6e6b40b0fe12ac872fa18e 100644 (file)
@@ -165,7 +165,7 @@ class CeditorDlg : public wxPanel
                Ccontact                                        *Contact;       // this is the table object that will be being manipulated
 
                CeditorDlg(wxWindow *parent);
-               bool    OnClose(void);
+               void    OnCloseWindow(wxCloseEvent& event);
                void    OnButton( wxCommandEvent &event );
                void    OnCommand(wxWindow& win, wxCommandEvent& event);
                void    OnActivate(bool) {};  // necessary for hot keys
@@ -243,7 +243,7 @@ class CparameterDlg : public wxDialog
 
        public:
                CparameterDlg(wxWindow *parent);
-               bool    OnClose(void);
+               void    OnCloseWindow(wxCloseEvent& event);
                void    OnCommand(wxWindow& win, wxCommandEvent& event);
                void    OnActivate(bool) {};  // necessary for hot keys
 
@@ -252,6 +252,7 @@ class CparameterDlg : public wxDialog
                bool    Save();
                void    FillDataSourceList();
 
+DECLARE_EVENT_TABLE()
 };  // CparameterDlg
 
 #define PARAMETER_DIALOG                    400
@@ -341,7 +342,7 @@ class CqueryDlg : public wxDialog
 
                void    OnButton( wxCommandEvent &event );
                void            OnCommand(wxWindow& win, wxCommandEvent& event);
-               bool            OnClose();
+               void        OnCloseWindow(wxCloseEvent& event);
                void            OnActivate(bool) {};  // necessary for hot keys
 
 //             bool            SetWidgetPtrs();
index ed541cc7e1c56095ccc141004e1b240a0abe9ff2..3141b2fd4b85d639f06235bd9abf812946facd31 100644 (file)
@@ -26,7 +26,6 @@ class MyFrame: public wxFrame
 { public:
     MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos,
                const wxSize& size);
-    bool OnClose(void) { return TRUE; }
 
        void ChooseColour(wxCommandEvent& event);
        void ChooseFont(wxCommandEvent& event);
index d2983beb5a3baa77c1d9d5edbde283618d6dabb3..a2e20c79924e1bdb6c4e4bf6bdd76ed627f712c7 100644 (file)
@@ -91,8 +91,6 @@ public:
   void OnLeftDown(wxMouseEvent& event);
   void OnRightDown(wxMouseEvent& event);
 
-  bool OnClose();
-
   DECLARE_EVENT_TABLE()
 
 private:
@@ -302,11 +300,6 @@ void DnDFrame::OnLogClear(wxCommandEvent& /* event */ )
   m_ctrlLog->Clear();
 }
 
-bool DnDFrame::OnClose()
-{
-  return TRUE;
-}
-
 void DnDFrame::OnLeftDown(wxMouseEvent &WXUNUSED(event) )
 {
   if ( !m_strText.IsEmpty() ) 
index c32ca01362065e6587131f1bcb2a23b73850c7ab..06847f1253f5ea1491f890715b04bcbb0a660806 100644 (file)
@@ -43,7 +43,6 @@ class MyFrame: public wxFrame
  public:
     void OnQuit(wxCommandEvent& event);
     void OnAbout(wxCommandEvent& event);
-  bool OnClose(void) { return TRUE; }
 };
 
 // ID for the menu commands
index 2ba1f15c5bf0c595bb2c51b515ed1d99d1abc57f..373e16942faff6c7320d202a58c0ae0906edccbb 100644 (file)
@@ -123,13 +123,13 @@ void FortyCanvas::OnDraw(wxDC& dc)
 /*
 Called when the main frame is closed
 */
-bool FortyCanvas::OnClose()
+bool FortyCanvas::OnCloseCanvas()
 {
        if (m_game->InPlay() &&
                wxMessageBox("Are you sure you want to\nabandon the current game?",
                        "Warning", wxYES_NO | wxICON_QUESTION) == wxNO)
        {
-               return FALSE;
+        return FALSE;
        }
        return TRUE;
 }
index 368d6c6b61ce65a90a5876777b57e85aab906f5e..60abf5f2d3b46842f67eaf93529efb7b2510ea7a 100644 (file)
@@ -25,7 +25,7 @@ public:
        virtual ~FortyCanvas();
 
        virtual void OnDraw(wxDC& dc);
-       bool OnClose();
+       bool OnCloseCanvas();
        void OnMouseEvent(wxMouseEvent& event);
        void SetCursorStyle(int x, int y);
 
index 6195e27f4be933e61fce213e19a72a32b8145947..425f4202476ab9871b3e488c2216864892bc39ae 100644 (file)
@@ -40,7 +40,7 @@ public:
        FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h);
        virtual ~FortyFrame();
 
-       bool OnClose();
+       void OnCloseWindow(wxCloseEvent& event);
 
        // Menu callbacks
        void NewGame(wxCommandEvent& event);
@@ -73,6 +73,7 @@ BEGIN_EVENT_TABLE(FortyFrame, wxFrame)
        EVT_MENU(SCORES, FortyFrame::Scores)
        EVT_MENU(RIGHT_BUTTON_UNDO, FortyFrame::ToggleRightButtonUndo)
        EVT_MENU(HELPING_HAND, FortyFrame::ToggleHelpingHand)
+    EVT_CLOSE(FortyFrame::OnCloseWindow)
 END_EVENT_TABLE()
 
 // Create a new application object
@@ -189,9 +190,14 @@ FortyFrame::~FortyFrame()
 {
 }
 
-bool FortyFrame::OnClose()
+void FortyFrame::OnCloseWindow(wxCloseEvent& event)
 {
-       return m_canvas->OnClose();
+       if (m_canvas->OnCloseCanvas())
+    {
+        this->Destroy();
+    }
+    else
+        event.Veto();
 }
 
 void
@@ -205,7 +211,7 @@ FortyFrame::Exit(wxCommandEvent&)
 {
 #ifdef __WXGTK__
        // wxGTK doesn't call OnClose() so we do it here
-       if (OnClose())
+//     if (OnClose())
 #endif
        Close(TRUE);
 }
index e55cd0f93dc2fa7f4570b1585f6eeaa6253ebaa0..dc04b7f4c7c3740d382464a0bee00e161bda36b9 100644 (file)
@@ -37,6 +37,7 @@ BEGIN_EVENT_TABLE(PlayerSelectionDialog, wxDialog)
        EVT_BUTTON(wxID_OK, PlayerSelectionDialog::ButtonCallback)
        EVT_BUTTON(wxID_CANCEL, PlayerSelectionDialog::ButtonCallback)
        EVT_LISTBOX(ID_LISTBOX, PlayerSelectionDialog::SelectCallback)
+    EVT_CLOSE(PlayerSelectionDialog::OnCloseWindow)
 END_EVENT_TABLE()
 
 PlayerSelectionDialog::PlayerSelectionDialog(
@@ -142,13 +143,10 @@ const wxString& PlayerSelectionDialog::GetPlayersName()
        return m_player;
 }
 
-bool PlayerSelectionDialog::OnClose()
+void PlayerSelectionDialog::OnCloseWindow(wxCloseEvent& event)
 {
-       // hide the dialog
-       // NB don't return TRUE otherwise delete is called
        m_player = "";
-       Show(FALSE);
-       return FALSE;
+    EndModal(wxID_CANCEL);
 }
 
 void PlayerSelectionDialog::SelectCallback(wxCommandEvent& event)
index 995ac57a80876a94dcb6b76c5126dc70d9d2e292..70d9cfb6cb2b7428af821e6012ce5a17e4f75e9f 100644 (file)
@@ -28,7 +28,7 @@ public:
 
 protected:
        friend void SelectCallback(wxListBox&, wxCommandEvent&);
-       bool OnClose();
+       void OnCloseWindow(wxCloseEvent& event);
 
 private:
        ScoreFile*      m_scoreFile;
index befb3725cdca16033ec08496915fd3772a41a503..de7d7a6a09d1b496a6e23b1915e5ac5ac9c28c22 100644 (file)
@@ -137,6 +137,9 @@ void ScoreCanvas::OnDraw(wxDC& dc)
        }
 }
 
+BEGIN_EVENT_TABLE(ScoreDialog, wxDialog)
+    EVT_CLOSE(ScoreDialog::OnCloseWindow)
+END_EVENT_TABLE()
 
 ScoreDialog::ScoreDialog(
                                                        wxWindow* parent,
@@ -183,10 +186,7 @@ void ScoreDialog::Display()
        Show(TRUE);
 }
 
-bool ScoreDialog::OnClose()
+void ScoreDialog::OnCloseWindow(wxCloseEvent& event)
 {
-       // hide the dialog
-       // NB don't return TRUE otherwise delete is called
-       Show(FALSE);
-       return FALSE;
+    EndModal(wxID_OK);
 }
index c63cf035475d60fb51d5762f93a46976e143c42f..8ce7a7274d320b2ac9d9aae91220daf5e57fe985 100644 (file)
@@ -22,11 +22,13 @@ public:
        void Display();
 
 protected:
-       bool OnClose();
+       void OnCloseWindow(wxCloseEvent& event);
 
 private:
        ScoreFile*      m_scoreFile;
        wxButton*       m_OK;
+
+DECLARE_EVENT_TABLE()
 };
 
 #endif
index ceb64fce1e16a471ebf57010c12c9e99ae5a60c1..7662b5b09c2993c7d8c897804afc875f408ea50b 100644 (file)
@@ -40,8 +40,6 @@ class MyFrame: public wxFrame
     wxGrid *grid;
     MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size);
 
-    bool OnClose(void) { return TRUE; }
-
     void ToggleEditable(wxCommandEvent& event);
     void ToggleRowLabel(wxCommandEvent& event);
     void ToggleColLabel(wxCommandEvent& event);
index 6f2826b1c257e2a0caf62954dd2ff58c18b192ba..c191d764107697b766500e288741a2e065a15b0c 100644 (file)
@@ -54,8 +54,7 @@ public:
   void OnAbout(wxCommandEvent& event);
   void OnPlay(wxCommandEvent& event);
   void OnOpen(wxCommandEvent& event);
-  bool OnClose() { return TRUE; }
-  
+
   DECLARE_EVENT_TABLE()
 };
 
index 92add26604ca1b80f0658e3356a024adf9ec17c1..2709bc19ff5323010b5e9a09a9db6b06925aeb16 100644 (file)
@@ -164,8 +164,3 @@ void MyFrame::OnActivate(wxActivateEvent& event)
   if (event.GetActive() && canvas)
     canvas->SetFocus();
 }
-
-bool MyFrame::OnClose(void)
-{
-  return TRUE;
-}
\ No newline at end of file
index 68c4f6807526bae9feb5fded7dd6d9d64e4a6176..afa8a21a8641e0d436924efacbe02508f25fe749 100644 (file)
@@ -40,7 +40,6 @@ class MyFrame: public wxFrame
     MyCanvas *canvas;
     MyFrame(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style);
     ~MyFrame(void);
-    bool OnClose(void);
     void OnActivate(wxActivateEvent& event);
     void OnQuit(wxCommandEvent& event);
 
index e33b97fad9293f5790a621b4f87850363d81bcc1..ab66c79b015c582c5bcd5f9b0f42ed9c257f6c68 100644 (file)
@@ -244,14 +244,6 @@ void MyWindow::OnPaint(wxPaintEvent& WXUNUSED(event) )
   frame->Draw(dc,TRUE);
 }
 
-// Define the behaviour for the frame closing
-// - must delete all frames except for the main one.
-bool MyFrame::OnClose(void)
-{
-  Show(FALSE);
-
-  return TRUE;
-}
 
 SizerFrame::SizerFrame(wxFrame *frame, char *title, int x, int y, int w, int h):
   wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h))
@@ -346,10 +338,3 @@ void SizerFrame::OnSize(wxSizeEvent& event)
   panel->Layout();
 }
 
-bool SizerFrame::OnClose(void)
-{
-  Show(FALSE);
-
-  return TRUE;
-}
-
index 83aca0d956b578f2dbf57874020e0e410c4b5c7a..15fa044a8fe2cbd2f9d1c9eb5708b0fd5ad498c6 100644 (file)
@@ -29,7 +29,6 @@ class MyFrame: public wxFrame
     MyWindow *canvas;
     MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h);
     void OnSize(wxSizeEvent& event);
-    bool OnClose(void);
     void Draw(wxDC& dc, bool draw_bitmaps = TRUE);
 
     void LoadFile(wxCommandEvent& event);
@@ -68,7 +67,6 @@ class SizerFrame: public wxFrame
     wxPanel *panel;
     SizerFrame(wxFrame *frame, char *title, int x, int y, int w, int h);
     void OnSize(wxSizeEvent& event);
-    bool OnClose(void);
 
    DECLARE_EVENT_TABLE()
 };
index c9bbb749bdb04c2fea0b37e6e6a7b39ac1265d34..79063942a4fcd83373a1e06e84d588c9e3420dcc 100644 (file)
@@ -60,7 +60,6 @@ class MyFrame: public wxFrame
     void OnIconTextView(wxCommandEvent& event);
     void OnSmallIconView(wxCommandEvent& event);
     void OnSmallIconTextView(wxCommandEvent& event);
-    bool OnClose(void) { return TRUE; }
     void OnDeselectAll(wxCommandEvent& event);
     void OnSelectAll(wxCommandEvent& event);
 
index 10deb7665c0a1c9fc8fc2fc35ba8f4ddc60534c1..7f4327481cc041cd71865e6a4d781694a35c9cf5 100644 (file)
@@ -237,23 +237,6 @@ void MyCanvas::OnEvent(wxMouseEvent& event)
   ypos = pt.y;
 }
 
-// Define the behaviour for the frame closing
-// - must delete all frames except for the main one.
-bool MyFrame::OnClose(void)
-{
-  // Must delete children
-  wxNode *node = my_children.First();
-  while (node)
-  {
-    MyChild *child = (MyChild *)node->Data();
-    wxNode *next = node->Next();
-    child->OnClose();
-    delete child;
-    node = next;
-  }
-  return TRUE;
-}
-
 void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event) )
 {
     int w, h;
@@ -295,11 +278,6 @@ void MyChild::OnActivate(wxActivateEvent& event)
     canvas->SetFocus();
 }
 
-bool MyChild::OnClose(void)
-{
-  return TRUE;
-}
-
 void MyFrame::InitToolBar(wxToolBar* toolBar)
 {
     wxBitmap* bitmaps[8];
index 7415c60585ce796e6f8dbbc9f5f9638c3eba2f25..08f59a8c7e21549c65d7d6858e343711b5728415 100644 (file)
@@ -38,7 +38,6 @@ class MyFrame: public wxMDIParentFrame
 
     void InitToolBar(wxToolBar* toolBar);
 
-    bool OnClose(void);
     void OnSize(wxSizeEvent& event);
     void OnAbout(wxCommandEvent& event);
     void OnNewWindow(wxCommandEvent& event);
@@ -53,7 +52,6 @@ class MyChild: public wxMDIChildFrame
     MyCanvas *canvas;
     MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style);
     ~MyChild(void);
-    bool OnClose(void);
     void OnActivate(wxActivateEvent& event);
     void OnQuit(wxCommandEvent& event);
 
index 79a7006bcfb570634575eff57f957daac6f0b2aa..91ed30dbdcc24af6c5dc5c12fbd0f534ea18f171 100644 (file)
@@ -93,7 +93,6 @@ class MyChild: public wxFrame
     MyCanvas *canvas;
     MyChild(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, const long style);
     ~MyChild(void);
-    bool OnClose(void);
 
     void OnQuit(wxCommandEvent& event);
     void OnNew(wxCommandEvent& event);
@@ -376,12 +375,6 @@ void MyChild::OnActivate(wxActivateEvent& event)
     canvas->SetFocus();
 }
 
-bool MyChild::OnClose(void)
-{
-  return TRUE;
-}
-
-
 // Dummy MFC window for specifying a valid main window to MFC, using
 // a wxWindows HWND.
 CDummyWindow::CDummyWindow(HWND hWnd):CWnd()
index 82151d75c7ab8690f3e0cc3386e73d013f4d1c5d..6d16c488af55e3db7ae3beff7d5449a87d37b84b 100644 (file)
@@ -108,13 +108,6 @@ void MyFrame::OnTest1(wxCommandEvent& event)
       dialog->Close(TRUE);
 }
 
-bool MyFrame::OnClose(void)
-{
-  Show(FALSE);
-
-  return TRUE;
-}
-
 BEGIN_EVENT_TABLE(MyDialog, wxDialog)
        EVT_BUTTON(wxID_OK, MyDialog::OnOk)
        EVT_BUTTON(wxID_CANCEL, MyDialog::OnCancel)
index 25688ea5fc703460b81156af1d01ae1cba8167a0..5bc20575c2a149b56b1914b9fb906aba4fe9ccac 100644 (file)
@@ -26,7 +26,6 @@ class MyFrame: public wxFrame
   public:
     wxWindow *panel;
     MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size);
-    bool OnClose(void);
     void OnQuit(wxCommandEvent& event);
     void OnTest1(wxCommandEvent& event);
 
index 27815e5424df76b54c1824d561a30d4bdcde0ffc..741ddec001375e4759ec9d8f4d48f423058855e4 100644 (file)
@@ -263,7 +263,8 @@ void OwnerDrawnFrame::OnQuit(wxCommandEvent& event)
 
 void OwnerDrawnFrame::OnAbout(wxCommandEvent& event)
 {
-  wxMessageDialog dialog(this, "Demo of owner-drawn controls\n"
+  wxMessageDialog dialog(this,
+                         "Demo of owner-drawn controls\n",
                          "About wxOwnerDrawn", wxYES_NO | wxCANCEL);
   dialog.ShowModal();
 }
index be10ff0534c0408b3398b97aff04645644473c73..da50f96d5daa893d50e6738948bde2ee40836694 100644 (file)
@@ -207,12 +207,4 @@ void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
   }
 }
 
-// Define the behaviour for the frame closing
-// - must delete all frames except for the main one.
-bool MyFrame::OnClose(void)
-{
-  Show(FALSE);
-
-  return TRUE;
-}
 
index eef3432f116cdd15892e314c0a8dbbd86fa96ce8..e250aa69d281733576b9ff85ceaa7e539c136450 100644 (file)
@@ -32,7 +32,6 @@ class MyFrame: public wxFrame
     MyCanvas *canvas;
     MyFrame(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size);
 
-    bool OnClose(void);
     void OnActivate(bool) {}
     void OnLoadFile(wxCommandEvent& event);
     void OnSaveFile(wxCommandEvent& event);
index 89743d913bc95f54fbcf5cc6a6ada660fde75f8d..4ace50d72ae4706a7b349697a7808c8521756a00 100644 (file)
@@ -131,6 +131,12 @@ bool MyApp::OnInit(void)
   return TRUE;
 }
 
+int MyApp::OnExit()
+{
+  delete wxGetApp().m_testFont;
+  return 1;
+}
+
 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU(WXPRINT_QUIT, MyFrame::OnExit)
     EVT_MENU(WXPRINT_PRINT, MyFrame::OnPrint)
@@ -317,14 +323,6 @@ void MyCanvas::OnEvent(wxMouseEvent& WXUNUSED(event))
 {
 }
 
-bool MyFrame::OnClose(void)
-{
-  Show(FALSE);
-  delete wxGetApp().m_testFont;
-
-  return TRUE;
-}
-
 bool MyPrintout::OnPrintPage(int page)
 {
   wxDC *dc = GetDC();
index 1b56be4d7097c5ab08aa101d01d19cf94a7de1ec..d9df02dfbbe7f11b20e39ebca7a0cbc8ac2a1c2a 100644 (file)
@@ -17,8 +17,9 @@
 class MyApp: public wxApp
 {
   public:
-    MyApp(void) ;
-    bool OnInit(void);
+    MyApp() ;
+    bool OnInit();
+    int OnExit();
 
     wxFont* m_testFont;
 };
@@ -34,8 +35,6 @@ class MyFrame: public wxFrame
     MyCanvas *canvas;
     MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size);
 
-    bool OnClose(void);
-
     void Draw(wxDC& dc);
 
     void OnSize(wxSizeEvent& event);
index 836cf563a4f43b27ee2acc74725bd54146245570..588b3873ff532d72f8eddef364741a4910ab772a 100644 (file)
@@ -173,13 +173,6 @@ void MyFrame::OnTestDialog(wxCommandEvent& WXUNUSED(event) )
       dialog->Close(TRUE);
 }
 
-bool MyFrame::OnClose(void)
-{
-  Show(FALSE);
-
-  return TRUE;
-}
-
 BEGIN_EVENT_TABLE(MyDialog, wxDialog)
   //   EVT_BUTTON(RESOURCE_OK, MyDialog::OnOk)
        EVT_BUTTON(ID_BUTTON109, MyDialog::OnCancel)
index 714d982ffd4d5b9f955c7d633fe50ff5aa3d7bf7..5975b871c73e5daaa1947ed3d51f882c7fbca749 100644 (file)
@@ -40,7 +40,6 @@ class MyFrame: public wxFrame
 public:
     MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
             const wxPoint& pos, const wxSize& size);
-    bool OnClose();
     void OnQuit(wxCommandEvent& event);
     void OnAbout(wxCommandEvent& event);
     void OnTestDialog(wxCommandEvent& event);
index 3917a31ab25881ec7a9609b529f1257a06cf7d56..d5f42bacd484920eaca4ee829055fe2e2e3eb2a8 100644 (file)
@@ -312,23 +312,6 @@ void MyCanvas::OnEvent(wxMouseEvent& event)
   ypos = pt.y;
 }
 
-// Define the behaviour for the frame closing
-// - must delete all frames except for the main one.
-bool MyFrame::OnClose(void)
-{
-  // Must delete children
-  wxNode *node = my_children.First();
-  while (node)
-  {
-    MyChild *child = (MyChild *)node->Data();
-    wxNode *next = node->Next();
-    child->OnClose();
-    delete child;
-    node = next;
-  }
-  return TRUE;
-}
-
 void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event))
 {
     wxLayoutAlgorithm layout;
@@ -367,9 +350,3 @@ void MyChild::OnActivate(wxActivateEvent& event)
     canvas->SetFocus();
 }
 
-bool MyChild::OnClose(void)
-{
-  return TRUE;
-}
-
-
index ed5fa54197de3782653062af6b3a0c8a5788e410..fd2737f82e1e2c4341244dc884c3d668797aff7e 100644 (file)
@@ -35,7 +35,6 @@ class MyFrame: public wxMDIParentFrame
 
     MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, const long style);
 
-    bool OnClose(void);
     void OnSize(wxSizeEvent& event);
     void OnAbout(wxCommandEvent& event);
     void OnNewWindow(wxCommandEvent& event);
@@ -58,7 +57,6 @@ class MyChild: public wxMDIChildFrame
     MyCanvas *canvas;
     MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style);
     ~MyChild(void);
-    bool OnClose(void);
     void OnActivate(wxActivateEvent& event);
     void OnQuit(wxCommandEvent& event);
 
index 33a25ed12a60ef00694b3fc0cf25ab95f0a265cd..dcd6718c68e9e0d401091fc950ca26ef8693c6b4 100644 (file)
@@ -62,8 +62,6 @@ public:
   MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, const wxSize& size);
   virtual ~MyFrame();
 
-  bool OnClose();
-
   // Menu commands
   void SplitHorizontal(wxCommandEvent& event);
   void SplitVertical(wxCommandEvent& event);
@@ -185,11 +183,6 @@ MyFrame::~MyFrame()
 {
 }
 
-bool MyFrame::OnClose()
-{
-  return TRUE;
-}
-
 void MyFrame::Quit(wxCommandEvent& WXUNUSED(event) )
 {
   Close(TRUE);
index dce914e8e69ce20579904d932eaf89c5d5129065..71f34019dc02803a8fc8d5121a315f242ae28781 100644 (file)
@@ -73,7 +73,6 @@ public:
     void OnResumeThread(wxCommandEvent& event);
 
     void OnIdle(wxIdleEvent &event);
-    bool OnClose() { return TRUE; }
 
     // called by dying thread _in_that_thread_context_
     void OnThreadExit(wxThread *thread);
index 8cd87eac0334c357fb20e2277215a53644180892..aa78a80bd55d89d2c0fba12473ef131cf79477d8 100644 (file)
@@ -47,7 +47,6 @@ public:
 public:
     void OnQuit(wxCommandEvent& event);
     void OnAbout(wxCommandEvent& event);
-       bool OnClose(void) { return TRUE; }
 
    DECLARE_EVENT_TABLE()
     
index b4b904656150bb428f21f6485c5afc8a88243123..5b761fd32151567adf7484164de988c831d1dc44 100644 (file)
@@ -27,7 +27,6 @@ class MyFrame: public wxFrame
  public:
     void OnQuit(wxCommandEvent& event);
     void OnTestDialog(wxCommandEvent& event);
-       bool OnClose(void) { return TRUE; }
 
    DECLARE_EVENT_TABLE()
     
index 7ae00905cc57f233535393951bc432edececd863..de5a8fc21db9139d5e7fae965073536889736687 100644 (file)
 #include <string.h>
 #include <time.h>
 
+#ifdef __WINDOWS__
+#include <windows.h>
+#ifdef DrawText
+#undef DrawText
+#endif
+#endif
+
 #define         buf_size 10000
 #define         DEFAULT_POETRY_DAT "wxpoem"
 #define         DEFAULT_POETRY_IND "wxpoem"
index 79580ae5c119a92042b6594ca4805bb0b29de7c9..fb469f58e1978f3e73584a48cc44091e3e0dc6d3 100644 (file)
@@ -476,6 +476,7 @@ bool wxEvtHandler::SearchDynamicEventTable( wxEvent& event )
     return FALSE;
 };
 
+#if WXWIN_COMPATIBILITY
 bool wxEvtHandler::OnClose()
 {
     if (GetNextHandler())
@@ -483,3 +484,5 @@ bool wxEvtHandler::OnClose()
     else
         return FALSE;
 }
+#endif
+
index c8cba869c4ea2e0af72e71f004a3071b296d1413..23e49e721e0e8040c8125a9b15813afe8609f881 100644 (file)
@@ -429,6 +429,10 @@ int wxPreviewControlBar::GetZoomControl()
  * Preview frame
  */
 
+BEGIN_EVENT_TABLE(wxPreviewFrame, wxFrame)
+    EVT_CLOSE(wxPreviewFrame::OnCloseWindow)
+END_EVENT_TABLE()
+
 wxPreviewFrame::wxPreviewFrame(wxPrintPreviewBase *preview, wxFrame *parent, const wxString& title,
     const wxPoint& pos, const wxSize& size, long style, const wxString& name):
  wxFrame(parent, -1, title, pos, size, style, name)
@@ -442,7 +446,7 @@ wxPreviewFrame::~wxPreviewFrame()
 {
 }
 
-bool wxPreviewFrame::OnClose()
+void wxPreviewFrame::OnCloseWindow(wxCloseEvent& event)
 {
   MakeModal(FALSE);
   
@@ -456,7 +460,8 @@ bool wxPreviewFrame::OnClose()
     m_printPreview->SetFrame(NULL);
   }
   delete m_printPreview;
-  return TRUE;
+
+  Destroy();
 }
 
 void wxPreviewFrame::Initialize()
index daec7a16fba08466b311555199ec0ec9b6de7a2c..192fbbcddbb517b9cc915d72a721bc3622bcaf82 100644 (file)
@@ -46,6 +46,7 @@ BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog)
        EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider)
        EVT_PAINT(wxGenericColourDialog::OnPaint)
        EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent)
+       EVT_CLOSE(wxGenericColourDialog::OnCloseWindow)
 END_EVENT_TABLE()
 
 #endif
@@ -129,10 +130,9 @@ wxGenericColourDialog::~wxGenericColourDialog(void)
 {
 }
 
-bool wxGenericColourDialog::OnClose(void)
+void wxGenericColourDialog::OnCloseWindow(wxCloseEvent& event)
 {
-  Show(FALSE);
-  return FALSE;
+  EndModal(wxID_CANCEL);
 }
 
 bool wxGenericColourDialog::Create(wxWindow *parent, wxColourData *data)
index 8e02bee12b4f6e93315aa8de84b73391e0b24192..31d7d202c401e8f913858b233ef47aec30c7eb54 100644 (file)
@@ -51,6 +51,7 @@ BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog)
        EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont)
        EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont)
        EVT_PAINT(wxGenericFontDialog::OnPaint)
+       EVT_CLOSE(wxGenericFontDialog::OnCloseWindow)
 END_EVENT_TABLE()
 
 #endif
@@ -132,10 +133,9 @@ wxGenericFontDialog::~wxGenericFontDialog(void)
 {
 }
 
-bool wxGenericFontDialog::OnClose(void)
+void wxGenericFontDialog::OnCloseWindow(wxCloseEvent& event)
 {
-  Show(FALSE);
-  return FALSE;
+  EndModal(wxID_CANCEL);
 }
  
 bool wxGenericFontDialog::Create(wxWindow *parent, wxFontData *data)
index 2a94303a4e2c2ca1392bbcc9910098ce6736692a..e1e22a94b61a23d221be37f8df8042f6355e53ad 100644 (file)
@@ -284,6 +284,10 @@ void wxPropertyFormView::OnDoubleClick(wxControl *item)
  
 IMPLEMENT_CLASS(wxPropertyFormDialog, wxDialog)
 
+BEGIN_EVENT_TABLE(wxPropertyFormDialog, wxDialog)
+    EVT_CLOSE(wxPropertyFormDialog::OnCloseWindow)
+END_EVENT_TABLE()
+
 wxPropertyFormDialog::wxPropertyFormDialog(wxPropertyFormView *v, wxWindow *parent, const wxString& title,
        const wxPoint& pos, const wxSize& size, long style, const wxString& name):
      wxDialog(parent, -1, title, pos, size, style, name)
@@ -294,16 +298,16 @@ wxPropertyFormDialog::wxPropertyFormDialog(wxPropertyFormView *v, wxWindow *pare
 //  SetAutoLayout(TRUE);
 }
 
-bool wxPropertyFormDialog::OnClose(void)
+void wxPropertyFormDialog::OnCloseWindow(wxCloseEvent& event)
 {
   if (m_view)
   {
     m_view->OnClose();
        m_view = NULL;
-       return TRUE;
+       this->Destroy();
   }
   else
-    return FALSE;
+    event.Veto();
 }
 
 void wxPropertyFormDialog::OnDefaultAction(wxControl *item)
@@ -358,12 +362,16 @@ bool wxPropertyFormPanel::ProcessEvent(wxEvent& event)
  
 IMPLEMENT_CLASS(wxPropertyFormFrame, wxFrame)
 
-bool wxPropertyFormFrame::OnClose(void)
+BEGIN_EVENT_TABLE(wxPropertyFormFrame, wxFrame)
+    EVT_CLOSE(wxPropertyFormFrame::OnCloseWindow)
+END_EVENT_TABLE()
+
+void wxPropertyFormFrame::OnCloseWindow(wxCloseEvent& event)
 {
-  if (m_view)
-    return m_view->OnClose();
+  if (m_view && m_view->OnClose())
+    this->Destroy();
   else
-    return FALSE;
+    event.Veto();
 }
 
 wxPanel *wxPropertyFormFrame::OnCreatePanel(wxFrame *parent, wxPropertyFormView *v)
index f78601ef000d94f5cb61e00d159dc0a2bb9e8161..d9256c35c8381206814d96e0fb3f21227c792d7a 100644 (file)
@@ -808,6 +808,7 @@ IMPLEMENT_CLASS(wxPropertyListDialog, wxDialog)
 
 BEGIN_EVENT_TABLE(wxPropertyListDialog, wxDialog)
     EVT_BUTTON(wxID_CANCEL,                            wxPropertyListDialog::OnCancel)
+    EVT_CLOSE(wxPropertyListDialog::OnCloseWindow)
 END_EVENT_TABLE()
 
 wxPropertyListDialog::wxPropertyListDialog(wxPropertyListView *v, wxWindow *parent,
@@ -821,17 +822,19 @@ wxPropertyListDialog::wxPropertyListDialog(wxPropertyListView *v, wxWindow *pare
   SetAutoLayout(TRUE);
 }
 
-bool wxPropertyListDialog::OnClose(void)
+void wxPropertyListDialog::OnCloseWindow(wxCloseEvent& event)
 {
   if (m_view)
   {
        SetReturnCode(wxID_CANCEL);
     m_view->OnClose();
        m_view = NULL;
-       return TRUE;
+       this->Destroy();
   }
   else
-    return FALSE;
+  {
+    event.Veto();
+  }
 }
 
 void wxPropertyListDialog::OnCancel(wxCommandEvent& WXUNUSED(event))
@@ -899,7 +902,11 @@ void wxPropertyListPanel::OnSize(wxSizeEvent& WXUNUSED(event))
  
 IMPLEMENT_CLASS(wxPropertyListFrame, wxFrame)
 
-bool wxPropertyListFrame::OnClose(void)
+BEGIN_EVENT_TABLE(wxPropertyListFrame, wxFrame)
+    EVT_CLOSE(wxPropertyListFrame::OnCloseWindow)
+END_EVENT_TABLE()
+
+void wxPropertyListFrame::OnCloseWindow(wxCloseEvent& event)
 {
   if (m_view)
   {
@@ -907,10 +914,12 @@ bool wxPropertyListFrame::OnClose(void)
         m_propertyPanel->SetView(NULL);
     m_view->OnClose();
     m_view = NULL;
-    return TRUE;
+    this->Destroy();
   }
   else
-    return FALSE;
+  {
+    event.Veto();
+  }
 }
 
 wxPropertyListPanel *wxPropertyListFrame::OnCreatePanel(wxFrame *parent, wxPropertyListView *v)
index 1262fc6b77d7bb78fbf3260819fd508b917b1637..2f287d17ad184a50c439f1d3f595fc56f43740dd 100644 (file)
@@ -57,7 +57,7 @@ wxDC::wxDC()
     m_scaleX = 1.0;
     m_scaleY = 1.0;
   
-    m_mappingMode = MM_TEXT;
+    m_mappingMode = wxMM_TEXT;
     m_needComputeScaleX = FALSE; /* not used yet */
     m_needComputeScaleY = FALSE; /* not used yet */
   
@@ -217,25 +217,25 @@ void wxDC::SetMapMode( int mode )
 {
     switch (mode) 
     {
-        case MM_TWIPS:
+        case wxMM_TWIPS:
           SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
           break;
-        case MM_POINTS:
+        case wxMM_POINTS:
           SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y );
           break;
-        case MM_METRIC:
+        case wxMM_METRIC:
           SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y );
           break;
-        case MM_LOMETRIC:
+        case wxMM_LOMETRIC:
           SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 );
           break;
         default:
-        case MM_TEXT:
+        case wxMM_TEXT:
           SetLogicalScale( 1.0, 1.0 );
           break;
     }
 /*  we don't do this mega optimisation
-    if (mode != MM_TEXT)
+    if (mode != wxMM_TEXT)
     {
         m_needComputeScaleX = TRUE;
         m_needComputeScaleY = TRUE;
index 4a0e3abd26423e774fa8cdd116d1840b1dd6945b..b64413f338c61256e360615e9296c35dd690dc7b 100644 (file)
@@ -219,14 +219,25 @@ void wxDialog::OnPaint( wxPaintEvent& WXUNUSED(event) )
 
 void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
+    // We'll send a Cancel message by default,
+    // which may close the dialog.
+    // Check for looping if the Cancel event handler calls Close().
+
+    // Note that if a cancel button and handler aren't present in the dialog,
+    // nothing will happen when you close the dialog via the window manager, or
+    // via Close().
+    // We wouldn't want to destroy the dialog by default, since the dialog may have been
+    // created on the stack.
+    // However, this does mean that calling dialog->Close() won't delete the dialog
+    // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be
+    // sure to destroy the dialog.
+    // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
+
     static wxList closing;
 
     if (closing.Member(this))
         return;   // no loops
 
-    if ( event.GetVeto() )
-        return;
-
     closing.Append(this);
 
     wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
index 25e187d39b229270153ed26274029e08fadc9164..c314c3d28c50d2f49899654e33ded89fc0578799 100644 (file)
@@ -478,8 +478,8 @@ void wxFrame::OnInternalIdle()
 void wxFrame::OnCloseWindow( wxCloseEvent& event )
 {
     // close the window if it wasn't vetoed by the application
-    if ( !event.GetVeto() )
-        Destroy();
+//    if ( !event.GetVeto() ) // No, this isn't the interpretation of GetVeto.
+    Destroy();
 }
 
 void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
index 1262fc6b77d7bb78fbf3260819fd508b917b1637..2f287d17ad184a50c439f1d3f595fc56f43740dd 100644 (file)
@@ -57,7 +57,7 @@ wxDC::wxDC()
     m_scaleX = 1.0;
     m_scaleY = 1.0;
   
-    m_mappingMode = MM_TEXT;
+    m_mappingMode = wxMM_TEXT;
     m_needComputeScaleX = FALSE; /* not used yet */
     m_needComputeScaleY = FALSE; /* not used yet */
   
@@ -217,25 +217,25 @@ void wxDC::SetMapMode( int mode )
 {
     switch (mode) 
     {
-        case MM_TWIPS:
+        case wxMM_TWIPS:
           SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
           break;
-        case MM_POINTS:
+        case wxMM_POINTS:
           SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y );
           break;
-        case MM_METRIC:
+        case wxMM_METRIC:
           SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y );
           break;
-        case MM_LOMETRIC:
+        case wxMM_LOMETRIC:
           SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 );
           break;
         default:
-        case MM_TEXT:
+        case wxMM_TEXT:
           SetLogicalScale( 1.0, 1.0 );
           break;
     }
 /*  we don't do this mega optimisation
-    if (mode != MM_TEXT)
+    if (mode != wxMM_TEXT)
     {
         m_needComputeScaleX = TRUE;
         m_needComputeScaleY = TRUE;
index 4a0e3abd26423e774fa8cdd116d1840b1dd6945b..b64413f338c61256e360615e9296c35dd690dc7b 100644 (file)
@@ -219,14 +219,25 @@ void wxDialog::OnPaint( wxPaintEvent& WXUNUSED(event) )
 
 void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
+    // We'll send a Cancel message by default,
+    // which may close the dialog.
+    // Check for looping if the Cancel event handler calls Close().
+
+    // Note that if a cancel button and handler aren't present in the dialog,
+    // nothing will happen when you close the dialog via the window manager, or
+    // via Close().
+    // We wouldn't want to destroy the dialog by default, since the dialog may have been
+    // created on the stack.
+    // However, this does mean that calling dialog->Close() won't delete the dialog
+    // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be
+    // sure to destroy the dialog.
+    // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
+
     static wxList closing;
 
     if (closing.Member(this))
         return;   // no loops
 
-    if ( event.GetVeto() )
-        return;
-
     closing.Append(this);
 
     wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
index 25e187d39b229270153ed26274029e08fadc9164..c314c3d28c50d2f49899654e33ded89fc0578799 100644 (file)
@@ -478,8 +478,8 @@ void wxFrame::OnInternalIdle()
 void wxFrame::OnCloseWindow( wxCloseEvent& event )
 {
     // close the window if it wasn't vetoed by the application
-    if ( !event.GetVeto() )
-        Destroy();
+//    if ( !event.GetVeto() ) // No, this isn't the interpretation of GetVeto.
+    Destroy();
 }
 
 void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
index c1ea01dc9f16af33234f5f075dbfa4e1a184addf..be346f0a5732b464a0880f2cb0c5aeb401e0813a 100644 (file)
@@ -1414,6 +1414,10 @@ void wxApp::doMacInGoAway(WindowPtr window)
        {
                if (TrackGoAway(window, m_event.where))
                {
+            // TODO: Stefan, I think you need to send a wxCloseEvent to the window
+            // here. The OnCloseWindow handler will take care of delete the frame
+            // if it wishes to (there should be a default wxFrame::OnCloseWindow
+            // that destroys the frame).
                        if (theMacWxFrame->OnClose()) {
 #if WXGARBAGE_COLLECTION_ON
                                theMacWxFrame->Show(FALSE);
index c1ea01dc9f16af33234f5f075dbfa4e1a184addf..be346f0a5732b464a0880f2cb0c5aeb401e0813a 100644 (file)
@@ -1414,6 +1414,10 @@ void wxApp::doMacInGoAway(WindowPtr window)
        {
                if (TrackGoAway(window, m_event.where))
                {
+            // TODO: Stefan, I think you need to send a wxCloseEvent to the window
+            // here. The OnCloseWindow handler will take care of delete the frame
+            // if it wishes to (there should be a default wxFrame::OnCloseWindow
+            // that destroys the frame).
                        if (theMacWxFrame->OnClose()) {
 #if WXGARBAGE_COLLECTION_ON
                                theMacWxFrame->Show(FALSE);
index 642dc1edc56d18b4258eaf296c045fb90c39ffdd..2c1c613595e27d5a9f17345e534f8dda57a4e3f3 100644 (file)
@@ -61,7 +61,7 @@ wxDC::wxDC(void)
   m_scaleX = 1.0;
   m_scaleY = 1.0;
   
-  m_mappingMode = MM_TEXT;
+  m_mappingMode = wxMM_TEXT;
   m_needComputeScaleX = FALSE;
   m_needComputeScaleY = FALSE;
   
@@ -211,24 +211,24 @@ void wxDC::SetMapMode( int mode )
 {
   switch (mode) 
   {
-    case MM_TWIPS:
+    case wxMM_TWIPS:
       SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
       break;
-    case MM_POINTS:
+    case wxMM_POINTS:
       SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y );
       break;
-    case MM_METRIC:
+    case wxMM_METRIC:
       SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y );
       break;
-    case MM_LOMETRIC:
+    case wxMM_LOMETRIC:
       SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 );
       break;
     default:
-    case MM_TEXT:
+    case wxMM_TEXT:
       SetLogicalScale( 1.0, 1.0 );
       break;
   };
-  if (mode != MM_TEXT)
+  if (mode != wxMM_TEXT)
   {
     m_needComputeScaleX = TRUE;
     m_needComputeScaleY = TRUE;
index e2bdb7c984596f4184b3ec7e3e6b7b6530c6bbe3..bf3cae5e352be74e0494d910408c79df3bdbac97 100644 (file)
@@ -237,37 +237,34 @@ void wxDialog::OnCancel(wxCommandEvent& event)
     }
 }
 
-bool wxDialog::OnClose()
+void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
-       // Behaviour changed in 2.0: we'll send a Cancel message by default,
+    // We'll send a Cancel message by default,
     // which may close the dialog.
-    // Check for looping if the Cancel event handler calls Close()
+    // Check for looping if the Cancel event handler calls Close().
+
+    // Note that if a cancel button and handler aren't present in the dialog,
+    // nothing will happen when you close the dialog via the window manager, or
+    // via Close().
+    // We wouldn't want to destroy the dialog by default, since the dialog may have been
+    // created on the stack.
+    // However, this does mean that calling dialog->Close() won't delete the dialog
+    // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be
+    // sure to destroy the dialog.
+    // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
 
     static wxList closing;
-
+    
     if ( closing.Member(this) )
-        return FALSE;
-
+        return;
+    
     closing.Append(this);
-
-       wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
-       cancelEvent.SetEventObject( this );
-       GetEventHandler()->ProcessEvent(cancelEvent);
+    
+    wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
+    cancelEvent.SetEventObject( this );
+    GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog
 
     closing.DeleteObject(this);
-
-       return FALSE;
-}
-
-void wxDialog::OnCloseWindow(wxCloseEvent& event)
-{
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
 }
 
 // Destroy the window (delayed, if a managed window)
index a961e3616f8e4a180f5f3a5546586744fb8c0c11..b370f7b10848343e1cb0f1cc60c026184c61c17d 100644 (file)
@@ -371,23 +371,10 @@ void wxFrame::OnActivate(wxActivateEvent& event)
   }
 }
 
-// The default implementation for the close window event - calls
-// OnClose for backward compatibility.
-
+// The default implementation for the close window event.
 void wxFrame::OnCloseWindow(wxCloseEvent& event)
 {
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
-}
-
-bool wxFrame::OnClose()
-{
-    return TRUE;
+    this->Destroy();
 }
 
 // Destroy the window (delayed, if a managed window)
index a92874b33669dc15650d93c4877886130f9f97ed..ddbfb8402ffb5140bb2ffe808dda731aef14ba47 100644 (file)
@@ -128,7 +128,7 @@ struct mfPLACEABLEHEADER {
 /*
  * Pass filename of existing non-placeable metafile, and bounding box.
  * Adds a placeable metafile header, sets the mapping mode to anisotropic,
- * and sets the window origin and extent to mimic the MM_TEXT mapping mode.
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
  *
  */
  
@@ -198,7 +198,7 @@ bool wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, i
 
   modeRecord->rdSize = 4;
   modeRecord->rdFunction = META_SETMAPMODE;
-  modeRecord->rdParm[0] = MM_ANISOTROPIC;
+  modeRecord->rdParm[0] = wxMM_ANISOTROPIC;
 
   originRecord->rdSize = 5;
   originRecord->rdFunction = META_SETWINDOWORG;
index 10ec3976dd283405badbaea6bddbe998945603a2..a54fd3331d66f33a34bf6fa0579c9e64a314eaae 100644 (file)
@@ -1110,7 +1110,10 @@ bool wxWindow::Close(bool force)
 {
   wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId);
   event.SetEventObject(this);
+#if WXWIN_COMPATIBILITY
   event.SetForce(force);
+#endif
+  event.SetCanVeto(!force);
 
   return GetEventHandler()->ProcessEvent(event);
 }
index 642dc1edc56d18b4258eaf296c045fb90c39ffdd..2c1c613595e27d5a9f17345e534f8dda57a4e3f3 100644 (file)
@@ -61,7 +61,7 @@ wxDC::wxDC(void)
   m_scaleX = 1.0;
   m_scaleY = 1.0;
   
-  m_mappingMode = MM_TEXT;
+  m_mappingMode = wxMM_TEXT;
   m_needComputeScaleX = FALSE;
   m_needComputeScaleY = FALSE;
   
@@ -211,24 +211,24 @@ void wxDC::SetMapMode( int mode )
 {
   switch (mode) 
   {
-    case MM_TWIPS:
+    case wxMM_TWIPS:
       SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
       break;
-    case MM_POINTS:
+    case wxMM_POINTS:
       SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y );
       break;
-    case MM_METRIC:
+    case wxMM_METRIC:
       SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y );
       break;
-    case MM_LOMETRIC:
+    case wxMM_LOMETRIC:
       SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 );
       break;
     default:
-    case MM_TEXT:
+    case wxMM_TEXT:
       SetLogicalScale( 1.0, 1.0 );
       break;
   };
-  if (mode != MM_TEXT)
+  if (mode != wxMM_TEXT)
   {
     m_needComputeScaleX = TRUE;
     m_needComputeScaleY = TRUE;
index e2bdb7c984596f4184b3ec7e3e6b7b6530c6bbe3..bf3cae5e352be74e0494d910408c79df3bdbac97 100644 (file)
@@ -237,37 +237,34 @@ void wxDialog::OnCancel(wxCommandEvent& event)
     }
 }
 
-bool wxDialog::OnClose()
+void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
-       // Behaviour changed in 2.0: we'll send a Cancel message by default,
+    // We'll send a Cancel message by default,
     // which may close the dialog.
-    // Check for looping if the Cancel event handler calls Close()
+    // Check for looping if the Cancel event handler calls Close().
+
+    // Note that if a cancel button and handler aren't present in the dialog,
+    // nothing will happen when you close the dialog via the window manager, or
+    // via Close().
+    // We wouldn't want to destroy the dialog by default, since the dialog may have been
+    // created on the stack.
+    // However, this does mean that calling dialog->Close() won't delete the dialog
+    // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be
+    // sure to destroy the dialog.
+    // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
 
     static wxList closing;
-
+    
     if ( closing.Member(this) )
-        return FALSE;
-
+        return;
+    
     closing.Append(this);
-
-       wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
-       cancelEvent.SetEventObject( this );
-       GetEventHandler()->ProcessEvent(cancelEvent);
+    
+    wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
+    cancelEvent.SetEventObject( this );
+    GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog
 
     closing.DeleteObject(this);
-
-       return FALSE;
-}
-
-void wxDialog::OnCloseWindow(wxCloseEvent& event)
-{
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
 }
 
 // Destroy the window (delayed, if a managed window)
index a961e3616f8e4a180f5f3a5546586744fb8c0c11..b370f7b10848343e1cb0f1cc60c026184c61c17d 100644 (file)
@@ -371,23 +371,10 @@ void wxFrame::OnActivate(wxActivateEvent& event)
   }
 }
 
-// The default implementation for the close window event - calls
-// OnClose for backward compatibility.
-
+// The default implementation for the close window event.
 void wxFrame::OnCloseWindow(wxCloseEvent& event)
 {
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
-}
-
-bool wxFrame::OnClose()
-{
-    return TRUE;
+    this->Destroy();
 }
 
 // Destroy the window (delayed, if a managed window)
index a92874b33669dc15650d93c4877886130f9f97ed..ddbfb8402ffb5140bb2ffe808dda731aef14ba47 100644 (file)
@@ -128,7 +128,7 @@ struct mfPLACEABLEHEADER {
 /*
  * Pass filename of existing non-placeable metafile, and bounding box.
  * Adds a placeable metafile header, sets the mapping mode to anisotropic,
- * and sets the window origin and extent to mimic the MM_TEXT mapping mode.
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
  *
  */
  
@@ -198,7 +198,7 @@ bool wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, i
 
   modeRecord->rdSize = 4;
   modeRecord->rdFunction = META_SETMAPMODE;
-  modeRecord->rdParm[0] = MM_ANISOTROPIC;
+  modeRecord->rdParm[0] = wxMM_ANISOTROPIC;
 
   originRecord->rdSize = 5;
   originRecord->rdFunction = META_SETWINDOWORG;
index 10ec3976dd283405badbaea6bddbe998945603a2..a54fd3331d66f33a34bf6fa0579c9e64a314eaae 100644 (file)
@@ -1110,7 +1110,10 @@ bool wxWindow::Close(bool force)
 {
   wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId);
   event.SetEventObject(this);
+#if WXWIN_COMPATIBILITY
   event.SetForce(force);
+#endif
+  event.SetCanVeto(!force);
 
   return GetEventHandler()->ProcessEvent(event);
 }
index 4c60da90edd8cf794112c2a1e24abeaaaab77c12..319fe79b5f914eed5e0b39f29420978d0bb77d42 100644 (file)
@@ -61,7 +61,7 @@ wxDC::wxDC(void)
     m_scaleX = 1.0;
     m_scaleY = 1.0;
     
-    m_mappingMode = MM_TEXT;
+    m_mappingMode = wxMM_TEXT;
     m_needComputeScaleX = FALSE;
     m_needComputeScaleY = FALSE;
     
@@ -238,24 +238,24 @@ void wxDC::SetMapMode( int mode )
 {
     switch (mode) 
     {
-    case MM_TWIPS:
+    case wxMM_TWIPS:
         SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
         break;
-    case MM_POINTS:
+    case wxMM_POINTS:
         SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y );
         break;
-    case MM_METRIC:
+    case wxMM_METRIC:
         SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y );
         break;
-    case MM_LOMETRIC:
+    case wxMM_LOMETRIC:
         SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 );
         break;
     default:
-    case MM_TEXT:
+    case wxMM_TEXT:
         SetLogicalScale( 1.0, 1.0 );
         break;
     };
-    if (mode != MM_TEXT)
+    if (mode != wxMM_TEXT)
     {
         m_needComputeScaleX = TRUE;
         m_needComputeScaleY = TRUE;
index d67152d0fcb8ea5d02273d06f5c3a3429d8c49fa..84712cd4e1cf962806ef53833d3f30da4547d5f7 100644 (file)
@@ -564,37 +564,34 @@ void wxDialog::OnCancel(wxCommandEvent& WXUNUSED(event))
     }
 }
 
-bool wxDialog::OnClose()
+void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
-    // Behaviour changed in 2.0: we'll send a Cancel message by default,
+    // We'll send a Cancel message by default,
     // which may close the dialog.
-    // Check for looping if the Cancel event handler calls Close()
-    
+    // Check for looping if the Cancel event handler calls Close().
+
+    // Note that if a cancel button and handler aren't present in the dialog,
+    // nothing will happen when you close the dialog via the window manager, or
+    // via Close().
+    // We wouldn't want to destroy the dialog by default, since the dialog may have been
+    // created on the stack.
+    // However, this does mean that calling dialog->Close() won't delete the dialog
+    // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be
+    // sure to destroy the dialog.
+    // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
+
     static wxList closing;
     
     if ( closing.Member(this) )
-        return FALSE;
+        return;
     
     closing.Append(this);
     
     wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
     cancelEvent.SetEventObject( this );
-    GetEventHandler()->ProcessEvent(cancelEvent);
-    
-    closing.DeleteObject(this);
-    
-    return FALSE;
-}
+    GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog
 
-void wxDialog::OnCloseWindow(wxCloseEvent& event)
-{
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
+    closing.DeleteObject(this);
 }
 
 // Destroy the window (delayed, if a managed window)
index d12ac787a5b85fd337df3628dfd01cf6697e5b97..024c031119bdd08bcb27c906cdf73f9bf718683b 100644 (file)
@@ -782,23 +782,12 @@ void wxFrame::OnActivate(wxActivateEvent& event)
     }
 }
 
-// The default implementation for the close window event - calls
+// The default implementation for the close window event.
 // OnClose for backward compatibility.
 
 void wxFrame::OnCloseWindow(wxCloseEvent& event)
 {
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
-}
-
-bool wxFrame::OnClose()
-{
-    return TRUE;
+    this->Destroy();
 }
 
 // Destroy the window (delayed, if a managed window)
index 7380a03402e554f4d69f940eec72da50ee43b3bf..e8c45e00e3e05d7ed9baabd170eebb8c791713e4 100644 (file)
@@ -128,7 +128,7 @@ struct mfPLACEABLEHEADER {
 /*
  * Pass filename of existing non-placeable metafile, and bounding box.
  * Adds a placeable metafile header, sets the mapping mode to anisotropic,
- * and sets the window origin and extent to mimic the MM_TEXT mapping mode.
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
  *
  */
  
@@ -198,7 +198,7 @@ bool wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, i
 
   modeRecord->rdSize = 4;
   modeRecord->rdFunction = META_SETMAPMODE;
-  modeRecord->rdParm[0] = MM_ANISOTROPIC;
+  modeRecord->rdParm[0] = wxMM_ANISOTROPIC;
 
   originRecord->rdSize = 5;
   originRecord->rdFunction = META_SETWINDOWORG;
index a37d58c0bd77caafa0a96baec67e1ca91187fa90..5af5f8760268eb557d7da4dd74f2c7b101202ff0 100644 (file)
@@ -2064,7 +2064,10 @@ bool wxWindow::Close(bool force)
 {
     wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId);
     event.SetEventObject(this);
+#if WXWIN_COMPATIBILITY
     event.SetForce(force);
+#endif
+    event.SetCanVeto(!force);
     
     return GetEventHandler()->ProcessEvent(event);
 }
index 4811882fac6e9d2ddb26b0b71fa56daa4a0c932a..9338e438fd4beca6c7ed2ba86ea82f6c2bc95065 100644 (file)
 #include <io.h>
 #include <windows.h>
 
+#if defined(__MWERKS__)
+#include <wingdi.h>
+#include <winuser.h>
+#endif
+
 #ifndef __TWIN32__
 #ifdef __GNUWIN32__
 #include "wx/msw/gnuwin32/extra.h"
index 73f33909521e59a5f224378bc019e6c523a04fd0..45e37fc9a2c63bd552ba64ead296bd16c43ca3cf 100644 (file)
@@ -92,7 +92,7 @@ wxDC::wxDC(void)
   m_signY = 1;
   m_systemScaleX = 1.0;
   m_systemScaleY = 1.0;
-  m_mappingMode = MM_TEXT;
+  m_mappingMode = wxMM_TEXT;
   m_bOwnsDC = FALSE;
   m_hDC = 0;
   m_clipping = FALSE;
@@ -998,32 +998,32 @@ void wxDC::SetMapMode(int mode)
 
   switch (mode)
   {
-    case MM_TWIPS:
+    case wxMM_TWIPS:
     {
       m_logicalScaleX = (twips2mm * mm2pixelsX);
       m_logicalScaleY = (twips2mm * mm2pixelsY);
       break;
     }
-    case MM_POINTS:
+    case wxMM_POINTS:
     {
       m_logicalScaleX = (pt2mm * mm2pixelsX);
       m_logicalScaleY = (pt2mm * mm2pixelsY);
       break;
     }
-    case MM_METRIC:
+    case wxMM_METRIC:
     {
       m_logicalScaleX = mm2pixelsX;
       m_logicalScaleY = mm2pixelsY;
       break;
     }
-    case MM_LOMETRIC:
+    case wxMM_LOMETRIC:
     {
       m_logicalScaleX = (mm2pixelsX/10.0);
       m_logicalScaleY = (mm2pixelsY/10.0);
       break;
     }
     default:
-    case MM_TEXT:
+    case wxMM_TEXT:
     {
       m_logicalScaleX = 1.0;
       m_logicalScaleY = 1.0;
index 43a6be9b8d7a0c8f6fe33be1dab8b7a2a187fc08..23593c665aa3e2e6dd36dd02fe2b46cd823a8cbb 100644 (file)
@@ -108,7 +108,7 @@ wxPrinterDC::wxPrinterDC(const wxString& driver_name, const wxString& device_nam
    {
 //     int width = GetDeviceCaps(m_hDC, VERTRES);
 //     int height = GetDeviceCaps(m_hDC, HORZRES);
-     SetMapMode(MM_TEXT);
+     SetMapMode(wxMM_TEXT);
    }
   SetBrush(*wxBLACK_BRUSH);
   SetPen(*wxBLACK_PEN);
@@ -124,7 +124,7 @@ wxPrinterDC::wxPrinterDC(WXHDC theDC)
  {
 //     int width = GetDeviceCaps(m_hDC, VERTRES);
 //     int height = GetDeviceCaps(m_hDC, HORZRES);
-    SetMapMode(MM_TEXT);
+    SetMapMode(wxMM_TEXT);
   }
   SetBrush(*wxBLACK_BRUSH);
   SetPen(*wxBLACK_PEN);
index 9f5bbaa74b521b3cd9d6ce14450277440ca3eb0a..af5d9461e7786d7df693473efce4cbf95247ac38 100644 (file)
@@ -554,26 +554,42 @@ void wxDialog::OnCancel(wxCommandEvent& event)
     }
 }
 
-bool wxDialog::OnClose(void)
+void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
-    // Behaviour changed in 2.0: we'll send a Cancel message by default,
+    // We'll send a Cancel message by default,
     // which may close the dialog.
-    // Check for looping if the Cancel event handler calls Close()
+    // Check for looping if the Cancel event handler calls Close().
+
+    // Note that if a cancel button and handler aren't present in the dialog,
+    // nothing will happen when you close the dialog via the window manager, or
+    // via Close().
+    // We wouldn't want to destroy the dialog by default, since the dialog may have been
+    // created on the stack.
+    // However, this does mean that calling dialog->Close() won't delete the dialog
+    // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be
+    // sure to destroy the dialog.
+    // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
 
     static wxList closing;
-
+    
     if ( closing.Member(this) )
-        return FALSE;
-
+        return;
+    
     closing.Append(this);
-
+    
     wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
     cancelEvent.SetEventObject( this );
-    GetEventHandler()->ProcessEvent(cancelEvent);
+    GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog
 
     closing.DeleteObject(this);
+}
 
-    return FALSE;
+// Destroy the window (delayed, if a managed window)
+bool wxDialog::Destroy(void)
+{
+  if (!wxPendingDelete.Member(this))
+    wxPendingDelete.Append(this);
+  return TRUE;
 }
 
 void wxDialog::OnSize(wxSizeEvent& WXUNUSED(event))
@@ -586,25 +602,6 @@ void wxDialog::OnSize(wxSizeEvent& WXUNUSED(event))
   #endif
 }
 
-void wxDialog::OnCloseWindow(wxCloseEvent& event)
-{
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
-}
-
-// Destroy the window (delayed, if a managed window)
-bool wxDialog::Destroy(void)
-{
-  if (!wxPendingDelete.Member(this))
-    wxPendingDelete.Append(this);
-  return TRUE;
-}
-
 void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& event)
 {
 #if wxUSE_CTL3D
index 3ae1f94dc9f194dcb70e78578a6949ad7d71f407..d1f3e95c77a72d77c8a0373bdd8648392088fcbc 100644 (file)
@@ -134,7 +134,7 @@ int DibWriteFile(LPSTR szFile, LPBITMAPINFOHEADER lpbi)
   bmf.bfReserved1 = 0;
   bmf.bfReserved2 = 0;
   bmf.bfOffBits = sizeof(bmf) + (char far*)(DibPtr(lpbi)) - (char far*)lpbi;
-#if defined( __WATCOMC__) || defined(__VISUALC__) || defined(__SC__) || defined(__SALFORDC__)
+#if defined( __WATCOMC__) || defined(__VISUALC__) || defined(__SC__) || defined(__SALFORDC__) || defined(__MWERKS__)
   if (_hwrite(fh, (LPCSTR)(&bmf), sizeof(bmf))<0 ||
   _hwrite(fh, (LPCSTR)lpbi, size)<0) {
     _lclose(fh);
index d849fbc4a95c9d329e65809108c5d26e51b2d37d..368784f45910db2fb31d416f11b60f0a37f33312 100644 (file)
@@ -859,23 +859,10 @@ void wxFrame::OnActivate(wxActivateEvent& event)
   }
 }
 
-// The default implementation for the close window event - calls
-// OnClose for backward compatibility.
-
+// The default implementation for the close window event.
 void wxFrame::OnCloseWindow(wxCloseEvent& event)
 {
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
-}
-
-bool wxFrame::OnClose(void)
-{
-    return TRUE;
+    this->Destroy();
 }
 
 // Destroy the window (delayed, if a managed window)
index d750762bb69ac4df2a46b97fc9edc80dd30b4adb..4a7b28900fcd01cb4e7c4d5c5c8efa167e6c3136 100644 (file)
@@ -54,7 +54,7 @@ IMPLEMENT_ABSTRACT_CLASS(wxMetafileDC, wxDC)
 wxMetafileRefData::wxMetafileRefData(void)
 {
     m_metafile = 0;
-    m_windowsMappingMode = MM_ANISOTROPIC;
+    m_windowsMappingMode = wxMM_ANISOTROPIC;
 }
 
 wxMetafileRefData::~wxMetafileRefData(void)
@@ -70,7 +70,7 @@ wxMetafile::wxMetafile(const wxString& file)
 {
     m_refData = new wxMetafileRefData;
 
-    M_METAFILEDATA->m_windowsMappingMode = MM_ANISOTROPIC;
+    M_METAFILEDATA->m_windowsMappingMode = wxMM_ANISOTROPIC;
     M_METAFILEDATA->m_metafile = 0;
     if (!file.IsNull() && (file.Cmp("") == 0))
         M_METAFILEDATA->m_metafile = (WXHANDLE) GetMetaFile(file);
@@ -154,9 +154,9 @@ wxMetafileDC::wxMetafileDC(const wxString& file)
   m_ok = (m_hDC != (WXHDC) 0) ;
 
   // Actual Windows mapping mode, for future reference.
-  m_windowsMappingMode = MM_TEXT;
-  
-  SetMapMode(MM_TEXT); // NOTE: does not set HDC mapmode (this is correct)
+  m_windowsMappingMode = wxMM_TEXT;
+
+  SetMapMode(wxMM_TEXT); // NOTE: does not set HDC mapmode (this is correct)
 }
 
 // New constructor that takes origin and extent. If you use this, don't
@@ -176,9 +176,9 @@ wxMetafileDC::wxMetafileDC(const wxString& file, int xext, int yext, int xorg, i
   ::SetWindowExtEx((HDC) m_hDC,xext,yext, NULL);
 
   // Actual Windows mapping mode, for future reference.
-  m_windowsMappingMode = MM_ANISOTROPIC;
-  
-  SetMapMode(MM_TEXT); // NOTE: does not set HDC mapmode (this is correct)
+  m_windowsMappingMode = wxMM_ANISOTROPIC;
+
+  SetMapMode(wxMM_TEXT); // NOTE: does not set HDC mapmode (this is correct)
 }
 
 wxMetafileDC::~wxMetafileDC(void)
@@ -237,32 +237,32 @@ void wxMetafileDC::SetMapMode(int mode)
 
   switch (mode)
   {
-    case MM_TWIPS:
+    case wxMM_TWIPS:
     {
       m_logicalScaleX = (float)(twips2mm * mm2pixelsX);
       m_logicalScaleY = (float)(twips2mm * mm2pixelsY);
       break;
     }
-    case MM_POINTS:
+    case wxMM_POINTS:
     {
       m_logicalScaleX = (float)(pt2mm * mm2pixelsX);
       m_logicalScaleY = (float)(pt2mm * mm2pixelsY);
       break;
     }
-    case MM_METRIC:
+    case wxMM_METRIC:
     {
       m_logicalScaleX = mm2pixelsX;
       m_logicalScaleY = mm2pixelsY;
       break;
     }
-    case MM_LOMETRIC:
+    case wxMM_LOMETRIC:
     {
       m_logicalScaleX = (float)(mm2pixelsX/10.0);
       m_logicalScaleY = (float)(mm2pixelsY/10.0);
       break;
     }
     default:
-    case MM_TEXT:
+    case wxMM_TEXT:
     {
       m_logicalScaleX = 1.0;
       m_logicalScaleY = 1.0;
@@ -304,7 +304,7 @@ struct mfPLACEABLEHEADER {
 /*
  * Pass filename of existing non-placeable metafile, and bounding box.
  * Adds a placeable metafile header, sets the mapping mode to anisotropic,
- * and sets the window origin and extent to mimic the MM_TEXT mapping mode.
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
  *
  */
  
index ddda342c66c1bdb9c30137b1dc5465fdbac857fc..ff224f849206b2c3a636c8e68709493807f20735 100644 (file)
@@ -4201,7 +4201,9 @@ bool wxWindow::Close(bool force)
 {
     wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId);
     event.SetEventObject(this);
+#if WXWIN_COMPATIBILITY
     event.SetForce(force);
+#endif
     event.SetCanVeto(!force);
 
     return (GetEventHandler()->ProcessEvent(event) && !event.GetVeto());
index 4cfe7305cc064d5075db6648e26af22e27b31ef3..e56f268e350aa16064f0b378342df62570d1f2db 100644 (file)
@@ -63,7 +63,7 @@ wxDC::wxDC(void)
   m_scaleX = 1.0;
   m_scaleY = 1.0;
   
-  m_mappingMode = MM_TEXT;
+  m_mappingMode = wxMM_TEXT;
   m_needComputeScaleX = FALSE;
   m_needComputeScaleY = FALSE;
   
@@ -218,24 +218,24 @@ void wxDC::SetMapMode( int mode )
 {
   switch (mode) 
   {
-    case MM_TWIPS:
+    case wxMM_TWIPS:
       SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
       break;
-    case MM_POINTS:
+    case wxMM_POINTS:
       SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y );
       break;
-    case MM_METRIC:
+    case wxMM_METRIC:
       SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y );
       break;
-    case MM_LOMETRIC:
+    case wxMM_LOMETRIC:
       SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 );
       break;
     default:
-    case MM_TEXT:
+    case wxMM_TEXT:
       SetLogicalScale( 1.0, 1.0 );
       break;
   };
-  if (mode != MM_TEXT)
+  if (mode != wxMM_TEXT)
   {
     m_needComputeScaleX = TRUE;
     m_needComputeScaleY = TRUE;
index 3042b1f1ebde116cf3f04bb64f15e1c008d7c9d1..c486c876cbed6237d832cf043be32a4d884c4d00 100644 (file)
@@ -247,37 +247,34 @@ void wxDialog::OnCancel(wxCommandEvent& event)
     }
 }
 
-bool wxDialog::OnClose()
+void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
-       // Behaviour changed in 2.0: we'll send a Cancel message by default,
+    // We'll send a Cancel message by default,
     // which may close the dialog.
-    // Check for looping if the Cancel event handler calls Close()
+    // Check for looping if the Cancel event handler calls Close().
+
+    // Note that if a cancel button and handler aren't present in the dialog,
+    // nothing will happen when you close the dialog via the window manager, or
+    // via Close().
+    // We wouldn't want to destroy the dialog by default, since the dialog may have been
+    // created on the stack.
+    // However, this does mean that calling dialog->Close() won't delete the dialog
+    // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be
+    // sure to destroy the dialog.
+    // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
 
     static wxList closing;
-
+    
     if ( closing.Member(this) )
-        return FALSE;
-
+        return;
+    
     closing.Append(this);
-
-       wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
-       cancelEvent.SetEventObject( this );
-       GetEventHandler()->ProcessEvent(cancelEvent);
+    
+    wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
+    cancelEvent.SetEventObject( this );
+    GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog
 
     closing.DeleteObject(this);
-
-       return FALSE;
-}
-
-void wxDialog::OnCloseWindow(wxCloseEvent& event)
-{
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
 }
 
 // Destroy the window (delayed, if a managed window)
index cd830e4f10d68c81bc3c59b27127c8ed42d7fa6f..f371fe0724b69302927fed3d3c74979f03aa4b35 100644 (file)
@@ -367,23 +367,10 @@ void wxFrame::OnActivate(wxActivateEvent& event)
   }
 }
 
-// The default implementation for the close window event - calls
-// OnClose for backward compatibility.
-
+// The default implementation for the close window event.
 void wxFrame::OnCloseWindow(wxCloseEvent& event)
 {
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
-}
-
-bool wxFrame::OnClose()
-{
-    return TRUE;
+    this->Destroy();
 }
 
 // Destroy the window (delayed, if a managed window)
index ed842eb30b744dd15abd56b201472b5671c9f2ba..dce26c84da3b919aef81d4d1b84bb874d4ff2a0a 100644 (file)
@@ -1113,7 +1113,10 @@ bool wxWindow::Close(bool force)
 {
   wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId);
   event.SetEventObject(this);
+#if WXWIN_COMPATIBILITY
   event.SetForce(force);
+#endif
+  event.SetCanVeto(!force);
 
   return GetEventHandler()->ProcessEvent(event);
 }
index 642dc1edc56d18b4258eaf296c045fb90c39ffdd..2c1c613595e27d5a9f17345e534f8dda57a4e3f3 100644 (file)
@@ -61,7 +61,7 @@ wxDC::wxDC(void)
   m_scaleX = 1.0;
   m_scaleY = 1.0;
   
-  m_mappingMode = MM_TEXT;
+  m_mappingMode = wxMM_TEXT;
   m_needComputeScaleX = FALSE;
   m_needComputeScaleY = FALSE;
   
@@ -211,24 +211,24 @@ void wxDC::SetMapMode( int mode )
 {
   switch (mode) 
   {
-    case MM_TWIPS:
+    case wxMM_TWIPS:
       SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
       break;
-    case MM_POINTS:
+    case wxMM_POINTS:
       SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y );
       break;
-    case MM_METRIC:
+    case wxMM_METRIC:
       SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y );
       break;
-    case MM_LOMETRIC:
+    case wxMM_LOMETRIC:
       SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 );
       break;
     default:
-    case MM_TEXT:
+    case wxMM_TEXT:
       SetLogicalScale( 1.0, 1.0 );
       break;
   };
-  if (mode != MM_TEXT)
+  if (mode != wxMM_TEXT)
   {
     m_needComputeScaleX = TRUE;
     m_needComputeScaleY = TRUE;
index e2bdb7c984596f4184b3ec7e3e6b7b6530c6bbe3..bf3cae5e352be74e0494d910408c79df3bdbac97 100644 (file)
@@ -237,37 +237,34 @@ void wxDialog::OnCancel(wxCommandEvent& event)
     }
 }
 
-bool wxDialog::OnClose()
+void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
-       // Behaviour changed in 2.0: we'll send a Cancel message by default,
+    // We'll send a Cancel message by default,
     // which may close the dialog.
-    // Check for looping if the Cancel event handler calls Close()
+    // Check for looping if the Cancel event handler calls Close().
+
+    // Note that if a cancel button and handler aren't present in the dialog,
+    // nothing will happen when you close the dialog via the window manager, or
+    // via Close().
+    // We wouldn't want to destroy the dialog by default, since the dialog may have been
+    // created on the stack.
+    // However, this does mean that calling dialog->Close() won't delete the dialog
+    // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be
+    // sure to destroy the dialog.
+    // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog.
 
     static wxList closing;
-
+    
     if ( closing.Member(this) )
-        return FALSE;
-
+        return;
+    
     closing.Append(this);
-
-       wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
-       cancelEvent.SetEventObject( this );
-       GetEventHandler()->ProcessEvent(cancelEvent);
+    
+    wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
+    cancelEvent.SetEventObject( this );
+    GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog
 
     closing.DeleteObject(this);
-
-       return FALSE;
-}
-
-void wxDialog::OnCloseWindow(wxCloseEvent& event)
-{
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
 }
 
 // Destroy the window (delayed, if a managed window)
index a961e3616f8e4a180f5f3a5546586744fb8c0c11..c0b6d6b932a25f7cd85e4c628f3ba4de886bee6e 100644 (file)
@@ -371,23 +371,11 @@ void wxFrame::OnActivate(wxActivateEvent& event)
   }
 }
 
-// The default implementation for the close window event - calls
-// OnClose for backward compatibility.
+// The default implementation for the close window event.
 
 void wxFrame::OnCloseWindow(wxCloseEvent& event)
 {
-    // Compatibility
-    if ( GetEventHandler()->OnClose() || !event.CanVeto())
-    {
-        this->Destroy();
-    }
-    else
-        event.Veto(TRUE);
-}
-
-bool wxFrame::OnClose()
-{
-    return TRUE;
+    this->Destroy();
 }
 
 // Destroy the window (delayed, if a managed window)
index a92874b33669dc15650d93c4877886130f9f97ed..03c29bcb7953ad525471bb1ffc39e423f577a24d 100644 (file)
@@ -128,7 +128,7 @@ struct mfPLACEABLEHEADER {
 /*
  * Pass filename of existing non-placeable metafile, and bounding box.
  * Adds a placeable metafile header, sets the mapping mode to anisotropic,
- * and sets the window origin and extent to mimic the MM_TEXT mapping mode.
+ * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode.
  *
  */
  
index 8a4e50edb7f629147397208203e6cd149467ddee..ef493b14ad1b43d4707ea874251b9219eccf6bea 100644 (file)
@@ -1125,7 +1125,10 @@ bool wxWindow::Close(bool force)
 {
   wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId);
   event.SetEventObject(this);
+#if WXWIN_COMPATIBILITY
   event.SetForce(force);
+#endif
+  event.SetCanVeto(!force);
 
   return GetEventHandler()->ProcessEvent(event);
 }
index 61dbed5776c3f85eba07fd920c45027e9fa67d69..a6a17293a530c31b0ae5dd3d6116f07330daa68c 100644 (file)
@@ -340,10 +340,8 @@ bool wxResourceManager::ShowResourceEditor(bool show, wxWindow *WXUNUSED(parent)
   else
   {
     wxFrame *fr = m_editorFrame;
-    if (m_editorFrame->OnClose())
+    if (m_editorFrame->Close())
     {
-      fr->Show(FALSE);
-      delete fr;
       m_editorFrame = NULL;
       m_editorPanel = NULL;
     }
@@ -2076,6 +2074,7 @@ BEGIN_EVENT_TABLE(wxResourceEditorFrame, wxFrame)
     EVT_MENU(RESED_DELETE, wxResourceEditorFrame::OnDeleteSelection)
     EVT_MENU(RESED_RECREATE, wxResourceEditorFrame::OnRecreateSelection)
     EVT_MENU(RESED_TEST, wxResourceEditorFrame::OnTest)
+    EVT_CLOSE(wxResourceEditorFrame::OnCloseWindow)
 END_EVENT_TABLE()
 
 wxResourceEditorFrame::wxResourceEditorFrame(wxResourceManager *resMan, wxFrame *parent, const wxString& title,
@@ -2157,12 +2156,15 @@ void wxResourceEditorFrame::OnRecreateSelection(wxCommandEvent& WXUNUSED(event))
       manager->RecreateSelection();
 }
 
-bool wxResourceEditorFrame::OnClose()
+void wxResourceEditorFrame::OnCloseWindow(wxCloseEvent& event)
 {
   if (manager->Modified())
   {
-  if (!manager->Clear(TRUE, FALSE))
-     return FALSE;
+     if (!manager->Clear(TRUE, FALSE))
+     {
+       event.Veto();
+       return;
+    }
   }
     
   if (!Iconized())
@@ -2181,7 +2183,7 @@ bool wxResourceEditorFrame::OnClose()
   manager->SetEditorFrame(NULL);
   manager->SetEditorToolBar(NULL);
 
-  return TRUE;
+  this->Destroy();
 }
 
 /*
index 8a8c6c2b3e5d2bfc9a7e138e88331e96e16cc8bc..5a87b10d069a9c7c8cb8bba60038ac8686c550ed 100644 (file)
@@ -357,7 +357,7 @@ class wxResourceEditorFrame: public wxFrame
     long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
   ~wxResourceEditorFrame();
 
-  bool OnClose();
+  void OnCloseWindow(wxCloseEvent& event);
 
   void OnNew(wxCommandEvent& event);
   void OnOpen(wxCommandEvent& event);
index 6b4fc01e6eb1ca05d8a83e1631c97be6f84ebaf1..7a9735c98bb1c34adc9a714220781665e2ec0796 100644 (file)
@@ -78,11 +78,6 @@ void MyFrame::OnExit(wxCommandEvent& event)
     Destroy();
 }
 
-bool MyFrame::OnClose(void)
-{
-    return TRUE;
-}
-
 BEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas)
     EVT_SIZE(TestGLCanvas::OnSize)
     EVT_PAINT(TestGLCanvas::OnPaint)
index 5ae1fd9f7f19d4c50da4ce429fd63a4ea7e81c9f..74d3219ecef44bb61f4ca0389f4591eb807c4f64 100644 (file)
@@ -30,7 +30,6 @@ public:
         long style = wxDEFAULT_FRAME_STYLE);
 
     void OnExit(wxCommandEvent& event);
-    bool OnClose(void);
 public:
     TestGLCanvas*    m_canvas;
 
index fe456fa33da98b31c625ed7f1ff8bcd99e6676b8..3d9d966655099c005793266f1cc2a21be4bbe6a6 100644 (file)
@@ -298,12 +298,6 @@ void MyFrame::OnExit(wxCommandEvent& event)
     Destroy();
 }
 
-bool MyFrame::OnClose(void)
-{
-    return TRUE;
-}
-
-
 /*
  * TestGLCanvas implementation
  */
index 0a747deb74c43ffbf2f580943e62daf501725b95..e84098c56b33a0c25f282322128464ca76e26257 100644 (file)
@@ -42,7 +42,6 @@ public:
         long style = wxDEFAULT_FRAME_STYLE);
 
     void OnExit(wxCommandEvent& event);
-    bool OnClose(void);
 public:
     TestGLCanvas*    m_canvas;
 
index aed5156e5b21e0121c40522a86bf448c414cc5b1..f4a118daa2e4903c989b63c3d27b22bf29b5eae0 100644 (file)
@@ -76,11 +76,6 @@ void MyFrame::OnExit(wxCommandEvent& event)
     Destroy();
 }
 
-bool MyFrame::OnClose(void)
-{
-    return TRUE;
-}
-
 BEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas)
     EVT_SIZE(TestGLCanvas::OnSize)
     EVT_PAINT(TestGLCanvas::OnPaint)
index 5f173115137a198d7da62a7b2b3476e7cb49db16..d94c6a8565def96902cb53e97a5f9c133e1f369f 100644 (file)
@@ -53,7 +53,6 @@ public:
         long style = wxDEFAULT_FRAME_STYLE);
 
     void OnExit(wxCommandEvent& event);
-    bool OnClose(void);
 public:
     TestGLCanvas*    m_canvas;
 
index b5aff25ab18adc7c31ed6e8721e79e55fa41fbf6..b9e28cc1592f7de8c0910f9613b6567d74f1d732 100644 (file)
@@ -103,8 +103,7 @@ NPError   wxPluginApp::NPP_Destroy(NPP instance, NPSavedData** save)
     wxPluginFrame *frame = FindFrame(instance);
     if ( frame )
     {
-        frame->OnClose();
-        delete frame;
+        frame->Close();
     }
     return NPERR_NO_ERROR;
 }
index f58c265293e66cbae496ec23697fa12cc7902ed7..d6172e37dbb00a33a641dee6501ce2420f3e2928 100644 (file)
@@ -143,6 +143,7 @@ IMPLEMENT_CLASS(MyFrame, wxDocParentFrame)
 BEGIN_EVENT_TABLE(MyFrame, wxDocParentFrame)
     EVT_MENU(OGLEDIT_ABOUT, MyFrame::OnAbout)
     EVT_SIZE(MyFrame::OnSize)
+    EVT_CLOSE(MyFrame::OnCloseWindow)
 END_EVENT_TABLE()
 
 MyFrame::MyFrame(wxDocManager *manager, wxFrame *frame, const wxString& title,
@@ -174,15 +175,15 @@ void MyFrame::OnSize(wxSizeEvent& event)
   }
 }
 
-bool MyFrame::OnClose(void)
+void MyFrame::OnCloseWindow(wxCloseEvent& event)
 {
   if (wxDocParentFrame::OnClose())
   {
     wxOGLCleanUp();
-    return TRUE;
+    this->Destroy();
   }
   else
-    return FALSE;
+    event.Veto();
 }
 
 // Intercept menu commands
index 3f0408c9497930d0ed0d81f5a9264cb336e8eeab..62dfb9bced0c8d0800748df81345e423725ea30a 100644 (file)
@@ -55,7 +55,7 @@ class MyFrame: public wxDocParentFrame
 
   MyCanvas *CreateCanvas(wxView *view, wxFrame *parent);
   void OnSize(wxSizeEvent& event);
-  bool OnClose(void);
+  void OnCloseWindow(wxCloseEvent& event);
   void OnAbout(wxCommandEvent& event);
 
 DECLARE_EVENT_TABLE()
index d99f91343994965869c7d2351d82525d4d8b8c4f..e115c0d4dc4ace1205f42eee81f8bd46c47d4ce6 100644 (file)
@@ -1026,8 +1026,7 @@ bool Tex2RTFConnection::OnExecute(const wxString& topic, char *data, int size, i
     }
     else if (strcmp(firstArg, "EXIT") == 0)
     {
-      if (frame && frame->OnClose())
-        delete frame;
+      if (frame) frame->Close();
     }
     else if (strcmp(firstArg, "MINIMIZE") == 0 || strcmp(firstArg, "ICONIZE") == 0)
     {