これがマウスゼスチャとか、ホィールボタンとかに対応してくれたらわざわざ自分でtoolを作ってみようかと考えることもないわけですが、そこまで便利ではない。あ、そうか、作者さんに要望してみるという手はありますな。
それはともかく、作者さんのblogに何かその手の情報はないかな、と思って本日行ってみたら、なんてこったい、githubにソースをおいてあるじゃん!
で、さっそく git cloneしてソースを眺める。
頭の中で勝手に想像していたのは、Spaces.appにイベントを発行して動かしているのではないか、ということだったんですが、全然違いました。
workspaceの移動は基本的にCGSSetWorkspaceを使っていました。で、移動したあと、spacesSwitchCallbackという関数で
[[NSNotificationCenter defaultCenter] postNotificationName:@"ActiveSpaceDidSwitchNotification" object:nil userInfo:info];というふうにSpacesに通知してるんですな。なるほどねえ。
さらにworkspaceの最大数は、
CFPreferencesGetAppIntegerValue(CFSTR("workspaces-rows"), CFSTR("com.apple.dock"), nil);
で行と列の最大数を取得して計算しているみたい。
これは勉強になります。しばらく「荻原本」とWarpのソースを読むことになりそう。
よし、と。新しく、「cocoa」というtagも作ってみた。
0 件のコメント:
コメントを投稿