]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/renderer.tex
added very preliminary wxRenderer documentation
[wxWidgets.git] / docs / latex / wx / renderer.tex
1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 %% Name: renderer.tex
3 %% Purpose: wxRenderer and wxRendererNative documentation
4 %% Author: Vadim Zeitlin
5 %% Modified by:
6 %% Created: 06.08.03
7 %% RCS-ID: $Id$
8 %% Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
9 %% License: wxWindows license
10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
12 \section{\class{wxRenderer}}\label{wxrenderer}
13
14 First, a brief introduction into what is wxRenderer and why is it needed.
15
16 Usually wxWindows uses the underlying low level GUI system to draw all the
17 controls -- this is what we mean when we say that it is a ``native'' framework.
18 However not all controls exist under all (or even any) platforms and in this
19 case wxWindows provides a default, generic, implementation of them written in
20 wxWindows itself.
21
22 These controls however don't have the native appearance if only the standard
23 line drawing and other graphics primitives are used if only because the native
24 appearance is different under different platforms while the lines are always
25 drawn in the same way.
26
27 This is why we have renderers: wxRenderer is a class which virtualizes the
28 drawing, i.e. it abstracts the drawing operations and allows you to draw a,
29 say, button, without caring about how exactly this is done. Of course, as we
30 can draw the button differently in different renderers, this also allows us to
31 emulate the native look and feel.
32
33
34 So the renderers work by exposing a big set of high-level drawing functions
35 which are used by the generic controls. There is always a default global
36 renderer but it may be changed or extended by the user, see
37 \helpref{Render sample}{samplerender}.
38
39