X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/684761db46d96d4a919d8e94edd1e9065978e675..813210ca7e63cb0a8e2a145664c8b638ea65c15e:/docs/latex/wx/renderer.tex diff --git a/docs/latex/wx/renderer.tex b/docs/latex/wx/renderer.tex index b17c215b32..17469cdc33 100644 --- a/docs/latex/wx/renderer.tex +++ b/docs/latex/wx/renderer.tex @@ -13,11 +13,11 @@ First, a brief introduction to wxRenderer and why it is needed. -Usually wxWindows uses the underlying low level GUI system to draw all the -controls -- this is what we mean when we say that it is a ``native'' framework. +Usually wxWidgets uses the underlying low level GUI system to draw all the +controls - this is what we mean when we say that it is a ``native'' framework. However not all controls exist under all (or even any) platforms and in this -case wxWindows provides a default, generic, implementation of them written in -wxWindows itself. +case wxWidgets provides a default, generic, implementation of them written in +wxWidgets itself. These controls don't have the native appearance if only the standard line drawing and other graphics primitives are used, because the native @@ -37,24 +37,30 @@ renderer but it may be changed or extended by the user, see All drawing functions take some standard parameters: \begin{itemize} - \item \arg{win} is the window being drawn. It is normally not used and when - it is it should only be used as a generic \helpref{wxWindow}{wxwindow} - (in order to get its low level handle, for example), but you should - \emph{not} assume that it is of some given type as the same renderer - function may be reused for drawing different kinds of control. - \item \arg{dc} is the \helpref{wxDC}{wxdc} to draw on. Only this device - context should be used for drawing. It is not necessary to restore - pens and brushes for it on function exit but, on the other hand, you - shouldn't assume that it is in any specific state on function entry: - the rendering functions should always prepare it. - \item \arg{rect} the bounding rectangle for the element to be drawn. - \item \arg{flags} the optional flags (none by default) which can be a - combination of the \texttt{wxCONTROL\_XXX} constants below. +\item \arg{win} is the window being drawn. It is normally not used and when +it is it should only be used as a generic \helpref{wxWindow}{wxwindow} +(in order to get its low level handle, for example), but you should +\emph{not} assume that it is of some given type as the same renderer +function may be reused for drawing different kinds of control. +\item \arg{dc} is the \helpref{wxDC}{wxdc} to draw on. Only this device +context should be used for drawing. It is not necessary to restore +pens and brushes for it on function exit but, on the other hand, you +shouldn't assume that it is in any specific state on function entry: +the rendering functions should always prepare it. +\item \arg{rect} the bounding rectangle for the element to be drawn. +\item \arg{flags} the optional flags (none by default) which can be a +combination of the \texttt{wxCONTROL\_XXX} constants below. \end{itemize} +Note that each drawing function restores the \helpref{wxDC}{wxdc} attributes if +it changes them, so it is safe to assume that the same pen, brush and colours +that were active before the call to this function are still in effect after it. + + \wxheading{Constants} The following rendering flags are defined: + \begin{verbatim} enum { @@ -67,11 +73,11 @@ enum wxCONTROL_CURRENT = 0x00000010, // mouse is currently over the control wxCONTROL_SELECTED = 0x00000020, // selected item in e.g. listbox wxCONTROL_CHECKED = 0x00000040, // (check/radio button) is checked - wxCONTROL_CHECKABLE = 0x00000080 // (menu) item can be checked + wxCONTROL_CHECKABLE = 0x00000080, // (menu) item can be checked + wxCONTROL_UNDETERMINED = wxCONTROL_CHECKABLE // (check) undetermined state }; \end{verbatim} - \wxheading{Derived from} No base class @@ -91,6 +97,38 @@ No base class Virtual destructor as for any base class. +\membersection{wxRendererNative::DrawCheckBox}\label{wxrenderernativedrawcheckbox} + +\func{void}{DrawCheckBox}{\param{wxWindow *}{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags}} + +Draw a check box (used by wxDataViewCtrl). + +\arg{flags} may have the \texttt{wxCONTROL\_CHECKED}, \texttt{wxCONTROL\_CURRENT} or +\texttt{wxCONTROL\_UNDETERMINED} bit set. + + +\membersection{wxRendererNative::DrawComboBoxDropButton}\label{wxrenderernativedrawcomboboxdropbutton} + +\func{void}{DrawComboBoxDropButton}{\param{wxWindow *}{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags}} + +Draw a button like the one used by \helpref{wxComboBox}{wxcombobox} to show a +drop down window. The usual appearance is a downwards pointing arrow. + +\arg{flags} may have the \texttt{wxCONTROL\_PRESSED} or \texttt{wxCONTROL\_CURRENT} bit set. + + +\membersection{wxRendererNative::DrawDropArrow}\label{wxrenderernativedrawdroparrow} + +\func{void}{DrawDropArrow}{\param{wxWindow *}{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags}} + +Draw a drop down arrow that is suitable for use outside a combo box. Arrow will have +transparent background. + +\arg{rect} is not entirely filled by the arrow. Instead, you should use bounding +rectangle of a drop down button which arrow matches the size you need. +\arg{flags} may have the \texttt{wxCONTROL\_PRESSED} or \texttt{wxCONTROL\_CURRENT} bit set. + + \membersection{wxRendererNative::DrawHeaderButton}\label{wxrenderernativedrawheaderbutton} \func{void}{DrawHeaderButton}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags = 0}} @@ -98,6 +136,16 @@ Virtual destructor as for any base class. Draw the header control button (used by \helpref{wxListCtrl}{wxlistctrl}). +\membersection{wxRendererNative::DrawPushButton}\label{wxrenderernativedrawpushbutton} + +\func{void}{DrawPushButton}{\param{wxWindow *}{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags}} + +Draw a blank push button that looks very similar to \helpref{wxButton}{wxbutton}. + +\arg{flags} may have the \texttt{wxCONTROL\_PRESSED}, \texttt{wxCONTROL\_CURRENT} or +\texttt{wxCONTROL\_ISDEFAULT} bit set. + + \membersection{wxRendererNative::DrawSplitterBorder}\label{wxrenderernativedrawsplitterborder} \func{void}{DrawSplitterBorder}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxRect\& }{rect}, \param{int }{flags = 0}} @@ -112,7 +160,7 @@ well. \func{void}{DrawSplitterSash}{\param{wxWindow* }{win}, \param{wxDC\& }{dc}, \param{const wxSize\& }{size}, \param{wxCoord }{position}, \param{wxOrientation }{orient}, \param{int }{flags = 0}} Draw a sash. The \arg{orient} parameter defines whether the sash should be -vertical or horizontal and how should the \arg{position} be interpreted. +vertical or horizontal and how the \arg{position} should be interpreted. \membersection{wxRendererNative::DrawTreeItemButton}\label{wxrenderernativedrawtreeitembutton} @@ -193,4 +241,3 @@ Set the renderer to use, passing {\tt NULL} reverts to using the default renderer (the global renderer must always exist). Return the previous renderer used with Set() or {\tt NULL} if none. -