From 82e20720c94f1df1086173bc3fea52d50473297c Mon Sep 17 00:00:00 2001
From: Julian Smart <julian@anthemion.co.uk>
Date: Sun, 30 Mar 2003 21:21:33 +0000
Subject: [PATCH] Deprecated classes manual

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 contrib/docs/latex/deprecated/category.tex |  15 +
 contrib/docs/latex/deprecated/classes.tex  |  35 ++
 contrib/docs/latex/deprecated/expr.tex     | 496 +++++++++++++++
 contrib/docs/latex/deprecated/function.tex | 338 +++++++++++
 contrib/docs/latex/deprecated/manual.tex   | 649 ++++++++++++++++++++
 contrib/docs/latex/deprecated/prop1.bmp    | Bin 0 -> 29238 bytes
 contrib/docs/latex/deprecated/prop1.eps    | 539 +++++++++++++++++
 contrib/docs/latex/deprecated/prop1.gif    | Bin 0 -> 38958 bytes
 contrib/docs/latex/deprecated/prop2.bmp    | Bin 0 -> 42526 bytes
 contrib/docs/latex/deprecated/prop2.eps    | 664 +++++++++++++++++++++
 contrib/docs/latex/deprecated/prop2.gif    | Bin 0 -> 56166 bytes
 contrib/docs/latex/deprecated/propbfva.tex |  17 +
 contrib/docs/latex/deprecated/propblva.tex |  16 +
 contrib/docs/latex/deprecated/property.tex | 107 ++++
 contrib/docs/latex/deprecated/propflva.tex |  18 +
 contrib/docs/latex/deprecated/propford.tex |  23 +
 contrib/docs/latex/deprecated/propforf.tex |  43 ++
 contrib/docs/latex/deprecated/propforp.tex |  23 +
 contrib/docs/latex/deprecated/propforv.tex |  60 ++
 contrib/docs/latex/deprecated/propfovi.tex | 104 ++++
 contrib/docs/latex/deprecated/propifva.tex |  18 +
 contrib/docs/latex/deprecated/propilva.tex |  17 +
 contrib/docs/latex/deprecated/proplisd.tex |  23 +
 contrib/docs/latex/deprecated/proplisf.tex |  43 ++
 contrib/docs/latex/deprecated/proplisp.tex |  24 +
 contrib/docs/latex/deprecated/proplist.tex | 556 +++++++++++++++++
 contrib/docs/latex/deprecated/propliva.tex | 110 ++++
 contrib/docs/latex/deprecated/proplosv.tex |  31 +
 contrib/docs/latex/deprecated/proplstv.tex | 111 ++++
 contrib/docs/latex/deprecated/propregv.tex |  42 ++
 contrib/docs/latex/deprecated/proprfva.tex |  17 +
 contrib/docs/latex/deprecated/proprlva.tex |  19 +
 contrib/docs/latex/deprecated/propsht.tex  |  83 +++
 contrib/docs/latex/deprecated/propslv.tex  |  18 +
 contrib/docs/latex/deprecated/propstfv.tex |  20 +
 contrib/docs/latex/deprecated/propval.tex  | 242 ++++++++
 contrib/docs/latex/deprecated/propvald.tex |  41 ++
 contrib/docs/latex/deprecated/propview.tex | 111 ++++
 contrib/docs/latex/deprecated/tex2rtf.ini  |  55 ++
 contrib/docs/latex/deprecated/topics.tex   |   9 +
 contrib/docs/latex/deprecated/treelay.tex  | 327 ++++++++++
 contrib/docs/latex/deprecated/tresourc.tex | 335 +++++++++++
 42 files changed, 5399 insertions(+)
 create mode 100644 contrib/docs/latex/deprecated/category.tex
 create mode 100644 contrib/docs/latex/deprecated/classes.tex
 create mode 100644 contrib/docs/latex/deprecated/expr.tex
 create mode 100644 contrib/docs/latex/deprecated/function.tex
 create mode 100644 contrib/docs/latex/deprecated/manual.tex
 create mode 100644 contrib/docs/latex/deprecated/prop1.bmp
 create mode 100644 contrib/docs/latex/deprecated/prop1.eps
 create mode 100644 contrib/docs/latex/deprecated/prop1.gif
 create mode 100644 contrib/docs/latex/deprecated/prop2.bmp
 create mode 100644 contrib/docs/latex/deprecated/prop2.eps
 create mode 100644 contrib/docs/latex/deprecated/prop2.gif
 create mode 100644 contrib/docs/latex/deprecated/propbfva.tex
 create mode 100644 contrib/docs/latex/deprecated/propblva.tex
 create mode 100644 contrib/docs/latex/deprecated/property.tex
 create mode 100644 contrib/docs/latex/deprecated/propflva.tex
 create mode 100644 contrib/docs/latex/deprecated/propford.tex
 create mode 100644 contrib/docs/latex/deprecated/propforf.tex
 create mode 100644 contrib/docs/latex/deprecated/propforp.tex
 create mode 100644 contrib/docs/latex/deprecated/propforv.tex
 create mode 100644 contrib/docs/latex/deprecated/propfovi.tex
 create mode 100644 contrib/docs/latex/deprecated/propifva.tex
 create mode 100644 contrib/docs/latex/deprecated/propilva.tex
 create mode 100644 contrib/docs/latex/deprecated/proplisd.tex
 create mode 100644 contrib/docs/latex/deprecated/proplisf.tex
 create mode 100644 contrib/docs/latex/deprecated/proplisp.tex
 create mode 100644 contrib/docs/latex/deprecated/proplist.tex
 create mode 100644 contrib/docs/latex/deprecated/propliva.tex
 create mode 100644 contrib/docs/latex/deprecated/proplosv.tex
 create mode 100644 contrib/docs/latex/deprecated/proplstv.tex
 create mode 100644 contrib/docs/latex/deprecated/propregv.tex
 create mode 100644 contrib/docs/latex/deprecated/proprfva.tex
 create mode 100644 contrib/docs/latex/deprecated/proprlva.tex
 create mode 100644 contrib/docs/latex/deprecated/propsht.tex
 create mode 100644 contrib/docs/latex/deprecated/propslv.tex
 create mode 100644 contrib/docs/latex/deprecated/propstfv.tex
 create mode 100644 contrib/docs/latex/deprecated/propval.tex
 create mode 100644 contrib/docs/latex/deprecated/propvald.tex
 create mode 100644 contrib/docs/latex/deprecated/propview.tex
 create mode 100644 contrib/docs/latex/deprecated/tex2rtf.ini
 create mode 100644 contrib/docs/latex/deprecated/topics.tex
 create mode 100644 contrib/docs/latex/deprecated/treelay.tex
 create mode 100644 contrib/docs/latex/deprecated/tresourc.tex

diff --git a/contrib/docs/latex/deprecated/category.tex b/contrib/docs/latex/deprecated/category.tex
new file mode 100644
index 0000000000..dbfaf7f7d2
--- /dev/null
+++ b/contrib/docs/latex/deprecated/category.tex
@@ -0,0 +1,15 @@
+\chapter{Classes by category}\label{classesbycat}
+\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+A classification of deprecated wxWindows classes by category.
+
+{\large {\bf Miscellaneous}}
+
+\twocolwidtha{6cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\helpref{wxTreeLayout}{wxtreelayout}}{Tree layout algorithm}
+\twocolitem{\helpref{wxExpr}{wxexpr}}{A class for parsing WXR (and other) data files}
+\twocolitem{\helpref{wxExprDatabase}{wxexprdatabase}}{A class for storing parsed WXR (and other) data files}
+\end{twocollist}
+
diff --git a/contrib/docs/latex/deprecated/classes.tex b/contrib/docs/latex/deprecated/classes.tex
new file mode 100644
index 0000000000..a41c01c35a
--- /dev/null
+++ b/contrib/docs/latex/deprecated/classes.tex
@@ -0,0 +1,35 @@
+\chapter{Alphabetical class reference}\label{classref}
+\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+% NB: the files should be in alphabetic order of the classes documented in
+%     them and *not* in alphabetic order of the file names!
+
+\input propbfva.tex
+\input propblva.tex
+\input propflva.tex
+\input propifva.tex
+\input propilva.tex
+\input proplosv.tex
+\input property.tex
+\input propford.tex
+\input propforf.tex
+\input propforp.tex
+\input propforv.tex
+\input propfovi.tex
+\input proplisd.tex
+\input proplisf.tex
+\input proplisp.tex
+\input propliva.tex
+\input proplstv.tex
+\input propsht.tex
+\input propvald.tex
+\input propregv.tex
+\input propval.tex
+\input propview.tex
+\input proprfva.tex
+\input proprlva.tex
+\input propstfv.tex
+\input propslv.tex
+\input treelay.tex
+
diff --git a/contrib/docs/latex/deprecated/expr.tex b/contrib/docs/latex/deprecated/expr.tex
new file mode 100644
index 0000000000..83381dfdde
--- /dev/null
+++ b/contrib/docs/latex/deprecated/expr.tex
@@ -0,0 +1,496 @@
+\section{\class{wxExpr}}\label{wxexpr}
+
+The {\bf wxExpr} class is the building brick of expressions similar to Prolog
+clauses, or objects. It can represent an expression of type long integer, float, string, word,
+or list, and lists can be nested.
+
+\wxheading{Derived from}
+
+None
+
+\wxheading{Include files}
+
+<wx/wxexpr.h>
+
+\wxheading{See also}
+
+\helpref{wxExpr overview}{exproverview}, \helpref{wxExprDatabase}{wxexprdatabase}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxExpr::wxExpr}\label{wxexprconstr}
+
+\func{}{wxExpr}{\param{const wxString\&}{functor}}
+
+Construct a new clause with this form, supplying the functor name. A clause is an object
+that will appear in the data file, with a list of attribute/value pairs.
+
+\func{}{wxExpr}{\param{wxExprType}{ type}, \param{const wxString\&}{ wordOrString = ``"}}
+
+Construct a new empty list, or a word (will be output with no quotes), or a string, depending on the
+value of {\it type}.
+
+{\it type} can be {\bf wxExprList}, {\bf wxExprWord}, or {\bf wxExprString}. If {\it type} is wxExprList,
+the value of {\it wordOrString} will be ignored.
+
+\func{}{wxExpr}{\param{long}{ value}}
+
+Construct an integer expression.
+
+\func{}{wxExpr}{\param{float}{ value}}
+
+Construct a floating point expression.
+
+\func{}{wxExpr}{\param{wxList* }{value}}
+
+Construct a list expression. The list's nodes' data should
+themselves be {\bf wxExpr}s.
+
+wxExpr no longer uses the {\bf wxList} internally,
+so this constructor turns the list into its internal
+format (assuming a non-nested list) and then deletes the supplied
+list.
+
+\membersection{wxExpr::\destruct{wxExpr}}
+
+\func{}{\destruct{wxExpr}}{\void}
+
+Destructor.
+
+\membersection{wxExpr::AddAttributeValue}\label{wxexpraddattributevalue}
+
+Use these on clauses ONLY. Note that the functions for adding strings
+and words must be differentiated by function name which is why
+they are missing from this group (see \helpref{wxExpr::AddAttributeValueString}{wxexpraddattributevaluestring} and
+\rtfsp\helpref{wxExpr::AddAttributeValueWord}{wxexpraddattributevalueword}).
+
+\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{float }{value}}
+
+Adds an attribute and floating point value pair to the clause.
+
+\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{long }{value}}
+
+Adds an attribute and long integer value pair to the clause.
+
+\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxList* }{value}}
+
+Adds an attribute and list value pair to the clause, converting the list into
+internal form and then deleting {\bf value}. Note that the list should not contain
+nested lists (except if in internal {\bf wxExpr} form.)
+
+\func{void}{AddAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxExpr* }{value}}
+
+Adds an attribute and wxExpr value pair to the clause. Do not delete\rtfsp
+{\it value} once this function has been called.
+
+\membersection{wxExpr::AddAttributeValueString}\label{wxexpraddattributevaluestring}
+
+\func{void}{AddAttributeValueString}{\param{const wxString\&}{ attribute}, \param{const wxString\&}{ value}}
+
+Adds an attribute and string value pair to the clause.
+
+\membersection{wxExpr::AddAttributeValueStringList}\label{wxexpraddattributevaluestringlist}
+
+\func{void}{AddAttributeValueStringList}{\param{const wxString\&}{ attribute}, \param{wxList* }{value}}
+
+Adds an attribute and string list value pair to the clause.
+
+Note that the list passed to this function is a list of strings, NOT a list
+of {\bf wxExpr}s; it gets turned into a list of {\bf wxExpr}s
+automatically. This is a convenience function, since lists of strings
+are often manipulated in C++.
+
+\membersection{wxExpr::AddAttributeValueWord}\label{wxexpraddattributevalueword}
+
+\func{void}{AddAttributeValueWord}{\param{const wxString\&}{ attribute}, \param{const wxString\&}{ value}}
+
+Adds an attribute and word value pair to the clause.
+
+\membersection{wxExpr::Append}\label{wxexprappend}
+
+\func{void}{Append}{\param{wxExpr*}{ value}}
+
+Append the {\bf value} to the end of the list. `this' must be a list.
+
+\membersection{wxExpr::Arg}\label{wxexprarg}
+
+\constfunc{wxExpr* }{Arg}{\param{wxExprType}{ type}, \param{int}{ n}}
+
+Get nth arg of the given clause (starting from 1). NULL is returned if
+the expression is not a clause, or {\it n} is invalid, or the given type
+does not match the actual type. See also \helpref{wxExpr::Nth}{wxexprnth}.
+
+\membersection{wxExpr::Insert}\label{wxexprinsert}
+
+\func{void}{Insert}{\param{wxExpr* }{value}}
+
+Insert the {\bf value} at the start of the list. `this' must be a list.
+
+\membersection{wxExpr::GetAttributeValue}\label{wxexprgetattributevalue}
+
+These functions are the easiest way to retrieve attribute values, by
+passing a pointer to variable. If the attribute is present, the
+variable will be filled with the appropriate value.  If not, the
+existing value is left alone.  This style of retrieving attributes
+makes it easy to set variables to default values before calling these
+functions; no code is necessary to check whether the attribute is
+present or not.
+
+\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxString\&}{ value}}
+
+Retrieve a string (or word) value.
+
+\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{float\& }{value}}
+
+Retrieve a floating point value.
+
+\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{int\& }{value}}
+
+Retrieve an integer value.
+
+\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{long\& }{value}}
+
+Retrieve a long integer value.
+
+\constfunc{bool}{GetAttributeValue}{\param{const wxString\&}{ attribute}, \param{wxExpr**}{ value}}
+
+Retrieve a wxExpr pointer.
+
+\membersection{wxExpr::GetAttributeValueStringList}\label{wxexprgetattributestringlist}
+
+\constfunc{void}{GetAttributeValueStringList}{\param{const wxString\&}{attribute}, \param{wxList* }{value}}
+
+Use this on clauses ONLY. See above for comments on this style of
+attribute value retrieval. This function expects to receive a pointer to
+a new list (created by the calling application); it will append strings
+to the list if the attribute is present in the clause.
+
+\membersection{wxExpr::AttributeValue}\label{wxexprattributevalue}
+
+\constfunc{wxExpr*}{AttributeValue}{\param{const wxString\&}{ word}}
+
+Use this on clauses ONLY. Searches the clause for an attribute
+matching {\it word}, and returns the value associated with it.
+
+\membersection{wxExpr::Copy}\label{wxexprcopy}
+
+\constfunc{wxExpr*}{Copy}{\void}
+
+Recursively copies the expression, allocating new storage space.
+
+\membersection{wxExpr::DeleteAttributeValue}\label{wxexprdeletattributevalue}
+
+\func{void}{DeleteAttributeValue}{\param{const wxString\&}{ attribute}}
+
+Use this on clauses only. Deletes the attribute and its value (if any) from the
+clause.
+
+\membersection{wxExpr::Functor}\label{wxexprfunctor}
+
+\constfunc{wxString}{Functor}{\void}
+
+Use this on clauses only. Returns the clause's functor (object name).
+
+\membersection{wxExpr::GetClientData}\label{wxexprgetclientdata}
+
+\constfunc{wxObject*}{GetClientData}{\void}
+
+Retrieve arbitrary data stored with this clause. This can be useful when
+reading in data for storing a pointer to the C++ object, so when another
+clause makes a reference to this clause, its C++ object can be retrieved.
+See \helpref{wxExpr::SetClientData}{wxexprsetclientdata}.
+
+\membersection{wxExpr::GetFirst}\label{wxexprgetfirst}
+
+\constfunc{wxExpr*}{GetFirst}{\void}
+
+If this is a list expression (or clause), gets the first element in the list.
+
+See also \helpref{wxExpr::GetLast}{wxexprgetlast}, \helpref{wxExpr::GetNext}{wxexprgetnext}, \helpref{wxExpr::Nth}{wxexprnth}.
+
+\membersection{wxExpr::GetLast}\label{wxexprgetlast}
+
+\constfunc{wxExpr*}{GetLast}{\void}
+
+If this is a list expression (or clause), gets the last element in the list.
+
+See also \helpref{wxExpr::GetFirst}{wxexprgetfirst}, \helpref{wxExpr::GetNext}{wxexprgetnext}, \helpref{wxExpr::Nth}{wxexprnth}.
+
+\membersection{wxExpr::GetNext}\label{wxexprgetnext}
+
+\constfunc{wxExpr*}{GetNext}{\void}
+
+If this is a node in a list (any wxExpr may be a node in a list), gets the
+next element in the list.
+
+See also \helpref{wxExpr::GetFirst}{wxexprgetfirst}, \helpref{wxExpr::GetLast}{wxexprgetlast}, \helpref{wxExpr::Nth}{wxexprnth}.
+
+\membersection{wxExpr::IntegerValue}\label{wxexprintegervalue}
+
+\constfunc{long}{IntegerValue}{\void}
+
+Returns the integer value of the expression.
+
+\membersection{wxExpr::Nth}\label{wxexprnth}
+
+\constfunc{wxExpr*}{Nth}{\param{int}{ n}}
+
+Get nth arg of the given list expression (starting from 0). NULL is returned if
+the expression is not a list expression, or {\it n} is invalid. See also \helpref{wxExpr::Arg}{wxexprarg}.
+
+Normally, you would use attribute-value pairs to add and retrieve data
+from objects (clauses) in a data file. However, if the data gets complex,
+you may need to store attribute values as lists, and pick them apart
+yourself.
+
+\membersection{wxExpr::RealValue}\label{wxexprrealvalue}
+
+\constfunc{float}{RealValue}{\void}
+
+Returns the floating point value of the expression.
+
+\membersection{wxExpr::SetClientData}\label{wxexprsetclientdata}
+
+\func{void}{SetClientData}{\param{wxObject *}{data}}
+
+Associate arbitrary data with this clause. This can be useful when
+reading in data for storing a pointer to the C++ object, so when another
+clause makes a reference to this clause, its C++ object can be retrieved.
+See \helpref{wxExpr::GetClientData}{wxexprgetclientdata}.
+
+\membersection{wxExpr::StringValue}\label{wxexprstringvalue}
+
+\constfunc{wxString}{StringValue}{\void}
+
+Returns the string value of the expression.
+
+\membersection{wxExpr::Type}\label{wxexprtype}
+
+\constfunc{wxExprType}{Type}{\void}
+
+Returns the type of the expression. {\bf wxExprType} is defined as follows:
+
+\begin{verbatim}
+typedef enum {
+    wxExprNull,
+    wxExprInteger,
+    wxExprReal,
+    wxExprWord,
+    wxExprString,
+    wxExprList
+} wxExprType;
+\end{verbatim}
+
+\membersection{wxExpr::WordValue}\label{wxexprwordvalue}
+
+\constfunc{wxString}{WordValue}{\void}
+
+Returns the word value of the expression.
+
+\membersection{wxExpr::WriteClause}\label{wxexprwriteprologclause}
+
+\func{void}{WriteClause}{\param{FILE *}{ stream}}
+
+Writes the clause to the given stream in Prolog format. Not normally needed, since
+the whole {\bf wxExprDatabase} will usually be written at once. The format is:
+functor, open parenthesis, list of comma-separated expressions, close parenthesis,
+full stop.
+
+\membersection{wxExpr::WriteExpr}\label{wxexprwriteexpr}
+
+\func{void}{WriteExpr}{\param{FILE *}{ stream}}
+
+Writes the expression (not clause) to the given stream in Prolog
+format. Not normally needed, since the whole {\bf wxExprDatabase} will
+usually be written at once. Lists are written in square bracketed,
+comma-delimited format.
+
+\membersection{Functions and macros}
+
+Below are miscellaneous functions and macros associated with wxExpr objects.
+
+\func{bool}{wxExprIsFunctor}{\param{wxExpr *}{expr}, \param{const wxString\&}{ functor}}
+
+Checks that the functor of {\it expr} is {\it functor}.
+
+\func{void}{wxExprCleanUp}{\void}
+
+Cleans up the wxExpr system (YACC/LEX buffers) to avoid memory-checking warnings as the program exits.
+
+\begin{verbatim}
+#define wxMakeInteger(x) (new wxExpr((long)x))
+#define wxMakeReal(x)    (new wxExpr((float)x))
+#define wxMakeString(x)  (new wxExpr(PrologString, x))
+#define wxMakeWord(x)    (new wxExpr(PrologWord, x))
+#define wxMake(x)        (new wxExpr(x))
+\end{verbatim}
+
+Macros to help make wxExpr objects.
+
+\section{\class{wxExprDatabase}}\label{wxexprdatabase}
+
+The {\bf wxExprDatabase} class represents a database, or list,
+of Prolog-like expressions.  Instances of this class are used for reading,
+writing and creating data files.
+
+\wxheading{Derived from}
+
+\helpref{wxList}{wxlist}\\
+\helpref{wxObject}{wxobject}
+
+\wxheading{See also}
+
+\helpref{wxExpr overview}{exproverview}, \helpref{wxExpr}{wxexpr}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxExprDatabase::wxExprDatabase}\label{wxexprdatabaseconstr}
+
+\func{void}{wxExprDatabase}{\param{proioErrorHandler}{ handler = 0}}
+
+Construct a new, unhashed database, with an optional error handler. The
+error handler must be a function returning a bool and taking an integer and a string
+argument. When an error occurs when reading or writing a database, this function is
+called. The error is given as the first argument (currently one of WXEXPR\_ERROR\_GENERAL,
+WXEXPR\_ERROR\_SYNTAX) and an error message is given as the second argument. If false
+is returned by the error handler, processing of the wxExpr operation stops.
+
+Another way of handling errors is simply to call \helpref{wxExprDatabase::GetErrorCount}{wxexprdatabasegeterrorcount} after
+the operation, to check whether errors have occurred, instead of installing an error handler.
+If the error count is more than zero, \helpref{wxExprDatabase::Write}{wxexprdatabasewrite} and
+\rtfsp\helpref{wxExprDatabase::Read}{wxexprdatabaseread} will return false to
+the application.
+
+For example:
+
+\begin{verbatim}
+bool myErrorHandler(int err, chat *msg)
+{
+  if (err == WXEXPR_ERROR_SYNTAX)
+  {
+    wxMessageBox(msg, "Syntax error");
+  }
+  return false;
+}
+
+wxExprDatabase database(myErrorHandler);
+\end{verbatim}
+
+\func{}{wxExprDatabase}{\param{wxExprType}{ type}, \param{const wxString\&}{attribute},
+\rtfsp\param{int}{ size = 500}, \param{proioErrorHandler}{ handler = 0}}
+
+Construct a new database hashed on a combination of the clause functor and
+a named attribute (often an integer identification).
+
+See above for an explanation of the error handler.
+
+\membersection{wxExprDatabase::\destruct{wxExprDatabase}}
+
+\func{}{\destruct{wxExprDatabase}}{\void}
+
+Delete the database and contents.
+
+\membersection{wxExprDatabase::Append}\label{wxexprdatabaseappend}
+
+\func{void}{Append}{\param{wxExpr* }{clause}}
+
+Append a clause to the end of the database. If the database is hashing,
+the functor and a user-specified attribute will be hashed upon, giving the
+option of random access in addition to linear traversal of the database.
+
+\membersection{wxExprDatabase::BeginFind}\label{wxexprdatabasebeginfind}
+
+\func{void}{BeginFind}{\void}
+
+Reset the current position to the start of the database. Subsequent
+\rtfsp\helpref{wxExprDatabase::FindClause}{wxexprdatabasefindclause} calls will move the pointer.
+
+\membersection{wxExprDatabase::ClearDatabase}\label{wxexprdatabasecleardatabase}
+
+\func{void}{ClearDatabase}{\void}
+
+Clears the contents of the database.
+
+\membersection{wxExprDatabase::FindClause}\label{wxexprdatabasefindclause}
+
+Various ways of retrieving clauses from the database. A return
+value of NULL indicates no (more) clauses matching the given criteria.
+Calling the functions repeatedly retrieves more matching clauses, if any.
+
+\func{wxExpr* }{FindClause}{\param{long}{ id}}
+
+Find a clause based on the special ``id'' attribute.
+
+\func{wxExpr* }{FindClause}{\param{const wxString\&}{ attribute}, \param{const wxString\&}{ value}}
+
+Find a clause which has the given attribute set to the given string or word value.
+
+\func{wxExpr*}{FindClause}{\param{const wxString\&}{ attribute}, \param{long}{ value}}
+
+Find a clause which has the given attribute set to the given integer value.
+
+\func{wxExpr*}{FindClause}{\param{const wxString\&}{ attribute}, \param{float}{ value}}
+
+Find a clause which has the given attribute set to the given floating point value.
+
+\membersection{wxExprDatabase::FindClauseByFunctor}\label{wxexprdatabasefindclausebyfunctor}
+
+\func{wxExpr*}{FindClauseByFunctor}{\param{const wxString\&}{ functor}}
+
+Find the next clause with the specified functor.
+
+\membersection{wxExprDatabase::GetErrorCount}\label{wxexprdatabasegeterrorcount}
+
+\constfunc{int}{GetErrorCount}{\void}
+
+Returns the number of errors encountered during the last read or write operation.
+
+\membersection{wxExprDatabase::HashFind}\label{wxexprdatabasehashfind}
+
+\constfunc{wxExpr*}{HashFind}{\param{const wxString\&}{ functor}, \param{long}{ value}}
+
+Finds the clause with the given functor and with the attribute specified
+in the database constructor having the given integer value.
+
+For example,
+
+\begin{verbatim}
+// Hash on a combination of functor and integer "id" attribute when reading in
+wxExprDatabase db(wxExprInteger, "id");
+
+// Read it in
+db.ReadProlog("data");
+
+// Retrieve a clause with specified functor and id
+wxExpr *clause = db.HashFind("node", 24);
+\end{verbatim}
+
+This would retrieve a clause which is written: {\tt node(id = 24, ..., )}.
+
+\func{wxExpr*}{HashFind}{\param{const wxString\&}{ functor}, \param{const wxString\&}{ value}}
+
+Finds the clause with the given functor and with the attribute specified
+in the database constructor having the given string value.
+
+\membersection{wxExprDatabase::Read}\label{wxexprdatabaseread}
+
+\func{bool}{Read}{\param{const wxString\&}{ filename}}
+
+Reads in the given file, returning true if successful.
+
+\membersection{wxExprDatabase::ReadFromString}\label{wxexprdatabasereadfromstring}
+
+\func{bool}{ReadFromString}{\param{const wxString\&}{ buffer}}
+
+Reads a Prolog database from the given string buffer, returning true if
+successful.
+
+\membersection{wxExprDatabase::Write}\label{wxexprdatabasewrite}
+
+\func{bool}{Write}{\param{FILE *}{stream}}
+
+\func{bool}{Write}{\param{const wxString\&}{ filename}}
+
+Writes the database as a Prolog-format file.
+
+
diff --git a/contrib/docs/latex/deprecated/function.tex b/contrib/docs/latex/deprecated/function.tex
new file mode 100644
index 0000000000..69cbd2b513
--- /dev/null
+++ b/contrib/docs/latex/deprecated/function.tex
@@ -0,0 +1,338 @@
+\chapter{Functions}\label{functions}
+\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}
+
+Deprecated functions and macros defined in wxWindows are described here: you can
+either look up a function using the alphabetical listing of them or find it in
+the corresponding topic.
+
+\section{Alphabetical functions and macros list}
+
+%\helpref{wxGetResource}{wxgetresource}\\
+%\helpref{wxLoadUserResource}{wxloaduserresource}\\
+%\helpref{wxMakeMetafilePlaceable}{wxmakemetafileplaceable}\\
+%\helpref{wxNewId}{wxnewid}\\
+\helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}\\
+\helpref{wxResourceClear}{wxresourceclear}\\
+\helpref{wxResourceCreateBitmap}{wxresourcecreatebitmap}\\
+\helpref{wxResourceCreateIcon}{wxresourcecreateicon}\\
+\helpref{wxResourceCreateMenuBar}{wxresourcecreatemenubar}\\
+\helpref{wxResourceGetIdentifier}{wxresourcegetidentifier}\\
+\helpref{wxResourceParseData}{wxresourcedata}\\
+\helpref{wxResourceParseFile}{wxresourceparsefile}\\
+\helpref{wxResourceParseString}{wxresourceparsestring}\\
+\helpref{wxResourceRegisterBitmapData}{registerbitmapdata}\\
+\helpref{wxResourceRegisterIconData}{wxresourceregistericondata}\\
+%\helpref{wxSetPrinterCommand}{wxsetprintercommand}\\
+%\helpref{wxSetPrinterFile}{wxsetprinterfile}\\
+%\helpref{wxSetPrinterMode}{wxsetprintermode}\\
+%\helpref{wxSetPrinterOptions}{wxsetprinteroptions}\\
+%\helpref{wxSetPrinterOrientation}{wxsetprinterorientation}\\
+%\helpref{wxSetPrinterPreviewCommand}{wxsetprinterpreviewcommand}\\
+%\helpref{wxSetPrinterScaling}{wxsetprinterscaling}\\
+%\helpref{wxSetPrinterTranslation}{wxsetprintertranslation}\\
+
+\section{Printer settings}\label{printersettings}
+
+{\bf NB:} These routines are obsolete and should no longer be used!
+
+The following functions are used to control PostScript printing. Under
+Windows, PostScript output can only be sent to a file.
+
+\wxheading{Include files}
+
+<wx/dcps.h>
+
+\membersection{::wxGetPrinterCommand}\label{wxgetprintercommand}
+
+\func{wxString}{wxGetPrinterCommand}{\void}
+
+Gets the printer command used to print a file. The default is {\tt lpr}.
+
+\membersection{::wxGetPrinterFile}\label{wxgetprinterfile}
+
+\func{wxString}{wxGetPrinterFile}{\void}
+
+Gets the PostScript output filename.
+
+\membersection{::wxGetPrinterMode}\label{wxgetprintermode}
+
+\func{int}{wxGetPrinterMode}{\void}
+
+Gets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
+The default is PS\_PREVIEW.
+
+\membersection{::wxGetPrinterOptions}\label{wxgetprinteroptions}
+
+\func{wxString}{wxGetPrinterOptions}{\void}
+
+Gets the additional options for the print command (e.g. specific printer). The default is nothing.
+
+\membersection{::wxGetPrinterOrientation}\label{wxgetprinterorientation}
+
+\func{int}{wxGetPrinterOrientation}{\void}
+
+Gets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
+
+\membersection{::wxGetPrinterPreviewCommand}\label{wxgetprinterpreviewcommand}
+
+\func{wxString}{wxGetPrinterPreviewCommand}{\void}
+
+Gets the command used to view a PostScript file. The default depends on the platform.
+
+\membersection{::wxGetPrinterScaling}\label{wxgetprinterscaling}
+
+\func{void}{wxGetPrinterScaling}{\param{float *}{x}, \param{float *}{y}}
+
+Gets the scaling factor for PostScript output. The default is 1.0, 1.0.
+
+\membersection{::wxGetPrinterTranslation}\label{wxgetprintertranslation}
+
+\func{void}{wxGetPrinterTranslation}{\param{float *}{x}, \param{float *}{y}}
+
+Gets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
+
+\membersection{::wxSetPrinterCommand}\label{wxsetprintercommand}
+
+\func{void}{wxSetPrinterCommand}{\param{const wxString\& }{command}}
+
+Sets the printer command used to print a file. The default is {\tt lpr}.
+
+\membersection{::wxSetPrinterFile}\label{wxsetprinterfile}
+
+\func{void}{wxSetPrinterFile}{\param{const wxString\& }{filename}}
+
+Sets the PostScript output filename.
+
+\membersection{::wxSetPrinterMode}\label{wxsetprintermode}
+
+\func{void}{wxSetPrinterMode}{\param{int }{mode}}
+
+Sets the printing mode controlling where output is sent (PS\_PREVIEW, PS\_FILE or PS\_PRINTER).
+The default is PS\_PREVIEW.
+
+\membersection{::wxSetPrinterOptions}\label{wxsetprinteroptions}
+
+\func{void}{wxSetPrinterOptions}{\param{const wxString\& }{options}}
+
+Sets the additional options for the print command (e.g. specific printer). The default is nothing.
+
+\membersection{::wxSetPrinterOrientation}\label{wxsetprinterorientation}
+
+\func{void}{wxSetPrinterOrientation}{\param{int}{ orientation}}
+
+Sets the orientation (PS\_PORTRAIT or PS\_LANDSCAPE). The default is PS\_PORTRAIT.
+
+\membersection{::wxSetPrinterPreviewCommand}\label{wxsetprinterpreviewcommand}
+
+\func{void}{wxSetPrinterPreviewCommand}{\param{const wxString\& }{command}}
+
+Sets the command used to view a PostScript file. The default depends on the platform.
+
+\membersection{::wxSetPrinterScaling}\label{wxsetprinterscaling}
+
+\func{void}{wxSetPrinterScaling}{\param{float }{x}, \param{float }{y}}
+
+Sets the scaling factor for PostScript output. The default is 1.0, 1.0.
+
+\membersection{::wxSetPrinterTranslation}\label{wxsetprintertranslation}
+
+\func{void}{wxSetPrinterTranslation}{\param{float }{x}, \param{float }{y}}
+
+Sets the translation (from the top left corner) for PostScript output. The default is 0.0, 0.0.
+
+\section{Resource functions}\label{resourcefunctions}
+
+\overview{Resource functions}{resourceformats}
+
+This section details functions for manipulating wxWindows (.WXR) resource
+files and loading user interface elements from resources.
+
+\normalbox{Please note that this use of the word `resource' is different from that used when talking
+about initialisation file resource reading and writing, using such functions
+as wxWriteResource and wxGetResource. It is just an unfortunate clash of terminology.}
+
+\helponly{For an overview of the wxWindows resource mechanism, see \helpref{the wxWindows resource system}{resourceformats}.}
+
+See also \helpref{wxWindow::LoadFromResource}{wxwindowloadfromresource} for
+loading from resource data.
+
+\membersection{::wxResourceAddIdentifier}\label{wxresourceaddidentifier}
+
+\func{bool}{wxResourceAddIdentifier}{\param{const wxString\& }{name}, \param{int }{value}}
+
+Used for associating a name with an integer identifier (equivalent to dynamically\rtfsp
+{\tt\#}defining a name to an integer). Unlikely to be used by an application except
+perhaps for implementing resource functionality for interpreted languages.
+
+\membersection{::wxResourceClear}\label{wxresourceclear}
+
+\func{void}{wxResourceClear}{\void}
+
+Clears the wxWindows resource table.
+
+\membersection{::wxResourceCreateBitmap}\label{wxresourcecreatebitmap}
+
+\func{wxBitmap *}{wxResourceCreateBitmap}{\param{const wxString\& }{resource}}
+
+Creates a new bitmap from a file, static data, or Windows resource, given a valid
+wxWindows bitmap resource identifier. For example, if the .WXR file contains
+the following:
+
+\begin{verbatim}
+static const wxString\& project_resource = "bitmap(name = 'project_resource',\
+  bitmap = ['project', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
+  bitmap = ['project.xpm', wxBITMAP_TYPE_XPM, 'X']).";
+\end{verbatim}
+
+then this function can be called as follows:
+
+\begin{verbatim}
+  wxBitmap *bitmap  = wxResourceCreateBitmap("project_resource");
+\end{verbatim}
+
+\membersection{::wxResourceCreateIcon}\label{wxresourcecreateicon}
+
+\func{wxIcon *}{wxResourceCreateIcon}{\param{const wxString\& }{resource}}
+
+Creates a new icon from a file, static data, or Windows resource, given a valid
+wxWindows icon resource identifier. For example, if the .WXR file contains
+the following:
+
+\begin{verbatim}
+static const wxString\& project_resource = "icon(name = 'project_resource',\
+  icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
+  icon = ['project', wxBITMAP_TYPE_XBM_DATA, 'X']).";
+\end{verbatim}
+
+then this function can be called as follows:
+
+\begin{verbatim}
+  wxIcon *icon = wxResourceCreateIcon("project_resource");
+\end{verbatim}
+
+\membersection{::wxResourceCreateMenuBar}\label{wxresourcecreatemenubar}
+
+\func{wxMenuBar *}{wxResourceCreateMenuBar}{\param{const wxString\& }{resource}}
+
+Creates a new menu bar given a valid wxWindows menubar resource
+identifier. For example, if the .WXR file contains the following:
+
+\begin{verbatim}
+static const wxString\& menuBar11 = "menu(name = 'menuBar11',\
+  menu = \
+  [\
+    ['&File', 1, '', \
+      ['&Open File', 2, 'Open a file'],\
+      ['&Save File', 3, 'Save a file'],\
+      [],\
+      ['E&xit', 4, 'Exit program']\
+    ],\
+    ['&Help', 5, '', \
+      ['&About', 6, 'About this program']\
+    ]\
+  ]).";
+\end{verbatim}
+
+then this function can be called as follows:
+
+\begin{verbatim}
+  wxMenuBar *menuBar = wxResourceCreateMenuBar("menuBar11");
+\end{verbatim}
+
+
+\membersection{::wxResourceGetIdentifier}\label{wxresourcegetidentifier}
+
+\func{int}{wxResourceGetIdentifier}{\param{const wxString\& }{name}}
+
+Used for retrieving the integer value associated with an identifier.
+A zero value indicates that the identifier was not found.
+
+See \helpref{wxResourceAddIdentifier}{wxresourceaddidentifier}.
+
+\membersection{::wxResourceParseData}\label{wxresourcedata}
+
+\func{bool}{wxResourceParseData}{\param{const wxString\& }{resource}, \param{wxResourceTable *}{table = NULL}}
+
+Parses a string containing one or more wxWindows resource objects. If
+the resource objects are global static data that are included into the
+C++ program, then this function must be called for each variable
+containing the resource data, to make it known to wxWindows.
+
+{\it resource} should contain data in the following form:
+
+\begin{verbatim}
+dialog(name = 'dialog1',
+  style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
+  title = 'Test dialog box',
+  x = 312, y = 234, width = 400, height = 300,
+  modal = 0,
+  control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
+      [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
+  control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
+      156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
+      [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
+      [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
+\end{verbatim}
+
+This function will typically be used after including a {\tt .wxr} file into
+a C++ program as follows:
+
+\begin{verbatim}
+#include "dialog1.wxr"
+\end{verbatim}
+
+Each of the contained resources will declare a new C++ variable, and each
+of these variables should be passed to wxResourceParseData.
+
+\membersection{::wxResourceParseFile}\label{wxresourceparsefile}
+
+\func{bool}{wxResourceParseFile}{\param{const wxString\& }{filename}, \param{wxResourceTable *}{table = NULL}}
+
+Parses a file containing one or more wxWindows resource objects
+in C++-compatible syntax. Use this function to dynamically load
+wxWindows resource data.
+
+\membersection{::wxResourceParseString}\label{wxresourceparsestring}
+
+\func{bool}{wxResourceParseString}{\param{char *}{s}, \param{wxResourceTable *}{table = NULL}}
+
+Parses a string containing one or more wxWindows resource objects. If
+the resource objects are global static data that are included into the
+C++ program, then this function must be called for each variable
+containing the resource data, to make it known to wxWindows.
+
+{\it resource} should contain data with the following form:
+
+\begin{verbatim}
+dialog(name = 'dialog1',
+  style = 'wxCAPTION | wxDEFAULT_DIALOG_STYLE',
+  title = 'Test dialog box',
+  x = 312, y = 234, width = 400, height = 300,
+  modal = 0,
+  control = [1000, wxStaticBox, 'Groupbox', '0', 'group6', 5, 4, 380, 262,
+      [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]],
+  control = [1001, wxTextCtrl, '', 'wxTE_MULTILINE', 'text3',
+      156, 126, 200, 70, 'wxWindows is a multi-platform, GUI toolkit.',
+      [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],
+      [11, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0]]).
+\end{verbatim}
+
+This function will typically be used after calling \helpref{wxLoadUserResource}{wxloaduserresource} to
+load an entire {\tt .wxr file} into a string.
+
+\membersection{::wxResourceRegisterBitmapData}\label{registerbitmapdata}
+
+\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char *}{xbm\_data}, \param{int }{width},
+\param{int }{height}, \param{wxResourceTable *}{table = NULL}}
+
+\func{bool}{wxResourceRegisterBitmapData}{\param{const wxString\& }{name}, \param{char **}{xpm\_data}}
+
+Makes {\tt\#}included XBM or XPM bitmap data known to the wxWindows resource system.
+This is required if other resources will use the bitmap data, since otherwise there
+is no connection between names used in resources, and the global bitmap data.
+
+\membersection{::wxResourceRegisterIconData}\label{wxresourceregistericondata}
+
+Another name for \helpref{wxResourceRegisterBitmapData}{registerbitmapdata}.
+
diff --git a/contrib/docs/latex/deprecated/manual.tex b/contrib/docs/latex/deprecated/manual.tex
new file mode 100644
index 0000000000..1fc222cf91
--- /dev/null
+++ b/contrib/docs/latex/deprecated/manual.tex
@@ -0,0 +1,649 @@
+\documentstyle[a4,11pt,makeidx,verbatim,texhelp,fancyheadings,palatino]{report}
+% JACS: doesn't make it through Tex2RTF, sorry. I will put it into texhelp.sty
+% since Tex2RTF doesn't parse it.
+% BTW, style MUST be report for it to work for Tex2RTF.
+%KB:
+%\addtolength{\textwidth}{1in}
+%\addtolength{\oddsidemargin}{-0.5in}
+%\addtolength{\topmargin}{-0.5in}
+%\addtolength{\textheight}{1in}
+%\sloppy
+%end of my changes
+\newcommand{\indexit}[1]{#1\index{#1}}%
+\newcommand{\pipe}[0]{$\|$\ }%
+\definecolour{black}{0}{0}{0}%
+\definecolour{cyan}{0}{255}{255}%
+\definecolour{green}{0}{255}{0}%
+\definecolour{magenta}{255}{0}{255}%
+\definecolour{red}{255}{0}{0}%
+\definecolour{blue}{0}{0}{200}%
+\definecolour{yellow}{255}{255}{0}%
+\definecolour{white}{255}{255}{255}%
+%
+\input psbox.tex
+\input ltx.tex
+% Remove this for processing with dvi2ps instead of dvips
+%\special{!/@scaleunit 1 def}
+\parskip=10pt
+\parindent=0pt
+\title{wxWindows Deprecated Classes}
+\winhelponly{\author{by Julian Smart et al
+%\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
+}}
+\winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin,
+Robin Dunn, et al}
+\date{April 2003}
+}
+\makeindex
+\begin{document}
+\maketitle
+\pagestyle{fancyplain}
+\bibliographystyle{plain}
+\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+\pagenumbering{roman}
+\tableofcontents
+
+\chapter{Copyright notice}
+\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+\begin{center}
+Copyright (c) 1992-2002 Julian Smart, Robert Roebling, Vadim Zeitlin and other
+members of the wxWindows team\\
+Portions (c) 1996 Artificial Intelligence Applications Institute\\
+\end{center}
+
+Please also see the wxWindows license files (preamble.txt, lgpl.txt, gpl.txt, license.txt,
+licendoc.txt) for conditions of software and documentation use.
+
+\section*{wxWindows Library License, Version 3}
+
+Copyright (c) 1992-2002 Julian Smart, Robert Roebling, Vadim Zeitlin et al. 
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed. 
+
+\begin{center}
+WXWINDOWS LIBRARY LICENSE\\
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 
+\end{center}
+
+This library is free software; you can redistribute it and/or modify it 
+under the terms of the GNU Library General Public License as published by 
+the Free Software Foundation; either version 2 of the License, or (at 
+your option) any later version. 
+
+This library is distributed in the hope that it will be useful, but 
+WITHOUT ANY WARRANTY; without even the implied warranty of 
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 
+General Public License for more details. 
+
+You should have received a copy of the GNU Library General Public License 
+along with this software, usually in a file named COPYING.LIB. If not, 
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA~02111-1307 USA. 
+
+EXCEPTION NOTICE 
+
+1. As a special exception, the copyright holders of this library give 
+permission for additional uses of the text contained in this release of 
+the library as licensed under the wxWindows Library License, applying 
+either version 3 of the License, or (at your option) any later version of 
+the License as published by the copyright holders of version 3 of the 
+License document. 
+
+2. The exception is that you may create binary object code versions of any 
+works using this library or based on this library, and use, copy, modify, 
+link and distribute such binary object code files unrestricted under terms 
+of your choice. 
+
+3. If you copy code from files distributed under the terms of the GNU 
+General Public License or the GNU Library General Public License into a 
+copy of this library, as this license permits, the exception does not 
+apply to the code that you add in this way. To avoid misleading anyone as 
+to the status of such modified files, you must delete this exception 
+notice from such code and/or adjust the licensing conditions notice
+accordingly. 
+
+4. If you write modifications of your own for this library, it is your 
+choice whether to permit this exception to apply to your modifications. 
+If you do not wish that, you must delete the exception notice from such 
+code and/or adjust the licensing conditions notice accordingly. 
+
+\section*{GNU Library General Public License, Version 2}
+
+Copyright (C) 1991 Free Software Foundation, Inc.
+675 Mass Ave, Cambridge, MA 02139, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+\wxheading{Preamble}
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software -- to make sure the software is free for all its users.
+
+This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+\begin{center}
+		GNU LIBRARY GENERAL PUBLIC LICENSE\\
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+\end{center}
+
+0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+"Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+\begin{indented}{1cm}
+a) The modified work must itself be a software library.
+
+b) You must cause the files modified to carry prominent notices
+stating that you changed the files and the date of any change.
+
+c) You must cause the whole of the work to be licensed at no
+charge to all third parties under the terms of this License.
+
+d) If a facility in the modified Library refers to a function or a
+table of data to be supplied by an application program that uses
+the facility, other than as an argument passed when the facility
+is invoked, then you must make a good faith effort to ensure that,
+in the event an application does not supply such function or
+table, the facility still operates, and performs whatever part of
+its purpose remains meaningful.
+
+(For example, a function in a library to compute square roots has
+a purpose that is entirely well-defined independent of the
+application. Therefore, Subsection 2d requires that any
+application-supplied function or table used by this function must
+be optional: if the application does not supply it, the square
+root function must still compute square roots.) 
+\end{indented}
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+\begin{indented}{1cm}
+a) Accompany the work with the complete corresponding
+machine-readable source code for the Library including whatever
+changes were used in the work (which must be distributed under
+Sections 1 and 2 above); and, if the work is an executable linked
+with the Library, with the complete machine-readable "work that
+uses the Library", as object code and/or source code, so that the
+user can modify the Library and then relink to produce a modified
+executable containing the modified Library. (It is understood
+that the user who changes the contents of definitions files in the
+Library will not necessarily be able to recompile the application
+to use the modified definitions.)
+
+b) Accompany the work with a written offer, valid for at
+least three years, to give the same user the materials
+specified in Subsection 6a, above, for a charge no more
+than the cost of performing this distribution.
+
+c) If distribution of the work is made by offering access to copy
+from a designated place, offer equivalent access to copy the above
+specified materials from the same place.
+
+d) Verify that the user has already received a copy of these
+materials or that you have already sent this user a copy.
+\end{indented}
+
+For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+\begin{indented}{1cm}
+a) Accompany the combined library with a copy of the same work
+based on the Library, uncombined with any other library
+facilities. This must be distributed under the terms of the
+Sections above.
+
+b) Give prominent notice with the combined library of the fact
+that part of it is a work based on the Library, and explaining
+where to find the accompanying uncombined form of the same work.
+\end{indented}
+
+8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+\begin{center}
+NO WARRANTY
+\end{center}
+
+15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+
+\begin{center}
+END OF TERMS AND CONDITIONS
+\end{center}
+
+\wxheading{Appendix: How to Apply These Terms to Your New Libraries}
+
+If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+\footnotesize{
+\begin{verbatim}
+<one line to give the library's name and a brief idea of what it does.>
+Copyright (C) <year> <name of author>
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with this library; if not, write to the Free
+Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+\end{verbatim}
+}
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+\footnotesize{
+\begin{verbatim}
+Yoyodyne, Inc., hereby disclaims all copyright interest in the
+library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+<signature of Ty Coon>, 1 April 1990
+Ty Coon, President of Vice
+\end{verbatim} 
+}
+
+That's all there is to it!
+
+\chapter{Introduction}\label{introduction}
+\pagenumbering{arabic}%
+\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+This manual contains documentation for classes that are
+now obsolete.
+
+\input classes.tex
+\input function.tex
+\input category.tex
+\input topics.tex
+\input proplist.tex
+
+\newpage
+
+% Note: In RTF, the \printindex must come before the
+% change of header/footer, since the \printindex inserts
+% the RTF \sect command which divides one chapter from
+% the next.
+\rtfonly{\printindex
+\addcontentsline{toc}{chapter}{Index}
+\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}
+}
+% In Latex, it must be this way around (I think)
+\latexonly{\addcontentsline{toc}{chapter}{Index}
+\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}
+\printindex
+}
+
+\end{document}
diff --git a/contrib/docs/latex/deprecated/prop1.bmp b/contrib/docs/latex/deprecated/prop1.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..92c6beec8bc0d6a4d69d23cbd914cca994c40b55
GIT binary patch
literal 29238
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
BFn0g|

literal 0
HcmV?d00001

diff --git a/contrib/docs/latex/deprecated/prop1.eps b/contrib/docs/latex/deprecated/prop1.eps
new file mode 100644
index 0000000000..67425b2961
--- /dev/null
+++ b/contrib/docs/latex/deprecated/prop1.eps
@@ -0,0 +1,539 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: prop1.eps
+%%Creator: XV Version 2.20  Rev: 4/24/92  -  by John Bradley
+%%BoundingBox: 167 292 445 500
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% lower left corner
+167 292 translate
+
+% size of image (on paper, in 1/72inch coords)
+278 208 scale
+
+% define 'colorimage' if it isn't defined
+%   ('colortogray' and 'mergeprocs' come from xwd2ps
+%     via xgrab)
+/colorimage where   % do we know about 'colorimage'?
+  { pop }           % yes: pop off the 'dict' returned
+  {                 % no:  define one
+    /colortogray {  % define an RGB->I function
+      /rgbdata exch store    % call input 'rgbdata'
+      rgbdata length 3 idiv
+      /npixls exch store
+      /rgbindx 0 store
+      /grays npixls string store  % str to hold the result
+      0 1 npixls 1 sub {
+        grays exch
+        rgbdata rgbindx       get 20 mul    % Red
+        rgbdata rgbindx 1 add get 32 mul    % Green
+        rgbdata rgbindx 2 add get 12 mul    % Blue
+        add add 64 idiv      % I = .5G + .31R + .18B
+        put
+        /rgbindx rgbindx 3 add store
+      } for
+      grays
+    } bind def
+
+    % Utility procedure for colorimage operator.
+    % This procedure takes two procedures off the
+    % stack and merges them into a single procedure.
+
+    /mergeprocs { % def
+      dup length
+      3 -1 roll
+      dup
+      length
+      dup
+      5 1 roll
+      3 -1 roll
+      add
+      array cvx
+      dup
+      3 -1 roll
+      0 exch
+      putinterval
+      dup
+      4 2 roll
+      putinterval
+    } bind def
+
+    /colorimage { % def
+      pop pop     % remove 'false 3' operands
+      {colortogray} mergeprocs
+      image
+    } bind def
+  } ifelse          % end of 'false' case
+
+
+
+% define the colormap
+/cmap 42 string def
+
+
+% load up the colormap
+currentfile cmap readhexstring
+000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00 
+ffff00 0000ff 00ffff ffffff 
+pop pop   % lose return values from readhexstring
+
+
+% rlecmapimage expects to have 'w h bits matrix' on stack
+/rlecmapimage {
+  /buffer 1 string def
+  /rgbval 3 string def
+  /block  384 string def
+
+  % proc to read a block from file, and return RGB data
+  { currentfile buffer readhexstring pop
+    /bcount exch 0 get store
+    bcount 128 ge
+    {  % it's a non-run block
+      0 1 bcount 128 sub
+      { currentfile buffer readhexstring pop pop
+
+        % look up value in color map
+        /rgbval cmap buffer 0 get 3 mul 3 getinterval store
+
+        % and put it in position i*3 in block
+        block exch 3 mul rgbval putinterval
+      } for
+      block  0  bcount 127 sub 3 mul  getinterval
+    }
+
+    { % else it's a run block
+      currentfile buffer readhexstring pop pop
+
+      % look up value in colormap
+      /rgbval cmap buffer 0 get 3 mul 3 getinterval store
+
+      0 1 bcount { block exch 3 mul rgbval putinterval } for
+
+      block 0 bcount 1 add 3 mul getinterval
+    } ifelse
+  } % end of proc
+  false 3 colorimage
+} bind def
+
+
+278 208 8			% dimensions of data
+[278 0 0 -208 0 208]		% mapping matrix
+rlecmapimage
+
+7f067f0614060000
+81060d7f0d7f0d110d810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d068106047f047f040c040106810700
+82060d068106048204060d820d060783070d0702010203098102047f047a040106810700
+
+82060d068106048704060b060001020781070283020702098109028102047f0446040e0d
+81000d0d0d81000481040d0d0d81000481040682060700
+82060d0681060482040806810600820002078507020902070201028109047f044604810d
+060b068307000d060b068207000482040d060b068207000481040682060700
+82060d0681060481040685060800040307820702098409020702098109040104050d2d04
+030d0204010d1a04050d6604810d060b068307000d06810600070001068207000482040d
+060b068207000481040682060700
+82060d068106048704060b0604000a0789070209020702070209040104010d0204010d1d
+04010d0b04010d0104010d0104010d1204010d0704010d1004010d5504810d060b068307
+000d06810600070001068207000482040d06010601000306010001068207000481040682
+060700
+82060d068106048204070681060001000107010286070209020702040104010d0204010d
+1d04010d0b04010d0504010d1204010d0704010d1004010d5504810d060b068307000d06
+820600060506810006830607000482040d06020601000106010002068207000481040682
+060700
+82060d0681060485040d0607060d010d8407020002090109820200040104010d0204010d
+81040d010d0104030d0104040d0204030d0104020d81040d010d81040d820d040d810d04
+0304010d0504040d0204030d0204030d0104020d0604010d0404030d0204020d0104020d
+5404810d060b068307000d06820600060506810006830607000482040d06030603000306
+8207000481040682060700
+82060d068106048104070507010006020204050d0104010d0104010d0104010d81040d81
+0d0481040d820d040d810d0481040d820d040d810d0481040d810d0481040d820d040d81
+0d040404030d0204020d81040d820d040d810d0481040d820d040d810d0481040d820d04
+0d810d040604010d0304010d0104010d81040d820d040d820d040d810d045404810d060b
+068307000d06820600060506810006830607000482040d06040601000406820700048104
+0682060700
+82060d068106048104050505010006030204010d0504010d0104010d0104010d81040d81
+0d0481040d820d040d040d81040d810d0481040d810d0481040d820d040d810d04070401
+0d0104010d0104010d81040d040d81040d040d81040d810d040604010d0304050d010401
+0d0204010d5504810d060b068307000d06820600060506810006830607000482040d0603
+06030003068207000481040682060700
+82060d0681060481040c010c8205080c830c05030a020a81030a810a040104010d050401
+0d0104010d0104010d81040d810d0481040d820d040d810d040304010d0104010d010401
+0d81040d810d040704010d0104010d0104010d81040d810d040304010d0404010d070401
+0d0304010d0604010d0104010d5504810d060b068307000d068206000605068100068306
+07000482040d06020601000106010002068207000481040682060700
+82060d068106048c040c05070507050c05030a030a840a03000a040104010d0504010d01
+04010d0104010d81040d810d0481040d820d040d810d0481040d820d040d810d0481040d
+810d040104020d0504010d0104010d0104010d0104010d81040d810d0481040d820d040d
+810d0481040d820d040d810d040604010d0304010d0104010d81040d820d040d820d040d
+810d045404810d060106050003068307000d06820600060506810006830607000482040d
+06010601000306010001068207000481040682060700
+82060d0681060482040c08020886070c05030a030a010a82030a040104010d0504010d02
+04030d0104040d0204030d0104010d0204010d0104010d0704030d0204010d0104010d01
+04030d0204030d0204010d0604010d0404030d0204020d0204010d5404810d0601060500
+03068307000d06810600070001068207000482040d060b068207000481040682060700
+82060d0681060482040c080208010c8205030a810a0384030a030a041404010d1404010d
+7f041804810d060b068307000d060b068207000482040d060b0682070004810406820607
+00
+82060d0681060482040c080308850c05030a030a010a82000a041404010d1204020d7f04
+1904810d070c0782000d070c0781000482040d070c0781000481040682060700
+82060d0681060483040c05080208850c05030a030a810a0382030a047f0446041f000104
+0f0001040106810700
+82060d0681060481040c050c8205030a050a7f047b040106810700
+82060d068106047f047f040c040106810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d0637067f073907810d061c06810700
+82060d06030616000306160001068107007f00360082060d0681060015000406810700
+82060d06020681000d140d820700068206000d140d8507000607000d7f0d350d84060d06
+000d140d820700060206810700
+82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
+84060d06000d130d01078100060206810700
+82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
+84060d06000d810d06110601078100060206810700
+82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
+84060d06000d810d06110601078100060206810700
+82060d06020682000d0603068100060606810006030601078100068306000d0612060107
+84000607000d820d000d7f0d320d84060d06000d810d06110601078100060206810700
+82060d06020682000d06030683000600060306810006040601078100068306000d061206
+010785000607000d0081000d7f0d320d84060d06000d810d061106010781000602068107
+00
+82060d06020682000d06040683000600060106810006050601078100068306000d060b06
+8100060406010785000607000d000100810d0081000d820d000d810d0081000d810d0002
+007f0d220d84060d06000d810d06110601078100060206810700
+82060d06020682000d06050685000600060006060601078100068306000d060a06830006
+00060306010785000607000d0081000d810d0082000d000100810d0082000d0081000d81
+0d0081000d7f0d200d84060d06000d810d06110601078100060206810700
+82060d06020682000d0606068300060006070601078100068306000d0609068300060006
+0406010785000607000d0081000d810d0082000d000100810d0082000d0081000d810d00
+81000d7f0d200d84060d06000d810d06110601078100060206810700
+82060d06020682000d0607068300060006060601078100068306000d0604068100060106
+83000600060506010785000607000d0081000d010d0200810d000100010d0100010d0100
+7f0d210d84060d06000d810d06110601078100060206810700
+82060d06020682000d06060685000600060006050601078100068306000d060306870006
+0006000600060606010785000607000d0081000d010d0200810d000100010d0100010d01
+007f0d210d84060d06000d810d06110601078100060206810700
+82060d06020682000d06050681000601068300060006040601078100068306000d060406
+850006000600060706010784000607000d810d0081000d810d0081000d010d0100020d03
+007f0d220d84060d06000d810d0603060100810600820006008100060406010781000602
+06810700
+82060d06020682000d06040681000603068300060006030601078100068306000d060506
+83000600060806010784000607000d7f0d350d84060d06000d810d060306010081060082
+000600810006040601078100060206810700
+82060d06020682000d060306010005060100040601078100068306000d06060681000609
+06010784000607000d7f0d350d84060d06000d810d06110601078100060206810700
+82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
+84060d06000d810d06110601078100060206810700
+82060d06020682000d06120601078100068306000d061206010784000607000d7f0d350d
+84060d06000d810d06110601078100060206810700
+82060d06020682000d0714078100068306000d07140784000607000d7f0d350d85060d06
+000d0714078100060206810700
+82060d06020682000d0714078100068306000d07140784000607000d7f0d350d84060d06
+000715078100060206810700
+82060d06030616000306160001068207000d7f0d350d82060d0681060015000406810700
+
+82060d0637068107067f063706810d061c06810700
+82060d0637067f0d3a0d1d06810700
+82060d0601067f077f070a07810d060106810700
+82060d0601068107007f007f00070082060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d010d0300010d0400020d03007f0d720d82060d060106810700
+82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
+810d0081000d7f0d700d82060d060106810700
+82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0004007f
+0d710d82060d060106810700
+82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
+7f0d740d82060d060106810700
+82060d0601068207000d810d0081000d810d0082000d0081000d810d0082000d0081000d
+810d0081000d7f0d700d82060d060106810700
+82060d0601068207000d010d0300010d0100010d0100010d03007f0d720d82060d060106
+810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d060106ff0700040a040a040a040a040a040a040a040a040a040a040a040a040a04
+0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
+0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
+0a040a040a040a040a040a040a040a040a040a040a040a040a040aff040a040a040a040a
+040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
+040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
+040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
+040a040a040a040a040a040a8c040a040a040a040a040a060d060106810700
+82060d0601068307000a047f047f04050482060d060106810700
+82060d060106820700047f047f040504830a060d060106810700
+82060d0601068307000a0482040d047f047f04020482060d060106810700
+82060d0601068207000481040d810d047f047f040104830a060d060106810700
+82060d0601068307000a0d020d81040d810d0482040d0481040d810d0481040d020d7f04
+720482060d060106810700
+82060d0601068207000481040d810d0481040d820d040d010d81040d820d040d810d0481
+040d810d047f046f04830a060d060106810700
+82060d0601068407000a040d810d0481040d820d040d010d81040d820d040d810d048104
+0d810d047f04700482060d060106810700
+82060d0601068207000481040d810d040104020d81040d010d0104010d0104010d7f0470
+04830a060d060106810700
+82060d0601068407000a040d810d040104020d81040d010d0104010d0104010d7f047104
+82060d060106810700
+82060d060106820700040104010d0104010d0204010d0204030d7f047104830a060d0601
+06810700
+82060d0601068307000a047f047f04050482060d060106810700
+82060d060106820700047f047f040504830a060d060106810700
+82060d060106ff07000a040a040a040a040a040a040a040a040a040a040a040a040a040a
+040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
+040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a
+040a040a040a040a040a040a040a040a040a040a040a040a040a04ff0a040a040a040a04
+0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
+0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
+0a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a040a04
+0a040a040a040a040a040a048c0a040a040a040a040a04060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d010d81000d810d0081000d7f0d7e0d82060d060106810700
+82060d0601068207000d810d0081000d810d0081000d7f0d7e0d82060d060106810700
+82060d0601068307000d000200810d000300010d0300010d0300020d03007f0d690d8206
+0d060106810700
+82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
+010d0100810d0081000d810d0081000d7f0d670d82060d060106810700
+82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0500
+810d0004007f0d680d82060d060106810700
+82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
+040d01007f0d6c0d82060d060106810700
+82060d0601068207000d810d0081000d810d0081000d810d0082000d0081000d010d0100
+010d0100810d0081000d810d0081000d7f0d670d82060d060106810700
+82060d0601068207000d010d0100810d0081000d810d0082000d0081000d020d0300020d
+03007f0d690d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068207000d7f0d7f0d060d82060d060106810700
+82060d0601068107067f067f060806810d060106810700
+82060d0601067f0d7f0d0b0d0206810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d0601067f077f070b070206810700
+82060d0601068107007f007f000800810d060106810700
+82060d0601068207000d7f0d760d0e060100810d060106810700
+82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400400d82060d060a0681
+070082000d060106810700
+82060d0601068207000d010d81000d190d81000d120d81000d7b0d85000d000d000d3f0d
+82060d060a0681070082000d060106810700
+82060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d008400
+0d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d0200
+5f0d81000d020d0100810d0082000d0081000d810d0081000d010d02002c0d82060d0603
+06810006040681070082000d060106810700
+82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d
+000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d820d
+000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d81000d5d
+0d81000d030d0100030d81000d010d81000d820d000d010d81000d2a0d82060d06020602
+00040681070082000d060106810700
+82060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d820d
+000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d000d01
+0d81000d020d81000d020d81000d040d04005e0d81000d030d81000d030d81000d010d81
+000d810d0003002b0d82060d0601060400030681070082000d060106810700
+82060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d810d00
+81000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d
+820d000d010d81000d020d81000d020d81000d040d81000d610d81000d030d81000d030d
+81000d810d0081000d820d000d2e0d82060d068106000500020681070082000d06010681
+0700
+82060d0601068207000d020d0200030d0200030d0100810d0081000d810d000200810d00
+0100810d000100080d0300810d000100810d000100010d0200020d0400020d0300020d03
+005d0d0200020d0300030d0100810d0081000d810d0002002b0d82060d060a0681070082
+000d060106810700
+82060d0601068207000d1a0d81000d7f0d590d82060d060a0681070082000d0601068107
+00
+82060d0601068207000d170d02007f0d5b0d82060d060a0681070082000d060106810700
+
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d8106070c070100810d060106810700
+82060d0601068207000d7f0d760d1000810d060106810700
+82060d0601068207000d7f0d760d92060d060d060d060d060d060d060d060d000d060106
+810700
+82060d0601068207000d7f0d770d91060d060d060d060d060d060d060d06000d06010681
+0700
+82060d0601068207000d030d81000d7f0d2d0d81000d020d0300390d92060d060d060d06
+0d060d060d060d060d000d060106810700
+82060d0601068207000d7f0d320d0100030d81000d3c0d91060d060d060d060d060d060d
+060d06000d060106810700
+82060d0601068207000d010d0200040d0200010d0100810d0081000d7f0d1c0d83000d00
+0d020d81000d3b0d92060d060d060d060d060d060d060d060d000d060106810700
+82060d0601068207000d030d81000d020d81000d010d81000d810d0081000d820d000d7f
+0d1a0d81000d820d000d020d02003b0d91060d060d060d060d060d060d060d06000d0601
+06810700
+82060d0601068207000d030d81000d030d0300010d81000d010d81000d7f0d1a0d040005
+0d81000d380d92060d060d060d060d060d060d060d060d000d060106810700
+82060d0601068207000d030d81000d020d81000d010d81000d820d000d010d81000d7f0d
+1d0d81000d010d81000d010d81000d380d0e060100810d060106810700
+82060d0601068207000d010d0400010d0800810d0001007f0d1c0d0200020d02003a0d81
+060d0b0d81070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d020003
+0d0300390d82060d060a0681070082000d060106810700
+82060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d8100
+0d010d81000d3b0d82060d060a0681070082000d060106810700
+82060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f0d18
+0d81000d020d81000d3b0d82060d060a0681070082000d060106810700
+82060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d7f0d
+170d81000d030d02003a0d82060d060a0681070082000d060106810700
+82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f
+0d160d81000d070d81000d380d82060d060a0681070082000d060106810700
+82060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d81000d7f
+0d150d81000d040d81000d010d81000d380d82060d060a0681070082000d060106810700
+
+82060d0601068207000d810d000300020d0400010d0400010d04007f0d140d0400020d02
+003a0d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d030d81000d0a0d0100050d81000d7f0d5b0d82060d060a068107
+0082000d060106810700
+82060d0601068207000d110d81000d7f0d620d82060d060a0681070082000d0601068107
+00
+82060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d020001
+0d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200330d82060d060a
+0681070082000d060106810700
+82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d02
+0d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d008100
+0d820d000d820d000d010d81000d310d82060d060a0681070082000d060106810700
+82060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d81000d03
+0d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d810d
+000300320d82060d060a0681070082000d060106810700
+82060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81000d
+020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d000d01
+0d81000d820d000d350d82060d060a0681070082000d060106810700
+82060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d0800
+810d0001007f0d060d0200010d0200810d000100010d0300320d82060d060a0681070082
+000d060106810700
+82060d0601068207000d040d81000d7f0d6f0d82060d060a0681070082000d0601068107
+00
+82060d0601068207000d010d02007f0d710d82060d060a0681070082000d060106810700
+
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d7f0d760d82060d060a0681070082000d060106810700
+82060d0601068207000d810d0081000d060d81000d7f0d690d82060d060a068107008200
+0d060106810700
+82060d0601068207000d010d81000d0b0d81000d7f0d640d82060d060a0681070082000d
+060106810700
+82060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d000d02
+0d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d0100810d00
+81000d020d02002c0d82060d060a0681070082000d060106810700
+82060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d000d
+000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d000d
+010d81000d810d0081000d820d000d820d000d010d81000d2a0d82060d060a0681070082
+000d060106810700
+82060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d85000d00
+0d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81
+000d820d000d010d81000d810d0003002b0d82060d060a0681070082000d060106810700
+
+82060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d81000d86
+0d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d8100
+0d820d000d010d81000d820d000d010d81000d820d000d2e0d82060d060a068107008200
+0d060106810700
+82060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d0002
+007f0d060d0200810d000100010d0200010d0200810d000100010d03002b0d8106070c07
+0100810d060106810700
+82060d0601068207000d240d81000d7f0d4f0d1000810d060106810700
+82060d0601068207000d230d02007f0d4f0d0e060100810d060106810700
+82060d0601068207000d7f0d760d81060d0b0d81070082000d060106810700
+82060d060106820700047f04760482060d060a0681070082000d060106810700
+82060d060106820700047f04760482060d060a0681070082000d060106810700
+82060d060106820700047f04760482060d060a0681070082000d060106810700
+82060d060106820700047f04760482060d060a0681070082000d060106810700
+82060d060106820700043404810d041304010d7f04290482060d06810600050002068107
+0082000d060106810700
+82060d060106820700041d04810d042b04810d046204810d04430482060d060106040003
+0681070082000d060106810700
+82060d060106820700040204030d0204020d0104010d81040d810d040204030d81040d03
+0d0204010d81040d810d040104020d0204020d0204010d81040d810d040204020d030401
+0d82040d046104040d0104020d81040d010d0104020d330482060d060206020004068107
+0082000d060106810700
+82060d060106820700040104810d040104810d0482040d040104810d0481040d810d0482
+040d0482040d040404810d040504010d0304810d040104810d040204810d040204010d01
+04810d0482040d040104810d0482040d0481040d810d046204810d040404810d04010481
+0d0482040d040104810d04310482060d060306810006040681070082000d060106810700
+
+82060d060106820700040104810d040404810d040104810d0482040d040104810d040104
+020d0204810d040504810d040404030d0304810d040204810d040104810d0481040d030d
+0104810d040104810d046204810d040404850d040d040d0482040d040104810d04310482
+060d060a0681070082000d060106810700
+82060d060106820700040104810d040404810d040104810d0482040d040104810d040404
+810d0482040d040104810d040104810d040304810d040104810d040204810d040204810d
+040104810d0482040d040404810d040104810d046204810d040104810d0486040d040d04
+0d0482040d040104810d04310482060d060a0681070082000d060106810700
+82060d060106820700040204030d0204020d0104020d81040d010d81040d020d0304020d
+0204030d0204050d81040d030d81040d010d81040d010d0104030d0204040d6304020d03
+04830d040d040204020d330482060d060a0681070082000d060106810700
+82060d060106820700047f04760482060d060a0681070082000d060106810700
+82060d060106820700047f0476048106070c070100810d060106810700
+82060d060106820700047f0476041000810d060106810700
+82060d0601068107067f0677061000810d060106810700
+82060d0601067f0d7f0d0b0d0206810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+82060d067f067f061006810700
+8106077f077f0712070000
+7f007f001500
+
+%
+% Compression made this file 6.27% of the uncompressed size.
+%
+
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/contrib/docs/latex/deprecated/prop1.gif b/contrib/docs/latex/deprecated/prop1.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a3d724d5708a27544972e834c66f2b4661ef7884
GIT binary patch
literal 38958
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
Z11zte6K-UCJU@(}EG;~!sIu#<{y*x<I}!i@

literal 0
HcmV?d00001

diff --git a/contrib/docs/latex/deprecated/prop2.bmp b/contrib/docs/latex/deprecated/prop2.bmp
new file mode 100644
index 0000000000000000000000000000000000000000..d909f41abcab4ce03acd00a1ea1b44165dcb15e7
GIT binary patch
literal 42526
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

literal 0
HcmV?d00001

diff --git a/contrib/docs/latex/deprecated/prop2.eps b/contrib/docs/latex/deprecated/prop2.eps
new file mode 100644
index 0000000000..b233dfce00
--- /dev/null
+++ b/contrib/docs/latex/deprecated/prop2.eps
@@ -0,0 +1,664 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: prop2.eps
+%%Creator: XV Version 2.20  Rev: 4/24/92  -  by John Bradley
+%%BoundingBox: 167 221 466 500
+%%Pages: 1
+%%DocumentFonts:
+%%EndComments
+%%EndProlog
+
+%%Page: 1 1
+
+% remember original state
+/origstate save def
+
+% build a temporary dictionary
+20 dict begin
+
+% lower left corner
+167 221 translate
+
+% size of image (on paper, in 1/72inch coords)
+299 279 scale
+
+% define 'colorimage' if it isn't defined
+%   ('colortogray' and 'mergeprocs' come from xwd2ps
+%     via xgrab)
+/colorimage where   % do we know about 'colorimage'?
+  { pop }           % yes: pop off the 'dict' returned
+  {                 % no:  define one
+    /colortogray {  % define an RGB->I function
+      /rgbdata exch store    % call input 'rgbdata'
+      rgbdata length 3 idiv
+      /npixls exch store
+      /rgbindx 0 store
+      /grays npixls string store  % str to hold the result
+      0 1 npixls 1 sub {
+        grays exch
+        rgbdata rgbindx       get 20 mul    % Red
+        rgbdata rgbindx 1 add get 32 mul    % Green
+        rgbdata rgbindx 2 add get 12 mul    % Blue
+        add add 64 idiv      % I = .5G + .31R + .18B
+        put
+        /rgbindx rgbindx 3 add store
+      } for
+      grays
+    } bind def
+
+    % Utility procedure for colorimage operator.
+    % This procedure takes two procedures off the
+    % stack and merges them into a single procedure.
+
+    /mergeprocs { % def
+      dup length
+      3 -1 roll
+      dup
+      length
+      dup
+      5 1 roll
+      3 -1 roll
+      add
+      array cvx
+      dup
+      3 -1 roll
+      0 exch
+      putinterval
+      dup
+      4 2 roll
+      putinterval
+    } bind def
+
+    /colorimage { % def
+      pop pop     % remove 'false 3' operands
+      {colortogray} mergeprocs
+      image
+    } bind def
+  } ifelse          % end of 'false' case
+
+
+
+% define the colormap
+/cmap 42 string def
+
+
+% load up the colormap
+currentfile cmap readhexstring
+000000 bf0000 00bf00 bfbf00 0000bf 00bfbf c0c0c0 808080 ff0000 00ff00 
+ffff00 0000ff 00ffff ffffff 
+pop pop   % lose return values from readhexstring
+
+
+% rlecmapimage expects to have 'w h bits matrix' on stack
+/rlecmapimage {
+  /buffer 1 string def
+  /rgbval 3 string def
+  /block  384 string def
+
+  % proc to read a block from file, and return RGB data
+  { currentfile buffer readhexstring pop
+    /bcount exch 0 get store
+    bcount 128 ge
+    {  % it's a non-run block
+      0 1 bcount 128 sub
+      { currentfile buffer readhexstring pop pop
+
+        % look up value in color map
+        /rgbval cmap buffer 0 get 3 mul 3 getinterval store
+
+        % and put it in position i*3 in block
+        block exch 3 mul rgbval putinterval
+      } for
+      block  0  bcount 127 sub 3 mul  getinterval
+    }
+
+    { % else it's a run block
+      currentfile buffer readhexstring pop pop
+
+      % look up value in colormap
+      /rgbval cmap buffer 0 get 3 mul 3 getinterval store
+
+      0 1 bcount { block exch 3 mul rgbval putinterval } for
+
+      block 0 bcount 1 add 3 mul getinterval
+    } ifelse
+  } % end of proc
+  false 3 colorimage
+} bind def
+
+
+299 279 8			% dimensions of data
+[299 0 0 -279 0 279]		% mapping matrix
+rlecmapimage
+
+7f0003007f072607
+07077f067f0618068100070707
+070781060d7f0d7f0d150d820700070707
+070782060d067f067f061406820700070707
+070782060d067f067f061406820700070707
+070782060d068106077f077f0710070106820700070707
+070782060d068106078207060d820d060783070d0702010203098102077f077e07010682
+0700070707
+070782060d068106078707060b060001020781070283020702098109028102077f074a07
+0e0d81000d0d0d81000781070d0d0d81000781070683060700070707
+070782060d0681060782070806810600820002078507020902070201028109077f074a07
+810d060b068307000d060b068207000782070d060b068207000781070683060700070707
+
+070782060d06810607810706850608000403078207020984090207020981090701070506
+2d070306020701061a0705066a07810d060b068307000d06810600070001068207000782
+070d060b068207000781070683060700070707
+070782060d068106078707060b0604000a07890702090207020702090701070106020701
+061d0701060b07010601070106010701061207010607070106100701065907810d060b06
+8307000d06810600070001068207000782070d0601060100030601000106820700078107
+0683060700070707
+070782060d0681060701070106020001070102860702090207020701070106020701061d
+0701060b070106050701061207010607070106100701065907810d060b068307000d0682
+0600060506810006830607000782070d0602060100010601000206820700078107068306
+0700070707
+070782060d0681060785070d0607060d010d840702000209010982020007010701060207
+010681070601060107030601070406020703060107020681070601068107068206070681
+060703070106050704060207030602070306010702060607010604070306020702060107
+02065807810d060b068307000d06820600060506810006830607000782070d0603060300
+03068207000781070683060700070707
+070782060d06810607070701000602020705060107010601070106010701068107068106
+078107068206070681060781070682060706810607810706810607810706820607068106
+070407030602070206810706820607068106078107068206070681060781070682060706
+81060706070106030701060107010681070682060706820607068106075807810d060b06
+8307000d06820600060506810006830607000782070d0604060100040682070007810706
+83060700070707
+070782060d06810607810705050501000603020701060507010601070106010701068107
+068106078107068206070604068107068106078107068106078107068206070681060707
+070106010701060107010681070604068107060406810706810607060701060307050601
+070106020701065907810d060b068307000d06820600060506810006830607000782070d
+060306030003068207000781070683060700070707
+070782060d0681060781070c010c8205080c830c05030a020a81030a810a070107010605
+070106010701060107010681070681060781070682060706810607030701060107010601
+070106810706810607070701060107010601070106810706810607030701060407010607
+0701060307010606070106010701065907810d060b068307000d06820600060506810006
+830607000782070d06020601000106010002068207000781070683060700070707
+070782060d068106078c070c05070507050c05030a030a840a03000a0701070106050701
+060107010601070106810706810607810706820607068106078107068206070681060781
+070681060701070206050701060107010601070106010701068107068106078107068206
+070681060781070682060706810607060701060307010601070106810706820607068206
+07068106075807810d060106050003068307000d06820600060506810006830607000782
+070d06010601000306010001068207000781070683060700070707
+070782060d0681060782070c08020886070c05030a030a010a82030a0701070106050701
+060207030601070406020703060107010602070106010701060707030602070106010701
+06010703060207030602070106060701060407030602070206020701065807810d060106
+050003068307000d06810600070001068207000782070d060b0682070007810706830607
+00070707
+070782060d0681060782070c080208010c8205030a810a0384030a030a07140701061407
+01067f071c07810d060b068307000d060b068207000782070d060b068207000781070683
+060700070707
+070782060d0681060782070c080308850c05030a030a010a82000a071407010612070206
+7f071d07810d070c0782000d070c0781000782070d070c07810007810706830607000707
+07
+070782060d0681060783070c05080208850c05030a030a810a0382030a077f074a071f00
+01070f0001070106820700070707
+070782060d0681060781070c050c8205030a050a7f077f070106820700070707
+070782060d068106077f077f0710070106820700070707
+070782060d067f067f061406820700070707
+070782060d067f067f061406820700070707
+070782060d0637067f073d07810d061c06820700070707
+070782060d06030616000306160001068107007f003a0082060d06810600150004068207
+00070707
+070782060d06020681000d140d820700068206000d140d8507000607000d7f0d390d8406
+0d06000d140d820700060206820700070707
+070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
+390d84060d06000d130d01078100060206820700070707
+070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
+390d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
+390d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d0603068100060606810006030601078100068306000d061206
+010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d810d
+06110601078100060206820700070707
+070782060d06020682000d060306020003060200040601078100068306000d060b068100
+060406010784000607000d810d000100010d0100810d0082000d0082000d0082000d0082
+000d0081000d7f0d210d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d060406020001060200050601078100068306000d060a060200
+0406010785000607000d000200010d0100810d0082000d0082000d0082000d0082000d00
+81000d7f0d210d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d0605060500060601078100068306000d060906030004060107
+87000607000d000d0081000d810d0082000d0082000d0082000d0082000d0082000d0081
+000d7f0d210d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d0606060300070601078100068306000d060806030005060107
+84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d
+7f0d210d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d0606060300070601078100068306000d060306010001060300
+0606010784000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d
+0081000d7f0d210d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d0605060500060601078100068306000d060306060007060107
+84000607000d010d0100010d0100810d0082000d0082000d0082000d0082000d0081000d
+7f0d210d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d060406020001060200050601078100068306000d0604060400
+0806010784000607000d010d0100020d0200020d0200020d02007f0d230d84060d06000d
+810d060306010781060782070607810706040601078100060206820700070707
+070782060d06020682000d060306020003060200040601078100068306000d0605060200
+0906010784000607000d7f0d390d84060d06000d810d0603060107810607820706078107
+06040601078100060206820700070707
+070782060d06020682000d060306010005060100040601078100068306000d0606068100
+060906010784000607000d7f0d390d84060d06000d810d06110601078100060206820700
+070707
+070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
+390d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d06120601078100068306000d061206010784000607000d7f0d
+390d84060d06000d810d06110601078100060206820700070707
+070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8506
+0d06000d0714078100060206820700070707
+070782060d06020682000d0714078100068306000d07140784000607000d7f0d390d8406
+0d06000715078100060206820700070707
+070782060d06030616000306160001068207000d7f0d390d82060d068106001500040682
+0700070707
+070782060d0637068107067f063b06810d061c06820700070707
+070782060d0637067f0d3e0d1d06820700070707
+070782060d0601067f077f070e07810d060106820700070707
+070782060d0601068107007f007f000b0082060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d040d0100120d01007f0d150d0200550d82060d0601068207
+00070707
+070782060d0601068207000d030d81000d140d81000d7f0d130d81000d010d81000d530d
+82060d060106820700070707
+070782060d0601068207000d020d0300010d0100810d0081000d010d0200030d0100820d
+000d7f0d130d81000d010d81000d530d82060d060106820700070707
+070782060d0601068207000d030d81000d030d0100030d81000d010d81000d820d000d81
+0d0081000d7f0d130d81000d010d81000d530d82060d060106820700070707
+070782060d0601068207000d030d81000d030d81000d030d0400010d81000d010d81000d
+7f0d130d81000d010d81000d530d82060d060106820700070707
+070782060d0601068207000d030d81000d030d81000d030d81000d040d81000d010d8100
+0d7f0d130d81000d010d81000d530d82060d060106820700070707
+070782060d0601068207000d020d0300010d0300030d0300020d04007f0d140d0200550d
+82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d1c0d0100120d01000e0d81000d6b0d0400090d0100480d82
+060d060106820700070707
+070782060d0601068207000d010d81000d190d81000d120d81000d7c0d81000d820d000d
+090d81000d470d82060d060106820700070707
+070782060d0601068207000d810d000300030d0200010d0100010d0100020d0100810d00
+84000d000d0081000d090d0300010d82000d0081000d020d0200020d0200040d0300020d
+02005e0d83000d000d020d0200040d81000d030d0300020d0200390d82060d0601068207
+00070707
+070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
+820d000d810d0081000d810d0081000d820d000d070d81000d010d81000d810d0081000d
+820d000d820d000d010d81000d020d81000d020d81000d010d81000d820d000d010d8100
+0d5c0d0200020d81000d010d81000d020d81000d020d81000d040d81000d010d81000d37
+0d82060d060106820700070707
+070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
+820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81000d820d00
+0d010d81000d020d81000d020d81000d040d04005d0d83000d000d020d0300030d81000d
+030d0200020d0400380d82060d060106820700070707
+070782060d0601068207000d010d81000d010d81000d820d000d010d81000d820d000d81
+0d0081000d820d000d010d81000d820d000d010d81000d070d81000d040d81000d010d81
+000d820d000d010d81000d020d81000d020d81000d040d81000d600d81000d030d81000d
+010d81000d020d81000d060d81000d820d000d3b0d82060d060106820700070707
+070782060d0601068207000d020d0200030d0200030d0100810d0081000d810d00020081
+0d000100810d000100080d0300810d000100810d000100010d0200020d0400020d030002
+0d03005c0d0200030d0500810d000300010d0300030d0300380d82060d06010682070007
+0707
+070782060d0601068207000d1a0d81000d7f0d6d0d82060d060106820700070707
+070782060d0601068207000d170d02007f0d6f0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d060106820700047f047f040a0482060d060106820700070707
+070782060d060106820700047f047f040a0482060d060106820700070707
+070782060d060106820700047f047f040a0482060d060106820700070707
+070782060d060106820700047f047f040a0482060d060106820700070707
+070782060d060106820700040304810d047f043204010d4f0482060d0601068207000707
+07
+070782060d060106820700047f043904810d044e0482060d060106820700070707
+070782060d060106820700040104020d0404020d0104010d81040d810d047f042404810d
+044e0482060d060106820700070707
+070782060d060106820700040304810d040204810d040104810d0481040d810d0482040d
+047f041a04040d0304810d044e0482060d060106820700070707
+070782060d060106820700040304810d040304030d0104810d040104810d047f04230481
+0d044e0482060d060106820700070707
+070782060d060106820700040304810d040204810d040104810d0482040d040104810d04
+7f042304810d044e0482060d060106820700070707
+070782060d060106820700040104040d0104080d81040d010d7f042104040d4d0482060d
+060106820700070707
+070782060d060106820700047f047f040a0482060d060106820700070707
+070782060d060106820700047f047f040a0482060d060106820700070707
+070782060d060106820700047f047f040a0482060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d810d0081000d060d81000d030d0100040d01007f0d170d02
+00030d03004d0d82060d060106820700070707
+070782060d0601068207000d010d81000d0d0d81000d040d81000d7f0d150d81000d010d
+81000d010d81000d4f0d82060d060106820700070707
+070782060d0601068207000d010d82000d0081000d010d0200050d81000d040d81000d7f
+0d180d81000d020d81000d4f0d82060d060106820700070707
+070782060d0601068207000d010d0100010d81000d020d81000d040d81000d040d81000d
+7f0d170d81000d030d02004e0d82060d060106820700070707
+070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100
+0d7f0d160d81000d070d81000d4c0d82060d060106820700070707
+070782060d0601068207000d010d81000d010d81000d020d81000d040d81000d040d8100
+0d7f0d150d81000d040d81000d010d81000d4c0d82060d060106820700070707
+070782060d0601068207000d810d000300020d0400010d0400010d04007f0d140d040002
+0d02004e0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d030d81000d0a0d0100050d81000d7f0d6f0d82060d060106
+820700070707
+070782060d0601068207000d110d81000d7f0d760d82060d060106820700070707
+070782060d0601068207000d010d0300010d0100010d0100030d81000d020d0200040d02
+00010d0100810d0081000d7f0d070d0200010d0100810d0081000d020d0200470d82060d
+060106820700070707
+070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100
+0d020d81000d010d81000d810d0081000d820d000d7f0d050d81000d010d81000d810d00
+81000d820d000d820d000d010d81000d450d82060d060106820700070707
+070782060d0601068207000d040d81000d010d81000d010d81000d020d81000d040d8100
+0d030d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d010d81000d
+810d000300460d82060d060106820700070707
+070782060d0601068207000d040d81000d010d81000d810d0081000d020d81000d040d81
+000d020d81000d010d81000d820d000d010d81000d7f0d050d81000d010d81000d820d00
+0d010d81000d820d000d490d82060d060106820700070707
+070782060d0601068207000d040d81000d020d0100810d0082000d000300010d0400010d
+0800810d0001007f0d060d0200010d0200810d000100010d0300460d82060d0601068207
+00070707
+070782060d0601068207000d040d81000d7f0d7f0d030d82060d060106820700070707
+070782060d0601068207000d010d02007f0d7f0d050d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d810d0081000d060d81000d7f0d7d0d82060d060106820700
+070707
+070782060d0601068207000d010d81000d0b0d81000d7f0d780d82060d06010682070007
+0707
+070782060d0601068207000d010d82000d0081000d010d0200020d0400010d0200820d00
+0d020d0200010d0100810d0081000d7f0d050d0100810d0081000d020d0200010d010081
+0d0081000d020d0200400d82060d060106820700070707
+070782060d0601068207000d010d0100010d81000d020d81000d020d81000d040d85000d
+000d000d820d000d010d81000d810d0081000d820d000d7f0d050d0100010d81000d820d
+000d010d81000d810d0081000d820d000d820d000d010d81000d3e0d82060d0601068207
+00070707
+070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d040d8500
+0d000d000d010d0300010d81000d010d81000d7f0d050d81000d010d81000d820d000d01
+0d81000d820d000d010d81000d810d0003003f0d82060d060106820700070707
+070782060d0601068207000d010d81000d010d81000d020d81000d020d81000d010d8100
+0d860d000d000d000d820d000d010d81000d820d000d010d81000d7f0d050d81000d010d
+81000d820d000d010d81000d820d000d010d81000d820d000d420d82060d060106820700
+070707
+070782060d0601068207000d810d000300020d0400020d0200010d0600810d000400810d
+0002007f0d060d0200810d000100010d0200010d0200810d000100010d03003f0d82060d
+060106820700070707
+070782060d0601068207000d240d81000d7f0d630d82060d060106820700070707
+070782060d0601068207000d230d02007f0d630d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d340d81000d130d01007f0d3d0d82060d0601068207000707
+07
+070782060d0601068207000d1d0d81000d2b0d81000d620d81000d570d82060d06010682
+0700070707
+070782060d0601068207000d020d0300020d0200010d0100810d0081000d020d0300810d
+000300020d0100810d0081000d010d0200020d0200020d0100810d0081000d020d020003
+0d0100820d000d610d0400010d0200810d000100010d0200470d82060d06010682070007
+0707
+070782060d0601068207000d010d81000d010d81000d820d000d010d81000d810d008100
+0d820d000d820d000d040d81000d050d0100030d81000d010d81000d020d81000d020d01
+00010d81000d820d000d010d81000d820d000d810d0081000d620d81000d040d81000d01
+0d81000d820d000d010d81000d450d82060d060106820700070707
+070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
+010d0200020d81000d050d81000d040d0300030d81000d020d81000d010d81000d810d00
+0300010d81000d010d81000d620d81000d040d85000d000d000d820d000d010d81000d45
+0d82060d060106820700070707
+070782060d0601068207000d010d81000d040d81000d010d81000d820d000d010d81000d
+040d81000d820d000d010d81000d010d81000d030d81000d010d81000d020d81000d020d
+81000d010d81000d820d000d040d81000d010d81000d620d81000d010d81000d860d000d
+000d000d820d000d010d81000d450d82060d060106820700070707
+070782060d0601068207000d020d0300020d0200010d0200810d000100810d000200030d
+0200020d0300020d0500810d000300810d000100810d000100010d0300020d0400630d02
+00030d83000d000d020d0200470d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+070782060d0601068207000d7f0d7f0d0a0d82060d060106820700070707
+7f077f0726078100070107
+03077f0d7f0d210d820700070107
+0307820d06077f077f071c07840d060700070107
+0307830d0607047f047f041c0483060700070107
+0307830d0607047f047f041c0483060700070107
+0307830d0607047f047f040a040e0d8100048404060700070107
+0307830d0607047f047f040a04810d060b06820700048404060700070107
+0307830d06070481040d040d3a04010d7f044604810d060b068207000484040607000701
+07
+0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0601060107
+030601070106820700048404060700070107
+0307830d06070481040d810d040104010d1d04010d1904010d7f044604810d0602060107
+01060107010d83060700048404060700070107
+0307830d06070481040d810d040104010d81040d010d0104030d0104040d0204030d0104
+020d81040d010d81040d820d040d810d040304010d0104010d0104030d0104010d81040d
+810d0481040d810d0481040d020d0604030d0104020d81040d010d0104030d0104020d7f
+041a04810d0603060307010d0106820700048404060700070107
+0307830d06070481040d040d0104010d0104010d0104010d81040d810d0481040d820d04
+0d810d0481040d820d040d810d0481040d810d0481040d820d040d810d040304010d0104
+010d0404010d81040d820d040d810d0481040d820d040d810d0481040d810d040304010d
+0104010d81040d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04
+810d0604060107010d0206820700048404060700070107
+0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
+040d040d81040d810d0481040d810d0481040d820d040d810d040404030d0204040d8104
+0d820d040d810d0481040d820d040d040d0404050d81040d810d0481040d810d0481040d
+810d0481040d820d040d810d047f041a04810d0603060307030682070004840406070007
+0107
+0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
+040d810d040304010d0104010d0104010d81040d810d040404030d0104010d0104010d81
+040d820d040d810d0481040d820d040d810d040704010d0404010d0104010d0104010d01
+04010d81040d810d047f041a04810d0602060107010d0107020682070004840406070007
+0107
+0307830d06070481040d810d040404010d0104010d0104010d81040d810d0481040d820d
+040d810d0481040d820d040d810d0481040d810d040104020d0704010d0204010d010401
+0d81040d820d040d820d040d010d81040d810d0481040d810d040304010d0104010d8104
+0d810d0481040d810d0481040d810d0481040d820d040d810d047f041a04810d06010601
+07010d010601070106820700048404060700070107
+0307830d06070481040d810d040404010d0204030d0104040d0204030d0104010d020401
+0d0104010d0804010d0304040d81040d810d0481040d030d0104030d0604030d0104010d
+0104010d0204030d0104010d7f041b04810d060206010d0306010d830607000484040607
+00070107
+0307830d0607041304010d1404010d7f045d04810d060b06820700048404060700070107
+
+0307830d0607041304010d1204020d7f045e04810d070c078100048404060700070107
+0307830d0607047f047f040a040f00010483060700070107
+0307830d0607047f047f041c0483060700070107
+0307830d0607047f047f041c0483060700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d06170602037f067f060406820700070107
+0307810d06160681030a830a0600067f067f060206820700070107
+0307810d06150681030a020a83060007067f067f0683060700070107
+0307810d06150681030a030a8100078107067f067f06820700070107
+0307810d06140681030a040a820600078107067f067e06820700070107
+0307810d06140681030a050a8100078107067f067e06820700070107
+0307810d06130681030a060a820600078107067f067d06820700070107
+0307810d06130681030a070a8100078107067f067d06820700070107
+0307810d06120681030a080a820600078107067f067c06820700070107
+0307810d06120681030a010a810600010081060a010a8100078107067f067c0682070007
+0107
+0307810d06110681030a020a0400020a820600078107067f067b06820700070107
+0307810d06110681030a020a0400030a8100078107061606810006030681000605068100
+0627068100061b0681000620068100062c06040001060200140681000602060400010602
+0001068100060a06820700070107
+0307810d06100681030a030a0400030a8206000781070615068100060306810006050681
+000621068100060306810006230681000618068100060906810006200681000603068100
+060106810006120681000602068100060306810006010683000600060a06820700070107
+
+0307810d06100681030a030a0400040a8100078107061606810006010681000606068100
+062106810006030681000623068100061806810006090681000620068100060306810006
+0106810006120681000602068100060306810006010683000600060a06820700070107
+0307810d060f0681030a040a0400040a8206000781070615068100060106810006010602
+000106830006000601068100068106000100040602008106008100068206000601068100
+068106008100068106008100060206030002060200050602000106820006008100060306
+840006000600810006810600810006810600010002060300010602000106010003060300
+020602000106010082060006820600068206000681060001000206020001068200060081
+000606060300010681000601068100060306020001068200060081000601060300030603
+000106810006010683000600060a06820700070107
+0307810d060f0681030a040a810300010081030a040a8100078107061506810006010681
+000604068500060006000601068300060006010681000602068100068206000684060006
+000601068300060006840600060006030681000601068300060006010681000606068200
+060081000682060006020682000600810006840600060006820600060106830006000601
+068300060006010683000600060306810006010683000600060106830006000682060006
+820600068406000600060106830006000601068200060081000682060006050681000601
+068300060006010681000606068200060081000684060006000601068100060206810006
+01068300060006010683000600060a06820700070107
+0307810d060e0681030a050a810600010081060a040a8206000781070615068300060006
+020603008406000600060106820006000300030681000682060006840600060006010681
+000682060006010681000603068100060106820006000300040603008206000601068100
+060206830006000601068300060006810600030082060006010682000600030082060006
+030681000601068200060003008206000689060006000600060006000300810600030082
+060006010681000602060100040683000600060106810006030603008206000601068300
+060006010681000606068300060006010683000600060a06820700070107
+0307810d060e0681030a060a0200070a8100078107061506830006000601068100060106
+850006000600060106830006000606068100068206000684060006000601068100060106
+810006820600060306810006010683000600060606810006010683000600060106810006
+020683000600060106830006000682060006030681000601068300060006030681000603
+068100060106830006000603068100068a06000600060006000600060306810006030681
+000601068100060906830006000601068100060206810006010683000600060106830006
+0006010681000606068300060006010683000600060a06820700070107
+0307810d060d0681030a070a830300030a060a8206000781070615068100060206810006
+010685000600060006810600830006000601068100060206810006820600068406000600
+068106008300060006840600060006030681000601068300060006010681000602068100
+060106830006000601068100060206830006000601068300060006820600060106830006
+000601068300060006010683000600060306810006010683000600060106830006000601
+068100060106810006820600060106830006000601068300060006010681000605068100
+060106830006000601068100060206810006010683000600060106830006000601068100
+0602068100060106830006000601068100060c06820700070107
+0307810d060d0681030a070a830600060a070a8100078107061506810006030603008206
+000681060083000600068106000100040681000682060006820600068106008300060006
+810600810006010681000602060300020602000506030082060006010681000602068300
+060006010681000682060006810600010002060300010602000106810006030603000206
+020002068100068206000601068100060106020002060200010681000601068100060606
+020002060200050603008206000601068100068106000200040602000206020001068100
+060a06820700070107
+0307810d060c0681030a090a81000a080a820600078107067c0681000677068207000701
+07
+0307810d060c0681030a150a810007810706780603007906820700070107
+0307810d060b0681030a090a8106008200060a070a820600078107067f06750682070007
+0107
+0307810d060b0681030a090a0300090a8100078107067f067506820700070107
+0307810d060a0681030a0a0a0300090a820600078107067f067406820700070107
+0307810d060a0681030a0a0a8106008200060a090a8100078107067f0674068207000701
+07
+0307810d060a0681030a190a81000701077f067406820700070107
+0307810d060a0681030a180a8206000701077f067406820700070107
+0307810d060b0681030a160a8206000702077f067406820700070107
+0307810d060c06810300160004077f067406820700070107
+0307810d060e061a077f067506820700070107
+0307810d060f0618077f067606820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d066b0648006a06820700070107
+0307810d066a064a006906820700070107
+0307810d066a060100450d8107008100066806820700070107
+0307810d066a060100440d010701006906820700070107
+0307810d066a060100010d18069100060006000600060006000600060006000617060107
+01006906820700070107
+0307810d066a060100010d4206010701006906820700070107
+0307810d066a060100010d18068100060d068100061706010701006906820700070107
+0307810d066a060100010d1b060300020681000601068100061906010701006906820700
+070107
+0307810d066a060100010d18068300060006020681000682060006820600068206000617
+06010701006906820700070107
+0307810d066a060100010d1a0681000602068100068406000600061b0601070100690682
+0700070107
+0307810d066a060100010d18068300060006020681000681060081000602068100061706
+010701006906820700070107
+0307810d066a060100010d1a0681000602068100068106008100061c0601070100690682
+0700070107
+0307810d066a060100010d18068300060006020681000684060006000601068100061706
+010701006906820700070107
+0307810d066a060100010d1a06810006020681000682060006820600061a060107010069
+06820700070107
+0307810d066a060100010d18068300060006020681000682060006010683000600061706
+010701006906820700070107
+0307810d066a060100010d1b060300020681000602068100061806010701006906820700
+070107
+0307810d066a060100010d18068100060d068100061706010701006906820700070107
+0307810d066a060100010d4206010701006906820700070107
+0307810d066a060100010d18069100060006000600060006000600060006000617060107
+01006906820700070107
+0307810d066a060100810d07440701006906820700070107
+0307810d066a060100460701006906820700070107
+0307810d066a064a006906820700070107
+0307810d066b0648006a06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+0307810d067f067f061f06820700070107
+7f077f0726078100070107
+02077f007f0024000207
+7f077f072a07
+7f077f072a07
+7f077f072a07
+7f077f072a07
+7f077f072a07
+7f077f072a07
+
+%
+% Compression made this file 5.68% of the uncompressed size.
+%
+
+
+showpage
+
+% stop using temporary dictionary
+end
+
+% restore original state
+origstate restore
+
+%%Trailer
diff --git a/contrib/docs/latex/deprecated/prop2.gif b/contrib/docs/latex/deprecated/prop2.gif
new file mode 100644
index 0000000000000000000000000000000000000000..764f9882b1f3fe8eae402148160b16259235c15d
GIT binary patch
literal 56166
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
O|M~w!_!ly6_5T3hVXHp?

literal 0
HcmV?d00001

diff --git a/contrib/docs/latex/deprecated/propbfva.tex b/contrib/docs/latex/deprecated/propbfva.tex
new file mode 100644
index 0000000000..a091c492cf
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propbfva.tex
@@ -0,0 +1,17 @@
+\section{\class{wxBoolFormValidator}}\label{wxboolformvalidator}
+
+This class validates a boolean value for a \helpref{form view}{wxpropertyformview}.
+The associated control must be a wxCheckBox.
+
+\wxheading{See also}
+
+\helpref{Property validator classes}{proplistvalidatorclasses}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxBoolFormValidator::wxBoolFormValidator}
+
+\func{void}{wxBoolFormValidator}{\param{long }{flags=0}}
+
+Constructor.
+
diff --git a/contrib/docs/latex/deprecated/propblva.tex b/contrib/docs/latex/deprecated/propblva.tex
new file mode 100644
index 0000000000..172bc51a43
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propblva.tex
@@ -0,0 +1,16 @@
+\section{\class{wxBoolListValidator}}\label{wxboollistvalidator}
+
+This class validates a boolean value for a \helpref{property list view}{wxpropertylistview}.
+
+\wxheading{See also}
+
+\helpref{Validator classes}{proplistvalidatorclasses}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxBoolListValidator::wxBoolListValidator}
+
+\func{void}{wxBoolListValidator}{\param{long }{flags=0}}
+
+Constructor.
+
diff --git a/contrib/docs/latex/deprecated/property.tex b/contrib/docs/latex/deprecated/property.tex
new file mode 100644
index 0000000000..f981df8641
--- /dev/null
+++ b/contrib/docs/latex/deprecated/property.tex
@@ -0,0 +1,107 @@
+\section{\class{wxProperty}}\label{wxproperty}
+
+The {\bf wxProperty} class represents a property, with a \helpref{wxPropertyValue}{wxpropertyvalue}\rtfsp
+containing the actual value, a name a role, an optional validator, and
+an optional associated window. 
+
+A property might correspond to an actual C++ data member, or it
+might correspond to a conceptual property, such as the width of a window.
+There is no explicit data member {\it wxWindow::width}, but it may be convenient
+to invent such a property for the purposes of editing attributes of the window.
+The properties in the property sheet can be mapped to ``reality" by
+whatever means (in this case by calling wxWindow::SetSize when the user has
+finished editing the property sheet).
+
+A validator may be associated with the property in order to ensure that this and
+only this validator will be used for editing and validating the property.
+An alternative method is to use the {\it role} parameter to specify what kind
+of validator would be appropriate; for example, specifying ``filename" for the role
+would allow the property view to find an appropriate validator at edit time.
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxProperty::wxProperty}
+
+\func{void}{wxProperty}{\void}
+
+\func{void}{wxProperty}{\param{wxProperty\& }{prop}}
+
+\func{void}{wxProperty}{\param{wxString}{ name}, \param{wxString}{ role}, \param{wxPropertyValidator *}{validator=NULL}}
+
+\func{void}{wxProperty}{\param{wxString}{ name}, \param{const wxPropertyValue\&}{ val}, \param{wxString}{ role}, \param{wxPropertyValidator *}{validator=NULL}}
+
+Constructors.
+
+\membersection{wxProperty::\destruct{wxProperty}}
+
+\func{void}{\destruct{wxProperty}}{\void}
+
+Destructor. Destroys the wxPropertyValue, and the property validator if there is one. However, if the
+actual C++ value in the wxPropertyValue is a pointer, the data in that variable is not destroyed.
+
+\membersection{wxProperty::GetValue}
+
+\func{wxPropertyValue\&}{GetValue}{\void}
+
+Returns a reference to the property value.
+
+\membersection{wxProperty::GetValidator}
+
+\func{wxPropertyValidator *}{GetValidator}{\void}
+
+Returns a pointer to the associated property validator (if any).
+
+\membersection{wxProperty::GetName}
+
+\func{wxString\&}{GetName}{\void}
+
+Returns the name of the property.
+
+\membersection{wxProperty::GetRole}
+
+\func{wxRole\&}{GetRole}{\void}
+
+Returns the role of the property, to be used when choosing an appropriate validator.
+
+\membersection{wxProperty::GetWindow}
+
+\func{wxWindow *}{GetWindow}{\void}
+
+Returns the window associated with the property (if any).
+
+\membersection{wxProperty::SetValue}
+
+\func{void}{SetValue}{\param{wxPropertyValue\&}{ val}}
+
+Sets the value of the property.
+
+\membersection{wxProperty::SetName}
+
+\func{void}{SetName}{\param{wxString\&}{ name}}
+
+Sets the name of the property.
+
+\membersection{wxProperty::SetRole}
+
+\func{void}{SetRole}{\param{wxString\&}{ role}}
+
+Sets the role  of the property.
+
+\membersection{wxProperty::SetValidator}
+
+\func{void}{SetValidator}{\param{wxPropertyValidator *}{validator}}
+
+Sets the validator: this will be deleted when the property is deleted.
+
+\membersection{wxProperty::SetWindow}
+
+\func{void}{SetWindow}{\param{wxWindow *}{win}}
+
+Sets the window associated with the property.
+
+\membersection{wxProperty::operator $=$}
+
+\func{void}{operator $=$}{\param{const wxPropertyValue\&}{ val}}
+
+Assignment operator.
+
diff --git a/contrib/docs/latex/deprecated/propflva.tex b/contrib/docs/latex/deprecated/propflva.tex
new file mode 100644
index 0000000000..c8748be331
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propflva.tex
@@ -0,0 +1,18 @@
+\section{\class{wxFilenameListValidator}}\label{wxfilenamelistvalidator}
+
+This class validates a filename for a \helpref{property list view}{wxpropertylistview}, allowing the user to edit it textually and also popping up
+a file selector in ``detailed editing" mode.
+
+\wxheading{See also}
+
+\helpref{Validator classes}{proplistvalidatorclasses}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxFilenameListValidator::wxFilenameListValidator}
+
+\func{void}{wxFilenameListValidator}{\param{wxString }{message = ``Select a file"}, \param{wxString }{wildcard = ``*.*"},
+  \param{long}{ flags=0}}
+
+Constructor. Supply an optional message and wildcard.
+
diff --git a/contrib/docs/latex/deprecated/propford.tex b/contrib/docs/latex/deprecated/propford.tex
new file mode 100644
index 0000000000..64ce5f11e3
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propford.tex
@@ -0,0 +1,23 @@
+\section{\class{wxPropertyFormDialog}}\label{wxpropertyformdialog}
+
+The {\bf wxPropertyFormDialog} class is a prepackaged dialog which can
+be used for viewing a form property sheet. Pass a property form view object, and the dialog
+will pass OnClose and OnDefaultAction listbox messages to the view class for
+processing.
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyFormDialog::wxPropertyFormDialog}
+
+\func{void}{wxPropertyFormDialog}{\param{wxPropertyFormView *}{view}, \param{wxWindow *}{parent}, \param{char *}{title},
+ \param{bool}{ modal=false}, \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
+ \param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{char *}{name=``dialogBox"}}
+
+Constructor.
+
+\membersection{wxPropertyFormDialog::\destruct{wxPropertyFormDialog}}
+
+\func{void}{\destruct{wxPropertyFormDialog}}{\void}
+
+Destructor.
+
diff --git a/contrib/docs/latex/deprecated/propforf.tex b/contrib/docs/latex/deprecated/propforf.tex
new file mode 100644
index 0000000000..3f7d9dddf1
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propforf.tex
@@ -0,0 +1,43 @@
+\section{\class{wxPropertyFormFrame}}\label{wxpropertyformframe}
+
+The {\bf wxPropertyFormFrame} class is a prepackaged frame which can
+be used for viewing a property form. Pass a property form view object, and the frame
+will pass OnClose messages to the view class for processing.
+
+Call Initialize to create the panel and associate the view; override OnCreatePanel
+if you wish to use a panel class other than the default wxPropertyFormPanel.
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyFormFrame::wxPropertyFormFrame}
+
+\func{void}{wxPropertyFormFrame}{\param{wxPropertyFormView *}{view}, \param{wxFrame *}{parent}, \param{char *}{title},
+ \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
+ \param{long}{ style=wxSDI $\|$ wxDEFAULT\_FRAME}, \param{char *}{name=``frame"}}
+
+Constructor.
+
+\membersection{wxPropertyFormFrame::\destruct{wxPropertyFormFrame}}
+
+\func{void}{\destruct{wxPropertyFormFrame}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyFormFrame::GetPropertyPanel}
+
+\func{wxPanel *}{GetPropertyPanel}{\void}
+
+Returns the panel associated with the frame.
+
+\membersection{wxPropertyFormFrame::Initialize}
+
+\func{bool}{Initialize}{\void}
+
+Must be called to create the panel and associate the view with the panel and frame.
+
+\membersection{wxPropertyFormFrame::OnCreatePanel}
+
+\func{wxPanel *}{OnCreatePanel}{\param{wxFrame *}{parent}, \param{wxPropertyFormView *}{view}}
+
+Creates a panel. Override this to create a panel type other than wxPropertyFormPanel.
+
diff --git a/contrib/docs/latex/deprecated/propforp.tex b/contrib/docs/latex/deprecated/propforp.tex
new file mode 100644
index 0000000000..c84f4eaa8a
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propforp.tex
@@ -0,0 +1,23 @@
+\section{\class{wxPropertyFormPanel}}\label{wxpropertyformpanel}
+
+The {\bf wxPropertyFormPanel} class is a prepackaged panel which can
+be used for viewing a property form. Pass a property form view object, and the panel
+will pass OnDefaultAction listbox messages to the view class for
+processing.
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyFormPanel::wxPropertyFormPanel}
+
+\func{void}{wxPropertyFormPanel}{\param{wxPropertyFormView *}{view}, \param{wxWindow *}{parent},
+ \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
+ \param{long}{ style=0}, \param{char *}{name=``panel"}}
+
+Constructor.
+
+\membersection{wxPropertyFormPanel::\destruct{wxPropertyFormPanel}}
+
+\func{void}{\destruct{wxPropertyFormPanel}}{\void}
+
+Destructor.
+
diff --git a/contrib/docs/latex/deprecated/propforv.tex b/contrib/docs/latex/deprecated/propforv.tex
new file mode 100644
index 0000000000..0a72305a4a
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propforv.tex
@@ -0,0 +1,60 @@
+\section{\class{wxPropertyFormValidator}}\label{wxpropertyformvalidator}
+
+The {\bf wxPropertyFormValidator} class defines a base class for form validators. By overriding virtual functions,
+the programmer can create custom behaviour for kinds of property.
+
+\wxheading{See also}
+
+\helpref{wxPropertyFormValidator overview}{wxpropertyformvalidatoroverview}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyFormValidator::wxPropertyFormValidator}
+
+\func{void}{wxPropertyFormValidator}{\param{long}{ flags = 0}}
+
+Constructor.
+
+\membersection{wxPropertyFormValidator::\destruct{wxPropertyFormValidator}}
+
+\func{void}{\destruct{wxPropertyFormValidator}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyFormValidator::OnCommand}
+
+\func{bool}{OnCommand}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
+ \param{wxWindow *}{parentWindow}, \param{wxCommandEvent\& }{event}}
+
+Called when the control corresponding to the property receives a command (if not intercepted
+by a callback associated with the actual control).
+
+\membersection{wxPropertyFormValidator::OnCheckValue}
+
+\func{bool}{OnCheckValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
+ \param{wxWindow *}{parentWindow}}
+ 
+Called when the view checks the property value. The value checked by this validator should be taken from the
+panel item corresponding to the property.
+
+\membersection{wxPropertyFormValidator::OnDisplayValue}
+
+\func{bool}{OnDisplayValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
+ \param{wxWindow *}{parentWindow}}
+
+Should display the property value in the appropriate control.
+ 
+\membersection{wxPropertyFormValidator::OnDoubleClick}
+
+\func{bool}{OnDoubleClick}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
+ \param{wxWindow *}{parentWindow}}
+
+Called when the control corresponding to the property is double clicked (listboxes only).
+
+\membersection{wxPropertyFormValidator::OnRetrieveValue}
+
+\func{bool}{OnRetrieveValue}{\param{wxProperty *}{property}, \param{wxPropertyFormView *}{view},
+ \param{wxWindow *}{parentWindow}}
+
+Should do the transfer from the property editing area to the property itself.
+
diff --git a/contrib/docs/latex/deprecated/propfovi.tex b/contrib/docs/latex/deprecated/propfovi.tex
new file mode 100644
index 0000000000..281cd58425
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propfovi.tex
@@ -0,0 +1,104 @@
+\section{\class{wxPropertyFormView}}\label{wxpropertyformview}
+
+The {\bf wxPropertyFormView} class shows a wxPropertySheet as a view onto a panel or dialog
+box which has already been created.
+
+\wxheading{See also}
+
+\helpref{wxPropertyFormView overview}{wxpropertyformviewoverview}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyFormView::wxPropertyFormView}
+
+\func{void}{wxPropertyFormView}{\param{long}{ flags = 0}}
+
+Constructor.
+
+\membersection{wxPropertyFormView::\destruct{wxPropertyFormView}}
+
+\func{void}{\destruct{wxPropertyFormView}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyFormView::AssociateNames}\label{wxpropertyformviewassociatenames}
+
+\func{void}{AssociateNames}{\void}
+
+Associates the properties with the controls on the panel. For each panel item, if the
+panel item name is the same as a property name, the two objects will be associated.
+This function should be called manually since the programmer may wish to do the
+association manually.
+
+\membersection{wxPropertyFormView::Check}\label{wxpropertyformviewcheck}
+
+\func{bool}{Check}{\void}
+
+Checks all properties by calling the appropriate validators; returns false if a validation failed.
+
+\membersection{wxPropertyFormView::GetPanel}\label{wxpropertyformviewgetpanel}
+
+\func{wxPanel *}{GetPanel}{\void}
+
+Returns the panel associated with the view.
+
+\membersection{wxPropertyFormView::GetManagedWindow}\label{wxpropertyformviewgetmanagedwindow}
+
+\func{wxWindow *}{GetManagedWindow}{\void}
+
+Returns the managed window (a frame or dialog) associated with the view.
+
+\membersection{wxPropertyFormView::OnOk}\label{wxpropertyformviewonok}
+
+\func{void}{OnOk}{\void}
+
+Virtual function that will be called when the OK button on the physical window is pressed.
+By default, checks and updates the form values, closes and deletes the frame or dialog, then deletes the view.
+
+\membersection{wxPropertyFormView::OnCancel}\label{wxpropertyformviewoncancel}
+
+\func{void}{OnCancel}{\void}
+
+Virtual function that will be called when the Cancel button on the physical window is pressed.
+By default, closes and deletes the frame or dialog, then deletes the view.
+
+\membersection{wxPropertyFormView::OnHelp}\label{wxpropertyformviewonhelp}
+
+\func{void}{OnHelp}{\void}
+
+Virtual function that will be called when the Help button on the physical window is pressed.
+This needs to be overridden by the application for anything interesting to happen.
+
+\membersection{wxPropertyFormView::OnRevert}\label{wxpropertyformviewonrevert}
+
+\func{void}{OnRevert}{\void}
+
+Virtual function that will be called when the Revert button on the physical window is pressed.
+By default transfers the wxProperty values to the panel items (in effect
+undoing any unsaved changes in the items).
+
+\membersection{wxPropertyFormView::OnUpdate}\label{wxpropertyformviewonupdate}
+
+\func{void}{OnUpdate}{\void}
+
+Virtual function that will be called when the Update button on the physical window is pressed.
+By defaults transfers the displayed values to the wxProperty objects.
+
+\membersection{wxPropertyFormView::SetManagedWindow}\label{wxpropertyformviewsetmanagedwindow}
+
+\func{void}{SetManagedWindow}{\param{wxWindow *}{win}}
+
+Sets the managed window (a frame or dialog) associated with the view.
+
+\membersection{wxPropertyFormView::TransferToDialog}\label{wxpropertyformviewtransfertodialog}
+
+\func{bool}{TransferToDialog}{\void}
+
+Transfers property values to the controls in the dialog.
+
+\membersection{wxPropertyFormView::TransferToPropertySheet}\label{wxpropertyformviewtransfertopropertysheet}
+
+\func{bool}{TransferToPropertySheet}{\void}
+
+Transfers property values from the controls in the dialog to the property sheet.
+
diff --git a/contrib/docs/latex/deprecated/propifva.tex b/contrib/docs/latex/deprecated/propifva.tex
new file mode 100644
index 0000000000..46af6ef034
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propifva.tex
@@ -0,0 +1,18 @@
+\section{\class{wxIntegerFormValidator}}\label{wxintegerformvalidator}
+
+This class validates a range of integer values for a form view. The associated control must be a wxTextCtrl
+or wxSlider.
+
+\wxheading{See also}
+
+\helpref{Validator classes}{proplistvalidatorclasses}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxIntegerFormValidator::wxIntegerFormValidator}
+
+\func{void}{wxIntegerFormValidator}{\param{long }{min=0}, \param{long }{max=0},
+ \param{long}{ flags=0}}
+
+Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.
+
diff --git a/contrib/docs/latex/deprecated/propilva.tex b/contrib/docs/latex/deprecated/propilva.tex
new file mode 100644
index 0000000000..7c6803a942
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propilva.tex
@@ -0,0 +1,17 @@
+\section{\class{wxIntegerListValidator}}\label{wxintegerlistvalidator}
+
+This class validates a range of integer values for a list view.
+
+\wxheading{See also}
+
+\overview{Validator classes}{proplistvalidatorclasses}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxIntegerListValidator::wxIntegerListValidator}
+
+\func{void}{wxIntegerListValidator}{\param{long }{min=0}, \param{long }{max=0},
+ \param{long}{ flags=wxPROP\_ALLOW\_TEXT\_EDITING}}
+
+Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.
+
diff --git a/contrib/docs/latex/deprecated/proplisd.tex b/contrib/docs/latex/deprecated/proplisd.tex
new file mode 100644
index 0000000000..8ea7f4c8ce
--- /dev/null
+++ b/contrib/docs/latex/deprecated/proplisd.tex
@@ -0,0 +1,23 @@
+\section{\class{wxPropertyListDialog}}\label{wxpropertylistdialog}
+
+The {\bf wxPropertyListDialog} class is a prepackaged dialog which can
+be used for viewing a property list. Pass a property list view object, and the dialog
+will pass OnClose and OnDefaultAction listbox messages to the view class for
+processing.
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyListDialog::wxPropertyListDialog}
+
+\func{void}{wxPropertyListDialog}{\param{wxPropertyListView *}{view}, \param{wxWindow *}{parent}, \param{char *}{title},
+ \param{bool}{ modal=false}, \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
+ \param{long}{ style=wxDEFAULT\_DIALOG\_STYLE}, \param{char *}{name=``dialogBox"}}
+
+Constructor.
+
+\membersection{wxPropertyListDialog::\destruct{wxPropertyListDialog}}
+
+\func{void}{\destruct{wxPropertyListDialog}}{\void}
+
+Destructor.
+
diff --git a/contrib/docs/latex/deprecated/proplisf.tex b/contrib/docs/latex/deprecated/proplisf.tex
new file mode 100644
index 0000000000..ee780a7ad8
--- /dev/null
+++ b/contrib/docs/latex/deprecated/proplisf.tex
@@ -0,0 +1,43 @@
+\section{\class{wxPropertyListFrame}}\label{wxpropertylistframe}
+
+The {\bf wxPropertyListFrame} class is a prepackaged frame which can
+be used for viewing a property list. Pass a property list view object, and the frame
+will pass OnClose messages to the view class for processing.
+
+Call Initialize to create the panel and associate the view; override OnCreatePanel
+if you wish to use a panel class other than the default wxPropertyListPanel.
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyListFrame::wxPropertyListFrame}
+
+\func{void}{wxPropertyListFrame}{\param{wxPropertyListView *}{view}, \param{wxFrame *}{parent}, \param{char *}{title},
+ \param{int}{ x=-1}, \param{int}{ y=-1}, \param{int}{ width=-1}, \param{int}{height=-1},
+ \param{long}{ style=wxSDI $\|$ wxDEFAULT\_FRAME}, \param{char *}{name=``frame"}}
+
+Constructor.
+
+\membersection{wxPropertyListFrame::\destruct{wxPropertyListFrame}}
+
+\func{void}{\destruct{wxPropertyListFrame}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyListFrame::GetPropertyPanel}
+
+\func{wxPanel *}{GetPropertyPanel}{\void}
+
+Returns the panel associated with the frame.
+
+\membersection{wxPropertyListFrame::Initialize}
+
+\func{bool}{Initialize}{\void}
+
+Must be called to create the panel and associate the view with the panel and frame.
+
+\membersection{wxPropertyListFrame::OnCreatePanel}
+
+\func{wxPanel *}{OnCreatePanel}{\param{wxFrame *}{parent}, \param{wxPropertyListView *}{view}}
+
+Creates a panel. Override this to create a panel type other than wxPropertyListPanel.
+
diff --git a/contrib/docs/latex/deprecated/proplisp.tex b/contrib/docs/latex/deprecated/proplisp.tex
new file mode 100644
index 0000000000..fb8161d8a7
--- /dev/null
+++ b/contrib/docs/latex/deprecated/proplisp.tex
@@ -0,0 +1,24 @@
+\section{\class{wxPropertyListPanel}}\label{wxpropertylistpanel}
+
+The {\bf wxPropertyListPanel} class is a prepackaged panel which can
+be used for viewing a property list. Pass a property list view object, and the panel
+will pass OnDefaultAction listbox messages to the view class for
+processing.
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyListPanel::wxPropertyListPanel}
+
+\func{void}{wxPropertyListPanel}{\param{wxPropertyListView *}{view}, \param{wxWindow *}{parent},
+ \param{const wxPoint&}{ pos = wxDefaultPosition},
+ \param{const wxSize&}{ size = wxDefaultSize},
+ \param{long}{ style=0}, \param{char *}{name=``panel"}}
+
+Constructor.
+
+\membersection{wxPropertyListPanel::\destruct{wxPropertyListPanel}}
+
+\func{void}{\destruct{wxPropertyListPanel}}{\void}
+
+Destructor.
+
diff --git a/contrib/docs/latex/deprecated/proplist.tex b/contrib/docs/latex/deprecated/proplist.tex
new file mode 100644
index 0000000000..ee6a7147a7
--- /dev/null
+++ b/contrib/docs/latex/deprecated/proplist.tex
@@ -0,0 +1,556 @@
+\chapter{Property sheet classes}\label{proplist}
+
+\section{Introduction}\label{proplistintro}
+
+The Property Sheet Classes help the programmer to specify complex dialogs and
+their relationship with their associated data. By specifying data as a
+wxPropertySheet containing wxProperty objects, the programmer can use
+a range of available or custom wxPropertyView classes to allow the user to
+edit this data. Classes derived from wxPropertyView act as mediators between the
+wxPropertySheet and the actual window (and associated panel items).
+
+For example, the wxPropertyListView is a kind of wxPropertyView which displays
+data in a Visual Basic-style property list (see \helpref{the next section}{proplistappearance} for
+screen shots). This is a listbox containing names and values, with
+an edit control and other optional controls via which the user edits the selected
+data item.
+
+wxPropertyFormView is another kind of wxPropertyView which mediates between
+the data and a panel or dialog box which has already been created. This makes it a contender for
+the replacement of wxForm, since programmer-controlled layout is going to be much more
+satisfactory. If automatic layout is desired, then wxPropertyListView could be used instead.
+
+The main intention of this class library was to provide property {\it list} behaviour, but
+it has been generalised as much as possible so that the concept of a property sheet and its viewers
+can reduce programming effort in a range of user interface tasks.
+
+For further details on the classes and how they are used, please see \helpref{Property classes overview}{proplistpropertyoverview}.
+
+\subsection{The appearance and behaviour of a property list view}\label{proplistappearance}
+
+The property list, as seen in an increasing number of development tools
+such as Visual Basic and Delphi, is a convenient and compact method for
+displaying and editing a number of items without the need for one
+control per item, and without the need for designing a special form. The
+controls are as follows:
+
+\begin{itemize}\itemsep=0pt
+\item A listbox showing the properties and their current values, which has double-click
+properties dependent on the nature of the current property;
+\item a text editing area at the top of the display, allowing the user to edit
+the currently selected property if appropriate;
+\item `confirm' and `cancel' buttons to confirm or cancel an edit (for the property, not the
+whole sheet);
+\item an optional list that appears when the user can make a choice from several known possible values;
+\item a small Edit button to invoke `detailed editing' (perhaps showing or hiding the above value list, or
+maybe invoking a common dialog);
+\item optional OK/Close, Cancel and Help buttons for the whole dialog.
+\end{itemize}
+
+The concept of `detailed editing' versus quick editing gives the user a choice
+of editing mode, so novice and expert behaviour can be catered for, or the user can just
+use what he feels comfortable with.
+
+Behaviour alters depending on the kind of property being edited. For example, a boolean value has
+the following behaviour:
+
+\begin{itemize}\itemsep=0pt
+\item Double-clicking on the item toggles between true and false.
+\item Showing the value list enables the user to select true or false.
+\item The user may be able to type in the word true or false, or the edit control
+may be read-only to disallow this since it is error-prone.
+\end{itemize}
+
+A list of strings may pop up a dialog for editing them, a simple string just allows text editing,
+double-clicking a colour property may show a colour selector, double-clicking on a filename property may
+show a file selector (in addition to being able to type in the name in the edit control), etc.
+
+Note that the `type' of property, such as string or integer, does not
+necessarily determine the behaviour of the property. The programmer has
+to be able to specify different behaviours for the same type, depending
+on the meaning of the property. For example, a colour and a filename may
+both be strings, but their editing behaviour should be different. This
+is why objects of type wxPropertyValidator need to be used, to define
+behaviour for a given class of properties or even specific property
+name.  Objects of class wxPropertyView contain a list of property
+registries, which enable reuse of bunches of these validators in
+different circumstances. Or a wxProperty can be explicitly set to use a
+particular validator object. 
+
+The following screen shot of the property classes test program shows the
+user editing a string, which is constrained to be one of three possible
+values.
+
+\helponly{\image{}{prop1.bmp}}
+
+The second picture shows the user having entered a integer that
+was outside the range specified to the validator. Note that in this picture,
+the value list is hidden because it is not used when editing an integer.
+
+\helponly{\image{}{prop2.bmp}}
+
+\section{Headers}\label{proplistfiles}
+
+The property class library comprises the following files:
+
+\begin{itemize}\itemsep=0pt
+\item prop.h: base property class header
+\item proplist.h: wxPropertyListView and associated classes
+\item propform.h: wxPropertyListView and associated classes
+\end{itemize}
+
+\section{Topic overviews}\label{proplistoverviews}
+
+This chapter contains a selection of topic overviews.
+
+\subsection{Property classes overview}\label{proplistpropertyoverview}
+
+The property classes help a programmer to express relationships between
+data and physical windows, in particular:
+
+\begin{itemize}\itemsep=0pt
+\item the transfer of data to and from the physical controls;
+\item the behaviour of various controls and custom windows for particular
+types of data;
+\item the validation of data, notifying the user when incorrect data is entered,
+or even better, constraining the input so only valid data can be entered.
+\end{itemize}
+
+With a consistent framework, the programmer should be able to use existing
+components and design new ones in a principled manner, to solve many data entry
+requirements.
+
+Each datum is represented in a \helpref{wxProperty}{wxproperty}, which has a name and a value.
+Various C++ types are permitted in the value of a property, and the property can store a pointer
+to the data instead of a copy of the data. A \helpref{wxPropertySheet}{wxpropertysheet} represents a number of these properties.
+
+These two classes are independent from the way in which the data is visually manipulated. To
+mediate between property sheets and windows, the abstract class \helpref{wxPropertyView}{wxpropertyview} is
+available for programmers to derive new kinds of view. One kind of view that is available is the \helpref{wxPropertyListView}{wxpropertylistview},
+which displays the data in a Visual Basic-style list, with a small number of controls for editing
+the currently selected property. Another is \helpref{wxPropertyFormView}{wxpropertyformview} which
+mediates between an existing dialog or panel and the property sheet.
+
+The hard work of mediation is actually performed by validators, which are instances of classes
+derived from \helpref{wxPropertyValidator}{wxpropertyvalidator}. A validator is associated with
+a particular property and is responsible for
+responding to user interface events, and displaying, updating and checking the property value.
+Because a validator's behaviour depends largely on the kind of view being used, there has to be
+a separate hierarchy of validators for each class of view. So for wxPropertyListView, there is
+an abstract class \helpref{wxPropertyListValidator}{wxpropertylistvalidator} from which concrete
+classes are derived, such as \helpref{wxRealListValidator}{wxreallistvalidator} and
+\rtfsp\helpref{wxStringListValidator}{wxstringlistvalidator}.
+
+A validator can be explicitly set for a property, so there is no doubt which validator
+should be used to edit that property. However, it is also possible to define a registry
+of validators, and have the validator chosen on the basis of the {\it role} of the property.
+So a property with a ``filename" role would match the ``filename" validator, which pops
+up a file selector when the user double clicks on the property.
+
+You don't have to define your own frame or window classes: there are some predefined
+that will work with the property list view. See \helpref{Window classes}{proplistwindowclasses} for
+further details.
+
+\subsubsection{Example 1: Property list view}
+
+The following code fragment shows the essentials of creating a registry of
+standard validators, a property sheet containing some properties, and
+a property list view and dialog or frame. RegisterValidators will be
+called on program start, and PropertySheetTest is called in response to a
+menu command.
+
+Note how some properties are created with an explicit reference to
+a validator, and others are provided with a ``role'' which can be matched
+against a validator in the registry.
+
+The interface generated by this test program is shown in the section \helpref{Appearance and
+behaviour of a property list view}{proplistappearance}.
+
+\begin{verbatim}
+void RegisterValidators(void)
+{
+  myListValidatorRegistry.RegisterValidator((wxString)"real", new wxRealListValidator);
+  myListValidatorRegistry.RegisterValidator((wxString)"string", new wxStringListValidator);
+  myListValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerListValidator);
+  myListValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolListValidator);
+}
+
+void PropertyListTest(Bool useDialog)
+{
+  wxPropertySheet *sheet = new wxPropertySheet;
+
+  sheet->AddProperty(new wxProperty("fred", 1.0, "real"));
+  sheet->AddProperty(new wxProperty("tough choice", (Bool)true, "bool"));
+  sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerListValidator(-50, 50)));
+  sheet->AddProperty(new wxProperty("bill", 25.0, "real", new wxRealListValidator(0.0, 100.0)));
+  sheet->AddProperty(new wxProperty("julian", "one", "string"));
+  sheet->AddProperty(new wxProperty("bitmap", "none", "string", new wxFilenameListValidator("Select a bitmap file", "*.bmp")));
+  wxStringList *strings = new wxStringList("one", "two", "three", NULL);
+  sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringListValidator(strings)));
+
+  wxPropertyListView *view =
+    new wxPropertyListView(NULL,
+     wxPROP_BUTTON_CHECK_CROSS|wxPROP_DYNAMIC_VALUE_FIELD|wxPROP_PULLDOWN);
+
+  wxDialogBox *propDialog = NULL;
+  wxPropertyListFrame *propFrame = NULL;
+  if (useDialog)
+  {
+    propDialog = new wxPropertyListDialog(view, NULL, "Property Sheet Test", true, -1, -1, 400, 500);
+  }
+  else
+  {
+    propFrame = new wxPropertyListFrame(view, NULL, "Property Sheet Test", -1, -1, 400, 500);
+  }
+  
+  view->AddRegistry(&myListValidatorRegistry);
+
+  if (useDialog)
+  {
+    view->ShowView(sheet, propDialog);
+    propDialog->Centre(wxBOTH);
+    propDialog->Show(true);
+  }
+  else
+  {
+    propFrame->Initialize();
+    view->ShowView(sheet, propFrame->GetPropertyPanel());
+    propFrame->Centre(wxBOTH);
+    propFrame->Show(true);
+  }
+}
+\end{verbatim}
+
+\subsubsection{Example 2: Property form view}
+
+This example is similar to Example 1, but uses a property form view to
+edit a property sheet using a predefined dialog box.
+
+\begin{verbatim}
+void RegisterValidators(void)
+{
+  myFormValidatorRegistry.RegisterValidator((wxString)"real", new wxRealFormValidator);
+  myFormValidatorRegistry.RegisterValidator((wxString)"string", new wxStringFormValidator);
+  myFormValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerFormValidator);
+  myFormValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolFormValidator);
+}
+
+void PropertyFormTest(Bool useDialog)
+{
+  wxPropertySheet *sheet = new wxPropertySheet;
+
+  sheet->AddProperty(new wxProperty("fred", 25.0, "real", new wxRealFormValidator(0.0, 100.0)));
+  sheet->AddProperty(new wxProperty("tough choice", (Bool)true, "bool"));
+  sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerFormValidator(-50, 50)));
+  sheet->AddProperty(new wxProperty("julian", "one", "string"));
+  wxStringList *strings = new wxStringList("one", "two", "three", NULL);
+  sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringFormValidator(strings)));
+
+  wxPropertyFormView *view = new wxPropertyFormView(NULL);
+
+  wxDialogBox *propDialog = NULL;
+  wxPropertyFormFrame *propFrame = NULL;
+  if (useDialog)
+  {
+    propDialog = new wxPropertyFormDialog(view, NULL, "Property Form Test", true, -1, -1, 400, 300);
+  }
+  else
+  {
+    propFrame = new wxPropertyFormFrame(view, NULL, "Property Form Test", -1, -1, 400, 300);
+    propFrame->Initialize();
+  }
+  
+  wxPanel *panel = propDialog ? propDialog : propFrame->GetPropertyPanel();
+  panel->SetLabelPosition(wxVERTICAL);
+  
+  // Add items to the panel
+  
+  (void) new wxButton(panel, (wxFunction)NULL, "OK", -1, -1, -1, -1, 0, "ok");
+  (void) new wxButton(panel, (wxFunction)NULL, "Cancel", -1, -1, 80, -1, 0, "cancel");
+  (void) new wxButton(panel, (wxFunction)NULL, "Update", -1, -1, 80, -1, 0, "update");
+  (void) new wxButton(panel, (wxFunction)NULL, "Revert", -1, -1, -1, -1, 0, "revert");
+  panel->NewLine();
+  
+  // The name of this text item matches the "fred" property
+  (void) new wxText(panel, (wxFunction)NULL, "Fred", "", -1, -1, 90, -1, 0, "fred");
+  (void) new wxCheckBox(panel, (wxFunction)NULL, "Yes or no", -1, -1, -1, -1, 0, "tough choice");
+  (void) new wxSlider(panel, (wxFunction)NULL, "Sliding scale", 0, -50, 50, 100, -1, -1, wxHORIZONTAL, "ian");
+  panel->NewLine();
+  (void) new wxListBox(panel, (wxFunction)NULL, "Constrained", wxSINGLE, -1, -1, 100, 90, 0, NULL, 0, "constrained");
+
+  view->AddRegistry(&myFormValidatorRegistry);
+
+  if (useDialog)
+  {
+    view->ShowView(sheet, propDialog);
+    view->AssociateNames();
+    view->TransferToDialog();
+    propDialog->Centre(wxBOTH);
+    propDialog->Show(true);
+  }
+  else
+  {
+    view->ShowView(sheet, propFrame->GetPropertyPanel());
+    view->AssociateNames();
+    view->TransferToDialog();
+    propFrame->Centre(wxBOTH);
+    propFrame->Show(true);
+  }
+}
+\end{verbatim}
+
+\subsection{Validator classes overview}\label{proplistvalidatoroverview}
+
+Classes: \helpref{Validator classes}{proplistvalidatorclasses}
+
+The validator classes provide functionality for mediating between a wxProperty and
+the actual display. There is a separate family of validator classes for each
+class of view, since the differences in user interface for these views implies
+that little common functionality can be shared amongst validators.
+
+
+
+\subsubsection{wxPropertyValidator overview}\label{wxpropertyvalidatoroverview}
+
+Class: \helpref{wxPropertyValidator}{wxpropertyvalidator}
+
+This class is the root of all property validator classes. It contains a small
+amount of common functionality, including functions to convert between
+strings and C++ values.
+
+A validator is notionally an object which sits between a property and its displayed
+value, and checks that the value the user enters is correct, giving an error message
+if the validation fails. In fact, the validator does more than that, and is akin to
+a view class but at a finer level of detail. It is also responsible for
+loading the dialog box control with the value from the property, putting it back
+into the property, preparing special controls for editing the value, and
+may even invoke special dialogs for editing the value in a convenient way.
+
+In a property list dialog, there is quite a lot of scope for supplying custom dialogs,
+such as file or colour selectors. For a form dialog, there is less scope because
+there is no concept of `detailed editing' of a value: one control is associated with
+one property, and there is no provision for invoking further dialogs. The reader
+may like to work out how the form view could be extended to provide some of the
+functionality of the property list!
+
+Validator objects may be associated explicitly with a wxProperty, or they may be
+indirectly associated by virtue of a property `kind' that matches validators having
+that kind. In the latter case, such validators are stored in a validator registry
+which is passed to the view before the dialog is shown. If the validator takes
+arguments, such as minimum and maximum values in the case of a wxIntegerListValidator,
+then the validator must be associated explicitly with the property. The validator
+will be deleted when the property is deleted.
+
+\subsubsection{wxPropertyListValidator overview}\label{wxpropertylistvalidatoroverview}
+
+Class: \helpref{wxPropertyListValidator}{wxpropertylistvalidator}
+
+This class is the abstract base class for property list view validators.
+The list view acts upon a user interface containing a list of properties,
+a text item for direct property value editing, confirm/cancel buttons for the value,
+a pulldown list for making a choice between values, and OK/Cancel/Help buttons
+for the dialog (see \helpref{property list appearance}{proplistappearance}).
+
+By overriding virtual functions, the programmer can create custom
+behaviour for different kinds of property. Custom behaviour can use just the
+available controls on the property list dialog, or the validator can
+invoke custom editors with quite different controls, which pop up in
+`detailed editing' mode.
+
+See the detailed class documentation for the members you should override
+to give your validator appropriate behaviour.
+
+\subsubsection{wxPropertyFormValidator overview}\label{wxpropertyformvalidatoroverview}
+
+This class is the abstract base class for property form view validators.
+The form view acts upon an existing dialog box or panel, where either the
+panel item names correspond to property names, or the programmer has explicitly
+associated the panel item with the property.
+
+By overriding virtual functions, the programmer determines how
+values are displayed or retrieved, and the checking that the validator does.
+
+See the detailed class documentation for the members you should override
+to give your validator appropriate behaviour.
+
+\subsection{View classes overview}\label{proplistviewoverview}
+
+Classes: \helpref{View classes}{proplistviewclasses}
+
+An instance of a view class relates a property sheet with an actual window.
+Currently, there are two classes of view: wxPropertyListView and wxPropertyFormView.
+
+\subsubsection{wxPropertyView overview}\label{wxpropertyviewoverview}
+
+Class: \helpref{wxPropertyView}{wxpropertyview}
+
+This is the abstract base class for property views.
+
+\subsubsection{wxPropertyListView overview}\label{wxpropertylistviewoverview}
+
+Class: \helpref{wxPropertyListView}{wxpropertylistview}
+
+The property list view defines the relationship between a property sheet and
+a property list dialog or panel. It manages user interface events such as
+clicking on a property, pressing return in the text edit field, and clicking
+on Confirm or Cancel. These events cause member functions of the
+class to be called, and these in turn may call member functions of
+the appropriate validator to be called, to prepare controls, check the property value,
+invoke detailed editing, etc.
+
+\subsubsection{wxPropertyFormView overview}\label{wxpropertyformviewoverview}
+
+Class: \helpref{wxPropertyFormView}{wxpropertyformview}
+
+The property form view manages the relationship between a property sheet
+and an existing dialog or panel.
+
+You must first create a panel or dialog box for the view to work on.
+The panel should contain panel items with names that correspond to
+properties in your property sheet; or you can explicitly set the
+panel item for each property.
+
+Apart from any custom panel items that you wish to control independently
+of the property-editing items, wxPropertyFormView takes over the
+processing of item events. It can also control normal dialog behaviour such
+as OK, Cancel, so you should also create some standard buttons that the property view
+can recognise. Just create the buttons with standard names and the view
+will do the rest. The following button names are recognised:
+
+\begin{itemize}\itemsep=0pt
+\item {\bf ok}: indicates the OK button. Calls wxPropertyFormView::OnOk. By default,
+checks and updates the form values, closes and deletes the frame or dialog, then deletes the view.
+\item {\bf cancel}: indicates the Cancel button. Calls wxPropertyFormView::OnCancel. By default,
+closes and deletes the frame or dialog, then deletes the view.
+\item {\bf help}: indicates the Help button. Calls wxPropertyFormView::OnHelp. This needs
+to be overridden by the application for anything interesting to happen.
+\item {\bf revert}: indicates the Revert button. Calls wxPropertyFormView::OnRevert,
+which by default transfers the wxProperty values to the panel items (in effect
+undoing any unsaved changes in the items).
+\item {\bf update}: indicates the Revert button. Calls wxPropertyFormView::OnUpdate, which
+by defaults transfers the displayed values to the wxProperty objects.
+\end{itemize}
+
+\subsection{wxPropertySheet overview}\label{wxpropertysheetoverview}
+
+Classes: \helpref{wxPropertySheet}{wxpropertysheet}, \helpref{wxProperty}{wxproperty}, \helpref{wxPropertyValue}{wxpropertyvalue}
+
+A property sheet defines zero or more properties. This is a bit like an explicit representation of
+a C++ object. wxProperty objects can have values which are pointers to C++ values, or they
+can allocate their own storage for values.
+
+Because the property sheet representation is explicit and can be manipulated by
+a program, it is a convenient form to be used for a variety of
+editing purposes. wxPropertyListView and wxPropertyFormView are two classes that
+specify the relationship between a property sheet and a user interface. You could imagine
+other uses for wxPropertySheet, for example to generate a form-like user interface without
+the need for GUI programming. Or for storing the names and values of command-line switches, with the
+option to subsequently edit these values using a wxPropertyListView.
+
+A typical use for a property sheet is to represent values of an object
+which are only implicit in the current representation of it. For
+example, in Visual Basic and similar programming environments, you can
+`edit a button', or rather, edit the button's properties.  One of the
+properties you can edit is {\it width} - but there is no explicit
+representation of width in a wxWindows button; instead, you call SetSize
+and GetSize members. To translate this into a consistent,
+property-oriented scheme, we could derive a new class
+wxButtonWithProperties, which has two new functions: SetProperty and
+GetProperty.  SetProperty accepts a property name and a value, and calls
+an appropriate function for the property that is being passed.
+GetProperty accepts a property name, returning a property value. So
+instead of having to use the usual arbitrary set of C++ member functions
+to set or access attributes of a window, programmer deals merely with
+SetValue/GetValue, and property names and values.
+We now have a single point at which we can modify or query an object by specifying
+names and values at run-time. (The implementation of SetProperty and GetProperty
+is probably quite messy and involves a large if-then-else statement to
+test the property name and act accordingly.)
+
+When the user invokes the property editor for a wxButtonWithProperties, the system
+creates a wxPropertySheet with `imaginary' properties such as width, height, font size
+and so on. For each property, wxButtonWithProperties::GetProperty is called, and the result is
+passed to the corresponding wxProperty. The wxPropertySheet is passed to a wxPropertyListView
+as described elsewhere, and the user edits away. When the user has finished editing, the system calls
+wxButtonWithProperties::SetProperty to transfer the wxProperty value back into the button
+by way of an appropriate call, wxWindow::SetSize in the case of width and height properties.
+
+\section{Classes by category}\label{proplistclassesbycat}
+
+A classification of property sheet classes by category.
+
+\subsection{Data classes}
+
+\begin{itemize}\itemsep=0pt
+\item \helpref{wxProperty}{wxproperty}
+\item \helpref{wxPropertyValue}{wxpropertyvalue}
+\item \helpref{wxPropertySheet}{wxpropertysheet}
+\end{itemize}
+
+\subsection{Validator classes}\label{proplistvalidatorclasses}
+
+Validators check that the values the user has entered for a property are
+valid. They can also define specific ways of entering data, such as a
+file selector for a filename, and they are responsible for transferring
+values between the wxProperty and the physical display. 
+
+Base classes:
+
+\begin{itemize}\itemsep=0pt
+\item \helpref{wxPropertyValidator}{wxproperty}
+\item \helpref{wxPropertyListValidator}{wxpropertylistvalidator}
+\item \helpref{wxPropertyFormValidator}{wxpropertyformvalidator}
+\end{itemize}
+
+List view validators:
+
+\begin{itemize}\itemsep=0pt
+\item \helpref{wxBoolListValidator}{wxboollistvalidator}
+\item \helpref{wxFilenameListValidator}{wxfilenamelistvalidator}
+\item \helpref{wxIntegerListValidator}{wxintegerlistvalidator}
+\item \helpref{wxListOfStringsListValidator}{wxlistofstringslistvalidator}
+\item \helpref{wxRealListValidator}{wxreallistvalidator}
+\item \helpref{wxStringListValidator}{wxstringlistvalidator}
+\end{itemize}
+
+Form view validators:
+
+\begin{itemize}\itemsep=0pt
+\item \helpref{wxBoolFormValidator}{wxboolformvalidator}
+\item \helpref{wxIntegerFormValidator}{wxintegerformvalidator}
+\item \helpref{wxRealFormValidator}{wxrealformvalidator}
+\item \helpref{wxStringFormValidator}{wxstringformvalidator}
+\end{itemize}
+
+\subsection{View classes}\label{proplistviewclasses}
+
+View classes mediate between a property sheet and a physical window.
+
+\begin{itemize}\itemsep=0pt
+\item \helpref{wxPropertyView}{wxpropertyview}
+\item \helpref{wxPropertyListView}{wxpropertylistview}
+\item \helpref{wxPropertyFormView}{wxpropertyformview}
+\end{itemize}
+
+\subsection{Window classes}\label{proplistwindowclasses}
+
+The class library defines some window classes that can be used as-is with a suitable
+view class and property sheet.
+
+\begin{itemize}\itemsep=0pt
+\item \helpref{wxPropertyFormFrame}{wxpropertyformframe}
+\item \helpref{wxPropertyFormDialog}{wxpropertyformdialog}
+\item \helpref{wxPropertyFormPanel}{wxpropertyformpanel}
+\item \helpref{wxPropertyListFrame}{wxpropertylistframe}
+\item \helpref{wxPropertyListDialog}{wxpropertylistdialog}
+\item \helpref{wxPropertyListPanel}{wxpropertylistpanel}
+\end{itemize}
+
+\subsection{Registry classes}
+
+A validator registry is a list of validators that can be applied to properties in a property sheet.
+There may be one or more registries per property view.
+
+\begin{itemize}\itemsep=0pt
+\item \helpref{wxPropertyValidatorRegistry}{wxpropertyvalidatorregistry}
+\end{itemize}
diff --git a/contrib/docs/latex/deprecated/propliva.tex b/contrib/docs/latex/deprecated/propliva.tex
new file mode 100644
index 0000000000..b75dfc782b
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propliva.tex
@@ -0,0 +1,110 @@
+\section{\class{wxPropertyListValidator}}\label{wxpropertylistvalidator}
+
+The {\bf wxPropertyListValidator} abstract class is the base class for
+deriving validators for property lists.
+
+\wxheading{See also}
+
+\helpref{wxPropertyListValidator overview}{wxpropertylistvalidatoroverview}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyListValidator::wxPropertyListValidator}
+
+\func{void}{wxPropertyListValidator}{\param{long}{ flags = wxPROP\_ALLOW\_TEXT\_EDITING}}
+
+Constructor.
+
+\membersection{wxPropertyListValidator::\destruct{wxPropertyListValidator}}
+
+\func{void}{\destruct{wxPropertyListValidator}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyListValidator::OnCheckValue}
+
+\func{bool}{OnCheckValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+ 
+Called when the Tick (Confirm) button is pressed or focus is list. Return false if the value
+was invalid, which is a signal restores the old value. Return true if the value was valid.
+
+\membersection{wxPropertyListValidator::OnClearControls}
+
+\func{bool}{OnClearControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+ 
+Allows the clearing (enabling, disabling) of property list controls, when the focus leaves the current property.
+
+\membersection{wxPropertyListValidator::OnClearDetailControls}
+
+\func{bool}{OnClearDetailControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+ 
+Called when the focus is lost, if the validator is in detailed editing mode.
+
+\membersection{wxPropertyListValidator::OnDisplayValue}
+
+\func{bool}{OnDisplayValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+
+Should display the value in the appropriate controls. The default implementation gets the
+textual value from the property and inserts it into the text edit control.
+ 
+\membersection{wxPropertyListValidator::OnDoubleClick}
+
+\func{bool}{OnDoubleClick}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+
+Called when the property is double clicked. Extra functionality can be provided,
+such as cycling through possible values.
+
+\membersection{wxPropertyListValidator::OnEdit}
+
+\func{bool}{OnEdit}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+ 
+Called when the Edit (detailed editing) button is pressed. The default implementation
+calls wxPropertyListView::BeginDetailedEditing; a filename validator (for example) overrides
+this function to show the file selector.
+
+\membersection{wxPropertyListValidator::OnPrepareControls}
+
+\func{bool}{OnPrepareControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+
+Called to allow the validator to setup the display, such enabling or disabling buttons, and
+setting the values and selection in the standard listbox control (the one optionally used for displaying
+value options).
+
+\membersection{wxPropertyListValidator::OnPrepareDetailControls}
+
+\func{bool}{OnPrepareDetailControls}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+ 
+Called when the property is edited `in detail', i.e. when the Edit button is pressed.
+
+\membersection{wxPropertyListValidator::OnRetrieveValue}
+
+\func{bool}{OnRetrieveValue}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+
+Called when Tick (Confirm) is pressed or focus is lost or view wants to update
+the property list. Should do the transfer from the property editing area to the property itself
+
+\membersection{wxPropertyListValidator::OnSelect}
+
+\func{bool}{OnSelect}{\param{bool}{ select}, \param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+
+Called when the property is selected or deselected: typically displays the value
+in the edit control (having chosen a suitable control to display: (non)editable text or listbox).
+
+\membersection{wxPropertyListValidator::OnValueListSelect}
+
+\func{bool}{OnValueListSelect}{\param{wxProperty *}{property}, \param{wxPropertyListView *}{view},
+ \param{wxWindow *}{parentWindow}}
+
+Called when the value listbox is selected. The default behaviour is to copy
+string to text control, and retrieve the value into the property.
+
diff --git a/contrib/docs/latex/deprecated/proplosv.tex b/contrib/docs/latex/deprecated/proplosv.tex
new file mode 100644
index 0000000000..601788a796
--- /dev/null
+++ b/contrib/docs/latex/deprecated/proplosv.tex
@@ -0,0 +1,31 @@
+\section{\class{wxListOfStringsListValidator}}\label{wxlistofstringslistvalidator}
+
+This class validates a list of strings for a list view. When editing the property,
+a dialog box is presented for adding, deleting or editing entries in the list.
+At present no constraints may be supplied.
+
+You can construct a string list property value by constructing a wxStringList object.
+
+For example:
+
+\begin{verbatim}
+  myListValidatorRegistry.RegisterValidator((wxString)"stringlist",
+      new wxListOfStringsListValidator);
+
+  wxStringList *strings = new wxStringList("earth", "fire", "wind", "water", NULL);
+
+  sheet->AddProperty(new wxProperty("fred", strings, "stringlist"));
+\end{verbatim}
+
+\wxheading{See also}
+
+\helpref{Validator classes}{proplistvalidatorclasses}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxListOfStringsListValidator::wxListofStringsListValidator}
+
+\func{void}{wxListOfStringsListValidator}{\param{long}{ flags=0}}
+
+Constructor.
+
diff --git a/contrib/docs/latex/deprecated/proplstv.tex b/contrib/docs/latex/deprecated/proplstv.tex
new file mode 100644
index 0000000000..a59fb2578a
--- /dev/null
+++ b/contrib/docs/latex/deprecated/proplstv.tex
@@ -0,0 +1,111 @@
+\section{\class{wxPropertyListView}}\label{wxpropertylistview}
+
+The {\bf wxPropertyListView} class shows a wxPropertySheet as a Visual Basic-style property list.
+
+\wxheading{See also}
+
+\helpref{wxPropertyListView overview}{wxpropertylistviewoverview}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyListView::wxPropertyListView}
+
+\func{void}{wxPropertyListView}{ \param{wxPanel*} propPanel = NULL, \param{long}{ flags = wxPROP\_BUTTON\_DEFAULT}}
+
+Constructor.
+
+The {\it flags} argument can be a bit list of the following:
+
+\begin{itemize}\itemsep=0pt
+\item wxPROP\_BUTTON\_CLOSE
+\item wxPROP\_BUTTON\_OK
+\item wxPROP\_BUTTON\_CANCEL
+\item wxPROP\_BUTTON\_CHECK\_CROSS
+\item wxPROP\_BUTTON\_HELP
+\item wxPROP\_DYNAMIC\_VALUE\_FIELD
+\item wxPROP\_PULLDOWN
+\end{itemize}
+
+\membersection{wxPropertyListView::\destruct{wxPropertyListView}}
+
+\func{void}{\destruct{wxPropertyListView}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyListView::AssociatePanel}\label{wxpropertylistviewassociatepanel}
+
+\func{void}{AssociatePanel}{\param{wxPanel *}{panel}}
+
+Associates the window on which the controls will be displayed, with the view (sets an internal pointer to the window).
+
+\membersection{wxPropertyListView::BeginShowingProperty}\label{wxpropertylistviewbeginshowingproperty}
+
+\func{bool}{BeginShowingProperty}{\param{wxProperty *}{property}}
+
+Finds the appropriate validator and loads the property into the controls, by calling
+wxPropertyValidator::OnPrepareControls and then wxPropertyListView::DisplayProperty.
+
+\membersection{wxPropertyListView::DisplayProperty}\label{wxpropertylistviewdisplayproperty}
+
+\func{bool}{DisplayProperty}{\param{wxProperty *}{property}}
+
+Calls wxPropertyValidator::OnDisplayValue for the current property's validator. This function
+gets called by wxPropertyListView::BeginShowingProperty, which is in turn called
+from ShowProperty, called by OnPropertySelect, called by the listbox callback when selected.
+
+\membersection{wxPropertyListView::EndShowingProperty}\label{wxpropertylistviewendshowingproperty}
+
+\func{bool}{EndShowingProperty}{\param{wxProperty *}{property}}
+
+Finds the appropriate validator and unloads the property from the controls, by calling
+wxPropertyListView::RetrieveProperty, wxPropertyValidator::OnClearControls and (if we're in
+detailed editing mode) wxPropertyValidator::OnClearDetailControls.
+
+\membersection{wxPropertyListView::GetPanel}\label{wxpropertylistviewgetpanel}
+
+\func{wxPanel *}{GetPanel}{\void}
+
+Returns the panel associated with the view.
+
+\membersection{wxPropertyListView::GetManagedWindow}\label{wxpropertylistviewgetmanagedwindow}
+
+\func{wxWindow *}{GetManagedWindow}{\void}
+
+Returns the managed window (a frame or dialog) associated with the view.
+
+\membersection{wxPropertyListView::GetWindowCancelButton}\label{wxpropertylistviewgetwindowcancelbutton}
+
+\func{wxButton *}{GetWindowCancelButton}{\void}
+
+Returns the window cancel button, if any.
+
+\membersection{wxPropertyListView::GetWindowCloseButton}\label{wxpropertylistviewgetwindowclosebutton}
+
+\func{wxButton *}{GetWindowCloseButton}{\void}
+
+Returns the window close or OK button, if any.
+
+\membersection{wxPropertyListView::GetWindowHelpButton}\label{wxpropertylistviewgetwindowhelpbutton}
+
+\func{wxButton *}{GetWindowHelpButton}{\void}
+
+Returns the window help button, if any.
+
+\membersection{wxPropertyListView::SetManagedWindow}\label{wxpropertylistviewsetmanagedwindow}
+
+\func{void}{SetManagedWindow}{\param{wxWindow *}{win}}
+
+Sets the managed window (a frame or dialog) associated with the view.
+
+\membersection{wxPropertyListView::UpdatePropertyDisplayInList}\label{wxpropertylistviewupdatepropdisplay}
+
+\func{bool}{UpdatePropertyDisplayInList}{\param{wxProperty *}{property}}
+
+Updates the display for the given changed property.
+
+\membersection{wxPropertyListView::UpdatePropertyList}\label{wxpropertylistviewupdateproplist}
+
+\func{bool}{UpdatePropertyList}{\param{bool }{clearEditArea = true}}
+
+Updates the whole property list display.
+
diff --git a/contrib/docs/latex/deprecated/propregv.tex b/contrib/docs/latex/deprecated/propregv.tex
new file mode 100644
index 0000000000..59a87d3cf0
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propregv.tex
@@ -0,0 +1,42 @@
+\section{\class{wxPropertyValidatorRegistry}}\label{wxpropertyvalidatorregistry}
+
+The {\bf wxPropertyValidatorRegistry} class is used for storing validators,
+indexed by the `role name' of the property, by which groups of property
+can be identified for the purpose of validation and editing.
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyValidatorRegistry::wxPropertyValidatorRegistry}
+
+\func{void}{wxPropertyValidatorRegistry}{\void}
+
+Constructor.
+
+\membersection{wxPropertyValidatorRegistry::\destruct{wxPropertyValidatorRegistry}}
+
+\func{void}{\destruct{wxPropertyValidatorRegistry}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyValidatorRegistry::Clear}
+
+\func{void}{ClearRegistry}{\void}
+
+Clears the registry, deleting the validators.
+
+\membersection{wxPropertyValidatorRegistry::GetValidator}
+
+\func{wxPropertyValidator *}{GetValidator}{\param{wxString\& }{roleName}}
+
+Retrieve a validator by the property role name.
+
+\membersection{wxPropertyValidatorRegistry::RegisterValidator}\label{wxpropertyvalidatorregistervalidator}
+
+\func{void}{RegisterValidator}{\param{wxString\& }{roleName}, \param{wxPropertyValidator *}{validator}}
+
+Register a validator with the registry. {\it roleName} is a name indicating the
+role of the property, such as ``filename''. Later, when a validator is chosen for
+editing a property, this role name is matched against the class names of the property,
+if the property does not already have a validator explicitly associated with it.
+
+
diff --git a/contrib/docs/latex/deprecated/proprfva.tex b/contrib/docs/latex/deprecated/proprfva.tex
new file mode 100644
index 0000000000..7713336e72
--- /dev/null
+++ b/contrib/docs/latex/deprecated/proprfva.tex
@@ -0,0 +1,17 @@
+\section{\class{wxRealFormValidator}}\label{wxrealformvalidator}
+
+This class validates a range of real values for form views. The associated panel item must be a wxText.
+
+\wxheading{See also}
+
+\helpref{Validator classes}{proplistvalidatorclasses}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxRealFormValidator::wxRealFormValidator}
+
+\func{void}{wxRealFormValidator}{\param{float }{min=0.0}, \param{float }{max=0.0},
+ \param{long}{ flags=0}}
+
+Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.
+
diff --git a/contrib/docs/latex/deprecated/proprlva.tex b/contrib/docs/latex/deprecated/proprlva.tex
new file mode 100644
index 0000000000..1745a273d0
--- /dev/null
+++ b/contrib/docs/latex/deprecated/proprlva.tex
@@ -0,0 +1,19 @@
+\section{\class{wxRealListValidator}}\label{wxreallistvalidator}
+
+This class validates a range of real values for property lists.
+
+\wxheading{See also}
+
+\helpref{Validator classes}{proplistvalidatorclasses}
+
+\helpref{wxPropertySheet overview}{wxpropertysheetoverview}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxRealListValidator::wxRealListValidator}
+
+\func{void}{wxRealListValidator}{\param{float }{min=0.0}, \param{float }{max=0.0},
+ \param{long}{ flags=wxPROP\_ALLOW\_TEXT\_EDITING}}
+
+Constructor. Assigning zero to minimum and maximum values indicates that there is no range to check.
+
diff --git a/contrib/docs/latex/deprecated/propsht.tex b/contrib/docs/latex/deprecated/propsht.tex
new file mode 100644
index 0000000000..241c09d6fd
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propsht.tex
@@ -0,0 +1,83 @@
+\section{\class{wxPropertySheet}}\label{wxpropertysheet}
+
+The {\bf wxPropertySheet} class is used for storing a number of
+wxProperty objects (essentially names and values).
+
+\wxheading{See also}
+
+\helpref{wxPropertySheet overview}{wxpropertysheetoverview}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertySheet::wxPropertySheet}
+
+\func{void}{wxPropertySheet}{\param{const wxString}{ name = ""}}
+
+Constructor. Sets property sheet's name to name if present.
+
+\membersection{wxPropertySheet::\destruct{wxPropertySheet}}
+
+\func{void}{\destruct{wxPropertySheet}}{\void}
+
+Destructor. Destroys all contained properties.
+
+\membersection{wxPropertySheet::AddProperty}\label{wxpropertysheetaddproperty}
+
+\func{void}{AddProperty}{\param{wxProperty *}{property}}
+
+Adds a property to the sheet.
+
+\membersection{wxPropertySheet::Clear}\label{wxpropertysheetclear}
+
+\func{void}{Clear}{\void}
+
+Clears all the properties from the sheet (deleting them).
+
+\membersection{wxPropertySheet::GetName}\label{wxpropertysheetgetname}
+
+\func{wxString}{GetName}{\void}
+
+Gets the sheet's name.
+
+\membersection{wxPropertySheet::GetProperty}\label{wxpropertysheetgetproperty}
+
+\func{wxProperty *}{GetProperty}{\param{wxString}{ name}}
+
+Gets a property by name.
+
+\membersection{wxPropertySheet::GetProperties}\label{wxpropertysheetgetproperties}
+
+\func{wxList\&}{GetProperties}{\void}
+
+Returns a reference to the internal list of properties.
+
+\membersection{wxPropertySheet::HasProperty}\label{wxpropertysheethasproperty}
+
+\func{bool}{HasProperty}{\param{wxString}{ propname}}
+
+Returns true if sheet contains property propname.
+
+\membersection{wxPropertySheet::RemoveProperty}\label{wxpropertysheetremoveproperty}
+
+\func{void}{RemoveProperty}{\param{wxString}{ propname}}
+
+Removes property propname from sheet, deleting it.
+
+\membersection{wxPropertySheet::SetName}\label{wxpropertysheetsetname}
+
+\func{void}{SetName}{\param{wxString}{ sheetname}}
+
+Set the sheet's name to sheetname
+
+\membersection{wxPropertySheet::SetProperty}\label{wxpropertysheetsetproperty}
+
+\func{bool}{SetProperty}{\param{wxString}{ propname}, \param{wxPropertyValue}{ value}}
+
+Sets property propname to value. Returns false if property is not a member of sheet.
+
+\membersection{wxPropertySheet::SetAllModified}
+
+\func{void}{SetAllModified}{\param{bool}{ flag}}
+
+Sets the `modified' flag of each property value.
+
diff --git a/contrib/docs/latex/deprecated/propslv.tex b/contrib/docs/latex/deprecated/propslv.tex
new file mode 100644
index 0000000000..cc4f6578dd
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propslv.tex
@@ -0,0 +1,18 @@
+\section{\class{wxStringListValidator}}\label{wxstringlistvalidator}
+
+This class validates a string value, with an optional choice of possible values.
+
+\wxheading{See also}
+
+\helpref{Validator classes}{proplistvalidatorclasses}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxStringListValidator::wxStringListValidator}
+
+\func{void}{wxStringListValidator}{\param{wxStringList *}{list=NULL}, \param{long}{ flags=0}}
+
+Constructor. Supply a list of strings to indicate a choice, or no strings to allow the
+user to freely edit the string. The string list will be deleted when the validator is deleted.
+
+
diff --git a/contrib/docs/latex/deprecated/propstfv.tex b/contrib/docs/latex/deprecated/propstfv.tex
new file mode 100644
index 0000000000..53e3571d57
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propstfv.tex
@@ -0,0 +1,20 @@
+\section{\class{wxStringFormValidator}}\label{wxstringformvalidator}
+
+This class validates a string value for a form view, with an optional choice of possible values.
+The associated panel item must be a wxText, wxListBox or wxChoice. For wxListBox and wxChoice items,
+if the item is empty, the validator attempts to initialize the item from the strings in
+the validator.
+
+\wxheading{See also}
+
+\helpref{Validator classes}{proplistvalidatorclasses}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxStringFormValidator::wxStringFormValidator}
+
+\func{void}{wxStringFormValidator}{\param{wxStringList *}{list=NULL}, \param{long}{ flags=0}}
+
+Constructor. Supply a list of strings to indicate a choice, or no strings to allow the
+user to freely edit the string. The string list will be deleted when the validator is deleted.
+
diff --git a/contrib/docs/latex/deprecated/propval.tex b/contrib/docs/latex/deprecated/propval.tex
new file mode 100644
index 0000000000..c1c2fd412b
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propval.tex
@@ -0,0 +1,242 @@
+\section{\class{wxPropertyValue}}\label{wxpropertyvalue}
+
+The {\bf wxPropertyValue} class represents the value of a property,
+and is normally associated with a wxProperty object.
+
+A wxPropertyValue has one of the following types:
+
+\begin{itemize}\itemsep=0pt
+\item wxPropertyValueNull
+\item wxPropertyValueInteger
+\item wxPropertyValueReal
+\item wxPropertyValueBool
+\item wxPropertyValueString
+\item wxPropertyValueList
+\item wxPropertyValueIntegerPtr
+\item wxPropertyValueRealPtr
+\item wxPropertyValueBoolPtr
+\item wxPropertyValueStringPtr
+\end{itemize}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyValue::wxPropertyValue}
+
+\func{void}{wxPropertyValue}{\void}
+
+Default constructor.
+
+\func{void}{wxPropertyValue}{\param{const wxPropertyValue\& }{copyFrom}}
+
+Copy constructor.
+
+\func{void}{wxPropertyValue}{\param{char *}{val}}
+
+Construction from a string value.
+
+\func{void}{wxPropertyValue}{\param{long}{ val}}
+
+Construction from an integer value. You may need to cast to (long) to
+avoid confusion with other constructors (such as the bool constructor).
+
+\func{void}{wxPropertyValue}{\param{bool}{ val}}
+
+Construction from a boolean value.
+
+\func{void}{wxPropertyValue}{\param{float}{ val}}
+
+Construction from a floating point value.
+
+\func{void}{wxPropertyValue}{\param{double}{ val}}
+
+Construction from a floating point value.
+
+\func{void}{wxPropertyValue}{\param{wxList *}{ val}}
+
+Construction from a list of wxPropertyValue objects. The
+list, but not each contained wxPropertyValue, will be deleted
+by the constructor. The wxPropertyValues will be assigned to
+this wxPropertyValue list. In other words, so do not delete wxList or
+its data after calling this constructor.
+
+\func{void}{wxPropertyValue}{\param{wxStringList *}{ val}}
+
+Construction from a list of strings. The list (including the strings
+contained in it) will be deleted by the constructor, so do not
+destroy {\it val} explicitly.
+
+\func{void}{wxPropertyValue}{\param{char **}{val}}
+
+Construction from a string pointer.
+
+\func{void}{wxPropertyValue}{\param{long *}{val}}
+
+Construction from an integer pointer.
+
+\func{void}{wxPropertyValue}{\param{bool *}{val}}
+
+Construction from an boolean pointer.
+
+\func{void}{wxPropertyValue}{\param{float *}{val}}
+
+Construction from a floating point pointer.
+
+The last four constructors use pointers to various C++ types, and do not
+store the types themselves; this allows the values to stand in for actual
+data values defined elsewhere.
+
+\membersection{wxPropertyValue::\destruct{wxPropertyValue}}
+
+\func{void}{\destruct{wxPropertyValue}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyValue::Append}
+
+\func{void}{Append}{\param{wxPropertyValue *}{expr}}
+
+Appends a property value to the list.
+
+\membersection{wxPropertyValue::BoolValue}
+
+\func{bool}{BoolValue}{\void}
+
+Returns the boolean value.
+
+\membersection{wxPropertyValue::BoolValuePtr}
+
+\func{bool *}{BoolValuePtr}{\void}
+
+Returns the pointer to the boolean value.
+
+\membersection{wxPropertyValue::ClearList}
+
+\func{void}{ClearList}{\void}
+
+Deletes the contents of the list.
+
+\membersection{wxPropertyValue::Delete}
+
+\func{void}{Delete}{\param{wxPropertyValue *}{expr}}
+
+Deletes {\it expr} from this list.
+
+\membersection{wxPropertyValue::GetFirst}
+
+\func{wxPropertyValue *}{GetFirst}{\void}
+
+Gets the first value in the list.
+
+\membersection{wxPropertyValue::GetLast}
+
+\func{wxPropertyValue *}{GetFirst}{\void}
+
+Gets the last value in the list.
+
+\membersection{wxPropertyValue::GetModified}
+
+\func{bool}{GetModified}{\void}
+
+Returns true if the value was modified since being created
+(or since SetModified was called).
+
+\membersection{wxPropertyValue::GetNext}
+
+\func{wxPropertyValue *}{GetNext}{\void}
+
+Gets the next value in the list (the one after `this').
+
+\membersection{wxPropertyValue::GetStringRepresentation}
+
+\func{wxString}{GetStringRepresentation}{\void}
+
+Gets a string representation of the value.
+
+\membersection{wxPropertyValue::IntegerValue}
+
+\func{long}{IntegerValue}{\void}
+
+Returns the integer value.
+
+\membersection{wxPropertyValue::Insert}
+
+\func{void}{Insert}{\param{wxPropertyValue *}{expr}}
+
+Inserts a property value at the front of a list.
+
+\membersection{wxPropertyValue::IntegerValuePtr}
+
+\func{long *}{IntegerValuePtr}{\void}
+
+Returns the pointer to the integer value.
+
+\membersection{wxPropertyValue::Nth}
+
+\func{wxPropertyValue *}{Nth}{\param{int}{ n}}
+
+Returns the nth value of a list expression (starting from zero).
+
+\membersection{wxPropertyValue::Number}
+
+\func{int}{Number}{\void}
+
+Returns the number of elements in a list expression.
+
+\membersection{wxPropertyValue::RealValue}
+
+\func{float}{RealValue}{\void}
+
+Returns the floating point value.
+
+\membersection{wxPropertyValue::RealValuePtr}
+
+\func{float *}{RealValuePtr}{\void}
+
+Returns the pointer to the floating point value.
+
+\membersection{wxPropertyValue::SetModified}
+
+\func{void}{SetModified}{\param{bool}{ flag}}
+
+Sets the `modified' flag.
+
+\membersection{wxPropertyValue::StringValue}
+
+\func{char *}{StringValue}{\void}
+
+Returns the string value.
+
+\membersection{wxPropertyValue::StringValuePtr}
+
+\func{char **}{StringValuePtr}{\void}
+
+Returns the pointer to the string value.
+
+\membersection{wxPropertyValue::Type}
+
+\func{wxPropertyValueType}{Type}{\void}
+
+Returns the value type.
+
+\membersection{wxPropertyValue::operator $=$}
+
+\func{void}{operator $=$}{\param{const wxPropertyValue\& }{val}}
+
+\func{void}{operator $=$}{\param{const char *}{val}}
+
+\func{void}{operator $=$}{\param{const long }{val}}
+
+\func{void}{operator $=$}{\param{const bool }{val}}
+
+\func{void}{operator $=$}{\param{const float }{val}}
+
+\func{void}{operator $=$}{\param{const char **}{val}}
+
+\func{void}{operator $=$}{\param{const long *}{val}}
+
+\func{void}{operator $=$}{\param{const bool *}{val}}
+
+\func{void}{operator $=$}{\param{const float *}{val}}
+
+Assignment operators.
+
diff --git a/contrib/docs/latex/deprecated/propvald.tex b/contrib/docs/latex/deprecated/propvald.tex
new file mode 100644
index 0000000000..69404e4cd2
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propvald.tex
@@ -0,0 +1,41 @@
+\section{\class{wxPropertyValidator}}\label{wxpropertyvalidator}
+
+The {\bf wxPropertyValidator} abstract class is the base class for deriving
+validators for properties.
+
+\wxheading{See also}
+
+\helpref{wxPropertyValidator overview}{wxpropertyvalidatoroverview}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyValidator::wxPropertyValidator}
+
+\func{void}{wxPropertyValidator}{\param{long}{ flags = 0}}
+
+Constructor.
+
+\membersection{wxPropertyValidator::\destruct{wxPropertyValidator}}
+
+\func{void}{\destruct{wxPropertyValidator}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyValidator::GetFlags}
+
+\func{long}{GetFlags}{\void}
+
+Returns the flags for the validator.
+
+\membersection{wxPropertyValidator::GetValidatorProperty}
+
+\func{wxProperty *}{GetValidatorProperty}{\void}
+
+Gets the property for the validator.
+
+\membersection{wxPropertyValidator::SetValidatorProperty}
+
+\func{void}{SetValidatorProperty}{\param{wxProperty *}{property}}
+
+Sets the property for the validator.
+
diff --git a/contrib/docs/latex/deprecated/propview.tex b/contrib/docs/latex/deprecated/propview.tex
new file mode 100644
index 0000000000..ad74d1ab1a
--- /dev/null
+++ b/contrib/docs/latex/deprecated/propview.tex
@@ -0,0 +1,111 @@
+\section{\class{wxPropertyView}}\label{wxpropertyview}
+
+The {\bf wxPropertyView} abstract class is the base class for views
+of property sheets, acting as intermediaries between properties and
+actual windows.
+
+\wxheading{See also}
+
+\helpref{wxPropertyView overview}{wxpropertyviewoverview}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxPropertyView::wxPropertyView}
+
+\func{void}{wxPropertyView}{\param{long}{ flags = wxPROP\_BUTTON\_DEFAULT}}
+
+Constructor.
+
+The {\it flags} argument can be a bit list of the following:
+
+\begin{itemize}\itemsep=0pt
+\item wxPROP\_BUTTON\_CLOSE
+\item wxPROP\_BUTTON\_OK
+\item wxPROP\_BUTTON\_CANCEL
+\item wxPROP\_BUTTON\_CHECK\_CROSS
+\item wxPROP\_BUTTON\_HELP
+\item wxPROP\_DYNAMIC\_VALUE\_FIELD
+\item wxPROP\_PULLDOWN
+\end{itemize}
+
+\membersection{wxPropertyView::\destruct{wxPropertyView}}
+
+\func{void}{\destruct{wxPropertyView}}{\void}
+
+Destructor.
+
+\membersection{wxPropertyView::AddRegistry}\label{wxpropertyviewaddregistry}
+
+\func{void}{AddRegistry}{\param{wxPropertyValidatorRegistry *}{registry}}
+
+Adds a registry (list of property validators) the view's list of registries, which is initially empty.
+
+\membersection{wxPropertyView::FindPropertyValidator}\label{wxpropertyviewfindpropertyvalidator}
+
+\func{wxPropertyValidator *}{FindPropertyValidator}{\param{wxProperty *}{property}}
+
+Finds the property validator that is most appropriate to this property.
+
+\membersection{wxPropertyView::GetPropertySheet}\label{wxpropertyviewgetpropertysheet}
+
+\func{wxPropertySheet *}{GetPropertySheet}{\void}
+
+Gets the property sheet for this view.
+
+\membersection{wxPropertyView::GetRegistryList}\label{wxpropertyviewgetregistrylist}
+
+\func{wxList\&}{GetRegistryList}{\void}
+
+Returns a reference to the list of property validator registries.
+
+\membersection{wxPropertyView::OnOk}\label{wxpropertyviewonok}
+
+\func{void}{OnOk}{\void}
+
+Virtual function that will be called when the OK button on the physical window is pressed (if it exists).
+
+\membersection{wxPropertyView::OnCancel}\label{wxpropertyviewoncancel}
+
+\func{void}{OnCancel}{\void}
+
+Virtual function that will be called when the Cancel button on the physical window is pressed (if it exists).
+
+\membersection{wxPropertyView::OnClose}\label{wxpropertyviewonclose}
+
+\func{bool}{OnClose}{\void}
+
+Virtual function that will be called when the physical window is closed. The default implementation returns false.
+
+\membersection{wxPropertyView::OnHelp}\label{wxpropertyviewonhelp}
+
+\func{void}{OnHelp}{\void}
+
+Virtual function that will be called when the Help button on the physical window is pressed (if it exists).
+
+\membersection{wxPropertyView::OnPropertyChanged}\label{wxpropertyviewonpropertychanged}
+
+\func{void}{OnPropertyChanged}{\param{wxProperty *}{property}}
+
+Virtual function called by a view or validator when a property's value changed. Validators
+must be written correctly for this to be called. You can override this function
+to respond immediately to property value changes.
+
+\membersection{wxPropertyView::OnUpdateView}\label{wxpropertyviewonupdateview}
+
+\func{bool}{OnUpdateView}{\void}
+
+Called by the viewed object to update the view. The default implementation just returns
+false.
+
+\membersection{wxPropertyView::SetPropertySheet}\label{wxpropertyviewsetpropertysheet}
+
+\func{void}{SetPropertySheet}{\param{wxPropertySheet *}{sheet}}
+
+Sets the property sheet for this view.
+
+\membersection{wxPropertyView::ShowView}\label{wxpropertyviewshowview}
+
+\func{void}{ShowView}{\param{wxPropertySheet *}{sheet}, \param{wxPanel *}{panel}}
+
+Associates this view with the given panel, and shows the view.
+
diff --git a/contrib/docs/latex/deprecated/tex2rtf.ini b/contrib/docs/latex/deprecated/tex2rtf.ini
new file mode 100644
index 0000000000..3f700ad127
--- /dev/null
+++ b/contrib/docs/latex/deprecated/tex2rtf.ini
@@ -0,0 +1,55 @@
+;;; Tex2RTF initialisation file, using NO style sheet for HTML. See
+;;; tex2rtf_css.ini for a version using a style sheet. You can use
+;;; -macros tex2rtf.ini to specify the ini file.
+runTwice = yes
+titleFontSize = 12
+authorFontSize = 10
+authorFontSize = 10
+chapterFontSize = 12
+sectionFontSize = 12
+subsectionFontSize = 12
+contentsDepth = 2
+headerRule = yes
+footerRule = yes
+useHeadingStyles = yes
+listItemIndent=40
+generateHPJ = yes
+htmlBrowseButtons = bitmap
+winHelpContents = yes
+winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95
+winHelpTitle = "wxWindows Deprecated Classes Manual"
+truncateFilenames = yes
+combineSubSections = yes
+;;
+;; These two are for generating MS HTML Help project, contents and index files.
+;;
+htmlWorkshopFiles = true
+htmlIndex = true
+
+; Finally, a way to specify face names
+htmlFaceName = "Arial, Lucida, Helvetica"
+
+\textasciitilde [0]{{\tt\~}}
+\textasciicircum [0]{{\tt\^}}
+\textbackslash [0]{{\tt$\backslash$}}
+\gifsep [0]{\par}
+ignoreInput = "ltx.tex"
+; htmlStylesheet = "wx.css"
+
+;\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}}
+;\htmlonly{\image{}{books.gif}}\helpref{#1}{#2}
+;\sethotspotcolour{on}\sethotspotunderline{on}}
+\overview [2] {\helpref{#1}{#2}}
+\docparam [2]{\parskip{0}{\it #1}\htmlignore{\par}\parskip{10}\indented{1cm}{#2}}
+\wxheading [1]{{\bf \htmlignore{\fcol{blue}{#1}}\htmlonly{\fcol{red}{#1}}}}
+\const [0] {{\bf const}}
+\constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}
+\windowstyle [1] {{\bf #1}\index{#1}}
+\bftt [1] {\bf{\tt{#1}}}
+\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1}
+%\pythonnote [1] {}
+\perlnote [1] {{\bf \fcol{blue}{wxPerl note:}} #1}
+%\perlnote [1] {}
+
+; make tex2rtf understand \hbox{} macro:
+\hbox [1] {#1}
diff --git a/contrib/docs/latex/deprecated/topics.tex b/contrib/docs/latex/deprecated/topics.tex
new file mode 100644
index 0000000000..283c08c295
--- /dev/null
+++ b/contrib/docs/latex/deprecated/topics.tex
@@ -0,0 +1,9 @@
+\chapter{Topic overviews}\label{overviews}
+\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+This chapter contains a selection of topic overviews.
+
+\input texpr.tex
+\input tresourc.tex
+
diff --git a/contrib/docs/latex/deprecated/treelay.tex b/contrib/docs/latex/deprecated/treelay.tex
new file mode 100644
index 0000000000..711d8b1adb
--- /dev/null
+++ b/contrib/docs/latex/deprecated/treelay.tex
@@ -0,0 +1,327 @@
+\section{\class{wxTreeLayout}}\label{wxtreelayout}
+
+wxTreeLayout provides layout of simple trees with one root node, drawn left-to-right,
+with user-defined spacing between nodes.
+
+wxTreeLayout is an abstract class that must be subclassed. The programmer
+defines various member functions which will access whatever data structures
+are appropriate for the application, and wxTreeLayout uses these when laying
+out the tree.
+
+Nodes are identified by long integer identifiers. The derived class
+communicates the actual tree structure to wxTreeLayout by defining \helpref{wxTreeLayout::GetChildren}{wxtreelayoutgetchildren}\rtfsp
+and \helpref{wxTreeLayout::GetNodeParent}{wxtreelayoutgetnodeparent} functions.
+
+The application should call \helpref{wxTreeLayout::DoLayout}{wxtreelayoutdolayout} to do the tree
+layout. Depending on how the derived class has been defined, either
+\rtfsp\helpref{wxTreeLayout::Draw}{wxtreelayoutdraw} must be called (for example by the OnPaint member
+of a wxScrolledWindow) or the application-defined drawing code should be called
+as normal.
+
+For example, if you have an image drawing system already defined, you
+may want wxTreeLayout to position existing node images in that system. So you
+just need a way for wxTreeLayout to set the node image positions according to
+the layout algorithm, and the rest will be done by your own image drawing
+system.
+
+The algorithm is due to Gabriel Robins \cite{robins87}, a linear-time
+algorithm originally implemented in LISP for AI applications.
+
+The original algorithm has been modified so that both X and Y planes
+are calculated simultaneously, increasing efficiency slightly. The basic
+code is only a page or so long.
+
+\helponly{Below is the example tree generated by the program test.cc.
+
+\begin{figure}
+$$\image{11cm;0cm}{treetst.ps}$$
+\caption{Example tree}\label{exampletree}
+\end{figure}
+}
+
+\wxheading{Derived from}
+
+wxObject
+
+\wxheading{See also}
+
+\helpref{wxTreeLayoutStored}{wxtreelayoutstored}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxTreeLayout::wxTreeLayout}
+
+\func{}{wxTreeLayout}{\void}
+
+Constructor.
+
+\membersection{wxTreeLayout::ActivateNode}\label{wxtreelayoutactivatenode}
+
+\func{void}{ActivateNode}{\param{long}{ id}, \param{bool }{active}}
+
+Define this so wxTreeLayout can turn nodes on and off for drawing purposes
+(not all nodes may be connected in the tree). See also \helpref{wxTreeLayout::NodeActive}{wxtreelayoutnodeactive}.
+
+\membersection{wxTreeLayout::CalcLayout}
+
+\func{void}{CalcLayout}{\param{long}{ id}, \param{int}{ level}}
+
+Private function for laying out a branch.
+
+\membersection{wxTreeLayout::DoLayout}\label{wxtreelayoutdolayout}
+
+\func{void}{DoLayout}{\param{wxDC\&}{ dc}, \param{long}{ topNode = -1}}
+
+Calculates the layout for the tree, optionally specifying the top node.
+
+\membersection{wxTreeLayout::Draw}\label{wxtreelayoutdraw}
+
+\func{void}{Draw}{\param{wxDC\&}{ dc}}
+
+Call this to let wxTreeLayout draw the tree itself, once the layout has been
+calculated with \helpref{wxTreeLayout::DoLayout}{wxtreelayoutdolayout}.
+
+\membersection{wxTreeLayout::DrawBranch}
+
+\func{void}{DrawBranch}{\param{long}{ from}, \param{long}{ to}, \param{wxDC\&}{ dc}}
+
+Defined by wxTreeLayout to draw an arc between two nodes.
+
+\membersection{wxTreeLayout::DrawBranches}
+
+\func{void}{DrawBranches}{\param{wxDC\&}{ dc}}
+
+Defined by wxTreeLayout to draw the arcs between nodes.
+
+\membersection{wxTreeLayout::DrawNode}
+
+\func{void}{DrawNode}{\param{long}{ id}, \param{wxDC\&}{ dc}}
+
+Defined by wxTreeLayout to draw a node.
+
+\membersection{wxTreeLayout::DrawNodes}
+
+\func{void}{DrawNodes}{\param{wxDC\&}{ dc}}
+
+Defined by wxTreeLayout to draw the nodes.
+
+\membersection{wxTreeLayout::GetChildren}\label{wxtreelayoutgetchildren}
+
+\func{void}{GetChildren}{\param{long}{ id}, \param{wxList \&}{list}}
+
+Must be defined to return the children of node {\it id} in the given list
+of integers.
+
+\membersection{wxTreeLayout::GetNextNode}\label{wxtreelayoutgetnextnode}
+
+\func{long}{GetNextNode}{\param{long}{ id}}
+
+Must be defined to return the next node after {\it id}, so that wxTreeLayout can
+iterate through all relevant nodes. The ordering is not important.
+The function should return -1 if there are no more nodes.
+
+\membersection{wxTreeLayout::GetNodeName}
+
+\constfunc{wxString}{GetNodeName}{\param{long}{ id}}
+
+May optionally be defined to get a node's name (for example if leaving
+the drawing to wxTreeLayout).
+
+\membersection{wxTreeLayout::GetNodeSize}
+
+\constfunc{void}{GetNodeSize}{\param{long}{ id}, \param{long*}{ x}, \param{long*}{ y}}
+
+Can be defined to indicate a node's size, or left to wxTreeLayout to use the
+name as an indication of size.
+
+\membersection{wxTreeLayout::GetNodeParent}\label{wxtreelayoutgetnodeparent}
+
+\constfunc{long}{GetNodeParent}{\param{long}{ id}}
+
+Must be defined to return the parent node of {\it id}.
+The function should return -1 if there is no parent.
+
+\membersection{wxTreeLayout::GetNodeX}
+
+\constfunc{long}{GetNodeX}{\param{long}{ id}}
+
+Must be defined to return the current X position of the node. Note that
+coordinates are assumed to be at the top-left of the node so some conversion
+may be necessary for your application.
+
+\membersection{wxTreeLayout::GetNodeY}
+
+\constfunc{long}{GetNodeY}{\param{long}{ id}}
+
+Must be defined to return the current Y position of the node. Note that
+coordinates are assumed to be at the top-left of the node so some conversion
+may be necessary for your application.
+
+\membersection{wxTreeLayout::GetLeftMargin}
+
+\constfunc{long}{GetLeftMargin}{\void}
+
+Gets the left margin set with \helpref{wxTreeLayout::SetMargins}{wxtreelayoutsetmargins}.
+
+\membersection{wxTreeLayout::GetOrientation}
+
+\constfunc{bool}{GetOrientation}{\void}
+
+Gets the orientation: true means top-to-bottom, false means left-to-right (the default).
+
+\membersection{wxTreeLayout::GetTopMargin}
+
+\constfunc{long}{GetTopMargin}{\void}
+
+Gets the top margin set with \helpref{wxTreeLayout::SetMargins}{wxtreelayoutsetmargins}.
+
+\membersection{wxTreeLayout::GetTopNode}
+
+\constfunc{long}{GetTopNode}{\void}
+
+wxTreeLayout calls this to get the top of the tree. Don't redefine this; call
+\rtfsp\helpref{wxTreeLayout::SetTopNode}{wxtreelayoutsettopnode} instead before calling \helpref{wxTreeLayout::DoLayout}{wxtreelayoutdolayout}.
+
+\membersection{wxTreeLayout::GetXSpacing}
+
+\constfunc{long}{GetXSpacing}{\void}
+
+Gets the horizontal spacing between nodes.
+
+\membersection{wxTreeLayout::GetYSpacing}
+
+\constfunc{long}{GetYSpacing}{\void}
+
+Gets the vertical spacing between nodes.
+
+\membersection{wxTreeLayout::Initialize}
+
+\func{void}{Initialize}{\void}
+
+Initializes wxTreeLayout. Call from application or overridden {\bf Initialize}
+or constructor.
+
+\membersection{wxTreeLayout::NodeActive}\label{wxtreelayoutnodeactive}
+
+\func{bool}{NodeActive}{\param{long}{ id}}
+
+Define this so wxTreeLayout can know which nodes are to be drawn (not all
+nodes may be connected in the tree). See also \helpref{wxTreeLayout::ActivateNode}{wxtreelayoutactivatenode}.
+
+\membersection{wxTreeLayout::SetNodeName}
+
+\func{void}{SetNodeName}{\param{long}{ id}, \param{const wxString\& }{ name}}
+
+May optionally be defined to set a node's name.
+
+\membersection{wxTreeLayout::SetNodeX}
+
+\func{void}{SetNodeX}{\param{long}{ id}, \param{long}{ x}}
+
+Must be defined to set the current X position of the node. Note that
+coordinates are assumed to be at the top-left of the node so some conversion
+may be necessary for your application.
+
+\membersection{wxTreeLayout::SetNodeY}
+
+\func{void}{SetNodeY}{\param{long}{ id}, \param{long}{ y}}
+
+Must be defined to set the current Y position of the node. Note that
+coordinates are assumed to be at the top-left of the node so some conversion
+may be necessary for your application.
+
+\membersection{wxTreeLayout::SetOrientation}
+
+\func{void}{SetOrientation}{\param{bool}{ orientation}}
+
+Sets the tree orientation: true means top-to-bottom, false means left-to-right (the default).
+
+\membersection{wxTreeLayout::SetTopNode}\label{wxtreelayoutsettopnode}
+
+\func{void}{SetTopNode}{\param{long}{ id}}
+
+Call this to identify the top of the tree to wxTreeLayout.
+
+\membersection{wxTreeLayout::SetSpacing}
+
+\func{void}{SetSpacing}{\param{long}{ x}, \param{long}{ y}}
+
+Sets the horizontal and vertical spacing between nodes in the tree.
+
+\membersection{wxTreeLayout::SetMargins}\label{wxtreelayoutsetmargins}
+
+\func{void}{SetMargins}{\param{long}{ x}, \param{long}{ y}}
+
+Sets the left and top margins of the whole tree.
+
+\section{\class{wxTreeLayoutStored}}\label{wxtreelayoutstored}
+
+wxTreeLayoutStored provides storage for node labels, position and client data. It also provides hit-testing
+(which node a mouse event occurred on). It is usually a more convenient class to use than wxTreeLayout.
+
+\wxheading{Derived from}
+
+\helpref{wxTreeLayout}{wxtreelayout}\\
+\helpref{wxObject}{wxobject}
+
+\wxheading{See also}
+
+\helpref{wxTreeLayout}{wxtreelayout}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxTreeLayoutStored::wxTreeLayoutStored}
+
+\func{}{wxTreeLayoutStored}{\param{int }{noNodes = 200}}
+
+Constructor. Specify the maximum number of nodes to be allocated.
+
+\membersection{wxTreeLayoutStored::AddChild}\label{wxtreelayoutstoredaddchild}
+
+\func{long}{AddChild}{\param{const wxString\&}{ name}, \param{const wxString\&}{ parent = ""}}
+
+Adds a child with a given parent, returning the node id.
+
+\membersection{wxTreeLayoutStored::GetClientData}\label{wxtreelayoutstoredgetclientdata}
+
+\constfunc{long}{GetClientData}{\param{long}{ id}}
+
+Gets the client data for the given node.
+
+\membersection{wxTreeLayoutStored::GetNode}\label{wxtreelayoutstoredgetnode}
+
+\constfunc{wxStoredNode*}{GetNode}{\param{long}{ id}}
+
+Returns the wxStoredNode object for the given node id.
+
+\membersection{wxTreeLayoutStored::GetNodeCount}\label{wxtreelayoutstoredgetnodecount}
+
+\constfunc{int}{GetNodeCount}{\void}
+
+Returns the current number of nodes.
+
+\membersection{wxTreeLayoutStored::GetNumNodes}\label{wxtreelayoutstoredgetnumnodes}
+
+\constfunc{int}{GetNumNodes}{\void}
+
+Returns the maximum number of nodes.
+
+\membersection{wxTreeLayoutStored::HitTest}\label{wxtreelayoutstoredhittest}
+
+\func{wxString}{HitTest}{\param{wxMouseEvent\&}{ event}, \param{wxDC\& }{dc}}
+
+Returns a string with the node name corresponding to the position of the mouse event, or the empty string if no node
+was detected.
+
+\membersection{wxTreeLayoutStored::NameToId}\label{wxtreelayoutstorednametoid}
+
+\func{long}{NameToId}{\param{const wxString\&}{ name}}
+
+Returns the id for the given node name, or -1 if there was no such node.
+
+\membersection{wxTreeLayoutStored::SetClientData}\label{wxtreelayoutstoredsetclientdata}
+
+\func{void}{SetClientData}{\param{long}{ id}, \param{long}{ clientData}}
+
+Sets client data for the given node.
+
diff --git a/contrib/docs/latex/deprecated/tresourc.tex b/contrib/docs/latex/deprecated/tresourc.tex
new file mode 100644
index 0000000000..53ddab1ea9
--- /dev/null
+++ b/contrib/docs/latex/deprecated/tresourc.tex
@@ -0,0 +1,335 @@
+\section{The wxWindows resource system}\label{resourceformats}
+
+wxWindows has an optional {\it resource file} facility,
+which allows separation of dialog, menu, bitmap and icon specifications
+from the application code.
+
+{\bf NOTE:} this format is now deprecated in favour of the XML-based \helpref{XRC resource system}{xrcoverview}.
+However it is still available if wxUSE\_RESOURCES is enabled.
+
+The format is similar in principle to the Windows resource file (whose ASCII form is
+suffixed .RC and whose binary form is suffixed .RES). The wxWindows resource
+file is currently ASCII-only, suffixed .WXR. Note that under Windows,
+the .WXR file does not {\it replace} the native Windows resource file,
+it merely supplements it. There is no existing native resource format in X
+(except for the defaults file, which has limited expressive power).
+
+For details of functions for manipulating resource files and loading
+user interface elements, see \helpref{wxWindows resource functions}{resourcefuncs}.
+
+You can use Dialog Editor to create resource files. Unfortunately neither
+Dialog Editor nor the .WXR format currently cover all wxWindows controls;
+some are missing, such as wxSpinCtrl, wxSpinButton, wxListCtrl, wxTreeCtrl and others.
+
+Note that in later versions of wxWindows, this resource format will be replaced
+by XML specifications that can also include sizers.
+
+\subsection{The format of a .WXR file}
+
+A wxWindows resource file may look a little odd at first. It is C++
+compatible, comprising mostly of static string variable declarations with
+wxExpr syntax within the string.
+
+Here's a sample .WXR file:
+
+\begin{verbatim}
+/*
+ * wxWindows Resource File
+ *
+ */
+
+#include "noname.ids"
+
+static char *my_resource = "bitmap(name = 'my_resource',\
+  bitmap = ['myproject', wxBITMAP_TYPE_BMP_RESOURCE, 'WINDOWS'],\
+  bitmap = ['myproject.xpm', wxBITMAP_TYPE_XPM, 'X']).";
+
+static char *menuBar11 = "menu(name = 'menuBar11',\
+  menu = \
+  [\
+    ['&File', 1, '', \
+      ['&Open File', 2, 'Open a file'],\
+      ['&Save File', 3, 'Save a file'],\
+      [],\
+      ['E&xit', 4, 'Exit program']\
+    ],\
+    ['&Help', 5, '', \
+      ['&About', 6, 'About this program']\
+    ]\
+  ]).";
+
+static char *project_resource = "icon(name = 'project_resource',\
+  icon = ['project', wxBITMAP_TYPE_ICO_RESOURCE, 'WINDOWS'],\
+  icon = ['project_data', wxBITMAP_TYPE_XBM, 'X']).";
+
+static char *panel3 = "dialog(name = 'panel3',\
+  style = '',\
+  title = 'untitled',\
+  button_font = [14, 'wxSWISS', 'wxNORMAL', 'wxBOLD', 0],\
+  label_font = [10, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0],\
+  x = 0, y = 37, width = 292, height = 164,\
+  control = [1000, wxButton, 'OK', '', 'button5', 23, 34, -1, -1, 'my_resource'],\
+  control = [1001, wxStaticText, 'A Label', '', 'message7', 166, 61, -1, -1, 'my_resource'],\
+  control = [1002, wxTextCtrl, 'Text', 'wxTE_MULTITEXT', 'text8', 24, 110, -1, -1]).";
+\end{verbatim}
+
+As you can see, C++-style comments are allowed, and apparently include files
+are supported too: but this is a special case, where the included file
+is a file of defines shared by the C++ application code and resource file
+to relate identifiers (such as FILE\_OPEN) to integers.
+
+Each {\it resource object} is of standard \helpref{wxExpr}{wxexpr} syntax, that is,
+an object name such as {\bf dialog} or {\bf icon}, then an open
+parenthesis, a list of comma-delimited attribute/value pairs, a closing
+parenthesis, and a full stop. Backslashes are required to escape newlines,
+for the benefit of C++ syntax. If double quotation marks are used to
+delimit strings, they need to be escaped with backslash within a C++ string
+(so it is easier to use single quotation marks instead).
+
+\normalbox{{\it A note on string syntax:} A string that begins with
+an alphabetic character, and contains only alphanumeric characters,
+hyphens and underscores, need not be quoted at all. Single quotes and double
+quotes may be used to delimit more complex strings. In fact, single-quoted
+and no-quoted strings are actually called {\it words}, but are treated
+as strings for the purpose of the resource system.}
+
+A resource file like this is typically included in the application main file,
+as if it were a normal C++ file. This eliminates the need for a separate
+resource file to be distributed alongside the executable. However, the
+resource file can be dynamically loaded if desired (useful for non-C++
+languages such as Python).
+
+Once included, the resources need to be `parsed' (interpreted), because
+so far the data is just a number of static string variables. The function\rtfsp
+{\bf ::wxResourceParseData} is called early on in initialization of the application
+(usually in {\bf wxApp::OnInit}) with a variable as argument. This may need to be
+called a number of times, one for each variable. However, more than one
+resource `object' can be stored in one string variable at a time, so you can
+get all your resources into one variable if you want to.
+
+{\bf ::wxResourceParseData} parses the contents of the resource, ready for use
+by functions such as {\bf ::wxResourceCreateBitmap} and {\bf wxPanel::LoadFromResource}.
+
+If a wxWindows resource object (such as a bitmap resource) refers to a
+C++ data structure, such as static XPM data, a further call ({\bf ::wxResourceRegisterBitmapData}) needs
+to be made on initialization to tell
+wxWindows about this data. The wxWindows resource object will refer to a
+string identifier, such as `project\_data' in the example file above.
+This identifier will be looked up in a table to get the C++ static data
+to use for the bitmap or icon.
+
+In the C++ fragment below, the WXR resource file is included,
+and appropriate resource initialization is carried out in {\bf OnInit}.
+Note that at this stage, no actual wxWindows dialogs, menus, bitmaps or
+icons are created; their `templates' are merely being set up for later
+use.
+
+\begin{verbatim}
+/*
+ * File:    project.cpp
+ * Purpose: main application module
+ */
+
+#include "wx/wx.h"
+#include "project.h"
+
+// Includes the dialog, menu etc. resources
+#include "project.wxr"
+
+// Includes XPM data
+#include "project.xpm"
+
+IMPLEMENT_APP(AppClass)
+
+// Called to initialize the program
+bool AppClass::OnInit()
+{
+  wxResourceRegisterBitmapData("project_data", project_bits, project_width, project_height);
+
+  wxResourceParseData(menuBar11);
+  wxResourceParseData(my_resource);
+  wxResourceParseData(project_resource);
+  wxResourceParseData(panel3);
+  ...
+
+  return true;
+}
+\end{verbatim}
+
+The following code shows a dialog:
+
+\begin{verbatim}
+  // project.wxr contains dialog1
+  MyDialog *dialog = new MyDialog;
+  if (dialog->LoadFromResource(this, "dialog1"))
+  {
+    wxTextCtrl *text = (wxTextCtrl *)wxFindWindowByName("text3", dialog);
+    if (text)
+      text->SetValue("wxWindows resource demo");
+    dialog->ShowModal();
+  }
+  dialog->Destroy();
+\end{verbatim}
+
+Please see also the resource sample.
+
+\subsection{Dialog resource format}
+
+A dialog resource object may be used for either panels or dialog boxes, and
+consists of the following attributes. In the following, a {\it font specification}\rtfsp
+is a list consisting of point size, family, style, weight, underlined, optional facename.
+
+\begin{twocollist}\itemsep=0pt
+\twocolitemruled{Attribute}{Value}
+\twocolitem{id}{The integer identifier of the resource.}
+\twocolitem{name}{The name of the resource.}
+\twocolitem{style}{Optional dialog box or panel window style.}
+\twocolitem{title}{The title of the dialog box (unused if a panel).}.
+\twocolitem{modal}{Whether modal: 1 if modal, 0 if modeless, absent if a panel resource.}
+\twocolitem{use\_dialog\_units}{If 1, use dialog units (dependent on the dialog font size) for control sizes and positions.}
+\twocolitem{use\_system\_defaults}{If 1, override colours and fonts to use system settings instead.}
+\twocolitem{button\_font}{The font used for control buttons: a list comprising point size (integer),
+family (string), font style (string), font weight (string) and underlining (0 or 1).}
+\twocolitem{label\_font}{The font used for control labels: a list comprising point size (integer),
+family (string), font style (string), font weight (string) and underlining (0 or 1). Now obsolete; use button\_font instead.}
+\twocolitem{x}{The x position of the dialog or panel.}
+\twocolitem{y}{The y position of the dialog or panel.}
+\twocolitem{width}{The width of the dialog or panel.}
+\twocolitem{height}{The height of the dialog or panel.}
+\twocolitem{background\_colour}{The background colour of the dialog or panel.}
+\twocolitem{label\_colour}{The default label colour for the children of the dialog or panel. Now obsolete; use button\_colour instead.}
+\twocolitem{button\_colour}{The default button text colour for the children of the dialog or panel.}
+\end{twocollist}
+
+Then comes zero or more attributes named `control' for each control
+(panel item) on the dialog or panel. The value is a list of further
+elements. In the table below, the names in the first column correspond to
+the first element of the value list, and the second column details the
+remaining elements of the list. Note that titles for some controls are obsolete
+(they don't have titles), but the syntax is retained for backward compatibility.
+
+\begin{twocollist}\itemsep=0pt
+\twocolitemruled{Control}{Values}
+\twocolitem{wxButton}{id (integer), title (string), window style (string), name (string), x, y, width, height, button bitmap resource (optional string), button font spec}
+\twocolitem{wxCheckBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, default value (optional integer, 1 or 0), label font spec}
+\twocolitem{wxChoice}{id (integer), title (string), window style (string), name (string), x, y, width, height, values (optional list of strings), label font spec, button font spec}
+\twocolitem{wxComboBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, default text value, values (optional list of strings), label font spec, button font spec}
+\twocolitem{wxGauge}{id (integer), title (string), window style (string), name (string), x, y, width, height, value (optional integer), range (optional integer), label font spec, button font spec}
+\twocolitem{wxStaticBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, label font spec}
+\twocolitem{wxListBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, values (optional list of strings), multiple (optional string, wxSINGLE or wxMULTIPLE),
+label font spec, button font spec}
+\twocolitem{wxStaticText}{id (integer), title (string), window style (string), name (string), x, y, width, height, message bitmap resource (optional string), label font spec}
+\twocolitem{wxRadioBox}{id (integer), title (string), window style (string), name (string), x, y, width, height, values (optional list of strings), number of rows or cols,
+label font spec, button font spec}
+\twocolitem{wxRadioButton}{id (integer), title (string), window style (string), name (string), x, y, width, height, default value (optional integer, 1 or 0), label font spec}
+\twocolitem{wxScrollBar}{id (integer), title (string), window style (string), name (string), x, y, width, height, value (optional integer),
+page length (optional integer), object length (optional integer), view length (optional integer)}
+\twocolitem{wxSlider}{id (integer), title (string), window style (string), name (string), x, y, width, height, value (optional integer), minimum (optional integer), maximum (optional integer),
+label font spec, button font spec}
+\twocolitem{wxTextCtrl}{id (integer), title (string), window style (string), name (string), x, y, width, height, default value (optional string),
+label font spec, button font spec}
+\end{twocollist}
+
+\subsection{Menubar resource format}
+
+A menubar resource object consists of the following attributes.
+
+\begin{twocollist}\itemsep=0pt
+\twocolitemruled{Attribute}{Value}
+\twocolitem{name}{The name of the menubar resource.}
+\twocolitem{menu}{A list containing all the menus, as detailed below.}
+\end{twocollist}
+
+The value of the {\bf menu} attribute is a list of menu item specifications, where each menu
+item specification is itself a list comprising:
+
+\begin{itemize}\itemsep=0pt
+\item title (a string)
+\item menu item identifier (a string or non-zero integer, see below)
+\item help string (optional)
+\item 0 or 1 for the `checkable' parameter (optional)
+\item optionally, further menu item specifications if this item is a pulldown menu.
+\end{itemize}
+
+If the menu item specification is the empty list ([]), this is interpreted as a menu separator.
+
+If further (optional) information is associated with each menu item in a future release of wxWindows,
+it will be placed after the help string and before the optional pulldown menu specifications.
+
+Note that the menu item identifier must be an integer if the resource is being
+included as C++ code and then parsed on initialisation. Unfortunately,\rtfsp
+\#define substitution is not performed inside strings, and
+therefore the program cannot know the mapping. However, if the .WXR file
+is being loaded dynamically, wxWindows will attempt to replace string
+identifiers with \#defined integers, because it is able to parse
+the included \#defines.
+
+\subsection{Bitmap resource format}
+
+A bitmap resource object consists of a name attribute, and one or more {\bf bitmap} attributes.
+There can be more than one of these to allow specification of bitmaps that are optimum for the
+platform and display.
+
+\begin{itemize}\itemsep=0pt
+\item Bitmap name or filename.
+\item Type of bitmap; for example, wxBITMAP\_TYPE\_BMP\_RESOURCE. See class reference under {\bf wxBitmap} for
+a full list).
+\item Platform this bitmap is valid for; one of WINDOWS, X, MAC and ANY.
+\item Number of colours (optional).
+\item X resolution (optional).
+\item Y resolution (optional).
+\end{itemize}
+
+\subsection{Icon resource format}
+
+An icon resource object consists of a name attribute, and one or more {\bf icon} attributes.
+There can be more than one of these to allow specification of icons that are optimum for the
+platform and display.
+
+\begin{itemize}\itemsep=0pt
+\item Icon name or filename.
+\item Type of icon; for example, wxBITMAP\_TYPE\_ICO\_RESOURCE. See class reference under {\bf wxBitmap} for
+a full list).
+\item Platform this bitmap is valid for; one of WINDOWS, X, MAC and ANY.
+\item Number of colours (optional).
+\item X resolution (optional).
+\item Y resolution (optional).
+\end{itemize}
+
+\subsection{Resource format design issues}
+
+The .WXR file format is a recent addition and subject to change.
+The use of an ASCII resource file format may seem rather inefficient, but this
+choice has a number of advantages:
+
+\begin{itemize}\itemsep=0pt
+\item Since it is C++ compatible, it can be included into an application's source code,
+eliminating the problems associated with distributing a separate resource file
+with the executable. However, it can also be loaded dynamically from a file, which will be required
+for non-C++ programs that use wxWindows.
+\item No extra binary file format and separate converter need be maintained for the wxWindows project
+(although others are welcome to add the equivalent of the Windows `rc' resource
+parser and a binary format).
+\item It would be difficult to append a binary resource component onto an executable
+in a portable way.
+\item The file format is essentially the \helpref{wxExpr}{wxexpr} object format, for which
+a parser already exists, so parsing is easy. For those programs that use wxExpr
+anyway, the size overhead of the parser is minimal.
+\end{itemize}
+
+The disadvantages of the approach include:
+
+\begin{itemize}\itemsep=0pt
+\item Parsing adds a small execution overhead to program initialization.
+\item Under 16-bit Windows especially, global data is at a premium.
+Using a .RC resource table for some wxWindows resource data may be a partial solution,
+although .RC strings are limited to 255 characters.
+\item Without a resource preprocessor, it is not possible to substitute integers
+for identifiers (so menu identifiers have to be written as integers in the resource
+object, in addition to providing \#defines for application code convenience).
+\end{itemize}
+
+\subsection{Compiling the resource system}
+
+To enable the resource system, set {\bf wxUSE\_WX\_RESOURCES} to 1 in setup.h.
+
-- 
2.47.2

