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

At git+ssh://repo.or.cz/srv/git/geda-gaf/berndj.git on branch
berndj/opaque-objects-20080712 I have the following commits.

I'm almost done making all OBJECT states (struct st_arc et al) opaque
types.  Lines (nets, pins, buses and plain old lines) have been the
hardest work so far.  I'm hoping to use the abstracted grip interfaces
(s_basic_get_grip and s_basic_move_grip, primarily) to add polygons
after I'm done with the opaquefying.

I'm struggling to resolve conflicts with recent patches to master.  Not
sure if it's worth spending much energy on that.

[snip some cherry-picks from master]

commit c4be298cd6a41139468963df80e3139e58a5ce16
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 03:52:27 2008 +0200

    Rewrite s_conn_update_object() as an apostate wrt struct st_line members.
    
    It's better to get the grips with s_basic_get_grip() and to compare them
    with other points using s_basic_search_grips_exact().  Also use
    o_line_subset_p() as a cleaner interface to determine connectivity.
    (The latter will later allow for connecting diagonal lines.)

commit 730bfb63c8a888aebb9e9e482c9114bfdbc3ecf8
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 03:45:32 2008 +0200

    Reorganize o_net_add_busrippers().
    
    Use s_basic_get_grip() to get the endpoints of connected nets into
    an array that we index by whether the grip we want is the 'whichone'
    or the 'otherone'.  Keep the bus endpoints in a similar array.  Use
    s_basic_move_grip() to make room for the busripper.

commit 6839e31ab7019a5416f787c4fa8e5c552ce39d5a
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 03:40:37 2008 +0200

    Use s_basic_get_grip() instead of peeking struct st_line.
    
    We keep the two endpoints in a 2-array, indexed by whether the grip
    we want is the 'whichone' or the 'otherone'.

commit 813035a553d2085cc21fcb15b6ddb77920498d95
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 03:24:20 2008 +0200

    Use s_basic_search_grips_exact() instead of ad-hoc struct st_line peeking.

commit 44db2e990ac004b55029999c0de9259eb6cb4aae
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 01:41:27 2008 +0200

    Revert "Accept only points inside the interval of the line as being a 
subset."
    
    This reverts commit 2ea2c821261846acbefb539795dba0a803450d79.

commit 562e8914aef7b68a8ca5154ed75bc1a8c5b24328
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 01:26:41 2008 +0200

    Map file format magic numbers into grip constants.

commit 34d23368b6503caf854b6a23d9552f0d5cde6098
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 01:26:00 2008 +0200

    Use grip constants instead of magic numbers.

commit 170e643314cf72ff5ce9bf760e7e3528c8563396
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 00:13:08 2008 +0200

    Use grip accessors instead of ad-hoc peeking and poking into struct st_line.
    
    These are some more trivial conversions of the form
      x = o_current->line->x[whichone];
      y = o_current->line->y[whichone];
    to
      s_basic_get_grip(o_current, whichone, &x, &y);

commit 861aca18bd86db472f131320e6b7b4b557c999fc
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 00:09:34 2008 +0200

    Use s_basic_search_grips_exact() instead of ad-hoc struct st_line peeking.

commit abf3a0cba5e4283176096fb14d34899ec1113656
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Aug 1 00:06:00 2008 +0200

    Use s_basic_get_grip() instead of ad-hoc peeking into struct st_line.
    
    These are the more trivial conversions to s_basic_get_grip() of the form
      x = o_current->line->x[whichone];
      y = o_current->line->y[whichone];
    to
      s_basic_get_grip(o_current, whichone, &x, &y);

commit 27599fe67723b7b74c865bea1454f797234feaa7
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 31 23:42:42 2008 +0200

    Teach line-like objects to move their own grips.

commit 239bc977fb03fe0bbe2c3b84025ae99b0c13641b
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 31 23:41:11 2008 +0200

    Re-use function parameters instead of peeking struct st_line members.

commit 8166369b5ac5b9eb62ae52f519d8f875f8805780
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 31 23:21:54 2008 +0200

    Warn when an object has not grip_move_func.  Signal failure properly.
    
    grip_move_func methods should return the target grip constant if the
    requested move fails.  The metaphor is to retry the operation.

commit 242f7e84ed53c2cd722e9de7efafad52ca75a936
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 31 23:19:59 2008 +0200

    Fix different levels of indirection.

commit c260f20316ef45e244788a4200228c37f3b2b56f
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 31 01:13:35 2008 +0200

    s_basic_search_grips_exact(): New function.

commit 2ea2c821261846acbefb539795dba0a803450d79
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 31 00:34:07 2008 +0200

    Accept only points inside the interval of the line as being a subset.
    
    s_conn_check_midpoint() works this way, so we continue the tradition.

commit 44fa1c442be5037a1c87b2d5ac994bb1cb824065
Author: Patrick Bernaud <[EMAIL PROTECTED]>
Date:   Fri Jul 25 17:52:28 2008 +0200

    Merge cue undrawing functions for complex and objects.
    
    Merged o_cue_undraw() and o_cue_undraw_complex(). Also added
    documentation.

commit 006fec0233e1656ecff5b6ed8a46ea296f489c31
Author: Patrick Bernaud <[EMAIL PROTECTED]>
Date:   Fri Jul 25 17:52:26 2008 +0200

    Rename o_delete() to o_delete_selected().

commit b494171a297cfd11e5b414c92916aef9b19acb91
Author: Patrick Bernaud <[EMAIL PROTECTED]>
Date:   Fri Jul 25 17:52:25 2008 +0200

    Remove o_complex_delete().
    
    Removed function as s_delete() does the same thing.

commit de3eeb25a5ceedad2f7045c36ef6c4026f32377c
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 30 03:07:19 2008 +0200

    Delete unneeded TOPLEVEL argument.

commit 1383e51a98d1e3938f9c1b755889f7e9fd123778
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 30 01:57:33 2008 +0200

    Control hiding of text on a per-object level.

commit 616dcc03d9fcd34484950abee1032afc3bb4b6e6
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 29 01:34:17 2008 +0200

    Delete unneeded TOPLEVEL argument.

commit 19b161f7e1ca967a15bf254861c77335bbf351b8
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 29 01:25:32 2008 +0200

    Delete unused function.

commit 443db7abde408166d1fdc3c0a445f299ebb3ddda
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 29 01:21:33 2008 +0200

    Make struct st_circle an opaque type.

commit bf979817cdf1766e03898f483efb6251d49338bc
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 29 01:17:47 2008 +0200

    Delete unneeded code.
    
    The object being edited is now changing as the user moves its grips
    around and no longer needs an explicit commit.

commit c0527d97fb005c8ee7d32d859496d0138e182a3e
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 29 01:08:54 2008 +0200

    Deny knowledge of internal structure of CIRCLE.

commit 9b275bd0cf37d6f29526709aae3e87a5bc113d76
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 29 01:05:51 2008 +0200

    Split new circle creation from adding a circle to a drawing.

commit c617ebcab52c6b889f70ef69d131ccb2b4019cb6
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 29 00:47:24 2008 +0200

    Use getter function instead of ad-hoc peeking.

commit 8e87d270d78245b8d81a3460b85f30b931b9b061
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 29 00:45:52 2008 +0200

    o_circle_get_radius(): New getter function.

commit 1f8f8d2076f59118ff0f9a377d92b045fef14cb7
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 29 00:45:34 2008 +0200

    Use a generic grip lookup instead of ad-hoc struct peeking.

commit 6e5c1302700fc0b39a0cab5b95a1fe92a75a14de
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 02:32:47 2008 +0200

    Teach circles how to move their own grips.

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

    Expose a separate grip for the center of a circle.

commit 69ae77d1b0f4d7337a4b29a7c356a666b21a764d
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 02:26:40 2008 +0200

    Delete unnecessary TOPLEVEL argument.

commit 122135aa1fa7382f11aa36b81639aa0e4d3a34ee
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 02:01:54 2008 +0200

    Make struct st_arc an opaque type.

commit 828890bd891614a24310bf086d1538714b6d3d3c
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 01:47:47 2008 +0200

    Add more grip constants that we will need soon.

commit e1a15179a7faf75273c373de6ac799434a8353d3
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 01:45:46 2008 +0200

    Delete unused functions.

commit 5f579332255dea6f19fb0394537161b28c9067df
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 01:44:50 2008 +0200

    Find an arc's center with a generic grip query.

commit c2b6af7da575a273ca1e1260e6147880e8c9be24
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 01:37:09 2008 +0200

    Delete unused dialog.

commit caef119b4beae138b7b913e1797ac7d814255831
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 01:36:47 2008 +0200

    Relative apostasis of internal ARC structure.
    
    Rather create a temporary OBJECT that we promote into the object
    list when the edit finishes, than have lots of ad-hoc temporary
    object drawing code.
    
    Deny knowledge of internal ARC structure and get at its geometry
    via the grips that it advertises.

commit eaddcfcbed3d3657449fe3f577dcb019eed80a63
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 01:16:57 2008 +0200

    Use accessor functions and grip queries instead of groping arc internals.

commit 3e7676e4b8f7c58218fca1f84a6d8ecdfe830399
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 00:59:52 2008 +0200

    Rather use atan2() which is part of the standard math library.
    
    o_arc_calc_angle() was just duplicating what atan2() does.

commit 6a1cee1cb65dd6af818d6463679977a72d53b64c
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 00:57:44 2008 +0200

    Create new arcs with a non-zero sweep angle so they are visible.

commit 308909ca24677a62cb61981fb0a31cf42748726f
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 24 00:56:17 2008 +0200

    Remember that ARC::end_angle is really the sweep angle.

commit edeae97075e8964b7f1e8cf26b602cdd1fa18229
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 23 23:50:33 2008 +0200

    Teach arcs how to move their own grips.

commit ad4ed45449bbefa82f1eab8bed0d3368b874f9a8
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 23 01:04:31 2008 +0200

    Delete unnecessary TOPLEVEL argument.

commit 7dac4fd53bd34c07b6a4b493ba008b11ece4ff58
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 23 00:58:37 2008 +0200

    Recalculate box even when moving pseudo-grip GRIP_NONE.

commit b6b124346ad9f90d7342183535d01def120bb9d0
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 23 00:45:23 2008 +0200

    o_arc_new_at_xy(): New function to create unlinked arc.

commit 72492bf15afbdc0fd2054f1f81fce50ad4f1ca17
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 22 00:08:38 2008 +0200

    Provide accessors for geometrical parameters of arcs.

commit 873121dd1aeb35925754e02efc929e0fb5a7554d
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Mon Jul 21 23:26:01 2008 +0200

    Make error message mention the right function.

commit c2973b9aa0a8a2c982c1c912f005d46e7038e6b5
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 20 00:24:38 2008 +0200

    Delete code with no effect.

commit 2adebe78f736eb61931317972c62b03551bccdc2
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 19 02:26:01 2008 +0200

    Make struct st_box an opaque type.

commit 68001d727be2f68d1f6ea21ce0b0af07700f5909
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 19 02:15:53 2008 +0200

    Deny knowledge of internal structure of BOX objects.

commit 08eea3b02b4f0ddebacad5c66dcca86875b077d2
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sat Jul 19 01:28:20 2008 +0200

    Erase the newly placed attribute before changing its position.
    
    Changing the position first then erasing causes the wrong bounding
    rectangle on the screen to be invalidated.  We need to invalidate the
    bounding rectangle of the *old* position.

commit 4fc9c6b41ec08dd88a06584b260ef1f271c22c97
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 18 02:46:44 2008 +0200

    Relative apostasis of internal BOX structure.
    
    Rather create a temporary OBJECT that we promote into the object
    list when the edit finishes, than have lots of ad-hoc temporary
    object drawing code.
    
    Deny knowledge of internal BOX structure and get at its geometry
    via the grips that it advertises.

commit 5909ccec1c202bd5cceb616e8daea09f74cf979d
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 18 02:45:20 2008 +0200

    Delete unused variables.

commit 8b0ac7d79034d69d0a1cd62643dfcaa68fa8fc74
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 18 02:33:29 2008 +0200

    Propagate world coords of pointer even when they are unused.
    
    It seems obviously right to me to propagate w_x and w_y, even if the
    target object pulls the pointer position out of w_current again, which
    itself is quite evil.

commit 6557c92a8e8f384c0769cbfa347d2e143e617a09
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Fri Jul 18 02:28:17 2008 +0200

    Print and save canonicalized boxes.
    
    Printing and writing to file requires a start point and a positive
    (width,height) pair.  I'm going to anonymize the box grip constants
    soon, and this patch prepares for that.

commit e7ecd5311df646391015c9e289fb9c826927c8b4
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 17 03:42:31 2008 +0200

    Recalculate box bounds after moving grip.

commit 7371465fb23c600ced326bbc89bffb937d77e1dd
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 17 03:39:33 2008 +0200

    Delete unneeded parameter "toplevel".

commit 58ff6cd1ea8410240c9ea15d707c09efbcb941de
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Thu Jul 17 02:49:08 2008 +0200

    Delete code with no effect.
    
    If a pointer is already NULL, there's no point setting it to NULL.

commit 411f730beacc2b80f536600a1d40c30c0bc1279e
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 16 03:03:16 2008 +0200

    Move special handling of GRIP_NONE to s_basic_move_grip().
    
    Handling s_basic_get_grip(o, GRIP_NONE, &x, &y) specially imposes
    arbitrariness on how the object must expose its grips: there would have
    to be a nominated "placement start grip" that appeared first in the list
    passed to s_basic_grip_foreach_helper().
    
    Instead, sequester the arbitrariness in the grip_move_func() handler,
    where the special case (the object's placement state machine's start
    state) can more easily be closer to the other placement states.

commit a95f6162a9c4927cb764c7fa97935417585a1bd7
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 16 02:36:32 2008 +0200

    Document s_basic_get_grip().

commit ac02fe3759a90863b692915dbbec53f040280357
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 16 02:36:11 2008 +0200

    Interpret GRIP_NONE as a request for the placement start grip.

commit 4c4201b7c8231dc27f939af2e331ca70da64ed97
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 16 01:46:40 2008 +0200

    Initialize more properties in o_box_new_at_xy().

commit 2d42959254e10e20ff9ce94128871973af6aa628
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 16 01:43:05 2008 +0200

    o_box_new_at_xy(): New function.

commit e480c34f6f1c9adade513bb34040824bb417b476
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 16 01:07:51 2008 +0200

    grip_move_func(): New instance method.  Implement in boxes.
    
    Boxes have a very simple editing protocol: choose a position and then
    drag out a corner.  Rather start with boxes than with lines; lines have
    more incestuous relationships with the drawing code.

commit 567795db327f799c626ed4cd5c904d30b9a642b2
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 16 01:06:28 2008 +0200

    Remove unused method.
    
    We may want to resurrect it for polygons, otherwise looking up polygon
    grips will be O(n) where it could be O(1).

commit 48de76578b1158ca9d699405002d9beb593816c6
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Wed Jul 16 01:01:53 2008 +0200

    Move GRIP_NONE to the very ent of integer space.
    
    One day there will be polygons which will want to use a zero-based array
    index as their grip cookies.

commit fe17f741eaea4afc98b9c0c1ea738c2d00b282e8
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Tue Jul 15 00:04:37 2008 +0200

    Just return whatever grip the iterator picked.
    
    Now that we get GRIP_ARC_CENTER from libgeda but toss it out in
    gschem, we can delete what is now an identity function coded as
    a big switch statement.

commit fc6b02407cd7170c03fd0dfac70b8bef6d13478b
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Mon Jul 14 22:37:34 2008 +0200

    Expose both GRIP_ARC_RADIUS and GRIP_ARC_CENTER, but ignore the latter.
    
    Rather have libgeda expose all the special places it knows, and let
    gschem choose which ones matter to the user.

commit 02a38493f1836c22a0b20ca934ee81838fd9ad96
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Mon Jul 14 22:00:24 2008 +0200

    Fix the normal to the line's direction.

commit a74514e410a3ad4ff8afa9be36d1952481b02f60
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Mon Jul 14 02:19:15 2008 +0200

    o_line_subset_p(): New function to determine if a point is on a line.

commit 371737d7a55c0e4eba79c3ab64e2b5aeda8af5bb
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 06:50:37 2008 +0200

    Traverse object grips generically when drawing/erasing grips.
    
    Instead of each object's drawing function draw/erase the grips,
    this patch teaches gschem to iterrogate any object through its
    grip iterator for grip locations, at which locations it then draws
    grips.

commit b37e737f23123296449f46be457db2563c0ac46f
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 06:05:21 2008 +0200

    Update comments to reflect reality.

commit fb35d0f05ffb7078312f163fa074c6950af86596
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 05:58:13 2008 +0200

    Fix double world->screen conversion during line rubberbanding.

commit 6911b9cb06198b5a1f22623b376c822e47432e6c
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 04:37:03 2008 +0200

    Provide a more useful default implementation of the grip iterator.
    
    Instead of flagging an error if object states don't provide their own
    grip iterator, just provide one that exposes no grips at all.

commit 94a9e1f064a058bd4c3804ad114509bc67434f16
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 04:34:13 2008 +0200

    Fix mis-merge that introduced out-of-bounds pointer accesses.

commit a42fb14b57032c6a760c069e0fe90b50a28ba6db
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 04:08:15 2008 +0200

    Rather copy the prototype instance's methods.

commit 5917c7cd0ae3ac30b75dd74e9eec14f68867864a
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 04:05:13 2008 +0200

    Delete debug spew.

commit 7a0d94a3f923e8625020b852d8da1a4ecc93a8b4
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 04:02:09 2008 +0200

    Give instance methods to copied pictures.

commit 3866227de9b5440cc066b0ba33f9aba7abcf1132
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 03:54:11 2008 +0200

    Find box grips with the grip iterator.

commit a292d8c44ecb496f2adad9422c21691491613ae7
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 03:51:29 2008 +0200

    Use GRIP_* grip constants throughout for lines.

commit 14edb1ddce2b1fb81afbd5698366ae55015d47b0
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 03:50:00 2008 +0200

    Fix double world->screen conversion during line rubberbanding.

commit fd755dcf93ca5da9635fb586aff2fce579312c4c
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 03:12:03 2008 +0200

    Use GRIP_* grip constants throughout for arcs and circles.

commit e7e662588c151a58719c32912d22fc80ab311f1a
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 02:56:38 2008 +0200

    Prefer type-agnostic GRIP_* grip constants over BOX_* and PICTURE_*.

commit 991d37545a0429300d3cb1f1893438f5ce1d2f90
Author: Bernd Jendrissek <[EMAIL PROTECTED]>
Date:   Sun Jul 13 02:14:09 2008 +0200

    Use G_MININT and G_MAXINT instead of INT_MIN and INT_MAX.
    
    Presumably INT_MIN and INT_MAX aren't available on all platforms
    on which GLib is available.

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)

iD8DBQFIknh+7sfNFNW4BEwRAln3AKDBM7CcANl5Z8zobAjdYyzo7FCKEgCfTQGq
lXyZyTE0WIUgbdyackohKJo=
=7T73
-----END PGP SIGNATURE-----


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

Reply via email to