aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-extension.c
Commit message (Collapse)AuthorAgeFilesLines
* Coding style and whitespace cleanup.Matthew Barnes2011-03-061-1/+2
|
* Bug #614480 - Avoid using G_TYPE_INSTANCE_GET_PRIVATE repeatedlyMilan Crha2011-02-251-6/+2
|
* Remove NULL checks for GObject methods.Matthew Barnes2011-02-131-12/+0
| | | | | As of GLib 2.28 all GObject virtual methods, including constructed(), are safe to chain up to unconditionally. Remove unnecessary checks.
* Free/busy meeting view doesn't work due to non-working extensionMilan Crha2010-12-061-0/+3
|
* GObject boilerplate cleanup.Matthew Barnes2010-08-251-1/+4
| | | | | | | Prefer thread-safe G_DEFINE_TYPE and G_DEFINE_INTERFACE macros over manual GType registration. This is just a start... lots more to do.
* Document EExtensible and EExtension.Matthew Barnes2010-03-221-0/+31
| | | | | | The mechanism here is simple but hard to explain without leaning heavily on object-oriented jargon. Consider this a rough draft. Illustrations would certainly help clarify.
* Introduce a simple extension system for objects.Matthew Barnes2010-03-201-0/+160
This introduces a simple means of extending Evolution objects. Any GObject subclass wishing to be extensible need only call g_type_add_interface_static (type, E_TYPE_EXTENSIBLE, NULL); when registering its GType, and then at some point during initialization call e_extensible_load_extensions() to load extensions for that subclass. Extensions are implemented by subclassing EExtension, setting the GType being extended in EExtensionClass, and making sure its own GType gets registered at startup. This usually done while loading a GTypeModule. e_extension_get_extensible() provides extensions access to the object being extended.