wxWidgets: wxMemoryFSHandler Class Reference

| Version: 3.2.6

Public Member Functions | Static Public Member Functions | List of all members
wxMemoryFSHandler Class Reference
Class List by Category » Virtual File System

`#include <wx/fs_mem.h>`

Inheritance diagram for wxMemoryFSHandler:
[legend]

## 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&)
{
wxFileSystem::AddHandler(new wxMemoryFSHandler);
wxMemoryFSHandler::AddFile("logo.png", wxBITMAP(logo), wxBITMAP_TYPE_PNG);
wxMemoryFSHandler::AddFile("about.htm",
"<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,
wxDefaultPosition, wxSize(380, 160));
browser->RegisterHandler(wxSharedPtr<wxWebViewHandler>(new wxWebViewFSHandler("memory")));
browser->LoadURL("memory:about.htm");
#else // Use wxHtml
wxHtmlWindow *browser;
browser = new wxHtmlWindow(&dlg, -1, wxDefaultPosition,
wxSize(380, 160), wxHW_SCROLLBAR_NEVER);
browser->SetBorders(0);
browser->LoadPage("memory:about.htm");
browser->SetSize(browser->GetInternalRepresentation()->GetWidth(),
browser->GetInternalRepresentation()->GetHeight());
#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();
wxMemoryFSHandler::RemoveFile("logo.png");
wxMemoryFSHandler::RemoveFile("about.htm");
}
wxBoxSizer
The basic idea behind a box sizer is that windows will most often be laid out in rather simple basic ...
Definition: sizer.h:2019
wxButton
A button is a control that contains a text string, and is one of the most common elements of a GUI.
Definition: button.h:103
wxCommandEvent
This event class contains information about command events, which originate from a variety of simple ...
Definition: event.h:2042
wxDialog
A dialog box is a window with a title bar and sometimes a system menu, which can be moved around the ...
Definition: dialog.h:154
wxFileSystem::AddHandler
static void AddHandler(wxFileSystemHandler *handler)
This static function adds a new handler into the list of handlers which provide access to virtual FS.
wxHtmlCell::GetHeight
int GetHeight() const
Returns height of the cell (m_Height member).
wxHtmlCell::GetWidth
int GetWidth() const
Returns width of the cell (m_Width member).
wxHtmlWindow
wxHtmlWindow is probably the only class you will directly use unless you want to do something special...
Definition: htmlwin.h:155
wxHtmlWindow::SetBorders
void SetBorders(int b)
This function sets the space between border of window and HTML contents.
wxHtmlWindow::GetInternalRepresentation
wxHtmlContainerCell * GetInternalRepresentation() const
Returns pointer to the top-level container.
wxHtmlWindow::LoadPage
virtual bool LoadPage(const wxString &location)
Unlike SetPage() this function first loads the HTML page from location and then displays it.
wxMemoryFSHandler
This wxFileSystem handler can store arbitrary data in memory stream and make them accessible via an U...
Definition: fs_mem.h:72
wxMemoryFSHandler::AddFile
static void AddFile(const wxString &filename, wxImage &image, wxBitmapType type)
Adds a file to the list of the files stored in memory.
wxMemoryFSHandler::RemoveFile
static void RemoveFile(const wxString &filename)
Removes a file from memory FS and frees the occupied memory.
wxSize
A wxSize is a useful data structure for graphics operations.
Definition: gdicmn.h:940
wxSizer::Add
wxSizerItem * Add(wxWindow *window, const wxSizerFlags &flags)
Appends a child to the sizer.
wxSizer::Fit
wxSize Fit(wxWindow *window)
Tell the sizer to resize the window so that its client area matches the sizer's minimal size (Compute...
wxSizerItem::SetSizer
void SetSizer(wxSizer *sizer)
Set the sizer tracked by this item.
wxStaticLine
A static line is just a line which may be used in a dialog to separate the groups of controls.
Definition: statline.h:32
wxString
String class for passing textual data to or receiving it from wxWidgets.
Definition: string.h:315
wxWebViewFSHandler
A wxWebView file system handler to support standard wxFileSystem protocols of the form example:page....
Definition: webviewfshandler.h:24
wxWebView
This control may be used to render web (HTML / CSS / javascript) documents.
Definition: webview.h:503
wxWebView::LoadURL
virtual void LoadURL(const wxString &url)=0
Load a web page from a URL.
wxWebView::New
static wxWebView * New(const wxString &backend=wxWebViewBackendDefault)
Factory function to create a new wxWebView with two-step creation, wxWebView::Create should be called...
wxWebView::RegisterHandler
virtual void RegisterHandler(wxSharedPtr< wxWebViewHandler > handler)=0
Registers a custom scheme handler.
wxVERTICAL
@ wxVERTICAL
Definition: defs.h:28
wxEXPAND
@ wxEXPAND
Definition: defs.h:115
wxALIGN_RIGHT
@ wxALIGN_RIGHT
Definition: defs.h:83
wxALL
@ wxALL
Definition: defs.h:57
wxRIGHT
@ wxRIGHT
Definition: defs.h:45
wxLEFT
@ wxLEFT
Definition: defs.h:44
wxID_ANY
@ wxID_ANY
Any id: means that we don't care about the id, whether when installing an event handler or when creat...
Definition: defs.h:597
wxID_OK
@ wxID_OK
Standard button and menu IDs.
Definition: defs.h:664
wxBITMAP_TYPE_PNG
@ wxBITMAP_TYPE_PNG
Definition: gdicmn.h:32
wxDefaultPosition
const wxPoint wxDefaultPosition
Global instance of a wxPoint initialized with values (-1,-1).
Definition: gdicmn.h:782
wxBITMAP
#define wxBITMAP(bitmapName)
This macro loads a bitmap from either application resources (on the platforms for which they exist,...
Definition: gdicmn.h:1129
_
const wxString & _(const wxString &string)
Macro to be used around all literal strings that should be translated.
wxHW_SCROLLBAR_NEVER
#define wxHW_SCROLLBAR_NEVER
Definition: htmlwin.h:9

##

Library: wxBase
Category: Virtual File System

See also
  wxMemoryFSHandler::AddFileWithMimeType

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

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

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

## Constructor & Destructor Documentation

## ◆ wxMemoryFSHandler()

wxMemoryFSHandler::wxMemoryFSHandler | ( |  | ) |

Constructor.

## Member Function Documentation

## ◆ AddFile() [1/4]

static void wxMemoryFSHandler::AddFile | ( | const wxString & | filename,
|  | const void * | binarydata,
|  | size_t | size
| ) |  |
| 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.

When using the overload taking `wxString` data, if the string contains only Latin-1 characters (which includes strings created using wxString::From8BitData()), its data is used as is. Otherwise, the UTF-8 representation of the string is stored as the data associated with the given 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()

## ◆ AddFile() [2/4]

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.

When using the overload taking `wxString` data, if the string contains only Latin-1 characters (which includes strings created using wxString::From8BitData()), its data is used as is. Otherwise, the UTF-8 representation of the string is stored as the data associated with the given 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()

## ◆ AddFile() [3/4]

static void wxMemoryFSHandler::AddFile | ( | const wxString & | filename,
|  | const wxString & | textdata
| ) |  |
| 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.

When using the overload taking `wxString` data, if the string contains only Latin-1 characters (which includes strings created using wxString::From8BitData()), its data is used as is. Otherwise, the UTF-8 representation of the string is stored as the data associated with the given 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()

## ◆ AddFile() [4/4]

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.

When using the overload taking `wxString` data, if the string contains only Latin-1 characters (which includes strings created using wxString::From8BitData()), its data is used as is. Otherwise, the UTF-8 representation of the string is stored as the data associated with the given 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()

## ◆ AddFileWithMimeType() [1/2]

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()

## ◆ AddFileWithMimeType() [2/2]

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()

## ◆ RemoveFile()

static void wxMemoryFSHandler::RemoveFile | ( | const wxString & | filename | ) |
| static

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