]> git.saurik.com Git - wxWidgets.git/blame - docs/doxygen/overviews/roughguide.h
adding a new topic overview about writing custom widgets; currently there's no offici...
[wxWidgets.git] / docs / doxygen / overviews / roughguide.h
CommitLineData
15b6757b 1/////////////////////////////////////////////////////////////////////////////
c6e29550 2// Name: roughguide.h
15b6757b
FM
3// Purpose: topic overview
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
880efa2a 9/**
36c9828f 10
880efa2a 11@page overview_roughguide A Quick Guide to Writing Applications
36c9828f 12
721a49c7
BP
13To set a wxWidgets application going, you will need to derive a wxApp class and
14override wxApp::OnInit.
a2968d85 15
721a49c7
BP
16An application must have a top-level wxFrame or wxDialog window. Each frame may
17contain one or more instances of classes such as wxPanel, wxSplitterWindow or
18other windows and controls.
a2968d85 19
721a49c7
BP
20A frame can have a wxMenuBar, a wxToolBar, a wxStatusBar, and a wxIcon for when
21the frame is iconized.
a2968d85 22
721a49c7
BP
23A wxPanel is used to place controls (classes derived from wxControl) which are
24used for user interaction. Examples of controls are wxButton, wxCheckBox,
25wxChoice, wxListBox, wxRadioBox, and wxSlider.
a2968d85 26
721a49c7
BP
27Instances of wxDialog can also be used for controls and they have the advantage
28of not requiring a separate frame.
a2968d85
BP
29
30Instead of creating a dialog box and populating it with items, it is possible
721a49c7
BP
31to choose one of the convenient common dialog classes, such as wxMessageDialog
32and wxFileDialog.
a2968d85
BP
33
34You never draw directly onto a window - you use a <em>device context</em> (DC).
721a49c7
BP
35wxDC is the base for wxClientDC, wxPaintDC, wxMemoryDC, wxPostScriptDC,
36wxMemoryDC, wxMetafileDC and wxPrinterDC. If your drawing functions have wxDC
37as a parameter, you can pass any of these DCs to the function, and thus use the
38same code to draw to several different devices. You can draw using the member
39functions of wxDC, such as wxDC::DrawLine and wxDC::DrawText. Control colour on
40a window (wxColour) with brushes (wxBrush) and pens (wxPen).
a2968d85
BP
41
42To intercept events, you add a DECLARE_EVENT_TABLE macro to the window class
43declaration, and put a BEGIN_EVENT_TABLE ... END_EVENT_TABLE block in the
44implementation file. Between these macros, you add event macros which map the
45event (such as a mouse click) to a member function. These might override
721a49c7 46predefined event handlers such as for wxKeyEvent and wxMouseEvent.
a2968d85
BP
47
48Most modern applications will have an on-line, hypertext help system; for this,
721a49c7 49you need wxHelp and the wxHelpController class to control wxHelp.
a2968d85
BP
50
51GUI applications aren't all graphical wizardry. List and hash table needs are
721a49c7 52catered for by wxList and wxHashMap. You will undoubtedly need some
409e6ce4 53platform-independent @ref group_funcmacro_file, and you may find it handy to
721a49c7 54maintain and search a list of paths using wxPathList. There's many
409e6ce4 55@ref group_funcmacro_misc of operating system methods and other functions.
a2968d85 56
adcb6f88 57@see
a2968d85 58
409e6ce4 59@li @ref group_class
a2968d85
BP
60
61*/
36c9828f 62