9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: david jeannot <djeannot24@gmail.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] plan9port: cocoa programmer needed
Date: Tue, 13 Sep 2011 17:59:00 +0200	[thread overview]
Message-ID: <CA+N9rYnUOuYaWOuZ5G-6DC8vgfefDtwCDoS0vmtbY9DZUa+0+w@mail.gmail.com> (raw)
In-Reply-To: <CAK4xykXSD22vORwdT8yajKu5cUym4=Ga4Ywq+iNb3cS19cmpTg@mail.gmail.com>

> So I will send my code in the next few days,
> unless there is a need.

I'm 9 days late, but here it is: the Cocoa version
of Devdraw.  I just submitted it to Codereview:

	http://codereview.appspot.com/5015042

I removed live resizing, because I found no way to
make it perfect: the window now becomes gray while
resizing.


About gestures now.

A swipe gesture needs 3 fingers (with trackpads at
least).  If you want to use them, you must
reconfigure OS X Lion to use 4 fingers instead of
3 (to swipe between spaces, or to swipe to
"Mission Control" for example).

As previously discussed, OS X Lion doesn't send
swipe events anymore for vertical swipes.  So I
reimplemented swipe gestures with lower-level
touch events.  All that I can say is that it works
well with a late 2010 MacBook Air's trackpad.
Unfortunately, it seems only for trackpads: not
for "Magic Mouse".  The higher-level gesture
events seem compatible with "Magic Mouse" (though
I don't know to how many fingers a swipe gesture
corresponds), but the lower-level touch events
seem incompatible (I may be mistaken).

If you want to use the reimplemented swipes, you
have to set the "reimplementswipe" variable at the
beginning of cocoa-screen.m (the file's name may
change soon).

One advantage of this reimplementation is that we
can now detect 3-finger taps.  If you set the
"usecopygesture" variable as well, you have now
the following gestures:

	3-finger swipe-left to cut (cmd+x),
	3-finger swipe-right to paste (cmd+v),
	3-finger swipe-up to copy (cmd+c),
	3-finger swipe-down to execute with arguments (2-1 chord),
	3-finger tap to execute (button 2),
	pinch to toggle fullscreen.

Else you have:

       swipe-left to cut (cmd+x),
       swipe-right to paste (cmd+v),
       swipe-up to execute (button 2),
       swipe-down to execute with arguments (2-1 chord),
       pinch to toggle fullscreen.

In both cases, horizontal swipes cancel each
other if your fingers remain on the device in
between.  That is to say, the second swipe sends
undo (cmd+z): a command only recognized by Acme
currently.  An annoyance is the behavior of Acme's
Undo when we are in the window's tag.  Acme only
seems to undo filename change, else it undoes the
last change in the window's body.  For example, if
you want to copy from the tag, (unless you use the
copy gesture) you will have to lift the fingers
between the left and the right swipe, else it will
undo the window's body, and you will be completely
puzzled.

I wish this announcement will not cause too much
disappointment among "Magic Mouse" users.  I knew
nothing of Mac programming before to begin this
project one month ago, and I certainly generalize
too much.  (I didn't understood what was the
mysterious "multitouch" code in Carbon's Devdraw,
until some days ago, where I fell upon a similar
code to communicate with the "Magic Mouse" here:
http://www.iphonesmartapps.org/aladino/?a=multitouch)


If OS X Lion's users prefer the old fullscreen
mode, they can set the "useoldfullscreen"
variable.

(Currently, Devdraw can't accept arguments, and as
it is so hard to compile anything with current
Xcode 4.1, I didn't try to modify Libdraw.  This
is why you have to set variables instead of using
optional arguments.)


Be sure to read the description on Codereview for
the remaining bugs, to avoid further
disappointment.


If you need binaries running on Lion (Cocoa's
Devdraw, Acme supporting "cmd+z", etc.), I will be
happy to provide them.



  reply	other threads:[~2011-09-13 15:59 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-02 20:31 Russ Cox
2011-08-03  4:25 ` David Leimbach
2011-08-03 12:52   ` Russ Cox
2011-08-07 22:14     ` David Leimbach
2011-08-07 23:59       ` [9fans] " andrey mirtchovski
2011-08-25 18:33     ` david jeannot
2011-08-25 19:09       ` Russ Cox
2011-08-25 20:35       ` David Leimbach
2011-08-26 14:11       ` Russ Cox
2011-08-26 17:05         ` david jeannot
2011-08-27 18:31           ` david jeannot
2011-08-28  2:40             ` Russ Cox
2011-08-28 10:14               ` david jeannot
2011-09-04  9:51                 ` david jeannot
2011-09-06 14:16                   ` Russ Cox
2011-09-06 15:47                     ` David Leimbach
2011-09-06 15:52                     ` Aram Hăvărneanu
2011-09-06 16:03                       ` Russ Cox
2011-09-06 16:25                         ` Aram Hăvărneanu
2011-09-06 18:34                           ` Latchesar Ionkov
2011-09-06 18:54                             ` David Leimbach
2011-09-06 19:18                               ` Latchesar Ionkov
2011-09-06 19:37                                 ` Russ Cox
2011-09-06 19:41                                   ` david jeannot
2011-09-06 19:41                                   ` David Leimbach
2011-09-06 19:42                                     ` David Leimbach
2011-09-06 19:43                                   ` andrey mirtchovski
2011-09-06 19:45                                     ` andrey mirtchovski
2011-09-06 20:17                                       ` david jeannot
2011-09-06 20:23                                       ` andrey mirtchovski
2011-09-13 15:59                                         ` david jeannot [this message]
2011-09-13 17:22                                           ` David Leimbach
2011-09-14 14:29                                           ` Jeff Sickel
2011-09-14 16:40                                             ` david jeannot
2011-09-14 16:57                                               ` hiro
2011-09-14 17:17                                           ` John Floren
2011-09-14 17:23                                             ` andrey mirtchovski
2011-09-14 17:28                                               ` David Leimbach
2011-09-14 17:31                                                 ` ron minnich
2011-09-14 17:34                                                   ` David Leimbach
2011-09-14 17:48                                                   ` andrey mirtchovski
2011-09-14 18:10                                                     ` david jeannot
2011-09-14 19:29                                                       ` david jeannot
2011-09-14 22:34                                                         ` david jeannot
2011-09-14 23:20                                                           ` hiro
2011-09-06 16:26                         ` Jeff Sickel
2011-09-06 17:21                           ` David Leimbach
2011-08-26 16:56       ` Salman Aljammaz
2011-08-26  8:53     ` Steve McCoy
2011-08-03 18:01 ` Jeff Sickel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CA+N9rYnUOuYaWOuZ5G-6DC8vgfefDtwCDoS0vmtbY9DZUa+0+w@mail.gmail.com \
    --to=djeannot24@gmail.com \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).