Create  Edit  Diff  Phillro Industries  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

Phi::Screen

Phi::Screen

アプリケーションの実行時の画面の状態を表す。

Phi は Phi::SCREEN ( 定数 ) を用意する。

super class

Phi::Component

attributes

height : Fixnum

垂直方向の大きさ

width : Fixnum

水平方向の大きさ

active_form : Form

現在 focus を持つ form

active_form は, application でどの form が入力 focus を持っているかを判別するために使う。 application が現在非 active の場合は, active_form は application が active になったときに focus を持つ form である。

active_form を変更するには, Phi::Form#set_focus を使ってほしい。非 active form の Phi::Form#set_focused_control を呼び出してその form に focus を設定した場合にも active_form は変わる。

focus が別の form に移ると, Phi::Screen#on_active_form_change を呼び出す(on_active_control_change は未実装)。

active_control : Control

現在 focus を持つ control

active_control は, active form でどの window control が現在 keyboard からの入力を受け取るかを判別するために使う。 active_control を変更するには, Phi::Form#set_focused_control を使ってほしい。focus が別の control に移ると, Phi::Screen#on_active_control_change を呼び出す(on_active_control_change は未実装)。

cursor : Fixnum

global な cursor image

cursor は,個々の control object に関連付けられた cursor image を override するために使う。 cursor が CR_DEFAULT ならば,個々の object によって cursor image が決まる。 CR_DEFAULT 以外の値を指定すると,その application に属するすべての window で mouse cursor の image が設定される。 Phi::Screen#cursor の設定が CR_DEFAULT に戻されるまで global な cursor image は有効だ。

メソッド一覧

_dump => Phi::Component#_dump

active_control

active_form

component_count => Phi::Component#component_count

components => Phi::Component#components

cursor

cursor=

default_ime

desktop_height

desktop_left

desktop_rect

desktop_top

desktop_width

「desktop」はタスクバーも含めたスクリーンの大きさ意味し、「desktop_xx」系のメソッドはその大きさをピクセル単位でを返す。

* 「work_area_xx」系のメソッドで言う「work_area」はタスクバーを除いた部分の大きさをピクセル単位で返す。その差を調べれは、タスクバーがどこにあるかを知ることができる。

p Phi::SCREEN.desktop_rect   #=> #<Phi::Rect: left=0 top=0 right=1440 bottom=900>
p Phi::SCREEN.work_area_rect #=> #<Phi::Rect: left=0 top=0 right=1440 bottom=870>

* Screen#width などは desktop_width などと同じ。

disable_align

enable_align

event_handle => Phi::Persistent#event_handle

extend => Phi::Persistent#extend

fonts

そのコンピュータで利用可能なフォントの一覧を返す。

Phi::Stringsクラスのオブジェクトを返す。Phi::Stringといっても、中身は名前(文字列)の配列なので、rubyの配列に変換してしまったほうが扱いやすいだろう。to_a でrubyの配列にすることができる。

puts Phi::SCREEN.fonts
   #=> #<Phi::Strings:
     "@Arial Unicode MS", "@Batang", ・・"@Gungsuh", "@GungsuhChe",
     "@HGPゴシックE", "@HGPゴシックM", ・・"@HGS明朝B", "@HGS明朝E",
     "@HGゴシックE", "@HGゴシックM", ・・"@HG明朝B", "@HG明朝E",
     "@MingLiU",
     "@MS Pゴシック", ・・"@MS ゴシック", "@MS 明朝",
     "@NSimSun", "@PMingLiU", ・・"Gungsuh", "GungsuhChe",
     "HGPゴシックE", "HGPゴシックM", "HGP教科書体", "HGP行書体", ・・"HGP明朝E",
     "HGSゴシックE", "HGSゴシックM", "HGS教科書体", "HGS行書体", ・・"HGS明朝E",
     "HGゴシックE", "HGゴシックM", "HG丸ゴシックM-PRO", "HG教科書体",・・"HG明朝E",
     "Impact", "Latha", ・・"MS Outlook",
     "MS Pゴシック", ・・"MS 明朝",
     "MT Extra", "MV Boli", "NSimSun"・・"WST_Swed">

form_count

forms

get_cursors

height

hint_font

hint_font=

icon_font

icon_font=

imes

marshal_dump => Phi::Component#marshal_dump

marshal_load => Phi::Component#marshal_load

menu_font

menu_font=

name

name=

pixels_per_inch

画面の解像度を、1インチあたりのピクセル数で返す。

1インチは 25.4mm なので次のような計算をすればよい。

MM_PER_INCH = 25.4 # mm
p Phi::SCREEN.pixels_per_inch                 #=>96 ・・ 1インチあたりのピクセル数
p Phi::SCREEN.pixels_per_inch/MM_PER_INCH     #=>3.77952755905512 ・・ 1ミリあたりのピクセル数
p 1/(Phi::SCREEN.pixels_per_inch/MM_PER_INCH) #=>0.26458333333333 ・・ 1ピクセルの大きさ(mm)

prop_info => Phi::Component#prop_info

realign

reset_fonts

set_cursors

width

work_area_height

work_area_left

work_area_rect

work_area_top

work_area_width

「work_area」は、スクリーン全体からタスクバーの部分を除いた部分の大きさを意味する。「work_area_xx」系のメソッドは「work_area」の大きさをピクセル単位で返す。

* 「desktop_xx」系のメソッドで言う「desktop」はタスクバーも含めたスクリーンの大きさを意味する。従って、その差を調べれは、タスクバーがどこにあるかを知ることができる。

write_res_file => Phi::Component#write_res_file

Last modified:2008/04/24 14:36:16
Keyword(s):
References:[Phi-Classes] [Phi-Constants] [Phi::SCREEN] [Phi::Screen]