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
[file was too big for the list's limits. It's here:
http://traminer.dyndns.org/~cyrille/dia/dia-newprops.patch.gz
]
--
Grumpf.