From: Julian Smart Date: Sun, 30 Mar 2003 21:21:33 +0000 (+0000) Subject: Deprecated classes manual X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/82e20720c94f1df1086173bc3fea52d50473297c Deprecated classes manual git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- 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} + + + +\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} + + + +\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} + +Copyright (C) + +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. + +, 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 0000000000..92c6beec8b Binary files /dev/null and b/contrib/docs/latex/deprecated/prop1.bmp differ 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 0000000000..a3d724d570 Binary files /dev/null and b/contrib/docs/latex/deprecated/prop1.gif differ diff --git a/contrib/docs/latex/deprecated/prop2.bmp b/contrib/docs/latex/deprecated/prop2.bmp new file mode 100644 index 0000000000..d909f41abc Binary files /dev/null and b/contrib/docs/latex/deprecated/prop2.bmp differ 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 0000000000..764f9882b1 Binary files /dev/null and b/contrib/docs/latex/deprecated/prop2.gif differ 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. +