2007-01-10 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.4.1 =====

  Improved documentation a bit

  Renamed xml_*_factory() methods to xml_*_factory_create()

  Moved idioskopos.h to header include root directory

  Added an optional changed signal callback slot to constructors.

  Changed ordering of constructors from container, name, value to
  name, value, container to avoid template issues with new callback
  slots.
  

2006-12-08 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.4.0 =====

  Removed the is_property(), is_introspectable() and size() virtual methods
  from all classes that descend from Object, which is almost everything.

  Object: Created a custom iterator that allows iterating through array
  properties as well as introspectable objects.

  Object: Added a template set_value() method that calls the virtual
  set_value() method

  Object: Changed properties_size() to num_properties()

  Object: Changed the next_property() and previous_property() virtual methods
  to work with the new iterator.

  PropertyBase: Added support for iterating over elements in vector and array
  properties (with the exception of vector<bool>)

2006-12-02 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.3.3 =====

  WriteOnlyPropertyBase: fix overloaded set_element (size_t caused problems
  on i386)

2006-12-01 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.3.2 =====

  idioskopos.pc.in incorrectly stated GPL, should be LGPL

  Cleaned up the .spec generation file thanks to feedback from Mamoru Tasaka

  Factory: Changed registration parameter from function pointer to sigc++ slot

  Factory: Added default create_object() method to registration macros

  Factory: Added IDIOSKOPOS_OBJECT_NAME_SLOT_AND_REGISTRAR macro to provide a
  way to easily register a class with a name different from the actual class 
  name.

  Factory: Cleaned up the basic type registration macros

  Factory: Added arrays and vectors to the factory XML DTD

  Factory: Added support for dynamically recreating vector properties
  
  WriteOnlyPropertyBase: Changed protected get_value() method to non-const

  WriteOnlyPropertyBase: Added template specializations for std::vector and 
  std::tr1::array (or boost::array) property types.

  PropertyBase: Added template specializations for std::vector and 
  std::tr1::array (or boost::array) property types.

  ReadOnlyPropertyBase: Added template specializations for std::vector and 
  std::tr1::array (or boost::array) property types.

2006-11-25 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.3.1 =====

  Added registration macro that accepts a registration name different from class name

  Added xml_dtd() to return DTD for Idioskopos XML

  Introspectable: Changed is_property(string_name) to has_property(string_name)

  Introspectable: Added signal_property_added()

  Introspectable: Added signal_property_removed()

  Introspectable: Changed default separator to . from :

  Object: Added is_introspectable() and is_property() methods
  

2006-11-19 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.3.0 =====

  Added factory methods for dynamically creating registered types from an xml string.

  Added dependency on libxml++ (and indirectly a dependency on glibmm).

  With dependency on glibmm added, moved from std::string to Glib::ustring to support
  unicode characters.

  Object: Replaced xmlstring() with xml() and added indention formatting option.

  Object: Replaced valuestring() with value().

  Object: Added set_value() to set value from a string.

  Object: Added set_xml() to set object name, values, etc. from an xml string or
          libxml++ node.

  Object: Removed custom property iterator and replaced with std::set iterator.

  Object: Added IDIOSKOPOS_OBJECT macro to make definition of virtual class name
          method easier.

  Object: Added IDIOSKOPOS_OBJECT_WITH_REGISTRAR and IDIOSKOPOS_REGISTRAR macros
          to make registration of classes for dynamic creation easier.

  Object: Added signal_name_changed().

  Object: Replaced signal_changed() with signal_value_changed().

  Object: Moved concept of property name into the Object class, rather than the
          Introspectable containers.

  Introspectable: Added create() methods.

  Introspectable: Removed create_property() methods, since Property* now have create() methods.

  Introspectable: Added signal_property_name_changed() to notify of name changes to contained
                  properties.

  Introspectable: Replaced signal_property_changed() with signal_property_value_changed().

  PropertyBase: Removed virtual interitance from ReadOnlyPropertyBase and WriteOnlyPropertyBase.

  ReadOnlyPropertyBase: Changed get accessor to return const reference to, rather than copy of
                        value.

  ReadOnlyProperty: Added create methods.

  WriteOnlyProperty: Added create methods.

  WriteOnlyProperty: Added signal emits when value is changed.

  Property: Added create methods.

  Property: Added signal emits when value is changed.

  ReadOnlyReferenceProperty: Changed parent to ReadOnlyPropertyBase from ReadOnlyProperty

  ReadOnlyReferenceProperty: Added create methods.

  WriteOnlyReferenceProperty: Changed parent to WriteOnlyPropertyBase from WriteOnlyProperty

  WriteOnlyReferenceProperty: Added create methods.

  WriteOnlyReferenceProperty: Added signal emits when value is changed.

  ReferenceProperty: Changed parent to PropertyBase from Property

  ReferenceProperty: Added create methods.

  ReferenceProperty: Added signal emits when value is changed.

  Added xml stringification template functions.

  ReadOnlyVirtualProperty: Changed parent to ReadOnlyPropertyBase from ReadOnlyProperty

  ReadOnlyVirtualProperty: Added create methods.

  WriteOnlyVirtualProperty: Changed parent to WriteOnlyPropertyBase from WriteOnlyProperty

  WriteOnlyVirtualProperty: Added create methods.

  WriteOnlyVirtualProperty: Added signal emits when value is changed.

  VirtualProperty: Changed parent to PropertyBase from Property

  VirtualProperty: Added create methods.

  VirtualProperty: Added signal emits when value is changed.

2006-11-15 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.2.1 =====

  configure now looks for either boost smart pointers or tr1 smart pointers

2006-05-21 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.2.0 =====

  Updated examples to reflect new Property hierarchy

  virtual.cpp: Added an example of how to use virtual properties.

  Removed the PropertyReference, PropertyReadOnly and PropertyWriteOnly classes
  and replaced with a better hierarchy of Property, ReferenceProperty and 
  VirtualProperty classes.

  WriteOnlyPropertyBase: Pure virtual class that replaces the removed 
  PropertyWriteOnly class to provide a write only interface.

  VirtualProperty, ReadOnlyVirtualProperty, WriteOnlyVirtualProperty: New class
  representing a virtual property which is a property that does not have an 
  internal storage mechanism. Instead it relies on a defined set of accessor 
  methods.

  utility_stream.h: Moved the sstream include here instead of its original 
  location in propertyreadonly.h

  ReferenceProperty, ReadOnlyReferenceProperty, WriteOnlyReferenceProperty: 
  Fills the previous role of PropertyReference et. al.

  ReadOnlyPropertyBase: Fills the general role of the remove PropertyReadOnly 
  in that it provides a read only interface. Children must implement storage 
  mechanisms.

  Property, WriteOnlyProperty, ReadOnlyProperty: New structure with previous 
  semantics; properties with direct storage of contained value.

  PropertyBase: New class is parent of all properties providing a common access
  interface inherited from ReadOnlyPropertyBase and WriteOnlyPropertyBase

  Introspectable: Return values from property methods are now PropertyBase 
  instead of Property

2006-03-27 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.14 =====

  Added example with Introspectable and Property signals.

  Introspectable now has signal_property_changed available.

2006-03-26 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.13 =====

  Introspectable property iterators are now STL bi-directional iterators.

2006-03-12 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.12 =====

  Major changes to reference properties to fit into the new property hierarchy 
  with read/write separation.

  Renamed PropertyBase to Object to better reflect its new role with the new 
  ReadProperty/WriteProperty separation.

2006-03-11 Rick L Vinyard Jr <rvinyard@ryleh.local>

  Separated Property into a permissions hierarchy that has two branches, 
  ReadProperty and WriteProperty, with Property multiply inheriting from both.

2006-03-09 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.11 =====

  Added example demonstrating how to iterate through properties.

  Property: Added documentation

  Renamed PropertyRef to ReferenceProperty

  Introspectable and PropertyBase: Major changes in structure and 
  introspection. The concept of iterators was added to PropertyBase along 
  with property access via the array index [ ] operator.

2006-03-07 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  Automake cleanup; docs cleanup.

2006-03-05 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.10 =====

  Small bugfix in 'simple' example.

2006-03-04 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.9 =====

  Long overdue cleanup of configure.in et. al.

  Docs now install into $prefix/share/doc/{package}-{version}.

  Separate doc rpm consolidated into devel rpm.

2006-03-03 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.8 =====

  This is a cleanup release. autoconf needed a little more voodoo than a 
  regular AC_CHECK_HEADERS call to properly. Also, added docs package to .spec 
  file to create separate doc rpm.

2006-02-28 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.7 =====

  This is mainly a documentation and cleanup release. automake will now install
  a local copy of the documentation, and several cleanups were made to 
  configure.in and the spec file.

2006-02-21 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.6 =====

  Eliminated dependency on boost library by removing references to 
  boost::shared_ptr and replacing with std::tr1::shared_ptr.

2006-02-21 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.5 =====

  Property template: eliminated property class specializations by making 
  arithmetic assignment operators template based so that templates are only 
  generated when arithmetic assignment is performed, also allowing for 
  compile-time type checking. Also moved xmlstring() and valuestring() outside 
  through template function specializations, thus completely eliminating the 
  need for specialized Property classes.

2006-02-18 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  Moved object.h and object.cpp to introspectable.h and introspectable.cpp so 
  that file names reflect new class names.

2006-02-17 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.4 =====

  Added virtual method valuestring() to return value as character string

  Changed Object to Introspectable; better reflects purpose of class

2006-02-12 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.3 =====

  Some more minor bug fixes

2006-02-12 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  ===== 0.1.2 =====

  simple example: Added a Simple class, illustrating the addition of an 
  introspectable object as a property of another introspectable object.

  Object: Fixed missing constructor allowing Objects to be instantiated using a
  syntax similar to properties.

  Added comparison operators for strings and numeric types. Added mathematical 
  operators for numerics, including modulus for integrals.

2006-02-10 Rick L Vinyard Jr <rvinyard@cs.nmsu.edu>
  0.1.1 Ahh, the annoyances of minor name changes. Fixed a changed include 
  header in example.

  1.1.1 Really, last commits before release. Found two places where size (a 
  pure virtual in parent PropertyBase) wasn't implmented in a child that was 
  meant to be instantiable.

  0.1.1 Final commits

  Change namespace from idioskopos to Idioskopos to better reflect other 
  namespace conventions I've been using.  Also, change typedef to smart pointer
  inside classes from 'sptr' to simply 'pointer'.

