summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJosé Alburquerque <jaalburqu@svn.gnome.org>2013-04-25 00:18:50 -0400
committerJosé Alburquerque <jaalburqu@svn.gnome.org>2013-04-25 00:18:50 -0400
commita88d2341144533ac698432b48f85b72642c0362e (patch)
treed35d8b53fe1b2bd2503428ca1804189b47736dab /ChangeLog
parent0cc347ec414d92d41f28c4d3e6889cef6951e923 (diff)
downloadglibmm-a88d2341144533ac698432b48f85b72642c0362e.tar.gz
Fix the ChangeLog file.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog44
1 files changed, 44 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e3dcdf4a..0888ff6c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,50 @@
* gio/src/settings.hg:
+2013-04-25 José Alburquerque <jaalburquerque@gmail.com>
+
+ Implement derived interface properties in the present.
+
+ * glib/glibmm/class.cc (Class::properties_quark): Initialize this
+ GQuark which is used to store/get the data used for setting and
+ getting the properties of the interfaces that a custom type overrides.
+ (Class::interface_finalize_function): Add this function which
+ once invoked frees the property data stored as qata in the GType and
+ allocated/appended to in the Glib::Interface constructor below.
+ * glib/glibmm/class.h: Declare the interface_finalize_function above.
+ Also declare the quark used to store/get the property data and the
+ typedef data type of the property data.
+
+ * glib/glibmm/interface.cc (Interface_Class::add_interface): Specify a
+ custom interface finalize function when adding the interface so that
+ the resources allocated for handling the derived interface properties
+ can be freed if the type is a custom interface type.
+ (Interface::Interface(const Interface_Class&)): Modify the constructor
+ so that when dealing with a custom interface type, it gets a list of
+ the properties of the interface to be added and overrides these by
+ appending appropriate GValues to the data used to handle
+ getting/setting properties that is stored as qdata in the GType. The
+ constructor uses g_param_spec_overrided() to override the properties
+ of the implemented interface and g_object_install_property() to
+ install the properties.
+
+ * glib/glibmm/property.cc (PropertyBase::install_property): Rewrite
+ this method so that the acquired generated id's of custom implemented
+ properties does not collide with the id's of properties of implemented
+ interfaces that have been overridden in a custom type. This is done
+ by offsetting the acquired generated id (by addition) with the number
+ of already existing properties (the ones that have been overridden).
+ (custom_get_property_callback): Rewrite this function (which gets
+ properties for custom types) so that if the property id is less than
+ or equal to the number of overridden interface properties (which would
+ mean that an overridden interface property should be gotten) the
+ correct overridden interface property is gotten. Otherwise, a custom
+ property should be retrieved, in which case the id is offset (by
+ subtraction) when the PropertyBase is retrieved from the id which
+ would ensure getting the correct PropertyBase.
+ (custom_set_property_callback): Rewrite this function as the above
+ custom_get_property_callback was rewritten.
+
2013-04-18 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Glib::Source: Fix the destruction and deletion.