For C++, use forward class declarations, not header files in non-derived header files
Description:
If you aren't using a derived class, then the class header file should use class forward declarations rather that header files for any parameter or member variable that is a pointer. The source file would then have all the required header files.
For a derived class, it's a bit trickier. Technically, we could do the same as above, but that forces the user to figure out what wxWidget header files to put in their derived header/source file. Those header files need to be generated, lest the user add a control and the derived file breaks because the header file list isn't updated. Alternatively the user could remove a control (or makes it local only) and now the derived class could be include an unused header file. I think for derived classes it would be better to retain the current functionality, in spite of the compiler having to pull in header files that are only used by the generated and derived source files.