Make it easier to create new int/float attribute types
Submitted by ton..@..un.com
Link to original bug (#116115)
Description
Pango has a number of 'visible' PangoAttribute types -- language, family, style, variant, foreground, background, etc. -- that are each effectively a child type of a more generic, but 'invisible', PangoAttribute type -- string, language, color, fontdesc, etc. Each of these generic types has associated _new(), _copy(), _destroy(), and _equal() functions.
While an application that uses Pango uses pango_attr_foreground_new(), etc., those functions call pango_attr_color_new(), etc.
Pango supports registering new attribute types with pango_attr_type_register(). However, an application or a Pango variant that registers new attribute types doesn't have access to the _new(), _copy(), _destroy(), and _equal() functions for the generic PangoAttribute types that underlie the visible PangoAttribute types because those functions are currently 'static'.
The _new(), _copy(), _destroy(), and _equal() functions for the generic PangoAttribute types should not be static and should have their prototypes in a new pango-attributes-private.h so registered PangoAttribute types can be built from the generic PangoAttribute types.
Version: 1.2.x