-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I've pushed a branch containing patches that apply on top of
b86ffc45f699781c220153e2390a54f8b823a930 that make PICTURE an opaque
type.  You can get it from branch berndj/opaque-objects at
git://repo.or.cz/srv/git/geda-gaf/berndj.git

For your convenience I've rebased this set from a branch rooted at an
older revision in master, but it also meant I ran into repeated
conflicts on teh two o_picture.c that have been reworked since I
started.

Please pay particular attention to
f187be05008b1aac6014d726e78862e1d062883a as it was quite hard to figure
out how to resolve the conflict properly.

commit 7194282f61d9e66fc92358a3a50c1298798ca271
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 03:07:32 2008 +0200

    Hide the definition of the PICTURE struct from client code.
    
    Finally, this patch turns PICTURE into an opaque type, which should
    make it easier to change the object's implementation without having
    to touch all its users.

commit e87198e279d72bec40bf20f17d4f742d54daa728
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 02:54:07 2008 +0200

    Get picture outline by calling world_get_picture_bounds().
    
    Again, fixing some LoD violations.

commit 8af46d9843e80d79c25783cc1e159266478174cd
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 02:38:10 2008 +0200

    Destroy picture state objects through a new instance method.
    
    s_delete() needs to destroy state objects (the LINE, PICTURE, etc.
    inside OBJECT), but doing so directly violates the Law of Demeter.
    Instead we delegate to a new method belonging to the object itself,
    which is entitled to poke its internals.

commit 3e8398c873a3f799fe16706e2fc037d76690a571
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 02:26:45 2008 +0200

    Add header to pick up INT_MIN and INT_MAX.

commit dc624f6db53d8aed6b3f92059e204c08772c59ce
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 02:16:58 2008 +0200

    Use o_picture_make_drawable() instead of groping the picture internals.

commit f187be05008b1aac6014d726e78862e1d062883a
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 02:03:33 2008 +0200

    Use o_picture_set() instead of groping the picture's internals.
    
    Grr, huge conflicts in o_picture_exchange().  I hope I resolved them
    without breaking anything.  Please check!

commit 373a52a468e342c6c1bfdf838e79c9a2b66d1fdc
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 01:56:02 2008 +0200

    Use simple picture object accessors instead of groping into the internals.

commit 4dbffbf135e3c45ed45fd432df9ba930719a9a4a
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 01:16:53 2008 +0200

    Provide accessor functions for picture properties.

commit 376c40f717195db7dd6a56cde889966e31739dc7
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 01:00:38 2008 +0200

    Find arc and circle grips with the grip iterator.

commit ea9305cf4776c3bd2aec6cd54dcc31bd3812bf19
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 00:58:46 2008 +0200

    Add more grip types.

commit 9d9d58fbce61afcfd37ae886b12c69657f176566
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 00:57:26 2008 +0200

    Document the effect of moving each grip.
    
    The documentation was elsewhere far away.  Moving it closer to the
    arc moving code mitigates the "action at a distance" antipattern.

commit d15ece20a5990b79003598567b1d8b892e533a2f
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 00:08:08 2008 +0200

    Constify grip list pointer argument.

commit e1707a783af8c61b0853f3d285b9294e8560e761
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 23:47:00 2008 +0200

    Use s_basic_grip_foreach_help() to traverse the list of grips.

commit 315d9dfe18e69397e732ff3a89e42f59442138e3
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 23:46:13 2008 +0200

    New helper function for grip iterators.

commit b18e7b7952f0303b263c910e54f2f9e94cca4f26
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 23:27:34 2008 +0200

    Find line, net, bus, pin, and picture grips with the grip iterator.

commit a6b675b5082a4586a0917734e63d274430d69a86
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 22:14:22 2008 +0200

    Use o_line_grip_foreach() as the grip iterator for nets, buses and pins.

commit 6a311eeb11e657add31ea3722f13f9808c5bc24f
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 22:10:30 2008 +0200

    Expose o_line_grip_foreach() for other line-like objects.
    
    Lines, nets, buses and pins all share the same state object, a
    struct st_line a.k.a. LINE.  We want to re-use the grip iterator.

commit ec4bb40d4dda15ea06d3e2dfd2c81692685c8d93
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 22:04:00 2008 +0200

    Use s_basic_get_grip() to get line grips.

commit c6ae5f8eeac1cd89e25d33db752428507f9d7478
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 22:03:37 2008 +0200

    Implement the grip_foreach_func() method for lines.

commit 006cc607a72e0c9136e52b68dc1ae459f71f9b1a
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 21:29:14 2008 +0200

    Use s_basic_get_grip to get picture grips.

commit b40f1c8f0e6e00f8642fcafa337d32b3dab89523
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 21:28:43 2008 +0200

    Declare prototype for s_basic_get_grip().

commit 5da2667d0b3d8c3c88a5b6f1913756a616dc718f
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 21:07:42 2008 +0200

    s_basic_get_grip(): Delegate grip lookup to an object method.

commit 233811c96455d40734b06dfa469ac9553432b808
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 02:35:26 2008 +0200

    Use the grip_foreach_func interface to draw and erase picture grips.

commit ab0484492058fec6384a1314ba10214f511ecde8
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 02:32:46 2008 +0200

    Use the grip_foreach_func interface to find grips on a picture.

commit 2bccb1e0f5c9b84ab83702a5ea2d1e280f632b12
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 02:30:52 2008 +0200

    Implement the OBJECT::grip_foreach_func() interface.
    
    Pictures have grips at the four corners of their extents.  Expose
    these special locations to client code.

commit f77b46b99969c00977e09aafe12eae28607f0627
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 02:27:39 2008 +0200

    Define OBJECT::grip_foreach_func but don't use it yet.
    
    This new instance method will let objects publish their grips
    without client code having to know anything about the object's
    representation.

commit 224666b4f7b37f624bffa1b554ad4caaed16936e
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 02:03:08 2008 +0200

    Initialize embed_func to NULL.
    
    This would cause a crash if one tried to embed or unembed anything
    other than a COMPLEX or a PICTURE.  Luckily the menu callbacks in
    gschem have their own check.

commit 20cc772ca72aed03a995628b6862637cd2e00eb6
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 11 01:52:22 2008 +0200

    Delegate embedding and unembedding to an instance method.
    
    o_picture_mark_embed() and o_complex_embed() implement the method to
    mark their respective objects embedded or unembedded.  This removes
    incestuous code from o_embed.c.

commit 02962e6a6eaf4e96ecd8af02a39c3a4f80943412
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 10 02:57:31 2008 +0200

    New enumerated type for identifying grips.

commit 7a582bc21f4f628fcf2d05e7c28d0d3377e8b7b6
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 9 02:04:16 2008 +0200

    Split object allocation from its initialization.
    
    s_basic_init_object() now only initializes an object.  It is up to the
    object factory to allocate as much memory as it knows the object (which
    could be a derived class) really needs.  Add a helper function,
    s_toplevel_new_object() that wraps the calls to the factory and to
    s_basic_init_object().
    
    [For "object factory", read: s_toplevel_new_object().  A real (abstract)
    factory is too controversial to advocate for the mainstream code.]

commit b06f42556599dae3caa0aac8708d01d11a2a62cd
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 12 03:26:38 2008 +0200

    s_basic_init_object(): Set OBJECT type according to new parameter.

commit ed301072e2075bbe475be2c3624b10b610c1ace4
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Nov 9 01:39:03 2007 +0200

    s_basic_init_object(): Constify argument.

commit 0b6f502935c7e058f1744102f966ba1aa594824b
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Nov 9 01:15:14 2007 +0200

    Add header guard.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFIeCge7sfNFNW4BEwRAlPzAJwOxKCFRGWGcK/XQFAZvnFMpToWPACeJ1pB
UZ6lOkL1g/Nvdeu3v2HmXng=
=0tn5
-----END PGP SIGNATURE-----


_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to