03ab016d66
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
112 lines
4.1 KiB
TeX
112 lines
4.1 KiB
TeX
\section{\class{wxBitmapDataObject}}\label{wxbitmapdataobject}
|
|
|
|
wxBitmapDataObject is a specialization of wxDataObject for bitmap data. It can be
|
|
used without change to paste data into the \helpref{wxClipboard}{wxclipboard}
|
|
or a \helpref{wxDropSource}{wxdropsource}. A user may wish to derive a new class
|
|
from this class for providing a bitmap on-demand in order to minimize memory consumption
|
|
when offering data in several formats, such as a bitmap and GIF.
|
|
|
|
In order to offer bitmap data on-demand \helpref{GetSize}{wxbitmapdataobjectgetsize}
|
|
and \helpref{WriteData}{wxbitmapdataobjectwritedata} will have to be overridden.
|
|
|
|
\wxheading{Derived from}
|
|
|
|
\helpref{wxDataObject}{wxdataobject}
|
|
|
|
\wxheading{See also}
|
|
|
|
\helpref{wxDataObject}{wxdataobject}
|
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
\membersection{wxBitmapDataObject::wxBitmapDataObject}\label{wxbitmapdataobjectwxbitmapdataobject}
|
|
|
|
\func{}{wxBitmapDataObject}{\void}
|
|
|
|
Default constructor. Call \helpref{SetBitmap}{wxbitmapdataobjectsetbitmap} later
|
|
or override \helpref{WriteData}{wxbitmapdataobjectwritedata} and
|
|
\helpref{GetSize}{wxbitmapdataobjectgetsize} for providing data on-demand.
|
|
|
|
\func{}{wxBitmapDataObject}{\param{const wxBitmap\& }{bitmap}}
|
|
|
|
Constructor, passing a bitmap.
|
|
|
|
\membersection{wxBitmapDataObject::GetSize}\label{wxbitmapdataobjectgetsize}
|
|
|
|
\constfunc{virtual size\_t}{GetSize}{\void}
|
|
|
|
Returns the data size. By default, returns the size of the bitmap data
|
|
set in the constructor or using \helpref{SetBitmap}{wxbitmapdataobjectsetbitmap}.
|
|
This can be overridden to provide size data on-demand. Note that you'd
|
|
have to call the inherited GetSize method as this is the only way
|
|
to get to know the transfer size of the bitmap in a platform dependent
|
|
way - a bitmap has different size under GTK and Windows. In practice,
|
|
this would look like this:
|
|
|
|
\begin{verbatim}
|
|
size_t MyBitmapDataObject::GetSize()
|
|
{
|
|
// Get bitmap from global container. This container
|
|
// should be able to "produce" data in all formats
|
|
// offered by the application but store it only in
|
|
// one format to reduce memory consumption.
|
|
|
|
wxBitmap my_bitmap = my_global_container->GetBitmap();
|
|
|
|
// temporarily set bitmap
|
|
|
|
SetBitmap( my_bitmap );
|
|
|
|
size_t ret = wxBitmapDataObject::GetSize();
|
|
|
|
// unset bitmap again
|
|
|
|
SetBitmap( wxNullBitmap );
|
|
|
|
retrun ret;
|
|
}
|
|
\end{verbatim}
|
|
|
|
TODO: Offer a nicer way to do this. Maybe by providing a platform
|
|
dependent function in this class like
|
|
\begin{verbatim}
|
|
size_t GetBitmapSize( const wxBitmap &bitmap )
|
|
\end{verbatim}
|
|
|
|
\membersection{wxBitmapDataObject::GetBitmap}\label{wxbitmapdataobjectgettext}
|
|
|
|
\constfunc{virtual wxBitmap}{GetBitmap}{\void}
|
|
|
|
Returns the bitmap associated with the data object. You may wish to override
|
|
this method when offering data on-demand, but this is not required by
|
|
wxWindows' internals. Use this method to get data in bitmap form from
|
|
the \helpref{wxClipboard}{wxclipboard}.
|
|
|
|
\membersection{wxBitmapDataObject::SetBitmap}\label{wxbitmapdataobjectsetbitmap}
|
|
|
|
\func{virtual void}{SetBitmap}{\param{const wxBitmap\& }{bitmap}}
|
|
|
|
Sets the bitmap associated with the data object. This method is called
|
|
internally when retrieving data from the \helpref{wxClipboard}{wxclipboard}
|
|
and may be used to paste data to the clipboard directly (instead of
|
|
on-demand).
|
|
|
|
\membersection{wxBitmapDataObject::WriteData}\label{wxbitmapdataobjectwritedata}
|
|
|
|
\constfunc{virtual void}{WriteData}{\param{void}{*dest} }
|
|
|
|
Write the data owned by this class to {\it dest}. By default, this
|
|
calls \helpref{WriteBitmap}{wxbitmapdataobjectwritebitmap} with the bitmap
|
|
set in the constructor or using \helpref{SetBitmap}{wxbitmapdataobjectsetbitmap}.
|
|
This can be overridden to provide bitmap data on-demand; in this case
|
|
\helpref{WriteBitmap}{wxbitmapdataobjectwritebitmap} must be called from
|
|
within th overriding WriteData() method.
|
|
|
|
\membersection{wxBitmapDataObject::WriteBitmap}\label{wxbitmapdataobjectwritebitmap}
|
|
|
|
\constfunc{void}{WriteBitmap}{\param{const wxBitmap\& }{bitmap}\param{void}{*dest} }
|
|
|
|
Writes the the bitmap {\it bitmap} to {\it dest}. This method must be called
|
|
from \helpref{WriteData}{wxbitmapdataobjectwritedata}.
|
|
|