1. clarified relation between XRC .xrs files and ZIPs
2. some minor additions to XRC docs git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
b40e227882
commit
f9363b96c4
@ -9,8 +9,8 @@ try to use it, you will get link errors.
|
||||
The XML-based resource system, known as XRC, allows user interface elements such as
|
||||
dialogs, menu bars and toolbars, to be stored in text files and loaded into
|
||||
the application at run-time. XRC files can also be compiled into binary XRS files or C++
|
||||
code, so an XML parser does not need to be linked with the application and load times
|
||||
are faster.
|
||||
code (the former makes it possible to store all resources in since file and the latter
|
||||
is useful when you want to embed the resources into the executable).
|
||||
|
||||
There are several advantages to using XRC resources.
|
||||
|
||||
@ -69,6 +69,8 @@ These are the typical steps for using XRC files in your application.
|
||||
|
||||
\begin{itemize}\itemsep=0pt
|
||||
\item Include the appropriate headers: normally "wx/xrc/xmlres.h" will suffice;
|
||||
\item If you are going to use \helpref{XRS files}{binaryresourcefiles}, install
|
||||
wxFileSystem ZIP handler first with {\tt wxFileSystem::AddHandler(new wxZipFSHandler);}
|
||||
\item call {\tt wxXmlResource::Get()->InitAllHandlers()} from your wxApp::OnInit function,
|
||||
and then call {\tt wxXmlResource::Get()->Load("myfile.xrc")} to load the resource file;
|
||||
\item to create a dialog from a resource, create it using the default constructor, and then
|
||||
@ -94,20 +96,19 @@ It is highly recommended that you use a tool such as wxDesigner, since it's fidd
|
||||
XRC files by hand.
|
||||
|
||||
You can use \helpref{wxXmlResource::Load}{wxxmlresourceload} in a number of ways.
|
||||
You can pass an XRC file (XML-based text resource file), an XMB file (compiled binary file)
|
||||
or a zip-compressed file (extension ZIP or RSC) containing other XRC or XMB files.
|
||||
You can pass an XRC file (XML-based text resource file)
|
||||
or a \helpref{zip-compressed file}{binaryresourcefiles} (extension ZIP or XRS) containing other XRC.
|
||||
|
||||
TODO: is the compiled binary format XMB or XRS? How do you handle a C++ resource file?
|
||||
You can also use \helpref{embedded C++ resources}{embeddedresource}
|
||||
|
||||
\subsection{Using binary resource files}\label{binaryresourcefiles}
|
||||
|
||||
To compile binary resource files, use the command-line wxrc utility. It takes a single file parameter (the
|
||||
input XRC file) and the following switches and options.
|
||||
|
||||
To compile binary resource files, use the command-line wxrc utility. It takes one or more file parameters
|
||||
(the input XRC files) and the following switches and options:
|
||||
\begin{itemize}\itemsep=0pt
|
||||
\item -h (--help): show a help message
|
||||
\item -v (--verbose): show verbose logging information
|
||||
\item -c (--cpp-code): write C++ source rather than a RSC file
|
||||
\item -c (--cpp-code): write C++ source rather than a XRS file
|
||||
\item -u (--uncompressed): do not compress XML files (C++ only)
|
||||
\item -g (--gettext): output .po catalog (to stdout, or a file if -o is used)
|
||||
\item -n (--function) <name>: specify C++ function name (use with -c)
|
||||
@ -116,13 +117,42 @@ input XRC file) and the following switches and options.
|
||||
\end{itemize}
|
||||
|
||||
For example:
|
||||
|
||||
\begin{verbatim}
|
||||
% wxrc resource.wrc
|
||||
% wxrc resource.wrc -o resource.wrs
|
||||
% wxrc resource.wrc -v -c -o resource.cpp
|
||||
\end{verbatim}
|
||||
|
||||
\wxheading{Note}
|
||||
|
||||
XRS file is esentially a renamed ZIP archive which means that you can manipulate
|
||||
it with standard ZIP tools. Note that if you are using XRS files, you have
|
||||
to initialize \helpref{wxFileSystem}{wxfilesystem} ZIP handler first! It is a simple
|
||||
thing to do:
|
||||
\begin{verbatim}
|
||||
#include <wx/filesys.h>
|
||||
#include <wx/fs_zip.h>
|
||||
...
|
||||
wxFileSystem::AddHandler(new wxZipFSHandler);
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{Using embedded resources}\label{embeddedresource}
|
||||
|
||||
It is sometimes useful to embed resources in the executable itself instead
|
||||
of loading external file (e.g. when your app is small and consists only of one
|
||||
exe file). XRC provides means to convert resources into regular C++ file that
|
||||
can be compiled and included in the executable.
|
||||
|
||||
Use the {\tt -c} switch to
|
||||
{\tt wxrc} utility to produce C++ file with embedded resources. This file will
|
||||
contain a function called {\it InitXmlResource} (unless you override this with
|
||||
a command line switch). Use it to load the resource:
|
||||
\begin{verbatim}
|
||||
wxXmlResource::Get()->InitAllHandlers();
|
||||
InitXmlResource();
|
||||
...
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{XRC C++ sample}\label{xrccppsample}
|
||||
|
||||
This is the C++ source file (xrcdemo.cpp) for the XRC sample.
|
||||
|
Loading…
Reference in New Issue
Block a user