// Name: devtips.h
// Purpose: Cross-platform development page of the Doxygen manual
// Author: wxWidgets team
-// RCS-ID: $Id$
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
@page page_multiplatform General Cross-Platform Development Tips
-This chapter describes some tips related to cross-platform development.
-
-@li @ref page_multiplatform_includefiles
-@li @ref page_multiplatform_libraries
-@li @ref page_multiplatform_configuration
-@li @ref page_multiplatform_makefiles
-@li @ref page_multiplatform_winresources
-@li @ref page_multiplatform_allocatingobjects
-@li @ref page_multiplatform_architecturedependency
-@li @ref page_multiplatform_conditionalcompilation
-@li @ref page_multiplatform_cpp
-@li @ref page_multiplatform_filehandling
-@li @ref page_multiplatform_reducingerr
-@li @ref page_multiplatform_gui
-@li @ref page_multiplatform_debug
+@tableofcontents
+This chapter describes some tips related to cross-platform development.
-<hr>
@section page_multiplatform_includefiles Include Files
(when all messages have been processed) to actually delete the window, to avoid
problems associated with the GUI sending events to deleted windows.
-Don't create a window on the stack, because this will interfere with delayed
-deletion.
+In general wxWindow-derived objects should always be allocated on the heap
+as wxWidgets will destroy them itself. The only, but important, exception to
+this rule are the modal dialogs, i.e. wxDialog objects which are shown using
+wxDialog::ShowModal() method. They may be allocated on the stack and, indeed,
+usually are local variables to ensure that they are destroyed on scope exit as
+wxWidgets does not destroy them unlike with all the other windows. So while it
+is still possible to allocate modal dialogs on the heap, you should still
+destroy or delete them explicitly in this case instead of relying on wxWidgets
+doing it.
If you decide to allocate a C++ array of objects (such as wxBitmap) that may be
cleaned up by wxWidgets, make sure you delete the array explicitly before