X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d958c9bd1754393a2b2e35a95df4df4e74bcd3c4..3aa5d53272727835f297450e153ed79dc132e48a:/docs/latex/wx/txrc.tex?ds=sidebyside diff --git a/docs/latex/wx/txrc.tex b/docs/latex/wx/txrc.tex index ed3d65c95a..b1cd582e52 100644 --- a/docs/latex/wx/txrc.tex +++ b/docs/latex/wx/txrc.tex @@ -2,6 +2,10 @@ Classes: \helpref{wxXmlResource}{wxxmlresource}, \helpref{wxXmlResourceHandler}{wxxmlresourcehandler} +{\bf IMPORTANT NOTE:} XRC is not yet a part of the core wxWindows library, so +please see the next section for how to compile and link it. Otherwise if you +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++ @@ -69,19 +73,21 @@ These are the typical steps for using XRC files in your application. and then call \verb$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 load using for example \verb$wxXmlResource::Get()->LoadDialog(&dlg, this, "dlg1")$; -\item set up event tables as usual but use the \verb$XMLID(str)$ macro to translate from XRC string names -to a suitable integer identifier, for example \verb$EVT_MENU(XMLID("quit"), MyFrame::OnQuit)$. +\item set up event tables as usual but use the \verb$XRCID(str)$ macro to translate from XRC string names +to a suitable integer identifier, for example \verb$EVT\_MENU(XRCID("quit"), MyFrame::OnQuit)$. \end{itemize} To create an XRC file, use one of the following methods. \begin{itemize}\itemsep=0 \item Create the file by hand; -\item use \urlref{wxDesigner}{http://www.roebling.de}; -\item use wxWorkshop (not yet available); -\item use wxrcedit (the status of this tool is unknown); -\item convert WIN32 RC files with the tool in contrib/utils/convertrc (the status of this tool is -unknown). +\item use \urlref{wxDesigner}{http://www.roebling.de}, a commercial dialog designer/RAD tool; +\item use \urlref{XRCed}{http://www.mema.ucl.ac.be/~rolinsky/xrced/}, a wxPython-based +dialog editor that you can find in the {\tt wxPython/tools} subdirectory of the wxWindows +CVS archive; +\item use \urlref{wxWorkshop}{http://wxworkshop.sourceforge.net} (under development); +\item use wxrcedit ({\tt utils/contrib/wxrcedit}) (under development); +\item convert WIN32 RC files to XRC with the tool in {\tt contrib/utils/convertrc}. \end{itemize} It is highly recommended that you use a tool such as wxDesigner, since it's fiddly writing @@ -122,46 +128,10 @@ For example: This is the C++ source file (xrcdemo.cpp) for the XRC sample. \begin{verbatim} -///////////////////////////////////////////////////////////////////////////// -// Name: xmldemo.cpp -// Purpose: XML resources sample -// Author: Vaclav Slavik -// RCS-ID: $Id$ -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "xrcdemo.cpp" - #pragma interface "xrcdemo.cpp" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// for all others, include the necessary headers (this file is usually all you -// need because it includes almost all "standard" wxWindows headers) -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - +#include "wx/wx.h" #include "wx/image.h" #include "wx/xrc/xmlres.h" -// ---------------------------------------------------------------------------- -// resources -// ---------------------------------------------------------------------------- // the application icon #if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) #include "rc/appicon.xpm" @@ -206,27 +176,15 @@ private: // event tables and other macros for wxWindows // ---------------------------------------------------------------------------- -// the event tables connect the wxWindows events with the functions (event -// handlers) which process them. It can be also done at run-time, but for the -// simple menu events like this the static method is much simpler. BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(XMLID("menu_quit"), MyFrame::OnQuit) - EVT_MENU(XMLID("menu_about"), MyFrame::OnAbout) - EVT_MENU(XMLID("menu_dlg1"), MyFrame::OnDlg1) - EVT_MENU(XMLID("menu_dlg2"), MyFrame::OnDlg2) + EVT_MENU(XRCID("menu_quit"), MyFrame::OnQuit) + EVT_MENU(XRCID("menu_about"), MyFrame::OnAbout) + EVT_MENU(XRCID("menu_dlg1"), MyFrame::OnDlg1) + EVT_MENU(XRCID("menu_dlg2"), MyFrame::OnDlg2) END_EVENT_TABLE() -// Create a new application object: this macro will allow wxWindows to create -// the application object during program execution (it's better than using a -// static object for many reasons) and also declares the accessor function -// wxGetApp() which will return the reference of the right type (i.e. MyApp and -// not wxApp) IMPLEMENT_APP(MyApp) -// ============================================================================ -// implementation -// ============================================================================ - // ---------------------------------------------------------------------------- // the application class // ---------------------------------------------------------------------------- @@ -258,9 +216,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) SetToolBar(wxXmlResource::Get()->LoadToolBar(this, "toolbar")); } - // event handlers - void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) { // TRUE is to force the frame to close @@ -283,7 +239,6 @@ void MyFrame::OnDlg1(wxCommandEvent& WXUNUSED(event)) dlg.ShowModal(); } - void MyFrame::OnDlg2(wxCommandEvent& WXUNUSED(event)) { wxDialog dlg; @@ -455,10 +410,10 @@ This is the XML file (resource.xrc) for the XRC sample. \subsection{XRC file format}\label{xrcfileformat} -This section to be written. +Please see Technical Note 14 (docs/tech/tn0014.txt) in your wxWindows +distribution. \subsection{Adding new resource handlers}\label{newresourcehandlers} -This section to be written. - +Coming soon.