From: Václav Slavík Date: Sat, 25 Dec 1999 20:30:32 +0000 (+0000) Subject: moved proplist documentation to main book X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/200fed6cdf9560246565124e94846c3f2bddf2a4 moved proplist documentation to main book git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5114 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/proplist/back.gif b/docs/latex/proplist/back.gif deleted file mode 100644 index bfd15ce82c..0000000000 Binary files a/docs/latex/proplist/back.gif and /dev/null differ diff --git a/docs/latex/proplist/body.tex b/docs/latex/proplist/body.tex deleted file mode 100644 index 41ff42a71f..0000000000 --- a/docs/latex/proplist/body.tex +++ /dev/null @@ -1,106 +0,0 @@ -\chapter{Introduction}\label{introduction} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -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}{appearance} 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}{propertyoverview}. - -\section{The appearance and behaviour of a property list view}\label{appearance} - -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. - -$$\image{8cm;0cm}{prop1.eps}$$\\ - -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. - -$$\image{8cm;0cm}{prop2.eps}$$ - -\chapter{Files}\label{files} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -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 -\item prop.cpp: base property class implementation -\item proplist.cpp: wxPropertyListView and associated class implementions -\item propform.cpp: wxPropertyFormView and associated class implementions -\end{itemize} diff --git a/docs/latex/proplist/books.bmp b/docs/latex/proplist/books.bmp deleted file mode 100644 index cf1e148734..0000000000 Binary files a/docs/latex/proplist/books.bmp and /dev/null differ diff --git a/docs/latex/proplist/books.gif b/docs/latex/proplist/books.gif deleted file mode 100644 index 4c67b72954..0000000000 Binary files a/docs/latex/proplist/books.gif and /dev/null differ diff --git a/docs/latex/proplist/bullet.bmp b/docs/latex/proplist/bullet.bmp deleted file mode 100644 index aad8fc793e..0000000000 Binary files a/docs/latex/proplist/bullet.bmp and /dev/null differ diff --git a/docs/latex/proplist/changes.tex b/docs/latex/proplist/changes.tex deleted file mode 100644 index d3513d14fa..0000000000 --- a/docs/latex/proplist/changes.tex +++ /dev/null @@ -1,27 +0,0 @@ -\chapter{Change log}\label{changes} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -January - December 1998, Version 2.0 - -\begin{itemize}\itemsep=0pt -\item Conversion to wxWindows 2.0. -\end{itemize} - -November 26th 1995, Version 1.1 - -\begin{itemize}\itemsep=0pt -\item Added wxListOfStringsListValidator - allows adding, deleting, editing -strings. -\item Added wxPropertyValue::ClearList, wxPropertyValue::Delete, -wxPropertyValue::wxPropertyValue(wxStringList *). -\item Added wxPropertyValue::Set/GetModified, wxPropertySheet::SetAllModified. -\item Added wxPropertyView::OnPropertyChanged support, for immediate feedback. -\end{itemize} - -October 1995, Version 1.0 - -\begin{itemize}\itemsep=0pt -\item First release. -\end{itemize} - diff --git a/docs/latex/proplist/classes.tex b/docs/latex/proplist/classes.tex deleted file mode 100644 index 00dcfe294a..0000000000 --- a/docs/latex/proplist/classes.tex +++ /dev/null @@ -1,1785 +0,0 @@ -\chapter{Alphabetical class reference}\label{classref} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\overview{Property classes overview}{propertyoverview} - -\section{\class{wxBoolFormValidator}: wxPropertyFormValidator}\label{wxboolformvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a boolean value for a form view. The associated panel item must be a wxCheckBox. - -\membersection{wxBoolFormValidator::wxBoolFormValidator} - -\func{void}{wxBoolFormValidator}{\param{long }{flags=0}} - -Constructor. - -\section{\class{wxBoolListValidator}: wxPropertyListValidator}\label{wxboollistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a boolean value for a list view. - -\membersection{wxBoolListValidator::wxBoolListValidator} - -\func{void}{wxBoolListValidator}{\param{long }{flags=0}} - -Constructor. - -\section{\class{wxIntegerFormValidator}: wxPropertyFormValidator}\label{wxintegerformvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a range of integer values for a form view. The associated panel item must be a wxText -or wxSlider. - -\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. - - -\section{\class{wxIntegerListValidator}: wxPropertyListValidator}\label{wxintegerlistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a range of integer values for a list view. - -\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. - -\section{\class{wxFilenameListValidator}: wxPropertyListValidator}\label{wxfilenamelistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a filename for a list view, allowing the user to edit it textually and also popping up -a file selector in ``detailed editing" mode. - -\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. - -\section{\class{wxListOfStringsListValidator}: wxPropertyListValidator}\label{wxlistofstringslistvalidator} - -\overview{Validator classes}{validatorclasses} - -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} - -\membersection{wxListOfStringsListValidator::wxListofStringsListValidator} - -\func{void}{wxListOfStringsListValidator}{\param{long}{ flags=0}} - -Constructor. - -\section{\class{wxProperty}: wxObject}\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. - - -\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. - -\section{\class{wxPropertyFormValidator}: wxPropertyValidator}\label{wxpropertyformvalidator} - -The {\bf wxPropertyFormValidator} abstract class is the root of classes that define validation -for a wxPropertyFormView. - - -\section{\class{wxPropertyFormDialog}: wxDialogBox}\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. - -\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. - - -\section{\class{wxPropertyFormFrame}: wxFrame}\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. - -\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. - - -\section{\class{wxPropertyFormPanel}: wxPanel}\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. - -\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. - - - -\section{\class{wxPropertyFormValidator}: wxPropertyValidator}\label{wxpropertyformvalidatir} - -\overview{wxPropertyFormValidator overview}{wxpropertyformvalidatoroverview} - -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. - -\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. - - -\section{\class{wxPropertyFormView}: wxPropertyView}\label{wxpropertyformview} - -\overview{wxPropertyFormView overview}{wxpropertyformviewoverview} - -The {\bf wxPropertyFormView} class shows a wxPropertySheet as a view onto a panel or dialog -box which has already been created. - -\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. - - -\section{\class{wxPropertyListDialog}: wxDialogBox}\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. - -\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. - - -\section{\class{wxPropertyListFrame}: wxFrame}\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. - -\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. - - -\section{\class{wxPropertyListPanel}: wxPanel}\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. - -\membersection{wxPropertyListPanel::wxPropertyListPanel} - -\func{void}{wxPropertyListPanel}{\param{wxPropertyListView *}{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{wxPropertyListPanel::\destruct{wxPropertyListPanel}} - -\func{void}{\destruct{wxPropertyListPanel}}{\void} - -Destructor. - - - - -\section{\class{wxPropertyListValidator}: wxPropertyValidator}\label{wxpropertylistvalidator} - -\overview{wxPropertyListValidator overview}{wxpropertylistvalidatoroverview} - -The {\bf wxPropertyListValidator} abstract class is the base class for -deriving validators for property lists. - -\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. - - - -\section{\class{wxPropertyListView}: wxPropertyView}\label{wxpropertylistview} - -\overview{wxPropertyListView overview}{wxpropertylistviewoverview} - -The {\bf wxPropertyListView} class shows a wxPropertySheet as a Visual Basic-style property list. - -\membersection{wxPropertyListView::wxPropertyListView} - -\func{void}{wxPropertyListView}{\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 mdoe) 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. - - -\section{\class{wxPropertySheet}: wxObject}\label{wxpropertysheet} - -\overview{wxPropertySheet overview}{wxpropertysheetoverview} - -The {\bf wxPropertySheet} class is used for storing a number of -wxProperty objects (essentially names and values). - -\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. - - - -\section{\class{wxPropertyValidator}: wxEvtHandler}\label{wxpropertyvalidator} - -\overview{wxPropertyValidator overview}{wxpropertyvalidatoroverview} - -The {\bf wxPropertyValidator} abstract class is the base class for deriving -validators for properties. - -\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. - - -\section{\class{wxPropertyValidatorRegistry}: wxHashTable}\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. - -\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. - - -\section{\class{wxPropertyValue}: wxObject}\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} - -\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. - - - -\section{\class{wxPropertyView}: wxEvtHandler}\label{wxpropertyview} - -\overview{wxPropertyView overview}{wxpropertyviewoverview} - -The {\bf wxPropertyView} abstract class is the base class for views -of property sheets, acting as intermediaries between properties and -actual windows. - -\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. - -\section{\class{wxRealFormValidator}: wxPropertyFormValidator}\label{wxrealformvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a range of real values for form views. The associated panel item must be a wxText. - -\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. - - -\section{\class{wxStringFormValidator}: wxPropertyFormValidator}\label{wxstringformvalidator} - -\overview{Validator classes}{validatorclasses} - -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. Note that this does not happen for XView wxChoice items since XView cannot reinitialize a wxChoice. - -\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. - - -\section{\class{wxRealListValidator}: wxPropertyListValidator}\label{wxreallistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a range of real values for property lists. - -\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. - - -\section{\class{wxStringListValidator}: wxPropertyListValidator}\label{wxstringlistvalidator} - -\overview{Validator classes}{validatorclasses} - -This class validates a string value, with an optional choice of possible values. - -\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. - - -\chapter{Classes by category}\label{classesbycat} - -A classification of property sheet classes by category. - -\section{Data classes} - -\begin{itemize}\itemsep=0pt -\item \helpref{wxProperty}{wxproperty} -\item \helpref{wxPropertyValue}{wxpropertyvalue} -\item \helpref{wxPropertySheet}{wxpropertysheet} -\end{itemize} - - -\section{Validator classes}\label{validatorclasses} - -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} - -\section{View classes}\label{viewclasses} - -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} - -\section{Window classes}\label{windowclasses} - -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} - -\section{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} - - -\chapter{Topic overviews}\label{overviews} - -This chapter contains a selection of topic overviews. - -\section{Property classes overview}\label{propertyoverview} - -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}{windowclasses} for -further details. - -\subsection{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}{appearance}. - -\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} - -\subsection{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} - -\section{Validator classes overview}\label{validatoroverview} - -Classes: \helpref{Validator classes}{validatorclasses} - -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. - -\subsection{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 explictly 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. - -\subsection{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}{appearance}). - -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. - -\subsection{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. - -\section{View classes overview}\label{viewoverview} - -Classes: \helpref{View classes}{viewclasses} - -An instance of a view class relates a property sheet with an actual window. -Currently, there are two classes of view: wxPropertyListView and wxPropertyFormView. - -\subsection{wxPropertyView overview}\label{wxpropertyviewoverview} - -Class: \helpref{wxPropertyView}{wxpropertyview} - -This is the abstract base class for property views. - -\subsection{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. - -\subsection{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} - -\section{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 consisent, -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. - - - diff --git a/docs/latex/proplist/contents.gif b/docs/latex/proplist/contents.gif deleted file mode 100644 index 3dddfa3dd5..0000000000 Binary files a/docs/latex/proplist/contents.gif and /dev/null differ diff --git a/docs/latex/proplist/forward.gif b/docs/latex/proplist/forward.gif deleted file mode 100644 index 9c81e8c92f..0000000000 Binary files a/docs/latex/proplist/forward.gif and /dev/null differ diff --git a/docs/latex/proplist/prop.tex b/docs/latex/proplist/prop.tex deleted file mode 100644 index cb1a4a25a9..0000000000 --- a/docs/latex/proplist/prop.tex +++ /dev/null @@ -1,47 +0,0 @@ -\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report} -\input psbox.tex -% Remove this for processing with dvi2ps instead of dvips -%\special{!/@scaleunit 1 def} -\parskip=10pt -\parindent=0pt -\title{User Manual for wxWindows Property Sheet Classes Version 2.0} -\winhelponly{\author{by Julian Smart, Anthemion Software\\$$\image{}{prop1}$$}} -\winhelpignore{\author{Julian Smart, Anthemion Software} -\date{December 1998} -} -\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) 1998 Julian Smart, Anthemion Software -\end{center} - -Please see the wxWindows licence for conditions of use. - -\input{body.tex} -\input{classes.tex} -\input{changes.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}% -} -\end{document} diff --git a/docs/latex/proplist/prop1.bmp b/docs/latex/proplist/prop1.bmp deleted file mode 100644 index 92c6beec8b..0000000000 Binary files a/docs/latex/proplist/prop1.bmp and /dev/null differ diff --git a/docs/latex/proplist/prop1.eps b/docs/latex/proplist/prop1.eps deleted file mode 100644 index 02ac7d68cf..0000000000 --- a/docs/latex/proplist/prop1.eps +++ /dev/null @@ -1,539 +0,0 @@ -%!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/docs/latex/proplist/prop1.gif b/docs/latex/proplist/prop1.gif deleted file mode 100644 index 4344434d20..0000000000 Binary files a/docs/latex/proplist/prop1.gif and /dev/null differ diff --git a/docs/latex/proplist/prop2.bmp b/docs/latex/proplist/prop2.bmp deleted file mode 100644 index d909f41abc..0000000000 Binary files a/docs/latex/proplist/prop2.bmp and /dev/null differ diff --git a/docs/latex/proplist/prop2.eps b/docs/latex/proplist/prop2.eps deleted file mode 100644 index 398e70c553..0000000000 --- a/docs/latex/proplist/prop2.eps +++ /dev/null @@ -1,664 +0,0 @@ -%!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/docs/latex/proplist/prop2.gif b/docs/latex/proplist/prop2.gif deleted file mode 100644 index ec9b857234..0000000000 Binary files a/docs/latex/proplist/prop2.gif and /dev/null differ diff --git a/docs/latex/proplist/readme.txt b/docs/latex/proplist/readme.txt deleted file mode 100644 index f54a18a687..0000000000 --- a/docs/latex/proplist/readme.txt +++ /dev/null @@ -1,39 +0,0 @@ - -Prototype dialog editor and property sheet classes --------------------------------------------------- - -Julian Smart, October 4th 1995 ------------------------------- - -Here's what I've done so far on a lightweight dialog editor. The 16-bit -Windows binaries in the bin directory are dialoged.exe (the dialog -editor) and test.exe (a small property sheet demo). - -Main points: - - - You can create a new dialog box and add items to it. - - You can move items around, and right-click - to edit a few properties (very incomplete). - - Can't write out .wxr files yet. Loading code is in - wxWindows, but writing code is absent: should be put - into wxWindows. - - No attempt at resources other than dialogs yet. - Should have menu editor too. - - Should *somehow* have a protocol to allow - existing resources e.g. in wxCLIPS/wxPython - to be edited in situ. - This should be made simpler by the existance of - the plug-in event handler mechanism, which means you - can temporarily handle all the events yourself. - - See dialoged.cc: the main program is tiny because - it's meant to be embeddable. - - The wxPropertySheet (set of) classes are very - general and should be put into wxWin and documented. - -Comments, chivvying and help all appreciated. Maybe if -I documented what I had, it would be easier for others -to do some work on it. - -Regards, - -Julian \ No newline at end of file diff --git a/docs/latex/proplist/tex2rtf.ini b/docs/latex/proplist/tex2rtf.ini deleted file mode 100644 index 90c6676d9c..0000000000 --- a/docs/latex/proplist/tex2rtf.ini +++ /dev/null @@ -1,21 +0,0 @@ -runTwice = yes -titleFontSize = 12 -authorFontSize = 10 -chapterFontSize = 12 -sectionFontSize = 12 -subsectionFontSize = 12 -headerRule = yes -footerRule = yes -useHeadingStyles = yes -contentsDepth = 2 -listItemIndent=40 -generateHPJ = yes -htmlBrowseButtons = bitmap -winHelpVersion = 3 -winHelpContents = yes -winHelpTitle = "Property Classes Manual" -truncateFilenames = yes -\overview [2] {\rtfonly{See also }\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}} -\htmlonly{\image{}{books.gif}}\helpref{#1}{#2} -\sethotspotcolour{on}\sethotspotunderline{on}} - diff --git a/docs/latex/proplist/up.gif b/docs/latex/proplist/up.gif deleted file mode 100644 index 316d0d2a14..0000000000 Binary files a/docs/latex/proplist/up.gif and /dev/null differ diff --git a/docs/latex/proplist/wxprop.hpj b/docs/latex/proplist/wxprop.hpj deleted file mode 100644 index d03da3049f..0000000000 --- a/docs/latex/proplist/wxprop.hpj +++ /dev/null @@ -1,17 +0,0 @@ -[OPTIONS] -BMROOT=d:\wx2\wxWind~1\utils\wxprop\docs ; Assume that bitmaps are where the source is -TITLE=Property Classes Manual -CONTENTS=Contents -COMPRESS=HIGH - -[FILES] -wxprop.rtf - -[CONFIG] -CreateButton("Up", "&Up", "JumpId(`wxprop.hlp', `Contents')") -BrowseButtons() - -[MAP] - -[BITMAPS] - diff --git a/docs/latex/wx/prop1.bmp b/docs/latex/wx/prop1.bmp new file mode 100644 index 0000000000..92c6beec8b Binary files /dev/null and b/docs/latex/wx/prop1.bmp differ diff --git a/docs/latex/wx/prop1.eps b/docs/latex/wx/prop1.eps new file mode 100644 index 0000000000..02ac7d68cf --- /dev/null +++ b/docs/latex/wx/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/docs/latex/wx/prop1.gif b/docs/latex/wx/prop1.gif new file mode 100644 index 0000000000..4344434d20 Binary files /dev/null and b/docs/latex/wx/prop1.gif differ diff --git a/docs/latex/wx/prop2.bmp b/docs/latex/wx/prop2.bmp new file mode 100644 index 0000000000..d909f41abc Binary files /dev/null and b/docs/latex/wx/prop2.bmp differ diff --git a/docs/latex/wx/prop2.eps b/docs/latex/wx/prop2.eps new file mode 100644 index 0000000000..398e70c553 --- /dev/null +++ b/docs/latex/wx/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/docs/latex/wx/prop2.gif b/docs/latex/wx/prop2.gif new file mode 100644 index 0000000000..ec9b857234 Binary files /dev/null and b/docs/latex/wx/prop2.gif differ diff --git a/docs/latex/wx/propbfva.tex b/docs/latex/wx/propbfva.tex new file mode 100644 index 0000000000..b77d1342d5 --- /dev/null +++ b/docs/latex/wx/propbfva.tex @@ -0,0 +1,12 @@ +\section{\class{wxBoolFormValidator}}\label{wxboolformvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +This class validates a boolean value for a form view. The associated panel item must be a wxCheckBox. + +\membersection{wxBoolFormValidator::wxBoolFormValidator} + +\func{void}{wxBoolFormValidator}{\param{long }{flags=0}} + +Constructor. + diff --git a/docs/latex/wx/propblva.tex b/docs/latex/wx/propblva.tex new file mode 100644 index 0000000000..37179c6736 --- /dev/null +++ b/docs/latex/wx/propblva.tex @@ -0,0 +1,12 @@ +\section{\class{wxBoolListValidator}}\label{wxboollistvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +This class validates a boolean value for a list view. + +\membersection{wxBoolListValidator::wxBoolListValidator} + +\func{void}{wxBoolListValidator}{\param{long }{flags=0}} + +Constructor. + diff --git a/docs/latex/wx/property.tex b/docs/latex/wx/property.tex new file mode 100644 index 0000000000..c038840625 --- /dev/null +++ b/docs/latex/wx/property.tex @@ -0,0 +1,106 @@ +\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. + + +\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/docs/latex/wx/propflva.tex b/docs/latex/wx/propflva.tex new file mode 100644 index 0000000000..d3de557e69 --- /dev/null +++ b/docs/latex/wx/propflva.tex @@ -0,0 +1,14 @@ +\section{\class{wxFilenameListValidator}}\label{wxfilenamelistvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +This class validates a filename for a list view, allowing the user to edit it textually and also popping up +a file selector in ``detailed editing" mode. + +\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/docs/latex/wx/propford.tex b/docs/latex/wx/propford.tex new file mode 100644 index 0000000000..3c7bf01964 --- /dev/null +++ b/docs/latex/wx/propford.tex @@ -0,0 +1,22 @@ +\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. + +\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/docs/latex/wx/propforf.tex b/docs/latex/wx/propforf.tex new file mode 100644 index 0000000000..5b9e92cc81 --- /dev/null +++ b/docs/latex/wx/propforf.tex @@ -0,0 +1,42 @@ +\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. + +\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/docs/latex/wx/propforp.tex b/docs/latex/wx/propforp.tex new file mode 100644 index 0000000000..942debc2ff --- /dev/null +++ b/docs/latex/wx/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. + +\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/docs/latex/wx/propforv.tex b/docs/latex/wx/propforv.tex new file mode 100644 index 0000000000..e8fb7834d1 --- /dev/null +++ b/docs/latex/wx/propforv.tex @@ -0,0 +1,57 @@ +\section{\class{wxPropertyFormValidator}}\label{wxpropertyformvalidator} + +\overview{wxPropertyFormValidator overview}{wxpropertyformvalidatoroverview} + +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. + +\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/docs/latex/wx/propfovi.tex b/docs/latex/wx/propfovi.tex new file mode 100644 index 0000000000..c9d570003e --- /dev/null +++ b/docs/latex/wx/propfovi.tex @@ -0,0 +1,101 @@ +\section{\class{wxPropertyFormView}}\label{wxpropertyformview} + +\overview{wxPropertyFormView overview}{wxpropertyformviewoverview} + +The {\bf wxPropertyFormView} class shows a wxPropertySheet as a view onto a panel or dialog +box which has already been created. + +\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/docs/latex/wx/propifva.tex b/docs/latex/wx/propifva.tex new file mode 100644 index 0000000000..b39468cacc --- /dev/null +++ b/docs/latex/wx/propifva.tex @@ -0,0 +1,15 @@ +\section{\class{wxIntegerFormValidator}}\label{wxintegerformvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +This class validates a range of integer values for a form view. The associated panel item must be a wxText +or wxSlider. + +\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/docs/latex/wx/propilva.tex b/docs/latex/wx/propilva.tex new file mode 100644 index 0000000000..76870b0c3b --- /dev/null +++ b/docs/latex/wx/propilva.tex @@ -0,0 +1,13 @@ +\section{\class{wxIntegerListValidator}}\label{wxintegerlistvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +This class validates a range of integer values for a list view. + +\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/docs/latex/wx/proplisd.tex b/docs/latex/wx/proplisd.tex new file mode 100644 index 0000000000..adf3992d70 --- /dev/null +++ b/docs/latex/wx/proplisd.tex @@ -0,0 +1,22 @@ +\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. + +\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/docs/latex/wx/proplisf.tex b/docs/latex/wx/proplisf.tex new file mode 100644 index 0000000000..5b8ace2494 --- /dev/null +++ b/docs/latex/wx/proplisf.tex @@ -0,0 +1,42 @@ +\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. + +\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/docs/latex/wx/proplisp.tex b/docs/latex/wx/proplisp.tex new file mode 100644 index 0000000000..c5b1a6220b --- /dev/null +++ b/docs/latex/wx/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. + +\membersection{wxPropertyListPanel::wxPropertyListPanel} + +\func{void}{wxPropertyListPanel}{\param{wxPropertyListView *}{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{wxPropertyListPanel::\destruct{wxPropertyListPanel}} + +\func{void}{\destruct{wxPropertyListPanel}}{\void} + +Destructor. + + + + diff --git a/docs/latex/wx/proplist.tex b/docs/latex/wx/proplist.tex new file mode 100644 index 0000000000..fb4036e9c5 --- /dev/null +++ b/docs/latex/wx/proplist.tex @@ -0,0 +1,567 @@ +\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 explictly 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 consisent, +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/docs/latex/wx/propliva.tex b/docs/latex/wx/propliva.tex new file mode 100644 index 0000000000..0962211081 --- /dev/null +++ b/docs/latex/wx/propliva.tex @@ -0,0 +1,108 @@ +\section{\class{wxPropertyListValidator}}\label{wxpropertylistvalidator} + +\overview{wxPropertyListValidator overview}{wxpropertylistvalidatoroverview} + +The {\bf wxPropertyListValidator} abstract class is the base class for +deriving validators for property lists. + +\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/docs/latex/wx/proplosv.tex b/docs/latex/wx/proplosv.tex new file mode 100644 index 0000000000..0132b09830 --- /dev/null +++ b/docs/latex/wx/proplosv.tex @@ -0,0 +1,27 @@ +\section{\class{wxListOfStringsListValidator}}\label{wxlistofstringslistvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +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} + +\membersection{wxListOfStringsListValidator::wxListofStringsListValidator} + +\func{void}{wxListOfStringsListValidator}{\param{long}{ flags=0}} + +Constructor. + diff --git a/docs/latex/wx/proplstv.tex b/docs/latex/wx/proplstv.tex new file mode 100644 index 0000000000..a370762615 --- /dev/null +++ b/docs/latex/wx/proplstv.tex @@ -0,0 +1,108 @@ +\section{\class{wxPropertyListView}}\label{wxpropertylistview} + +\overview{wxPropertyListView overview}{wxpropertylistviewoverview} + +The {\bf wxPropertyListView} class shows a wxPropertySheet as a Visual Basic-style property list. + +\membersection{wxPropertyListView::wxPropertyListView} + +\func{void}{wxPropertyListView}{\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 mdoe) 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/docs/latex/wx/propregv.tex b/docs/latex/wx/propregv.tex new file mode 100644 index 0000000000..97d77f0232 --- /dev/null +++ b/docs/latex/wx/propregv.tex @@ -0,0 +1,40 @@ +\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. + +\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/docs/latex/wx/proprfva.tex b/docs/latex/wx/proprfva.tex new file mode 100644 index 0000000000..9f88b8ac17 --- /dev/null +++ b/docs/latex/wx/proprfva.tex @@ -0,0 +1,14 @@ +\section{\class{wxRealFormValidator}}\label{wxrealformvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +This class validates a range of real values for form views. The associated panel item must be a wxText. + +\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/docs/latex/wx/proprlva.tex b/docs/latex/wx/proprlva.tex new file mode 100644 index 0000000000..bad236add1 --- /dev/null +++ b/docs/latex/wx/proprlva.tex @@ -0,0 +1,14 @@ +\section{\class{wxRealListValidator}}\label{wxreallistvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +This class validates a range of real values for property lists. + +\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/docs/latex/wx/propsht.tex b/docs/latex/wx/propsht.tex new file mode 100644 index 0000000000..b5d4b28f43 --- /dev/null +++ b/docs/latex/wx/propsht.tex @@ -0,0 +1,81 @@ +\section{\class{wxPropertySheet}}\label{wxpropertysheet} + +\overview{wxPropertySheet overview}{wxpropertysheetoverview} + +The {\bf wxPropertySheet} class is used for storing a number of +wxProperty objects (essentially names and values). + +\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/docs/latex/wx/propslv.tex b/docs/latex/wx/propslv.tex new file mode 100644 index 0000000000..557ec052a6 --- /dev/null +++ b/docs/latex/wx/propslv.tex @@ -0,0 +1,14 @@ +\section{\class{wxStringListValidator}}\label{wxstringlistvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +This class validates a string value, with an optional choice of possible values. + +\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/docs/latex/wx/propstfv.tex b/docs/latex/wx/propstfv.tex new file mode 100644 index 0000000000..279a5b21e9 --- /dev/null +++ b/docs/latex/wx/propstfv.tex @@ -0,0 +1,17 @@ +\section{\class{wxStringFormValidator}}\label{wxstringformvalidator} + +\overview{Validator classes}{proplistvalidatorclasses} + +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. Note that this does not happen for XView wxChoice items since XView cannot reinitialize a wxChoice. + +\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/docs/latex/wx/propval.tex b/docs/latex/wx/propval.tex new file mode 100644 index 0000000000..6283a5a0d4 --- /dev/null +++ b/docs/latex/wx/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} + +\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/docs/latex/wx/propvald.tex b/docs/latex/wx/propvald.tex new file mode 100644 index 0000000000..13c39ca971 --- /dev/null +++ b/docs/latex/wx/propvald.tex @@ -0,0 +1,38 @@ +\section{\class{wxPropertyValidator}}\label{wxpropertyvalidator} + +\overview{wxPropertyValidator overview}{wxpropertyvalidatoroverview} + +The {\bf wxPropertyValidator} abstract class is the base class for deriving +validators for properties. + +\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/docs/latex/wx/propview.tex b/docs/latex/wx/propview.tex new file mode 100644 index 0000000000..5fd469170f --- /dev/null +++ b/docs/latex/wx/propview.tex @@ -0,0 +1,107 @@ +\section{\class{wxPropertyView}}\label{wxpropertyview} + +\overview{wxPropertyView overview}{wxpropertyviewoverview} + +The {\bf wxPropertyView} abstract class is the base class for views +of property sheets, acting as intermediaries between properties and +actual windows. + +\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. +