]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/txrc.tex
new wxASSERT implementation using wxAssert() helper function
[wxWidgets.git] / docs / latex / wx / txrc.tex
index ea6f6465053f12e99aefa4c5f21d2eee6142f990..7aab0c05e1a30994f9b72a2374074a6d74401950 100644 (file)
@@ -69,23 +69,25 @@ 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 call \verb$wxXmlResource::Get()->InitAllHandlers()$ from your wxApp::OnInit function,
-and then call \verb$wxXmlResource::Get()->Load("myfile.xrc")$ to load the resource file;
+\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
-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)$.
+load using for example {\tt wxXmlResource::Get()->LoadDialog(\&dlg, this, "dlg1");}
+\item set up event tables as usual but use the {\tt XRCID(str)} macro to translate from XRC string names
+to a suitable integer identifier, for example {\tt EVT\_MENU(XRCID("quit"), MyFrame::OnQuit)}.
 \end{itemize}
 
 To create an XRC file, use one of the following methods.
 
-\begin{itemize}\itemsep=0
+\begin{itemize}\itemsep=0pt
 \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
@@ -102,7 +104,7 @@ TODO: is the compiled binary format XMB or XRS? How do you handle a C++ resource
 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.
 
-\begin{itemize}\itemsep=0
+\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
@@ -126,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"
@@ -210,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
 // ----------------------------------------------------------------------------
@@ -262,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
@@ -287,7 +239,6 @@ void MyFrame::OnDlg1(wxCommandEvent& WXUNUSED(event))
     dlg.ShowModal();
 }
 
-
 void MyFrame::OnDlg2(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg;
@@ -302,14 +253,14 @@ This is the XML file (resource.xrc) for the XRC sample.
 
 \begin{verbatim}
 <?xml version="1.0"?>
-<resource>
+<resource version="2.3.0.1">
   <object class="wxMenuBar" name="mainmenu">
     <style>wxMB_DOCKABLE</style>
     <object class="wxMenu" name="menu_file">
-      <label>$File</label>
+      <label>_File</label>
       <style>wxMENU_TEAROFF</style>
       <object class="wxMenuItem" name="menu_about">
-        <label>$About...</label>
+        <label>_About...</label>
         <bitmap>filesave.gif</bitmap>
       </object>
       <object class="separator"/>
@@ -321,7 +272,7 @@ This is the XML file (resource.xrc) for the XRC sample.
       </object>
       <object class="separator"/>
       <object class="wxMenuItem" name="menu_quit">
-        <label>E$xit\tAlt-X</label>
+        <label>E_xit\tAlt-X</label>
       </object>
     </object>
   </object>
@@ -459,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.