]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/bitmap.tex
don't call wxYield() from EnsureVisible(), this is too dangerous - and unnecessary...
[wxWidgets.git] / docs / latex / wx / bitmap.tex
index 8150715c470064f23fc4b1597d039044c65e31c7..6428ab392cfa003f258c192395abd41a36c1dd95 100644 (file)
@@ -10,7 +10,7 @@ either monochrome or colour.
 \helpref{wxGDIObject}{wxgdiobject}\\
 \helpref{wxObject}{wxobject}
 
-\wxheading{Include files}
+\wxheading{Include file}
 
 <wx/bitmap.h>
 
@@ -42,22 +42,29 @@ Copy constructor.
 
 \func{}{wxBitmap}{\param{void*}{ data}, \param{int}{ type}, \param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}}
 
-Creates a bitmap from the given data, which can be of arbitrary type.
-Windows only, I think.
+Creates a bitmap from the given data which is interpreted in platform-dependent
+manner.
 
 \func{}{wxBitmap}{\param{const char}{ bits[]}, \param{int}{ width}, \param{int}{ height}\\
   \param{int}{ depth = 1}}
 
 Creates a bitmap from an array of bits.
 
-Note that the bit depth is ignored on GTK+ and Motif. If you want to create a bitmap
-from something else than a 1-bit data array, use the \helpref{wxImage}{wximage} class.
+You should only use this function for monochrome bitmaps ({\it depth} 1) in
+portable programs: in this case the {\it bits} parameter should contain an XBM
+image.
+
+For other bit depths, the behaviour is platform dependent: under Windows, the
+data is passed without any changes to the underlying {\tt CreateBitmap()} API.
+Under other platforms, only monochrome bitmaps may be created using this
+constructor and \helpref{wxImage}{wximage} should be used for creating colour
+bitmaps from static data.
 
 \func{}{wxBitmap}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}}
 
-Creates a new bitmap. A depth of -1 indicates the depth of the current screen or
-visual. Some platforms only support 1 for monochrome and -1 for the current colour
-setting.
+Creates a new bitmap. A depth of -1 indicates the depth of the current screen
+or visual. Some platforms only support 1 for monochrome and -1 for the current
+colour setting.
 
 \func{}{wxBitmap}{\param{const char**}{ bits}}
 
@@ -67,6 +74,23 @@ Creates a bitmap from XPM data.
 
 Loads a bitmap from a file or resource.
 
+\func{}{wxBitmap}{\param{const wxImage\&}{ img}, \param{int}{ depth = -1}}
+
+Creates bitmap object from the image. This has to be done
+to actually display an image as you cannot draw an image directly on a window.
+The resulting bitmap will use the provided colour depth (or that of the 
+current system if depth is -1) which entails that a colour reduction has 
+to take place.
+
+When in 8-bit mode (PseudoColour mode), the GTK port will use a color cube created 
+on program start-up to look up colors. This ensures a very fast conversion, but
+the image quality won't be perfect (and could be better for photo images using more
+sophisticated dithering algorithms).
+
+On Windows, if there is a palette present (set with SetPalette), it will be used when
+creating the wxBitmap (most useful in 8-bit display mode). On other platforms,
+the palette is currently ignored.
+
 \wxheading{Parameters}
 
 \docparam{bits}{Specifies an array of pixel values.}
@@ -85,12 +109,12 @@ Its meaning is determined by the {\it type} parameter.}
 
 \twocolwidtha{5cm}
 \begin{twocollist}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP}}}{Load a Windows bitmap file.}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_BMP\_RESOURCE}}}{Load a Windows bitmap from the resource database.}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_GIF}}}{Load a GIF bitmap file.}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XBM}}}{Load an X bitmap file.}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_XPM}}}{Load an XPM bitmap file.}
-\twocolitem{{\bf \indexit{wxBITMAP\_TYPE\_RESOURCE}}}{Load a Windows resource name.}
+\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP}}{Load a Windows bitmap file.}
+\twocolitem{\indexit{wxBITMAP\_TYPE\_BMP\_RESOURCE}}{Load a Windows bitmap from the resource database.}
+\twocolitem{\indexit{wxBITMAP\_TYPE\_GIF}}{Load a GIF bitmap file.}
+\twocolitem{\indexit{wxBITMAP\_TYPE\_XBM}}{Load an X bitmap file.}
+\twocolitem{\indexit{wxBITMAP\_TYPE\_XPM}}{Load an XPM bitmap file.}
+\twocolitem{\indexit{wxBITMAP\_TYPE\_RESOURCE}}{Load a Windows resource name.}
 \end{twocollist}
 
 The validity of these flags depends on the platform and wxWindows configuration.
@@ -102,6 +126,8 @@ In addition, wxBitmap can read all formats that \helpref{wxImage}{wximage} can,
 wxBITMAP\_TYPE\_JPEG, wxBITMAP\_TYPE\_TIF, wxBITMAP\_TYPE\_PNG, wxBITMAP\_TYPE\_GIF, wxBITMAP\_TYPE\_PCX, 
 and wxBITMAP\_TYPE\_PNM. Of course, you must have wxImage handlers loaded. }
 
+\docparam{img}{Platform-independent wxImage object.}
+
 \wxheading{Remarks}
 
 The first form constructs a bitmap object with no data; an assignment or another member function such as Create
@@ -146,17 +172,25 @@ Under X, {\it type} defaults to wxBITMAP\_TYPE\_XPM.
 
 \pythonnote{Constructors supported by wxPython are:\par
 \indented{2cm}{\begin{twocollist}
-\twocolitem{\bf{wxBitmap(name, flag)}}{Loads a bitmap from a file}
-\twocolitem{\bf{wxBitmapFromData(data, type, width, height, depth=1)}}{Creates
+\twocolitem{{\bf wxBitmap(name, flag)}}{Loads a bitmap from a file}
+\twocolitem{{\bf wxBitmapFromData(data, type, width, height, depth=1)}}{Creates
 a bitmap from the given data, which can be of arbitrary type.}
-\twocolitem{\bf{wxNoRefBitmap(name, flag)}}{This one won't own the
+\twocolitem{{\bf wxNoRefBitmap(name, flag)}}{This one won't own the
 reference, so Python won't call the destructor, this is good for toolbars
 and such where the parent will manage the bitmap.}
-\twocolitem{\bf{wxEmptyBitmap(width, height, depth = -1)}}{Creates an
+\twocolitem{{\bf wxEmptyBitmap(width, height, depth = -1)}}{Creates an
 empty bitmap with the given specifications}
 \end{twocollist}}
 }
 
+\perlnote{Constructors supported by wxPerl are:\par
+\begin{itemize}
+\item{Wx::Bitmap->new( width, height, depth = -1 )}
+\item{Wx::Bitmap->new( name, type )}
+\item{Wx::Bitmap->new( icon )}
+\end{itemize}
+}
+
 \membersection{wxBitmap::\destruct{wxBitmap}}
 
 \func{}{\destruct{wxBitmap}}{\void}
@@ -192,7 +226,15 @@ Deletes all bitmap handlers.
 
 This function is called by wxWindows on exit.
 
-\membersection{wxBitmap::Create}
+\membersection{wxBitmap::ConvertToImage}\label{wxbitmapconverttoimage}
+
+\func{wxImage}{ConvertToImage}{\void}
+
+Creates an image from a platform-dependent bitmap. This preserves
+mask information so that bitmaps and images can be converted back
+and forth without loss in that respect.
+
+\membersection{wxBitmap::Create}\label{wxbitmapcreate}
 
 \func{virtual bool}{Create}{\param{int}{ width}, \param{int}{ height}, \param{int}{ depth = -1}}
 
@@ -314,7 +356,7 @@ Gets the width of the bitmap in pixels.
 
 \membersection{wxBitmap::GetSubBitmap}\label{wxbitmapgetsubbitmap}
 
-\constfunc{wxBitmap}{GetSubBitmap}{\param{const wxRect&}{rect}}
+\constfunc{wxBitmap}{GetSubBitmap}{\param{const wxRect\&}{rect}}
 
 Returns a sub bitmap of the current one as long as the rect belongs entirely to 
 the bitmap. This function preserves bit depth and mask information.
@@ -498,20 +540,14 @@ Sets the validity member (does not affect the bitmap data).
 
 \membersection{wxBitmap::SetPalette}\label{wxbitmapsetpalette}
 
-\func{void}{SetPalette}{\param{wxPalette* }{palette}}
+\func{void}{SetPalette}{\param{const wxPalette\& }{palette}}
 
-Sets the associated palette: it will be deleted in the wxBitmap
-destructor, so if you do not wish it to be deleted automatically,
-reset the palette to NULL before the bitmap is deleted.
+Sets the associated palette.
 
 \wxheading{Parameters}
 
 \docparam{palette}{The palette to set.}
 
-\wxheading{Remarks}
-
-The bitmap object owns the palette once this has been called.
-
 \wxheading{See also}
 
 \helpref{wxPalette}{wxpalette}