]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/docs/latex/mmedia/topics.tex
fixed bug in generation of thumb scroll events
[wxWidgets.git] / contrib / docs / latex / mmedia / topics.tex
index ece8016fce58c51bab0a111cd2a3a8a6dd20a402..02159265edf31d2b0a1726245f11a008dd3df9d0 100644 (file)
-\chapter{Topic overviews}
+\chapter{Topic overviews}\label{overviews}
 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
 \setfooter{\thepage}{}{}{}{}{\thepage}
 
 The following sections describe particular topics.
 
-\section{OGL overview}\label{ogloverview}
+\section{MMedia extension overview}\label{mmedoverview}
 
-\helpref{wxShapeCanvas}{wxshapecanvas}, derived from {\bf wxCanvas}, is the drawing area
-for a number of \helpref{wxShape}{wxshape} instances. Everything drawn on a
-wxShapeCanvas is derived from wxShape, which provides virtual
-member functions for redrawing, creating and destroying
-resize/selection `handles', movement and erasing behaviour, mouse
-click behaviour, calculating the bounding box of the shape, linking
-nodes with arcs, and so on.
-
-The way a client application copes with `damage' to the canvas is to
-erase (white out) anything should no longer be displayed, redraw the shape,
-and then redraw everything on the canvas to repair any damage. If quick edit
-mode is on for the canvas, the complete should be omitted by OGL and the
-application.
-
-Selection handles (called control points in the code) are implemented as
-wxRectangleShapes.
-
-Events are passed to shapes by the canvas in a high-level form, for example {\bf OnLeftClick},
-{\bf OnBeginDragLeft}, {\bf OnDragLeft}, {\bf OnEndDragLeft}. The canvas decides
-what is a click and what is a drag, whether it is on a shape or the canvas itself,
-and (by interrogating the shape) which attachment point the click is associated with.
-
-In order to provide event-handling flexibility, each shapes has an `event handler' associated with it,
-which by default is the shape itself (all shapes derive from wxShapeEvtHandler).
-An application can modify the event-handling behaviour simply by plugging a new
-event handler into the shape. This can avoid the need for multiple inheritance when
-new properties and behaviour are required for a number of different shape classes: instead
-of overriding each class, one new event handler class can be defined and used for all
-existing shape classes.
-
-A range of shapes have been predefined in the library, including rectangles, ellipses,
-polygons. A client application can derive from these shapes and/or derive entirely
-new shapes from wxShape.
-
-Instances of a class called \helpref{wxDiagram}{wxdiagram} organise collections of
-shapes, providing default file input and output behaviour.
-
-\section{wxDividedShape overview}\label{dividedshapeoverview}
-
-Classes: \helpref{wxDividedShape}{wxdividedshape}
-
-A wxDividedShape is a rectangle with a number of vertical divisions. Each
-division may have its text formatted with independent characteristics, and
-the size of each division relative to the whole image may be specified.
-
-Once a wxDividedShape has been created, the user may move the divisions with the
-mouse. By pressing Ctrl while right-clicking, the region attributes can be edited.
-
-Here are examples of creating wxDividedShape objects:
-
-{\small
-\begin{verbatim}
-  /*
-   * Divided rectangle with 3 regions
-   *
-   */
-
-  wxDividedShape *dividedRect = new wxDividedShape(50, 60);
-
-  wxShapeRegion *region = new wxShapeRegion;
-  region->SetProportions(0.0, 0.25);
-  dividedRect->AddRegion(region);
-
-  region = new wxShapeRegion;
-  region->SetProportions(0.0, 0.5);
-  dividedRect->AddRegion(region);
-
-  region = new wxShapeRegion;
-  region->SetProportions(0.0, 0.25);
-  dividedRect->AddRegion(region);
-  
-  dividedRect->SetSize(50, 60); // Allow it to calculate region sizes
-  dividedRect->SetPen(wxBLACK_PEN);
-  dividedRect->SetBrush(wxWHITE_BRUSH);
-  dividedRect->Show(TRUE);
-  dividedRect->NameRegions();
-
-  /*
-   * Divided rectangle with 3 regions, rounded
-   *
-   */
-
-  wxDividedShape *dividedRect3 = new wxDividedShape(50, 60);
-  dividedRect3->SetCornerRadius(-0.4);
-
-  region = new wxShapeRegion;
-  region->SetProportions(0.0, 0.25);
-  dividedRect3->AddRegion(region);
-
-  region = new wxShapeRegion;
-  region->SetProportions(0.0, 0.5);
-  dividedRect3->AddRegion(region);
-
-  region = new wxShapeRegion;
-  region->SetProportions(0.0, 0.25);
-  dividedRect3->AddRegion(region);
-  
-  dividedRect3->SetSize(50, 60); // Allow it to calculate region sizes
-  dividedRect3->SetPen(wxBLACK_PEN);
-  dividedRect3->SetBrush(wxWHITE_BRUSH);
-  dividedRect3->Show(TRUE);
-  dividedRect3->NameRegions();
-\end{verbatim}
-}
-
-\section{wxCompositeShape overview}\label{compositeshapeoverview}
-
-Classes: \helpref{wxCompositeShape}{wxcompositeshape}, \helpref{wxOGLConstraint}{wxoglconstraint}
-
-The wxCompositeShape allows fairly complex shapes to be created, and maintains
-a set of constraints which specify the layout and proportions of child shapes.
-
-Add child shapes to a wxCompositeShape using \helpref{AddChild}{wxcompositeshapeaddchild}, and
-add constraints using \helpref{AddConstraint}{wxcompositeshapeaddconstraint}.
-
-After children and shapes have been added, call \helpref{Recompute}{wxcompositeshaperecompute} which
-will return TRUE is the constraints could be satisfied, FALSE otherwise. If
-constraints have been correctly and consistently specified, this call will succeed.
-
-If there is more than one child, constraints must be specified: OGL cannot calculate
-the size and position of children otherwise. Don't assume that children will simply
-move relative to the parent without the use of constraints.
-
-To specify a constraint, you need three things:
-
-\begin{enumerate}\itemsep=0pt
-\item a constraint type, such as gyCONSTRAINT\_CENTRED\_VERTICALLY;
-\item a reference shape, with respect to which other shapes are going to be positioned - the\rtfsp
-{\it constraining} shape;
-\item a list of one or more shapes to be constrained: the {\it constrained} shapes.
-\end{enumerate}
-
-The constraining shape can be either the parent of the constrained shapes, or a sibling. The
-constrained shapes must all be siblings of each other.
-
-For an exhaustive list and description of the available constraint types, see the \helpref{wxOGLConstraint constructor}{wxoglconstraintconstr}.
-Note that most constraints operate in one dimension only (vertically or horizontally), so you will
-usually need to specify constraints in pairs.
-
-You can set the spacing between constraining and constrained shapes by
-calling \helpref{wxOGLConstraint::SetSpacing}{wxoglconstraintsetspacing}.
-
-Finally, a wxCompositeShape can have {\it divisions}, which are special child shapes of class
-wxDivisionShape (not to be confused with wxDividedShape). The purpose of this is to allow
-the composite to be divided into user-adjustable regions (divisions) into which other shapes
-can be dropped dynamically, given suitable application code. Divisons allow the child
-shapes to have an identity of their own - they can be manipulated independently of their container -
-but to behave as if they are contained with the division, moving with the parent shape.
-Divisions boundaries can themselves be moved using the mouse.
-
-To create an initial division, call \helpref{wxCompositeShape::MakeContainer}{wxcompositeshapemakecontainer}.
-Make further divisions by calling \helpref{wxDivisionShape::Divide}{wxdivisionshapedivide}.
+To be written.