1.1.0 Added ability to set a Xojo dictionary as a preferences value (encoded as a dictionary) Added UndoMenuItem class to allow for direct modification of menu text Menu references now handled more cleanly internally added shutDownUndos to ensure clean app quit Fixed a nilobjectexpection using PreferencesDoc on win32 Tested for 64bit compatibility 1.0.4.3 Updated for Xojo 2014r3 Removed external images from demo app. 1.0.4.2 Fixed a bug when building an app 1.0.4.1 Fixed a bug causing a KeyNotFoundException when RadioButtons were placed on a ContainerControl 1.0.4 Added Undo and Redo methods to the module to allow manually calling Undo/Redo actions from code Added TheBigUndo_StateChangedNotifier interface to allow creation of custom controls to invoke undos 1.0.3.1 Fixed a possible KeyNotFoundException related to ContainerControls 1.0.3 ContainerControls are now detected automatically! Listbox now supported in window.xml ListBox RowPicture now supported in undo/redo and window.xml Updated Documentation and Demo. 1.0.2.6 Now Xojo compaible! Fixed a bug where undos in Styled TextAreas could become garbled if styled text was copied and pasted repeatedly. 1.0.2.5: Fixed GTK lib calls to work under Ubuntu 12.10 and other current linux flavors 1.0.2.4: Minor internal efficiency improvements If UndosAreManual is set for a control, the control is now checked before the Undo Menu is enabled Added UndoSetsContentsChangedFlag extension to Window Class Added a Cocoa workaround for sliders to handle setting a value of 0 in an undo/redo 1.0.2.3 Made some improvements in listbox behavior where an object in a tag is an unknown type (ie plugin class) it is ignored Listbox checkboxes are now undoable. Dictionaries and Tag (celltag, rowtag) Picture values now more efficient. 1.0.2.2: Fixed some issues with the demo project file 1.0.2.1: Fixed a bug with UndoInFrontWindowOnly that prevented undos in non-document windows Now correctly ignores all non-undoable controls Made the Module an internal item in the demo project 1.0.2: Rearranged Modules and supporting items items so they can be used as external items. Fixed a bug causing container controls not to be checked correctly. 1.0.1.1: Fixed a bug causing demo to crash on Linux when viewing methods/properties 1.0.1: Fixed a Cocoa bug in TextAreas Renamed internal calls to avoid conflicts with globals in other modules 1.0.0: Redesigned Styled TextArea Undo handling. CPU usage is now negligible under normal conditions. Win32 TextArea's no longer "jump around" during undo's Removed multi-threaded operations to avoid rare, yet possible, crashes. Updated documentation accordingly. Fixed UpdateUndoStateNow to clear any pending redo's Fixed a glitch in the contacts list demo Moved everything into one Module for ease of use. CustomUndo interface is now TheBigUndo_CustomUndo interface. Added documentation to methods inside TheBigUndo module. Fixed a possible Cocoa crashing bug with control.handle. TheBigUndo.Init now blocks from being called from multiple locations. RadioButtons now undo as groups rather than individual controls. Now handles multibyte characters properly. TextAreas and TextFields now select text added in an undo or redo action. Added AddUndoMenuToMenuBar(theMenuBar) for use with multiple menubar apps. Added SetsContentChangedFlags property to control setting the ContentsChanged flag for windows with available Undo's Added an XML extension to the window class. Allows getting and setting window state to and from XML. Added a ClearUndos flag to XML setter to allow users to back out of a "Default Settings" action. ie Preferences Windows. Added "View"/"Window as XML" menu to the demo project. Added Window.SimpleDictionary for easy (and multithreaded) access to TheBigUndo_PreferenceWindow values. Added an internal Cocoa Wrapper class to eliminate some memory leaks. Added default ListBox Undo handling. ContactsDemo now uses default Listbox Undo's. Added Window.SavedState property to allow specifying a state where a window's ContentChanged will be false 1.0.0b3: CustomUndo now works again. Fixed a situation that could cause container controls to not record undo's Removes all references to controls in closed windows Now completely ignores all non-undoable controls Demo now sets IgnoreUndos in the main demo window Demo now sets MonitorFrontWindowOnly Demo now calls PauseUndoChecking on deactivate and ResumeUndoChecking on activate Added a throttle to increase checking delay in cpu heavy controls Calling Window.UpdateUndoStateNow now works as intended again Improved initial state capture for newly opened windows Reworked some other state tracking during undo's for more reliability and speed Reduced CPU usage some more. Minor edits to documentation. 1.0.0b2: Updated documentation for CustomUndo Interface. Now ignores textfields where password=true Fixed a delay when calling control.DeleteUndos() Changed CustomUndo Function names to begin with CustomUndo_ Fixed a crashing bug under Cocoa. controlMacControlHandleGetter Added a more in depth Custom TextArea example. 1.0.0b1: Initial beta release