2011年2月26日土曜日

Cocoa ObjC Viewだけでリサイズ GiveUp

結論から言うと現在のところでは「透明ウィンドウ」のリサイズをView側からなんとかしようというのは、私の知識と技術では無理、と判断した。がっくり。

Viewにリサイズ用のアンカーをつけて、と考えていた。ちょうどDashBoardのいくつかのウィジェットのように。


しかしframeとbounds、Viewの座標系とWindowの座標系とscreen座標系の関係、などなど、知らないことが多すぎてにっちもさっちもいかない感じ。

もう面倒なので、サービスメニューから「ウィンドウ枠を表示する」みたいな選択肢を用意して、それでリサイズ可能、ということにしてしまおう。

あと、BackGroundOnlyで動作させればタイトルバーとリサイズ用のアンカーが表示してあってもそれほど気にならないので、せめてタイトルバーの高さをもう少し低くというか狭くできたらかっこいいかな、と考えてあれこれ調べ始める。

タイトルバーのカスタマイズはstack overflowあたりでもけっこうな質問が上がっていて、みんな考えることは一緒か。で、一般的な結論が

1,透明ウィンドウにして
2,独自のタイトルバーをつけよ(NSViewのカスタムクラスにして)

ってそれじゃあリサイズができんだろうが!

もう少し「NSBorderlessWindowMask resize」とかでググってみる必要があるなあ。
タイトルバーのカスタマイズを考えるにあたって、いくつかのアプリのタイトルバーを調べたら、やっぱApple謹製のアプリはやりたい放題であることがわかった。

純正Twitterアプリ。タイトルバーがウィンドウの左側にはりついている?クローズボタンとかもカスタマイズされているなあ。


MacのAppStore。タイトルバーがない・・・。


そしてGoogleのChrome。

Chormeのtabバーの再実装はすでにいくつかあるようで、身近なところではいつぞや紹介したKodというエディタ用に
chromium-tabs

といったプロジェクトがあったりする。もう少し調査してみよう。

0 件のコメント:

コメントを投稿