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

Phi::Control

Phi::Control

すべての Visual Component の抽象クラス

継承関係

Phi::Control < Phi::Component < Phi::Persistent < Object

プロパティ

parent : Phi::Control

親コントロールを与える。

name : String

名前を指定する。 Phi は name の変更を保証しない。

left : Fixnum

左端の水平座標における親に対する相対距離を指定する。

top : Fixnum

上端の垂直座標における親に対する相対距離を指定する。

width : Fixnum

水平方向の大きさを指定する。

height : Fixnum

垂直方向の大きさを指定する。

enabled : Boolean

無効であるか。通常,無効になった component は淡色で表示される。

visible : Boolean

表示しているかどうか。実際に見えるかどうかは分からない。事実, visible が true でも,親であるコンテナが表示されていないと見えない。このために, showing メソッドがある。

visible は hide メソッドで false になり, show メソッド で true になる。

align : Phi-Align

コンテナ ( 親 control) 内で control を揃える方法を指定する。

anchors : Phi-Anchors

control がどのように親に対して固定されるかを指定する。

color : Phi-Color or Fixnum

背景色。定数か実数で指定する。

parent_color : Boolean

親と同じ背景色を使うかどうか。

font : Font

フォント。

parent_font : Boolean

親と同じフォントを使うかどうか。

cursor : Phi-Cursor

マウスカーソルの画像を示す。

hint : String

マウスが control 上を移動するときに表示されるテキスト文字列を保持する。

show_hint : Boolean

ヘルプヒントを表示するかどうか。

parent_show_hint : Boolean

親の show_hint プロパティを使うかどうか。

drag_cursor : Phi-Cursor

コントロールがドラッグされているときに表示されるマウスポインタを表すイメージ

drag_mode : Phi::DM_AUTOMATIC or Phi::DM_MANUAL

コントロールがドラッグアンドドロップ操作またはドラッグアンドドック操作をどのように開始するか

メソッド

show : nil

見せる。 visible を true にする。

hide : nil

隠す。 visible を false にする。

screen_to_client(point) : Point

画面上の指定した点の画面座標をクライアント座標に変換する。

point
Phi::Point:

screen_to_client を使うと,点の画面座標をローカルまたはクライアント領域の点の座標に変換できる。

クライアント領域座標の (0, 0) はコントロールのクライアント領域の左上隅に相当する。画面座標の (0, 0) は画面の左上隅に相当する。

client_to_screenscreen_to_client を使うと コントロールの座標系を別のコントロールの座標系に変換できる。

p = target_control.screen_to_client(source_control.client_to_screen(p))

この例は p を source_control の座標から target_control の座標に変換する。

client_to_screen(point)

点のクライアント領域座標をグローバルな画面座標に変換する。

point
Phi::Point:

client_to_screen は,コントロールに対してローカルな座標で表されていた位置を,画面座標の対応する位置に変換できる。

set_focus

入力フォーカスを当該コントロールに変更する。フォーカスがあるコントロールは,キーボードイベントを受け取る。

set_focus はフォームが表示されていない状態( Phi::Form#show Phi::Form#show_modal されていない状態)では「無効/非表示ウィンドウにはフォーカスを設定できません」というエラーになる。その場合には Phi::Form#focus_control= を使用すること。

require "phi" ; include Phi
form = Form.new
edit1 = Edit.new form
edit2 = Edit.new form
button = Button.new form
edit2.top = edit1.bottom
button.top = edit2.bottom

##button.set_focus  # error
form.focus_control = button  # OK

button.on_click = proc{ edit1.set_focus } # OK
##button.on_click = proc{ form.focus_control = edit1 } # OK

form.show
mainloop

イベント

on_can_resize(array) : arg1

コントロールのサイズを変更しようとしたときに発生する。

array
[new_width, new_height, resize]:
new_width
Fixnum: オブジェクトの新しい幅
new_height
Fixnum: オブジェクトの新しい高さ
resize
Boolean: サイズ変更が可能な場合は true を返し,サイズ変更を中止する必要がある場合は false を返す。

on_can_resize を使うと,コントロールをサイズ変更する方法を調整できる。必要であれば, on_can_resize でコントロールの新しい幅と高さを変更する。 resizefalse にして返すと,サイズ変更が中止される。

on_can_resize ない場合,または resize が true の場合, on_can_resize の直後に on_constrained_resize が発生する。

on_constrained_resize(array) : arg1

on_can_resize イベントの直後に発生する。

array
[min_width, min_height, max_width, max_height]:
min_width
Fixnum: オブジェクトの幅のサイズ変更可能な最小値
min_height
Fixnum: オブジェクトの高さのサイズ変更可能な最小値
max_width
Fixnum: オブジェクトの幅のサイズ変更可能な最大値
max_height
Fixnum: オブジェクトの高さのサイズ変更可能な最大値

on_constrained_resize を使うと, self をサイズ変更しようとしたときに, self のサイズ制約を調整できる。 on_constrained_resize に入るときに, arrayconstraints の対応する property に設定される。新しい高さおよび幅になる前にそれらの値を調整できる。 can_auto_resize または on_can_resize がすでにこの新しい高さと幅を調整していることもある。

on_constrained_resize から出るときに,新しい高さと幅に制約が適用される。制約が適用されると,コントロールの高さと幅が変更される。コントロールの高さと幅が変更された後で, on_resize イベントが発生して,最終的な調整または応答が可能になる。

on_resize : nil

on_resize を使うと,コントロールのサイズが変更された後で最終的な調整を行える。コントロールのサイズを変更しようとしたときにコントロールが応答する方法を変更するには,かわりに on_can_resize または on_constrained_resize を使うこと。

on_click : nil

ユーザーがコントロールをクリックしたときに発生する。

on_dbl_click : nil

on_drag_drop : nil

on_drag_over : nil

on_end_dock : nil

on_end_drag : nil

on_mouse_down : nil

on_mouse_move(sender, shift, x, y)

ユーザーがマウスポインタをコントロール上に置いてマウスポインタを移動したときに発生する。

sender
Object
shift
Phi-ShiftState?
x, y
Fixnum: sender のクライアント領域内でのマウスポインタの新しい位置のピクセル座標

* 当該コントロールの上に子コントロールが描画されている場合には、もっとも上のコントロールがイベントを受領するので、下のコントロールではイベントの通知を受けない。つまり、子コントロールが乗っている場合にはイベントの通知を受けない。

on_mouse_up : nil

on_start_dock : nil

on_start_drag : nil