Version: 3.1.0
wxMemoryFSHandler Class Reference

#include <wx/fs_mem.h>

+ Inheritance diagram for wxMemoryFSHandler:

Detailed Description

This wxFileSystem handler can store arbitrary data in memory stream and make them accessible via an URL.

It is particularly suitable for storing bitmaps from resources or included XPM files so that they can be used with wxHTML or wxWebView.

Filenames are prefixed with "memory:", e.g. "memory:myfile.html".

Example:

#ifndef __WXMSW__
#include "logo.xpm"
#endif
void MyFrame::OnAbout(wxCommandEvent&)
{
"<html><body>About: "
"<img src=\"memory:logo.png\"></body></html>");
wxDialog dlg(this, -1, wxString(_("About")));
wxBoxSizer *topsizer;
topsizer = new wxBoxSizer(wxVERTICAL);
#ifdef USE_WEBVIEW
wxWebView* browser = wxWebView::New(&dlg, wxID_ANY, wxWebViewDefaultURLStr,
browser->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
browser->LoadURL("memory:about.htm");
#else // Use wxHtml
wxHtmlWindow *browser;
browser = new wxHtmlWindow(&dlg, -1, wxDefaultPosition,
browser->SetBorders(0);
browser->LoadPage("memory:about.htm");
browser->SetSize(browser->GetInternalRepresentation()->GetWidth(),
#endif
topsizer->Add(browser, 1, wxALL, 10);
topsizer->Add(new wxStaticLine(&dlg, -1), 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
topsizer->Add(new wxButton(&dlg, wxID_OK, "Ok"),
0, wxALL | wxALIGN_RIGHT, 15);
dlg.SetAutoLayout(true);
dlg.SetSizer(topsizer);
topsizer->Fit(&dlg);
dlg.Centre();
dlg.ShowModal();
}

Library:  wxBase
Category:  Virtual File System
See Also
wxMemoryFSHandler::AddFileWithMimeType

Public Member Functions

 wxMemoryFSHandler ()
 Constructor.
 
- Public Member Functions inherited from wxFileSystemHandler
 wxFileSystemHandler ()
 Constructor.
 
virtual bool CanOpen (const wxString &location)=0
 Returns true if the handler is able to open this file.
 
virtual wxString FindFirst (const wxString &wildcard, int flags=0)
 Works like wxFindFirstFile().
 
virtual wxString FindNext ()
 Returns next filename that matches parameters passed to wxFileSystem::FindFirst.
 
virtual wxFSFileOpenFile (wxFileSystem &fs, const wxString &location)=0
 Opens the file and returns wxFSFile pointer or NULL if failed.
 
- Public Member Functions inherited from wxObject
 wxObject ()
 Default ctor; initializes to NULL the internal reference data.
 
 wxObject (const wxObject &other)
 Copy ctor.
 
virtual ~wxObject ()
 Destructor.
 
virtual wxClassInfoGetClassInfo () const
 This virtual function is redefined for every class that requires run-time type information, when using the wxDECLARE_CLASS macro (or similar).
 
wxObjectRefDataGetRefData () const
 Returns the wxObject::m_refData pointer, i.e. the data referenced by this object.
 
bool IsKindOf (const wxClassInfo *info) const
 Determines whether this class is a subclass of (or the same class as) the given class.
 
bool IsSameAs (const wxObject &obj) const
 Returns true if this object has the same data pointer as obj.
 
void Ref (const wxObject &clone)
 Makes this object refer to the data in clone.
 
void SetRefData (wxObjectRefData *data)
 Sets the wxObject::m_refData pointer.
 
void UnRef ()
 Decrements the reference count in the associated data, and if it is zero, deletes the data.
 
void UnShare ()
 This is the same of AllocExclusive() but this method is public.
 
void operator delete (void *buf)
 The delete operator is defined for debugging versions of the library only, when the identifier WXDEBUG is defined.
 
void * operator new (size_t size, const wxString &filename=NULL, int lineNum=0)
 The new operator is defined for debugging versions of the library only, when the identifier WXDEBUG is defined.
 

Static Public Member Functions

static void RemoveFile (const wxString &filename)
 Removes a file from memory FS and frees the occupied memory.
 
static void AddFile (const wxString &filename, wxImage &image, wxBitmapType type)
 Adds a file to the list of the files stored in memory.
 
static void AddFile (const wxString &filename, const wxBitmap &bitmap, wxBitmapType type)
 Adds a file to the list of the files stored in memory.
 
static void AddFileWithMimeType (const wxString &filename, const wxString &textdata, const wxString &mimetype)
 Like AddFile(), but lets you explicitly specify added file's MIME type.
 
static void AddFileWithMimeType (const wxString &filename, const void *binarydata, size_t size, const wxString &mimetype)
 Like AddFile(), but lets you explicitly specify added file's MIME type.
 
- Static Public Member Functions inherited from wxFileSystemHandler
static wxString GetMimeTypeFromExt (const wxString &location)
 Returns the MIME type based on extension of location.
 

Additional Inherited Members

- Protected Member Functions inherited from wxObject
void AllocExclusive ()
 Ensure that this object's data is not shared with any other object.
 
virtual wxObjectRefDataCreateRefData () const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it.
 
virtual wxObjectRefDataCloneRefData (const wxObjectRefData *data) const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and initializes it copying data.
 
- Static Protected Member Functions inherited from wxFileSystemHandler
static wxString GetAnchor (const wxString &location)
 Returns the anchor if present in the location.
 
static wxString GetLeftLocation (const wxString &location)
 Returns the left location string extracted from location.
 
static wxString GetProtocol (const wxString &location)
 Returns the protocol string extracted from location.
 
static wxString GetRightLocation (const wxString &location)
 Returns the right location string extracted from location.
 
- Protected Attributes inherited from wxObject
wxObjectRefDatam_refData
 Pointer to an object which is the object's reference-counted data.
 

Constructor & Destructor Documentation

wxMemoryFSHandler::wxMemoryFSHandler ( )

Constructor.

Member Function Documentation

static void wxMemoryFSHandler::AddFile ( const wxString filename,
wxImage image,
wxBitmapType  type 
)
static

Adds a file to the list of the files stored in memory.

Stored data (bitmap, text or raw data) will be copied into private memory stream and available under name "memory:" + filename.

Note
you must use a type value (aka image format) that wxWidgets can save (e.g. JPG, PNG, see wxImage documentation)!
See Also
AddFileWithMimeType()
static void wxMemoryFSHandler::AddFile ( const wxString filename,
const wxBitmap bitmap,
wxBitmapType  type 
)
static

Adds a file to the list of the files stored in memory.

Stored data (bitmap, text or raw data) will be copied into private memory stream and available under name "memory:" + filename.

Note
you must use a type value (aka image format) that wxWidgets can save (e.g. JPG, PNG, see wxImage documentation)!
See Also
AddFileWithMimeType()
static void wxMemoryFSHandler::AddFileWithMimeType ( const wxString filename,
const wxString textdata,
const wxString mimetype 
)
static

Like AddFile(), but lets you explicitly specify added file's MIME type.

This version should be used whenever you know the MIME type, because it makes accessing the files faster.

Since
2.8.5
See Also
AddFile()
static void wxMemoryFSHandler::AddFileWithMimeType ( const wxString filename,
const void *  binarydata,
size_t  size,
const wxString mimetype 
)
static

Like AddFile(), but lets you explicitly specify added file's MIME type.

This version should be used whenever you know the MIME type, because it makes accessing the files faster.

Since
2.8.5
See Also
AddFile()
static void wxMemoryFSHandler::RemoveFile ( const wxString filename)
static

Removes a file from memory FS and frees the occupied memory.