[前へ] [目次へ] [次へ]

DRFrameWindow (script/fgs/system_multipart.fges)


このクラスはDRの描画を枠付きのウィンドウ化するクラスです。
このクラスを継承することにより、
デフォルト枠のウィンドウの中にDRを描画する構造が簡単に作成できます。

●継承/注入

   wraps FrameWindow
   inject JNativeWindowTemplate
   inject JNativeWindowRedirect


●インターフェイスとインターフェイスメソッド

   inject INativeWindow

●クラスメソッド

   このクラスはクラスメソッドを持っていません。

●クラスメンバメソッド

名前概要
public操作メソッド Connect描画するDRに接続します
public操作メソッド DisConnect接続しているDRから切断します
public操作メソッド NewWindowウィンドウを作成します
public操作メソッド ResizeWindowウィンドウをリサイズします
public操作メソッド SetAutoResizeウィンドウを自動的にリサイズします
public操作メソッド FinishAutoMoveウィンドウの自動的な操作を完了させます
public操作メソッド ResetAutoMoveウィンドウの自動的な操作を中止します
public取得メソッドconst IsFocusWindowウィンドウが入力フォーカスを持っているか取得します

●クラス共有変数

   このクラスはクラス共有変数を持っていません。

●インスタンス変数

名前概要
public content_windowDR描画用のウィンドウオブジェクト




DRFrameWindow::Connect

public Bool Connect( INativeDrawResource dr_obj)

   描画内容に使用するドローリソースに接続し、リンクを確立します。
   このメソッドを呼び出した時に既にリンクを持っている場合、自動的に切断されます。
   リンクしているドローリソースオブジェクトが消滅した場合、リンクは強制切断されます。

戻り値:接続に成功すると真を返します。

INativeDrawResource dr_obj :描画に使用するドローリソースオブジェクト。

先頭へ


DRFrameWindow::DisConnect

public void DisConnect()

   現在接続している、描画内容に使用するドローリソースとのリンクを切断します。
   現在リンクが確立していない場合何も起こりません。

先頭へ


DRFrameWindow::NewWindow

public Bool NewWindow( Integer x, Integer y, Integer width, Integer height,
             INativeWindow? addwnd, INativeInteger wndtype,
             INativeInteger? drawmode=NULL, INativeInteger? focus=NULL,
             INativeBool? visible=NULL, INativeInteger? alv=NULL)


   このオブジェクトでウィンドウを作成します。
   座標系は作成するウィンドウタイプによって決定されます。
   ウィンドウタイプがトップレベルウィンドウである場合、仮想ビュー座標系が使用されます。
   ウィンドウタイプが子ウィンドウかサブウィンドウである場合、所属させるウィンドウのローカル座標系が使用されます。
   それ以外のウィンドウタイプである場合、所属させるウィンドウと同じ座標系が使用されます。
   
   作成するウィンドウは現在のシーンに関連付けられます。
   シーンが起動していない状態ではこのメソッドは使用できません。
   
   このメソッドは枠となるウィンドウを作成すると同時に、
   描画内容となるDRウィンドウを四隅に5ピクセルづつのマージンをとった上で作成します。

戻り値:作成に成功すると真を返します。
   
Integer x :ウィンドウを作成するX座標。座標系はウィンドウタイプに依存します。
Integer y :ウィンドウを作成するY座標。座標系はウィンドウタイプに依存します。
Integer width :ウィンドウの横幅。
Integer height :ウィンドウの縦幅。
INativeWindow? addwnd :作成するウィンドウの所属を決定するウィンドウ。意味はウィンドウタイプに依存します。
ウィンドウタイプごとの意味:
ウィンドウタイプ意味
トップレベルウィンドウこの引数は無視されます。
子ウィンドウ所属させる親ウィンドウ。
サブウィンドウ所属させるウィンドウ。
スタックウィンドウ所属させるウィンドウ。
挿入ウィンドウ直前の序列のウィンドウ。所属は指定したウィンドウと同じになります。
INativeInteger wndtype :ウィンドウタイプ。以下のいずれか。
識別子意味
Window::WND_TOPLEVELトップレベルウィンドウ。
独立して扱われるウィンドウです。仮想ビュー座標系を使用します。
Window::WND_CHILD子ウィンドウ。
親ウィンドウの中に配置されるウィンドウで、親ウィンドウの領域外に出ると正常に描画されません。
座標系は親ウィンドウのローカル座標となり、親ウィンドウが移動すると連動して移動します。
また、親ウィンドウに対して行われた操作の一部は連動して影響します。
Window::WND_SUBサブウィンドウ。
所属するウィンドウの補足情報を提示するためのウィンドウです。
座標系は所属するウィンドウのローカル座標となり、所属するウィンドウが移動すると連動して移動します。
原則として所属するウィンドウとは独立して扱われますが、削除や更新は連動します。
Window::WND_STACKスタックウィンドウ。
所属するウィンドウの追加処理を行うウィンドウで、ダイアログに近い扱いをします。
座標系は所属するウィンドウと同じになります。
原則として所属するウィンドウとは独立して扱われますが、削除は連動します。
また、サブウィンドウよりも上に描画されます。
Window::WND_PREV挿入ウィンドウ。
指定したウィンドウの次の序列に作成するウィンドウを挿入します。
ウィンドウタイプや座標系は指定したウィンドウと同じになります。
INativeInteger? drawmode=NULL :描画方法。以下のいずれか。
識別名内容
Window::COPY色と透過度を上書き
Window::COPYC色のみを上書き
Window::ALPHA透過描画(デフォルト)
Window::BLEND半透明描画
Window::LAYERレイヤー描画
Window::BACK背後に描画
Window::ALPHABLEND透過半透明描画
Window::LAYERBLENDレイヤー半透明描画
Window::BACKBLEND背後に半透明
Window::MIXALPHA透過合成
Window::MIXBLEND半透明合成
Window::MIXLAYERレイヤー合成
Window::MIXBACK背後に合成
Window::MIXALPHABLEND透過半透明合成
Window::MIXLAYERBLENDレイヤー半透明合成
Window::MIXBACKBLEND背後に半透明合成
Window::COPYAアルファのみ上書き
Window::MULAアルファのみ乗算
Window::REVMULAアルファのみ逆乗算
Window::ADDAアルファのみ加算
Window::SUBAアルファのみ減算
Window::FILLAアルファ設定
Window::BLENDALPHAアルファのみブレンド
Window::COPYTONE色変換して上書き
Window::TONE色変換して色のみに描画
Window::ALPHATONE色変換して透過描画
Window::LAYERTONE色変換してレイヤー描画
Window::BACKTONE色変換して背後に描画
Window::MIXTONE色変換して合成
Window::MIXALPHATONE色変換して透過合成
Window::MIXLAYERTONE色変換してレイヤー合成
Window::MIXBACKTONE色変換して背後に合成
Window::MULC乗算
Window::REVMULC逆乗算
Window::ADDC加算
Window::SUBC減算
Window::SCREENスクリーン
Window::OVERLAYオーバーレイ
Window::HARDLIGHTハードライト
Window::MULBLENDC半透明乗算
Window::ADDBLENDC半透明加算
Window::SUBBLENDC半透明減算
Window::SCREENBLEND半透明スクリーン
Window::OVERLAYBLEND半透明オーバーレイ
Window::HARDLIGHTBLEND半透明ハードライト
Window::MUL乗算合成
Window::REVMUL逆乗算合成
Window::ADD加算合成
Window::SUB減算合成
Window::MIXSCREENスクリーン合成
Window::MIXOVERLAYオーバーレイ合成
Window::MIXHARDLIGHTハードライト合成
Window::MULBLEND半透明乗算合成
Window::ADDBLEND半透明加算合成
Window::SUBBLEND半透明減算合成
Window::MIXSCREENBLEND半透明スクリーン合成
Window::MIXOVERLAYBLEND半透明オーバーレイ合成
Window::MIXHARDLIGHTBLEND半透明ハードライト合成
INativeInteger? focus=NULL :フォーカス制御。
以下の一斉指定識別子か、各グループのOR結合。
一斉指定識別子:全グループで同じ意味を設定したOR結合済み識別子。
識別名内容
Window::FOCUS_OK所属ウィンドウへのフォーカス制御に干渉しません(デフォルト)
Window::FOCUS_REDIRECT所属ウィンドウへのフォーカスはこのウィンドウが奪います
Window::FOCUS_BLOCK所属ウィンドウへのフォーカス制御を拒否します
スタックウィンドウ用:
識別名内容
Window::FOCUS_STACK_OKスタックウィンドウへのフォーカス制御に干渉しません
Window::FOCUS_STACK_REDIRECTスタックウィンドウへのフォーカスはこのウィンドウが奪います
Window::FOCUS_STACK_BLOCKスタックウィンドウへのフォーカス制御を拒否します
サブウィンドウ用:
識別名内容
Window::FOCUS_SUB_OKサブウィンドウへのフォーカス制御に干渉しません
Window::FOCUS_SUB_REDIRECTサブウィンドウへのフォーカスはこのウィンドウが奪います
Window::FOCUS_SUB_BLOCKサブウィンドウへのフォーカス制御を拒否します
子ウィンドウ用:
識別名内容
Window::FOCUS_CHILD_OK子ウィンドウへのフォーカス制御に干渉しません
Window::FOCUS_CHILD_REDIRECT子ウィンドウへのフォーカスはこのウィンドウが奪います
Window::FOCUS_CHILD_BLOCK子ウィンドウへのフォーカス制御を拒否します
INativeBool? visible=NULL :ウィンドウを可視にする場合は真を指定します。
         空参照を指定した場合は真として扱います。
INativeInteger? alv=NULL :ウィンドウを半透明描画する場合の透過度。

先頭へ


DRFrameWindow::ResizeWindow

public Bool ResizeWindow( INativeInteger? x, INativeInteger? y,
             INativeInteger? width, INativeInteger? height)


   このウィンドウを指定した座標に移動し、さらに大きさを変更します。
   座標系はこのウィンドウがトップレベルウィンドウである場合、仮想ビュー座標系が使用されます。
   このウィンドウが子ウィンドウかサブウィンドウとして所属している場合、所属しているウィンドウのローカル座標系が使用されます。
   それ以外のウィンドウとして所属している場合、所属しているウィンドウと同じ座標系が使用されます。
   
   ウィンドウクラスによってはこの処理は時間が掛かる場合があります。
   
戻り値:処理に成功すると真を返します。

INativeInteger? x :移動先のX座標。
         空参照を指定した場合、現在の値を維持します。
INativeInteger? y :移動先のY座標。
         空参照を指定した場合、現在の値を維持します。
INativeInteger? width :新しいウィンドウの横幅。
         空参照を指定した場合、現在の値を維持します。
INativeInteger? height :新しいウィンドウの縦幅。
         空参照を指定した場合、現在の値を維持します。

先頭へ


DRFrameWindow::SetAutoResize

public Bool SetAutoResize( INativeInteger to_x, INativeInteger to_y,
             INativeInteger to_width, INativeInteger to_height,
             INativeInteger move_frame, INativeInteger? loop=NULL, INativeInteger? easing=NULL)


   このウィンドウを自動的に移動し、さらに大きさを変更します。
   指定した大きさが現在と同じである場合、 SetAutoMove メソッドと同じ扱いになります。
   座標系はこのウィンドウがトップレベルウィンドウである場合、仮想ビュー座標系が使用されます。
   このウィンドウが子ウィンドウかサブウィンドウとして所属している場合、所属しているウィンドウのローカル座標系が使用されます。
   それ以外のウィンドウとして所属している場合、所属しているウィンドウと同じ座標系が使用されます。
   
   このメソッドは呼び出された時の位置から指定した座標に向かって、 move_frame フレーム掛けて移動し、
   さらに呼び出された時の大きさから指定された大きさに向かって、 move_frame フレーム掛けてリサイズします。
   既に自動移動が設定されている状態でこのメソッドを呼び出した場合、設定は上書きされます。

   loop に Window::LOOP_ROTATION または Window::LOOP_ROUNDTRIP を指定すると、ループモードに従って設定が更新され続けます。
   この動作は FinishAutoMove または ResetAutoMove を呼び出すまで継続します。

戻り値:設定に成功すると真を返します。
   
INativeInteger to_x :目標のX座標
INativeInteger to_y :目標のY座標
INativeInteger to_width :目標の横幅
INativeInteger to_height :目標の縦幅
INativeInteger move_frame :推移時間(1〜32767)
INativeInteger? loop=NULL :自動更新のループ処理を指定します。以下のいずれか。
識別名内容
Window::LOOP_SINGLEループせず目標の状態で完了します(デフォルト)
Window::LOOP_ROTATION完了後、開始時の状態から再実行します(循環モード)
Window::LOOP_ROUNDTRIP開始時の状態と目標の状態をループします(往復モード)
Window::LOOP_ONEROUND目標の状態まで推移した後、開始時の状態に推移して完了します
INativeInteger? easing=NULL :推移時のイージング処理を指定します。
         指定できる識別子は EasingLib#計算式と識別子の対応 を参照してください。

先頭へ


DRFrameWindow::FinishAutoMove

public void FinishAutoMove()

   このウィンドウに設定されている位置と大きさの自動更新を完了させます。
   このメソッドを呼び出すと直ちに設定されている目標の位置と大きさに更新されます。
   
先頭へ


DRFrameWindow::ResetAutoMove

public void ResetAutoMove()

   このウィンドウに設定されている位置と大きさの自動更新を中止します。
   このメソッドを呼び出すと呼び出した瞬間の状態で位置と大きさは放置されます。
   
先頭へ


DRFrameWindow::IsFocusWindow

public Bool IsFocusWindow()const

   このウィンドウが現在入力フォーカスを持っているかを取得します。
   
   このメソッドは枠ウィンドウ、
   内容ウィンドウのどちらかが入力フォーカスを持っていれば真を返します。
   
戻り値:このウィンドウが入力フォーカスを持っている場合、真を返します。

先頭へ


DRFrameWindow::content_window

public DRWindow content_window

   ウィンドウ内容として使用するDRウィンドウオブジェクト。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2023/02/04