[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Denemo-devel] CusorInSelection?
From: |
Richard Shann |
Subject: |
Re: [Denemo-devel] CusorInSelection? |
Date: |
Sun, 28 Nov 2010 11:35:08 +0000 |
d-IsInSelection will be in git once git.savannah.gnu.org is back up and
I am back online.
Richard
On Sun, 2010-11-28 at 00:25 +0100, Nils Gey wrote:
> It is not possible with Scheme alone to test if the cursor is in the
> selection or not in 100% of the cases:
>
> My method in Scheme is roughly this:
>
> ;;;Start
> (define (selection::CursorInSelection?) ; Tells if the cursor is in a
> selection or in an appending position to an ended selection
> (d-PushPosition)
> (d-MoveCursorRight) ; Just go a step right to get into position.
> (if (d-PrevSelectedObject) ;
> (begin (d-PopPosition) #t) ; found note, we are in a
> selection
> (begin (d-PopPosition) #f) ; found no note, no selection
> )
> )
> ;;;;End
>
> Basically I try to get into a position where I can be sure that either
> (d-NextSelectedObject) or (d-PrevSelectedObject) works. However this leads to
> obvious problems on StaffBeginning or StaffEnd. The method above has no
> problem with StaffBeginnings because it looks backwards. The other way around
> has no problem with Endings.
>
> But in case of a single selected note, alone in the whole staff, it will
> fail. Because you cannot go left or right anymore.
> Well, technically you can move the cursor right and you will be in the
> appending position. Indeed this one is even available if you are at the end
> of a staff. But for d-PrevSelectedObject (and many other Denemo functions)
> Appending and the Object left to appending is the same thing. If you do
> Prev[Selected]Object you will not go to the object left/right but to the one
> next after. Which is not there for a single note. qed
>
> Since so many scripts (I think the majority of scripts which do not use
> d-GetType as test) use that Appending and the Object left to appending are
> the same thing I think this calls for a C Solution.
>
> greetings,
> Nils
>
> _______________________________________________
> Denemo-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/denemo-devel