+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name: metafile.h
-// Purpose: interface of wxMetafileDC
-// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
-/////////////////////////////////////////////////////////////////////////////
-
-/**
- @class wxMetafileDC
- @wxheader{metafile.h}
-
- This is a type of device context that allows a metafile object to be
- created (Windows only), and has most of the characteristics of a normal
- @b wxDC. The wxMetafileDC::Close member must be called after drawing into the
- device context, to return a metafile. The only purpose for this at
- present is to allow the metafile to be copied to the clipboard (see wxMetafile).
-
- Adding metafile capability to an application should be easy if you
- already write to a wxDC; simply pass the wxMetafileDC to your drawing
- function instead. You may wish to conditionally compile this code so it
- is not compiled under X (although no harm will result if you leave it
- in).
-
- Note that a metafile saved to disk is in standard Windows metafile format,
- and cannot be imported into most applications. To make it importable,
- call the function ::wxMakeMetafilePlaceable after
- closing your disk-based metafile device context.
-
- @library{wxcore}
- @category{dc}
-
- @see wxMetafile, wxDC
-*/
-class wxMetafileDC : public wxDC
-{
-public:
- /**
- Constructor. If no filename is passed, the metafile is created
- in memory.
- */
- wxMetafileDC(const wxString& filename = "");
-
- /**
- Destructor.
- */
- ~wxMetafileDC();
-
- /**
- This must be called after the device context is finished with. A
- metafile is returned, and ownership of it passes to the calling
- application (so it should be destroyed explicitly).
- */
- wxMetafile* Close();
-};
-
-
-
-/**
- @class wxMetafile
- @wxheader{metafile.h}
-
- A @b wxMetafile represents the MS Windows metafile object, so metafile
- operations have no effect in X. In wxWidgets, only sufficient functionality
- has been provided for copying a graphic to the clipboard; this may be extended
- in a future version. Presently, the only way of creating a metafile
- is to use a wxMetafileDC.
-
- @library{wxcore}
- @category{FIXME}
-
- @see wxMetafileDC
-*/
-class wxMetafile : public wxObject
-{
-public:
- /**
- Constructor. If a filename is given, the Windows disk metafile is
- read in. Check whether this was performed successfully by
- using the @ref isok() wxMetafile:IsOk member.
- */
- wxMetafile(const wxString& filename = "");
-
- /**
- Destructor.
- See @ref overview_refcountdestruct "reference-counted object destruction" for
- more info.
- */
- ~wxMetafile();
-
- /**
- Returns @true if the metafile is valid.
- */
- bool Ok();
-
- /**
- Plays the metafile into the given device context, returning
- @true if successful.
- */
- bool Play(wxDC* dc);
-
- /**
- Passes the metafile data to the clipboard. The metafile can no longer be
- used for anything, but the wxMetafile object must still be destroyed by
- the application.
- Below is a example of metafile, metafile device context and clipboard use
- from the @c hello.cpp example. Note the way the metafile dimensions
- are passed to the clipboard, making use of the device context's ability
- to keep track of the maximum extent of drawing commands.
- */
- bool SetClipboard(int width = 0, int height = 0);
-};
-
-
-
-// ============================================================================
-// Global functions/macros
-// ============================================================================
-
-/** @ingroup group_funcmacro_gdi */
-//@{
-
-/**
- Given a filename for an existing, valid metafile (as constructed using
- wxMetafileDC) makes it into a placeable metafile by prepending a header
- containing the given bounding box. The bounding box may be obtained from a
- device context after drawing into it, using the functions wxDC::MinX(),
- wxDC::MinY(), wxDC::MaxX() and wxDC::MaxY().
-
- In addition to adding the placeable metafile header, this function adds the
- equivalent of the following code to the start of the metafile data:
-
- @code
- SetMapMode(dc, MM_ANISOTROPIC);
- SetWindowOrg(dc, minX, minY);
- SetWindowExt(dc, maxX - minX, maxY - minY);
- @endcode
-
- This simulates the wxMM_TEXT mapping mode, which wxWidgets assumes.
-
- Placeable metafiles may be imported by many Windows applications, and can
- be used in RTF (Rich Text Format) files.
-
- @a scale allows the specification of scale for the metafile.
-
- This function is only available under Windows.
-
- @header{wx/metafile.h}
-*/
-bool wxMakeMetafilePlaceable(const wxString& filename,
- int minX, int minY,
- int maxX, int maxY,
- float scale = 1.0);
-
-//@}
-