Finished adding @tableofcontents to all overviews in the manual.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -10,20 +10,22 @@
 | 
			
		||||
 | 
			
		||||
@page overview_helloworld Hello World Example
 | 
			
		||||
 | 
			
		||||
@tableofcontents
 | 
			
		||||
 | 
			
		||||
This page shows a very simple wxWidgets program that can be used as a skeleton
 | 
			
		||||
for your own code. While it does nothing very useful, it introduces a couple of
 | 
			
		||||
important concepts and explains how to write a working wxWidgets application.
 | 
			
		||||
 | 
			
		||||
First, you have to include wxWidgets' header files, of course. This can
 | 
			
		||||
be done on a file by file basis (such as @c wx/window.h) or using one
 | 
			
		||||
global include (@c wx/wx.h) which includes most of the commonly needed headers
 | 
			
		||||
(although not all of them as there are simply too many wxWidgets headers to
 | 
			
		||||
pull in all of them). For the platforms with support for precompiled headers,
 | 
			
		||||
as indicated by @c WX_PRECOMP, this global header is already included by @c
 | 
			
		||||
wx/wxprec.h so we only include it for the other ones:
 | 
			
		||||
First, you have to include wxWidgets' header files, of course. This can be done
 | 
			
		||||
on a file by file basis (such as @c wx/window.h) or using one global include
 | 
			
		||||
(@c wx/wx.h) which includes most of the commonly needed headers (although not
 | 
			
		||||
all of them as there are simply too many wxWidgets headers to pull in all of
 | 
			
		||||
them). For the platforms with support for precompiled headers, as indicated by
 | 
			
		||||
@c WX_PRECOMP, this global header is already included by @c wx/wxprec.h so we
 | 
			
		||||
only include it for the other ones:
 | 
			
		||||
 | 
			
		||||
@code
 | 
			
		||||
//   wxWidgets "Hello world" Program
 | 
			
		||||
// wxWidgets "Hello world" Program
 | 
			
		||||
 | 
			
		||||
// For compilers that support precompilation, includes "wx/wx.h".
 | 
			
		||||
#include <wx/wxprec.h>
 | 
			
		||||
@@ -45,17 +47,16 @@ public:
 | 
			
		||||
};
 | 
			
		||||
@endcode
 | 
			
		||||
 | 
			
		||||
The main window is created by deriving a class from wxFrame and
 | 
			
		||||
giving it a menu and a status bar in its constructor. Also, any class
 | 
			
		||||
that wishes to respond to any "event" (such as mouse clicks or
 | 
			
		||||
messages from the menu or a button) must declare an event table
 | 
			
		||||
using the macro below.
 | 
			
		||||
The main window is created by deriving a class from wxFrame and giving it a
 | 
			
		||||
menu and a status bar in its constructor. Also, any class that wishes to
 | 
			
		||||
respond to any "event" (such as mouse clicks or messages from the menu or a
 | 
			
		||||
button) must declare an event table using the macro below.
 | 
			
		||||
 | 
			
		||||
Finally, the way to react to such events must be done in "handlers".
 | 
			
		||||
In our sample, we react to three menu items, one for our custom menu
 | 
			
		||||
command and two for the standard "Exit" and "About" commands (any program
 | 
			
		||||
should normally implement the latter two). Notice that these handlers
 | 
			
		||||
don't need to be neither virtual nor public.
 | 
			
		||||
Finally, the way to react to such events must be done in "handlers". In our
 | 
			
		||||
sample, we react to three menu items, one for our custom menu command and two
 | 
			
		||||
for the standard "Exit" and "About" commands (any program should normally
 | 
			
		||||
implement the latter two). Notice that these handlers don't need to be neither
 | 
			
		||||
virtual nor public.
 | 
			
		||||
 | 
			
		||||
@code
 | 
			
		||||
class MyFrame: public wxFrame
 | 
			
		||||
@@ -83,20 +84,20 @@ enum
 | 
			
		||||
};
 | 
			
		||||
@endcode
 | 
			
		||||
 | 
			
		||||
Notice that you don't need to define identifiers for the "About" and "Exit"
 | 
			
		||||
We then proceed to actually implement an event table in which the events
 | 
			
		||||
are routed to their respective handler functions in the class MyFrame.
 | 
			
		||||
Notice that you don't need to define identifiers for the "About" and "Exit". We
 | 
			
		||||
then proceed to actually implement an event table in which the events are
 | 
			
		||||
routed to their respective handler functions in the class MyFrame.
 | 
			
		||||
 | 
			
		||||
There are predefined macros for routing all common events, ranging from
 | 
			
		||||
the selection of a list box entry to a resize event when a user resizes
 | 
			
		||||
a window on the screen. If @c wxID_ANY is given as the ID, the given handler will be
 | 
			
		||||
invoked for any event of the specified type, so that you could add just
 | 
			
		||||
one entry in the event table for all menu commands or all button commands etc.
 | 
			
		||||
There are predefined macros for routing all common events, ranging from the
 | 
			
		||||
selection of a list box entry to a resize event when a user resizes a window on
 | 
			
		||||
the screen. If @c wxID_ANY is given as the ID, the given handler will be
 | 
			
		||||
invoked for any event of the specified type, so that you could add just one
 | 
			
		||||
entry in the event table for all menu commands or all button commands etc.
 | 
			
		||||
 | 
			
		||||
The origin of the event can still be distinguished in the event handler as
 | 
			
		||||
the (only) parameter in an event handler is a reference to a wxEvent object,
 | 
			
		||||
which holds various information about the event (such as the ID of and a
 | 
			
		||||
pointer to the class, which emitted the event).
 | 
			
		||||
The origin of the event can still be distinguished in the event handler as the
 | 
			
		||||
(only) parameter in an event handler is a reference to a wxEvent object, which
 | 
			
		||||
holds various information about the event (such as the ID of and a pointer to
 | 
			
		||||
the class, which emitted the event).
 | 
			
		||||
 | 
			
		||||
@code
 | 
			
		||||
wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
 | 
			
		||||
@@ -106,31 +107,32 @@ wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
 | 
			
		||||
wxEND_EVENT_TABLE()
 | 
			
		||||
@endcode
 | 
			
		||||
 | 
			
		||||
As in all programs there must be a "main" function. Under wxWidgets main is implemented
 | 
			
		||||
using this macro, which creates an application instance and starts the program.
 | 
			
		||||
As in all programs there must be a "main" function. Under wxWidgets main is
 | 
			
		||||
implemented using this macro, which creates an application instance and starts
 | 
			
		||||
the program.
 | 
			
		||||
 | 
			
		||||
@code
 | 
			
		||||
wxIMPLEMENT_APP(MyApp)
 | 
			
		||||
@endcode
 | 
			
		||||
 | 
			
		||||
As mentioned above, wxApp::OnInit() is called upon startup and should be
 | 
			
		||||
used to initialize the program, maybe showing a "splash screen" and creating
 | 
			
		||||
the main window (or several). The frame should get a title bar text ("Hello World")
 | 
			
		||||
and a position and start-up size. One frame can also be declared to be the
 | 
			
		||||
top window. Returning @true indicates a successful initialization.
 | 
			
		||||
As mentioned above, wxApp::OnInit() is called upon startup and should be used
 | 
			
		||||
to initialize the program, maybe showing a "splash screen" and creating the
 | 
			
		||||
main window (or several). The frame should get a title bar text ("Hello World")
 | 
			
		||||
and a position and start-up size. One frame can also be declared to be the top
 | 
			
		||||
window. Returning @true indicates a successful initialization.
 | 
			
		||||
 | 
			
		||||
@code
 | 
			
		||||
bool MyApp::OnInit()
 | 
			
		||||
{
 | 
			
		||||
    MyFrame *frame = new MyFrame( "Hello World", wxPoint(50,50), wxSize(450,340) );
 | 
			
		||||
    MyFrame *frame = new MyFrame( "Hello World", wxPoint(50, 50), wxSize(450, 340) );
 | 
			
		||||
    frame->Show( true );
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
@endcode
 | 
			
		||||
 | 
			
		||||
In the constructor of the main window (or later on) we create a menu with our menu
 | 
			
		||||
items as well as a status bar to be shown at the bottom of the main window. Both have
 | 
			
		||||
to be associated with the frame with respective calls.
 | 
			
		||||
In the constructor of the main window (or later on) we create a menu with our
 | 
			
		||||
menu items as well as a status bar to be shown at the bottom of the main
 | 
			
		||||
window. Both have to be associated with the frame with respective calls.
 | 
			
		||||
 | 
			
		||||
@code
 | 
			
		||||
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
 | 
			
		||||
@@ -188,6 +190,7 @@ void MyFrame::OnAbout(wxCommandEvent& event)
 | 
			
		||||
The implementation of custom menu command handler may perform whatever task
 | 
			
		||||
your program needs to do, in this case we will simply show a message from it as
 | 
			
		||||
befits a hello world example:
 | 
			
		||||
 | 
			
		||||
@code
 | 
			
		||||
void MyFrame::OnHello(wxCommandEvent& event)
 | 
			
		||||
{
 | 
			
		||||
@@ -196,8 +199,9 @@ void MyFrame::OnHello(wxCommandEvent& event)
 | 
			
		||||
@endcode
 | 
			
		||||
 | 
			
		||||
Here is the entire program that can be copied and pasted:
 | 
			
		||||
 | 
			
		||||
@code
 | 
			
		||||
//   wxWidgets "Hello world" Program
 | 
			
		||||
// wxWidgets "Hello world" Program
 | 
			
		||||
 | 
			
		||||
// For compilers that support precompilation, includes "wx/wx.h".
 | 
			
		||||
#include <wx/wxprec.h>
 | 
			
		||||
@@ -240,7 +244,7 @@ wxIMPLEMENT_APP(MyApp);
 | 
			
		||||
 | 
			
		||||
bool MyApp::OnInit()
 | 
			
		||||
{
 | 
			
		||||
    MyFrame *frame = new MyFrame( "Hello World", wxPoint(50,50), wxSize(450,340) );
 | 
			
		||||
    MyFrame *frame = new MyFrame( "Hello World", wxPoint(50, 50), wxSize(450, 340) );
 | 
			
		||||
    frame->Show( true );
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
@@ -285,4 +289,3 @@ void MyFrame::OnHello(wxCommandEvent& event)
 | 
			
		||||
@endcode
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user