【问题标题】:Detecting absolute finger positions on trackpad检测触控板上的绝对手指位置
【发布时间】:2013-07-15 18:01:13
【问题描述】:

我在13" MacBook Pro (model 7,1. Mid-2010) 上,我最近安装了 Ubuntu 12.04 LTS。本质上,我要做的是制作一个程序,当用户单击 Mac 触控板的右下角时调用右键菜单。

这里的主要问题是检测用户在触控板上的确切位置。当然,这在 OSX 中使用 NSTouch 很容易做到:

- (void)touchesBeganWithEvent:(NSEvent *)event {
    NSSet *touches = [event touchesMatchingPhase:NSTouchPhaseBegan inView:self];
    for(NSTouch *touch in touches) {
        NSPoint normalizedPosition = touch.normalizedPosition;

        //points inside `normalizedPosition`
        //top center: (.5, 1), bottom left: (1, 0)
    }
}

但是,问题在于在 Ubuntu 中做同样的事情(说实话,任何编程语言都可以)。现在,我看到了像this 这样的帖子,但是,因为我已经知道如何在 OSX 中做到这一点,所以我认为这个问题不相关。我也看过this 的帖子,但是,我并不是在寻找一种通用的、标准化的方法来检测手指的绝对位置。老实说,我很乐意让 Ubuntu检测 Mac 制造的触控板的手指位置。也看到了this AskUbuntu post,但回答者(虽然他做了一个很好的总结)似乎说得更普遍。

有人知道如何在 Ubuntu(或在 Ubuntu 上编译的编程语言)中的 NSTouch 上获得类似 normalizedPosition 属性的东西吗?

【问题讨论】:

  • 那么这实际上与 Obj-C 和 Cocoa 有什么关系,还是 Obj-C 只是“我在 OS X 中这样做”的东西,否则没有相关性?如果是这样的话,你可能会看到大多数错误的人,因为你已经有效地将它标记为关于 Obj-C 的问题。
  • @nil 好吧,它适用于了解 Obj-C 并且可能对我的问题有话要说的人。它也适用于那些可以在 Ubuntu 上的 Obj-C 中执行此操作的人。

标签: ubuntu driver trackpad


【解决方案1】:

您可以使用mtdev 库来做到这一点。从evtest 开始,找出您需要的输入设备和来自输入设备的信息,然后使用mtdev 库从C 中访问它。

另一个很棒的库来做我最初想做的事情(即,在触控板上创建一个区域来调用右键菜单)是mtrack 库(以节省一些工作)。如果您想通过代码进行搜索,它还提供了从 mtdev 访问信息的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    相关资源
    最近更新 更多