Version: 3.3.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();
}
The basic idea behind a box sizer is that windows will most often be laid out in rather simple basic ...
Definition: sizer.h:2024
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
This event class contains information about command events, which originate from a variety of simple ...
Definition: event.h:2035
A dialog box is a window with a title bar and sometimes a system menu, which can be moved around the ...
Definition: dialog.h:159
static void AddHandler(wxFileSystemHandler *handler)
This static function adds a new handler into the list of handlers which provide access to virtual FS.
int GetHeight() const
Returns height of the cell (m_Height member).
int GetWidth() const
Returns width of the cell (m_Width member).
wxHtmlWindow is probably the only class you will directly use unless you want to do something special...
Definition: htmlwin.h:155
void SetBorders(int b)
This function sets the space between border of window and HTML contents.
wxHtmlContainerCell * GetInternalRepresentation() const
Returns pointer to the top-level container.
virtual bool LoadPage(const wxString &location)
Unlike SetPage() this function first loads the HTML page from location and then displays it.
This wxFileSystem handler can store arbitrary data in memory stream and make them accessible via an U...
Definition: fs_mem.h:72
static void AddFile(const wxString &filename, wxImage &image, wxBitmapType type)
Adds a file to the list of the files stored in memory.
static void RemoveFile(const wxString &filename)
Removes a file from memory FS and frees the occupied memory.
A wxSize is a useful data structure for graphics operations.
Definition: gdicmn.h:976
wxSizerItem * Add(wxWindow *window, const wxSizerFlags &flags)
Appends a child to the sizer.
wxSize Fit(wxWindow *window)
Tell the sizer to resize the window so that its client area matches the sizer's minimal size (Compute...
void SetSizer(wxSizer *sizer)
Set the sizer tracked by this item.
A static line is just a line which may be used in a dialog to separate the groups of controls.
Definition: statline.h:32
String class for passing textual data to or receiving it from wxWidgets.
Definition: string.h:372
A wxWebView file system handler to support standard wxFileSystem protocols of the form example:page....
Definition: webviewfshandler.h:24
This control may be used to render web (HTML / CSS / JavaScript) documents.
Definition: webview.h:989
virtual void LoadURL(const wxString &url)=0
Load a web page from a URL.
static wxWebView * New(const wxString &backend=wxWebViewBackendDefault)
Factory function to create a new wxWebView with two-step creation, wxWebView::Create should be called...
virtual void RegisterHandler(wxSharedPtr< wxWebViewHandler > handler)=0
Registers a custom scheme handler.
@ wxVERTICAL
Definition: defs.h:28
@ wxEXPAND
Definition: defs.h:115
@ wxALIGN_RIGHT
Definition: defs.h:83
@ wxALL
Definition: defs.h:57
@ wxRIGHT
Definition: defs.h:45
@ wxLEFT
Definition: defs.h:44
@ 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:590
@ wxID_OK
Standard button and menu IDs.
Definition: defs.h:658
@ wxBITMAP_TYPE_PNG
Definition: gdicmn.h:32
const wxPoint wxDefaultPosition
Global instance of a wxPoint initialized with values (-1,-1).
Definition: gdicmn.h:808
#define wxBITMAP(bitmapName)
This macro loads a bitmap from either application resources (on the platforms for which they exist,...
Definition: gdicmn.h:1174
const wxString & _(const wxString &string)
Macro to be used around all literal strings that should be translated.
#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 wxFSFileOpenFile (wxFileSystem &fs, const wxString &location)=0
 Opens the file and returns wxFSFile pointer or nullptr if failed. More...
 
- Public Member Functions inherited from wxObject
 wxObject ()
 Default ctor; initializes to nullptr the internal reference data. More...
 
 wxObject (const wxObject &other)
 Copy ctor. More...
 
virtual ~wxObject ()
 Destructor. More...
 
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). More...
 
wxObjectRefDataGetRefData () 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=nullptr, 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 wxObjectRefDataCreateRefData () const
 Creates a new instance of the wxObjectRefData-derived class specific to this object and returns it. More...
 
virtual wxObjectRefDataCloneRefData (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
wxObjectRefDatam_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.