+/**
+ @class AutoCaptureMechanism
+
+ AutoCaptureMechanism provides an easy-to-use and adjustable facility to
+ take the screenshots for all controls fully automatically and correctly. It
+ also provides an advanced feature to union screenshots of different
+ states/modes of a control.
+
+ @section tag_filename_convention Screenshot File Name Convention
+
+ All screenshots are generated as PNG files. For a control named wxName, its
+ screenshot file name would be "name.png", e.g. "button.png" for wxButton.
+ This is the protocol with the doxygen document of wxWidgets.
+
+ By default, screenshots are generated under the subdirectory "screenshots"
+ of current working directory. During updating or adding new screenshots,
+ first make sure screenshots are generated correctly, and then copy them to
+ the "docs/doxygen/images" folder directly.
+
+ @section tag_gui_assumption The Assumption of GUI
+
+ Unfortunately, this class have an assumption about the structure of GUI: It
+ must have the following top-down structure:
+
+ wxNotebook->wxPanel->wxSizer->wxControl
+
+ That means, in the wxNotebook associated with this class, controls that
+ needs to be taken screenshots are placed on different panels(for grouping)
+ and laid out by wxSizers.
+
+ @section tag_tutorial Tutorial
+
+ In the construction, you should associate a wxNotebook with this class, in
+ that wxNotebook, controls that needs to be captured are placed on different
+ panels(for grouping).
+
+ When you register controls, you should do it in order: Register the
+ controls on the first panel(using RegisterControl()), and then register a
+ page turn(using RegisterPageTurn()), so this class can turn a page of the
+ wxNotebook to present the second page. And then you register the controls
+ on the second panel, then a page turn, and so on.
+
+ When you are done, simply call CaptureAll(), then screenshots of all
+ controls will be automatically generated.