TheBigUndo
Protected Module TheBigUndo
Description
TheBigUndo v1.2.0

TheBigUndo is a module that allows RealStudio developers to add undo/redo
functionality to their projects with little effort yet can be fully customized to provide
undos for difficult situations.

To Add TheBigUndo to a project, just drag the module and the CustomUndo Interface
to the project pane and add TheBigUndo.init to the app's open event. This will
provide basic undo functions to most controls.

Undos are created via an automatic check loop by default, but can also be manually
triggered. Undo check timing can be adjusted or the undo loop can be prevented from
running at all by passing -1 to initUndo or by setting UndoPeriod to -1.

Class extensions provide simple access to features like control.UpdateUndoStateNow
which can be used for manual updates, or to make the state current before a call to
control.DeleteUndos

Windows and Custom controls can be given undo functionality by utilizing
the CustomUndo class interface

Thanks for trying TheBigUndo!

This software is distributed as-is. Use of this software is without warranty, written
or implied. This software and it's source code are the exclusive intellectual property
of piDog Software.

Purchase of a license allows you to include TheBigUndo and TheBigUndoPreferencesWindow
in your projects and products. A Single User License means one user under one licensed copy of
RealStudio at one time. Multi-User licenses are also available.

Any attempt to reverse-engineer TheBigUndo, attempt to circumvent encryption or licensing or sharing of license keys
will be considered a violation of the license agreement and may be a violation of copyright.
piDog Software reserves the right to terminate a violator's license(s).

Copyright piDog Software 2012-2012
Notes
License Agreement
TheBigUndo may be licensed for use and distribution in applications built using Xojo by Xojo inc.
Constants
XSLReadable
An XSL Style for readable XML.
Methods
AddUndoMenuToMenuBar
Adds Undo and Redo MenuItems to a MenuBar
DeleteUndos
Clears all recorded Undo actions
Clears all Undo's for a gven control
Clears all Undo's for a given window
GetPreferencesDictionary
This Method will return a Dictionary previously saved to the user's preferences
GetPreferencesDoc
This Method will return a previously saved XmlDocument saved to the user's preferences
HasUndos
Returns true if there are Undo's for the given control
IgnoreUndos
Stops/Starts checking for undo's for the given control
Stops/Starts checking for undo's for the given window
Init
Starts up the undo module. Period is 1/1000ths of a second for the undo loop to run. Pass -1 to trig
MaximumUndos
Sets the maximum number of undo actions to be recorded
Sets the maximum number of undo's to be recorded for a given control.
Sets the maximum number of undo's to be recorded for a given window.
PauseUndoChecking
Stops the undo testing loop after allowing the background thread to finish any current task. Useful
Redo
Invokes the next available Redo
Register
A method to enter registration info and remove the registration warning message in compiled apps.
ResumeUndoChecking
Resumes undo testing after a call to PauseUndoChecking
SavedState
Gets the last XmlDocument set via Window.SavedState=XMLDocument
Sets an XMLDocument as received from then XML property as the currently
SetPreferencesDictionary
This Method will save a Dictionary as an XmlDocument to the user's preferences
SetPreferencesDoc
This Method will save an XmlDocument to the user's preferences
SimpleDictionary
This Function returns a Dictionary containing the basic values of basic controls. CustomUndos and Co
Undo
Invokes the next available Undo
UndosAreManual
Set this to true to exclude a control from the undo testing loop.
Set this to true to exclude a control from the undo testing loop.
Set this to true to exclude a window from the undo testing loop.
Set this to true to exclude a window from the undo testing loop.
UndoSetsContentsChangedFlag
Gets whether available undos cause the changed flag to be set for the window.
Sets whether available undos cause the changed flag to be set for the window.
UndoStateChanged
Passing True will tag the Control for testing on the next loop when UndosAreManual has been set.
Passing True will tag the window for testing on the next loop when UndosAreManual has been set.
UpdateUndoStateNow
Call to start a new run of the undo testing loop.
Will run the undo tests on a given Control.
Will run the undo tests on a given Window.
XML
Gets the state of a window as XML.
Sets the state of a window from an XmlDocument as return by the XML getter Function.
XMLIgnore
Sets a control to be ignored (or not ignored) when getting a window's state as XML
Properties
MonitorFrontWindowOnly
This property determines whether TheBigUndo will track all windows, or exclusively track the f
PreferencesDoc
Use this property to set and get and XmlDocument representing your
UndoInFrontWindowOnly
Prevents TheBigUndo from performing undos in windows that are not in focus.
UndoPeriod
This property sets the frequency of undo checking. Value is 1/1000th of a second.