diff --git a/docs/doxygen/overviews/roughguide.h b/docs/doxygen/overviews/roughguide.h
index c1904d0800..a27c6cbb1d 100644
--- a/docs/doxygen/overviews/roughguide.h
+++ b/docs/doxygen/overviews/roughguide.h
@@ -11,28 +11,39 @@
@tableofcontents
-To set a wxWidgets application going, you will need to derive a wxApp class and
-override wxApp::OnInit.
+@section overview_roughguide_structure Application Structure
-An application must have a top-level wxFrame or wxDialog window. Each frame may
-contain one or more instances of classes such as wxPanel, wxSplitterWindow or
-other windows and controls.
+To set a wxWidgets application going, you will need to derive a wxApp class and
+override wxApp::OnInit() in which you will typically create your application
+main top-level window.
+
+This window can be a wxFrame or a wxDialog and may contain one or more
+instances of classes such as wxPanel, wxSplitterWindow or other windows and
+controls.
A frame can have a wxMenuBar, a wxToolBar, a wxStatusBar, and a wxIcon for when
the frame is iconized.
A wxPanel is used to place controls (classes derived from wxControl) which are
used for user interaction. Examples of controls are wxButton, wxCheckBox,
-wxChoice, wxListBox, wxRadioBox, and wxSlider.
+wxChoice, wxListBox, wxRadioBox, and wxSlider. Such controls need to be
+positioned correctly -- and also repositioned when the top-level window is
+resized by the user -- and to do this you use wxSizer-derived classes, such as
+wxBoxSizer and wxFlexGridSizer, to layout everything correctly.
Instances of wxDialog can also be used for controls and they have the advantage
-of not requiring a separate frame.
+of not requiring a separate panel inside the,.
Instead of creating a dialog box and populating it with items, it is possible
to choose one of the convenient common dialog classes, such as wxMessageDialog
and wxFileDialog.
-You never draw directly onto a window - you use a device context (DC).
+
+@section overview_roughguide_draw Drawing on the Screen
+
+You never draw directly onto a window -- you use either one of the older
+device context (DC) classes or the newer graphics context
+(GC) one, that support features such as alpha transparency or anti-aliasing.
wxDC is the base for wxClientDC, wxPaintDC, wxMemoryDC, wxPostScriptDC,
wxMemoryDC, wxMetafileDC and wxPrinterDC. If your drawing functions have wxDC
as a parameter, you can pass any of these DCs to the function, and thus use the
@@ -40,20 +51,19 @@ same code to draw to several different devices. You can draw using the member
functions of wxDC, such as wxDC::DrawLine and wxDC::DrawText. Control colour on
a window (wxColour) with brushes (wxBrush) and pens (wxPen).
-To intercept events, you add a wxDECLARE_EVENT_TABLE macro to the window class
-declaration, and put a wxBEGIN_EVENT_TABLE ... wxEND_EVENT_TABLE block in the
-implementation file. Between these macros, you add event macros which map the
-event (such as a mouse click) to a member function. These might override
-predefined event handlers such as for wxKeyEvent and wxMouseEvent.
+With wxGraphicsContext, you create it using one of the methods of
+wxGraphicsRenderer and then construct your drawing from wxGraphicsPath objects,
+finally using wxGraphicsContext::StrokePath() or wxGraphicsContext::FillPath().
-Most modern applications will have an on-line, hypertext help system; for this,
-you need wxHelp and the wxHelpController class to control wxHelp.
-GUI applications aren't all graphical wizardry. List and hash table needs are
-catered for by wxList and wxHashMap. You will undoubtedly need some
-platform-independent @ref group_funcmacro_file, and you may find it handy to
-maintain and search a list of paths using wxPathList. There's many
-@ref group_funcmacro_misc of operating system methods and other functions.
+@section overview_roughguide_events Event Handling
+
+GUI programs spend most of their time waiting for the user-initiated events --
+and then processing them. To do it, you use wxEvtHandler::Bind() to specify the
+handler for an event of the given time. Event handlers receive the object
+describing the event, such as wxKeyEvent or wxMouseEvent, and perform whichever
+action corresponds to it. See @ref overview_events "events handling" overview
+for much more information about this subject.
@see @ref group_class