日々適当

hibitekitou

AppleScriptメモ:Finderウインドウ位置について

mac |2011-05-31
tell application "Finder"
activate
set bounds of window 1 to {0, 0, 300, 300}
end tell

Finderのウインドウの座標系はディスプレイ左上を基準に右がXのプラス、下がYのプラスになっているらしい。ウインドの位置と大きさは{Xmin, Ymin, Xmax, Ymax}で示される(サイズはmax - minの値)
で、上のスクリプトを実行すると、ディスプレイ左上に300 x 300のサイズでウインドウが表示されるはずなんだけど、実際はメニューバーの下辺にウインドウの上辺が一致している。



赤い範囲が300ピクセル四方なんだけど、縦方向がちょっと長い。

{0, 0, 300, 300} を {0, 20, 300, 320} にしてみる。



ウインドウの大きさは変わらないようだけど、ウインドウ上辺はやっぱりメニューバーにくっついている。

ウインドウ左上のポイントを表す部分の値を変化させて、ウインドウ位置(ウインドウ上辺の位置)に変化が表れる値を探ってみた。



すると、45以降でウインドウ位置が動き始める。それより小さい値の場合、ウインドウ位置はメニューバー下辺に上辺が一致するように、ウインドウサイズが指定した値に保持されたうえで設定される模様。

一方でディスプレイの下辺の位置はしっかりと意図通りになる。たとえば1920 x 1200のディスプレイで、{0, 45, 300, 1200}にすると、ウインドウ下辺はちゃんとディスプレイ下辺に張り付くし、1200を1195にすると、ウインドウ下辺はディスプレイ下辺から5ピクセル上がった位置になる。だから問題になるのはディスプレイの上の方、ということになろうか。

どうも、ウインドウの位置・サイズを指定する際、ウインドウのタイトルバーが無視された範囲の指定になっているっぽい。そして、ウインドウ位置がメニューバーにかぶる位置になる場合、メニューバーを避けて配置してくれるらしい。
だから、ウインドウの上辺の位置が44より大きくなるとウインドウ位置が意図通りになるというのは、タイトルバーのサイズ+メニューバーのサイズ よりも大きな値になっている、という事になるわけね。

という事を説明した文章、どっかにあるのだろうか?
コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。