[ANN] Massive StdProp overhaul



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.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]