/* EmWindow is the cross-platform object representing the window that displays the emulation. It is not the actual thing that appears on the monitor as a window, but merely deals with cross-platform aspects of handling it, such as updating its contents, changing skins, etc. EmWindow handles all the cross-platform issues. It can deal with the upper-level parts of updating the LCD area, wiggling the window if the vibrator is going, changing skins, etc. EmWindow manages most of the platform-specific aspects by defining HostFoo methods, which are then defined differently on each platform. These HostFoo methods are implemented in EmWindow.cpp. EmWindow is also defined in EmWindow.cpp, and holds any platform-specific data (such as the HWND on Windows, etc.). It declares and implements any support functions needed on that particular platform, but which can't be declared in EmWindow because either not all platforms need those functions, or they involve platform-specific types. One creates a window by calling "window = new EmWindow;" followed by "window->WindowInit();". Cross-platform code can then call high-level functions in EmWindow such as HandleUpdate and HandlePen. Platform-specific code can perform platform-specific operations. When it's time to close the window, call "window->WindowDispose();" followed by "delete window;" */