Hi all, just a quick status update about my massive refactorisation of the StdProp code. I've added features and features to Jame's code, and I finally added so much I made a mess out of his work. Enough was enough, so I've made a major split of what used to be in properties.c. I've attached here a patch against CVS which shows where I am. Basically, this compiles, and I can edit the properties of a standard rectangle (that's all I've tried for the moment). I expect this to break and crash a bit... I don't expect it to fail compilation under Win32 (I've finally followed the "registry" approach). I had to disable the construction of some plug-ins, but I'll fix that before I commit, hopefully in a few days. Also, I think I'm going to merge my libxml2/libxml2-in-libxml1 branch into the CVS tree ; it works very well for me, and nobody out of the singleton who downloaded it complained. While I'm at it, I may introduce xml-i18n-tools to the build process as well; with UTF-8 capability at the sheet level provided by libxml2, this'll probably help solve the lack of translations problem. Back to the stdprop overhaul, here is the provisional changelog entry: * lib/properties.[ch]: split in a lot of pieces: * lib/prop_*.[ch] (NEW): all property types are now first-class objects, inheriting from the original abstract Property type. * lib/propdesc.c (NEW): property description handling routines * lib/propoffsets.c (NEW): property offset handling routines * lib/proplist.c (NEW): property list handling routines * lib/propobject.c (NEW): property list <-> object routines * lib/propregistry.c (NEW): holds the PropertyType-->PropertyOps relations. * lib/propinternals.h: prototypes for stuff not usually needed by the outside of StdProps. * lib/Makefile.am: a lot of new files have been added... THE ABOVE CHANGES ARE MAJOR CHANGES AND AFFECT THE WHOLE TREE, IN BOTH INTERFACES AND RUN-TIME STABILITY. * objects/Makefile.am: disabled the construction of EML. I'm not touching these until a certain issue is solved (or this module removed). * app/app_procs.c/app_init(): removed a disabled call to a non-existent routine. Added a call to stdprops_init(). * app/group.c: * objects/**/*.c: adapted all stdprop-using objects to the interface changes. * app/commands.c: The macros PROP_VALUE_* have disappeared. Adapter to using the new interface. * app/disp_callbacks.c: killed a warning. * lib/dia_xml.[ch]: sprinkled "const" modifiers. * lib/object.h: removed the incestuous relationship with properties.h' contents. Now a Property list is a GPtrArray --> object interface change ! * lib/plug-ins.h: bumped up DIA_PLUGIN_API_VERSION * configure.in: added the UNICODE-related progress defines. * plug-ins/dxf/dxf-import.c: * plug-ins/xfig/xfig-import.c: * plug-ins/Makefile.am: PROP_VALUE_* macros have been removed. A *partial* convertion to the new API has been made, but this is still unfinished. In the mean-time, the DXF, XFig, and Python plug-ins have been disabled (it's really only temporary). -- Cyrille -- Grumpf.
Attachment:
dia-newprops.patch.gz
Description: Binary data