前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFZWindow
ウィンドウを表すレスポンダです。
#include <SFZWindow.h.hpp>
class SFZWindow : public SFYContainer;
SFMTYPEDEFRESPONDER(SFZWindow)

継承図

SFZWindow クラスの継承図

協調図

SFZWindow クラスの協調図

解説

■ 仕様と使い方

ウィンドウは、 各種コントロールやコンテナを配置するための汎用的なウィンドウとして機能し、 ルート[SFZRoot]内に配置されるように設計されたレスポンダです。

すべてのウィンドウは SFZWindow クラスを継承し、 実領域よりも大きく設定された仮想領域のスクロール機能とフォーカスの移動機能を提供します。

コントロールを配置するためのコンテナとしてウィンドウを利用します。

また、コントロールを利用するしないにかかわらず、 具体的なユーザーインターフェースはアプリケーションに直接記述せずにウィンドウに記述します。

具象ウィンドウはアプリ開発ですぐに使うことができる部品であり、 抽象ウィンドウはカスタマイズされたユーザー定義ウィンドウを作成するための起点(基底クラス)となります。

表 279. 具象ウィンドウの種類

クラス名 解説
SFZWindow コントロールやコンテナなどを配置する汎用ウィンドウです。
[Important] 重要

すべての具象ウィンドウにおいて、 SFYResponder::SetParent 関数、 SFYResponder::SetState 関数、 SFYResponder::SetRealBound 関数の呼び出しは必須です。

その他の関数の呼び出しは省略可能です。

SFYResponder::SetFrame 関数を呼び出してフレームをウィンドウに装着する場合、 フレームの SFYResponder::SetRealBound 関数を呼び出すと、 ウィンドウの実領域がフレーム余白領域に合わせて自動的に設定されるので、SFYResponder::SetRealBound 関数の呼び出しは省略されます。

表 280. 抽象ウィンドウの種類

クラス名 解説
SFZWindow ウィンドウを表す抽象クラスです。

□ウィンドウを表す具象クラスとしての汎用ウィンドウ[SFZWindow]

SFZWindow は、 各種コントロールやコンテナを配置するための汎用的なウィンドウとして機能します。

ウィンドウ内にコントロールやコンテナが配置されている場合、 SFYContainer::SetScrollDownKey / SFYContainer::SetScrollUpKey / SFYContainer::SetPageDownKey / SFYContainer::SetPageUpKey / SFYContainer::SetSnapDownKey / SFYContainer::SetSnapUpKey 関数で設定するスクロールキーを使用してウィンドウ内のレスポンダ間でフォーカスを移動できます。

仮想領域実領域よりも大きい場合は、 フォーカス移動機能と連動した、仮想領域の上下方向へのスクロール機能も利用できます。

図 470. 動作例

動作例

例 913. サンプルコード : ウィンドウにフレームを付ける[SFZWindow と SFZTitleBevelFrame]

// クラスの定義
SFMTYPEDEFCLASS(helloworld)
class helloworld : public SFYApplication {
  SFMSEALCOPY(helloworld)
public:
  static SFCInvokerPtr Factory(Void);
private:
  explicit helloworld(Void) static_throws;
  virtual ~helloworld(Void);

  XANDLER_DECLARE_VOIDRENDER(OnRenderRequest)          // ルートの描画ハンドラ
  XANDLER_DECLARE_BOOLEVENT(OnKey)                     // ルートのキーハンドラ
  XANDLER_DECLARE_VOIDRENDER(OnRenderRequestSFZWindow) // ウィンドウの描画ハンドラ
  XANDLER_DECLARE_BOOLEVENT(OnKeySFZWindow)            // ウィンドウのキーハンドラ
};


// コンストラクタ
helloworld::helloworld(Void) static_throws
{

  // ..... ( 省略 ) .....

  SFCError              error(SFERR_NO_ERROR);
  SFZTitleBevelFrameSmp frame;  // SFZTitleBevelFrame のスマートポインタ
  SFZWindowSmp          window; // SFZWindow のスマートポインタ

  // フレームを生成する
  if ((frame = SFZTitleBevelFrame::NewInstance(&error)) != null) {

    // フレームのタイトルを設定する
    frame->SetText("Title for SFZWindow");

    // 通常、フレームの状態は「可視+活性+操作可能+フォーカス」に設定する
    frame->SetState(true, true, true, true);

    // ウィンドウを生成する
    if ((window = SFZWindow::NewInstance(&error)) != null) {

      // ウィンドウの描画ハンドラを登録する : 文字列 "Hello World!" を描画する
      error = window->RegisterHandler(
                SFXEventRange(SFEVT_RESPONDER_RENDER, SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST, SFP16_RENDER_REQUEST),
                XANDLER_INTERNAL(OnRenderRequestSFZWindow)
      );
      if (error == SFERR_NO_ERROR) {

        // ウィンドウのキーハンドラを登録する: セレクトキーが押下されるとフレームを閉じる(自動的にウィンドウも閉じる)
        error = window->RegisterHandler(
                  SFXEventRange(SFEVT_KEY, SFEVT_KEY, SFP16_BEGIN, SFP16_END),
                  XANDLER_INTERNAL(OnKeySFZWindow)
        );
        if (error == SFERR_NO_ERROR) { 

          // ウィンドウの親をアプリケーションクラス(ルート)に設定する
          error = window->SetParent(GetThis());
          if (error == SFERR_NO_ERROR) {

            // ウィンドウにフレームを装着する
            error = window->SetFrame(frame);
            if (error == SFERR_NO_ERROR) {

              // フレームの実領域をルートのローカル領域から (30, 30) だけ縮小した領域に設定する
              // ※自動的にフレームの実領域をフレーム余白領域だけ縮小した領域がウィンドウの実領域に設定される
              frame->SetRealBound(GetLocalBound().Deflate(30, 30));

              // ウィンドウの状態を「可視+活性+操作可能+フォーカス」にまとめて設定する
              window->SetState(true, true, true, true);

              // ウィンドウを最前面に移動する
              // ※自動的にフレームも最前面に移動する
              window->ToFront();
            }
          }
        }
      }
    }
  }
  static_throw(error);
}


// SFZWindow の描画ハンドラの実装
#define TROPICALBLUE_COLOR (SFXRGBColor(0xCE, 0xD8, 0xF8, 0x00))
#define COLOR_BLACK        (SFXRGBColor(0x00, 0x00, 0x00, 0x00))
XANDLER_IMPLEMENT_VOIDRENDER(helloworld, OnRenderRequestSFZWindow, invoker, reason, graphics)
{
  unused(invoker);
  unused(reason);

  // ウィンドウのローカル領域をトロピカルブルーで描画する
  graphics->FillRectangle(GetLocalBound(), TROPICALBLUE_COLOR);

  // ウィンドウの中央に文字列 "Hello World!" を黒色で描画する
  graphics->DrawSingleText("Hello World!", invoker->GetLocalBound(), COLOR_BLACK);

  return;
}

// SFZWindow のキーハンドラの実装
XANDLER_IMPLEMENT_BOOLEVENT(helloworld, OnKeySFZWindow, invoker, event)
{
  Bool result(false);
  unused(invoker);

  switch (event.GetP16()) {

    case AVK_SELECT:  // セレクトキーのキーイベントを受信したとき

         // ウィンドウだけを閉じる
         // ※自動的にフレームはウィンドウから切り離されて見えなくなる
         invoker->Terminate();

         result = true;  // イベントを処理したので true をセットする

         break;
  }

  return result;
}

図 471. サンプルコードの実行結果 : ウィンドウにフレームを付ける[SFZWindow と SFZTitleBevelFrame]


サンプルコードの実行結果 : ウィンドウにフレームを付ける[SFZWindow と SFZTitleBevelFrame]

□ウィンドウを表す抽象クラスとしての汎用ウィンドウ[SFZWindow]

SFZWindow は各種ウィンドウを実装するための起点(基底クラス)となります。

SFZWindow は、 実領域よりも大きな仮想領域のスクロール機能とフォーカスの移動機能と、 スクロールキーの管理を実装し、 いくつかの仮想関数(ハンドラ)の動作をデフォルトで実装します。

コントロールやコンテナが配置されている場合、 SFYContainer::SetScrollUpKeySFYContainer::SetScrollDownKey 関数で設定するスクロールキーを使用してフォーカス移動できます。 仮想領域実領域よりも大きい場合は、 フォーカス移動機能と連動した、仮想領域の上下方向へのスクロール機能も利用できます。

■ イベントとハンドラ

SFZWindow を継承するレスポンダでは、 SFYContainer::SFYContainer / SFYWidget::SFYWidget コンストラクタで登録されたハンドラの処理により、 下記のイベントを受信すると、対応する下記の仮想関数(ハンドラ)が最初に呼び出されます。 その後、開発者がレスポンダに登録したハンドラが呼び出されることになります。

[Note] 注意

ハンドラの詳細については、 SFYContainer::SFYContainer / SFYWidget::SFYWidget コンストラクタの解説を参照してください。

[Tip] Tip

ハンドラを登録する手間を省略できるので、 通常、これらのイベント処理は仮想関数をオーバーライドして記述します。

表 281. イベント、仮想関数(ハンドラ)とデフォルト動作

イベント 仮想関数(ハンドラ) デフォルトの動作 オーバーライド
SFYContainer::SetScrollUpKey で設定された ScrollUp キーの SFEVT_KEY イベント SFYContainer::HandleScrollUpKey 仮想領域を上方向にスクロールする※1 任意
SFYContainer::SetScrollDownKey で設定された ScrollDown キーの SFEVT_KEY イベント SFYContainer::HandleScrollDownKey 仮想領域を下方向にスクロールする※2 任意
SFYContainer::SetPageUpKey で設定された PageUp キーの SFEVT_KEY イベント SFYContainer::HandlePageUpKey 仮想領域を上方向に 1 ページ分スクロールする※3 任意
SFYContainer::SetPageDownKey で設定された PageDown キーの SFEVT_KEY イベント SFYContainer::HandlePageDownKey 仮想領域を下方向に 1 ページ分スクロールする※4 任意
SFYContainer::SetSnapUpKey で設定された SnapUp キーの SFEVT_KEY イベント SFYContainer::HandleSnapUpKey 仮想領域を上端までスクロールする※5 任意
SFYContainer::SetSnapDownKey で設定された SnapDown キーの SFEVT_KEY イベント SFYContainer::HandleSnapDownKey 仮想領域を下端までスクロールする※6 任意
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベント SFYWidget::HandleBoundRequest 推奨
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベント SFYWidget::HandleBoundOptimize 推奨
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベント SFYWidget::HandleBoundReal 任意
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベント SFYWidget::HandleBoundVirtual 任意
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_GLOBAL) イベント SFYWidget::HandleBoundGlobal 非推奨[廃止予定]
(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST) イベント SFYWidget::HandleRenderRequest 任意

※デフォルトの動作にある "−" は何も実装していないことを表す。

[Note] 注釈

※1. SFYContainer::ScrollUp 関数を実行します。

※2. SFYContainer::ScrollDown 関数を実行します。

※3. SFYContainer::PageUp 関数を実行します。

※4. SFYContainer::PageDown 関数を実行します。

※5. SFYContainer::SnapUp 関数を実行します。

※6. SFYContainer::SnapDown 関数を実行します。

ユーザー定義ウィンドウを作成するときに最低限必要なコードを示します。

例 914. 宣言

SFMTYPEDEFRESPONDER(USRWindow)
class USRWindow : public SFZWindow {
    SFMSEALRESPONDER(USRWindow)
    SFMRESPONDERINSTANTIATEFOUR(USRWindow, SFZWindow, SFYContainer, SFYWidget, SFYResponder)
public:

    // レスポンダのタイプを定義する
    // 小文字と記号のみからなるタイプは予約されているので使えない
    enum CodeEnum {
        CODE_TYPE = four_char_code('U', 'W', 'N', 'D')
    };
    SFMTYPEDEFTYPE(CodeEnum)

public:
    static USRWindowSmp NewInstance(SFCErrorPtr exception = null);
protected:
    explicit USRWindow(Void) static_throws;
    virtual ~USRWindow(Void);

    // 親クラスで定義されている仮想関数のうち、実装が推奨される仮想関数
    virtual Void HandleBoundRequest(SFXRectanglePtr rectangle) const;
    virtual Void HandleBoundOptimize(SFXRectanglePtr rectangle) const;
    virtual Void HandleBoundReal(Void);
    virtual Void HandleBoundVirtual(Void);
    virtual Void HandleRenderRequest(SFXGraphicsPtr graphics) const;
};

例 915. 実装

// コンストラクタ
USRWindow::USRWindow(Void) static_throws
{
    if (static_try()) {

        // レスポンダのタイプを設定する
        SetType(CODE_TYPE);

        // 初期化処理を記述する
    }
}

// デストラクタ
USRWindow::~USRWindow(Void)
{
    // 終了処理を記述する
}

// スマートポインタで管理されるインスタンスを生成する関数
USRWindowSmp USRWindow::NewInstance(SFCErrorPtr exception)
{
    return static_pointer_cast<USRWindow>(Factory(::new USRWindow, exception));
}

Void USRWindow::HandleBoundRequest(SFXRectanglePtr rectangle) const
{
    // ウィンドウに最適な大きさを計算して rectangle パラメータに設定する
    // この関数内では、rectangle の原点は変更せず、rectangle のサイズだけを設定する(推奨)

    return;
}

Void USRWindow::HandleBoundOptimize(SFXRectanglePtr rectangle) const
{
    // ウィンドウに最適な大きさを rectangle パラメータ内の大きさに
    // 収まるように計算し、rectangle パラメータに設定する
    // この関数内では、rectangle の原点は変更せず、rectangle のサイズだけを設定する(推奨)

    return;
}

Void USRWindow::HandleBoundReal(Void)
{
    // 実領域が変更された場合に再計算が必要なものがあれば、ここに記述する
    return;
}

Void USRWindow::HandleBoundVirtual(Void)
{
    // 仮想領域が変更された場合に再計算が必要なものがあれば、ここに記述する
    return;
}

Void USRWindow::HandleRenderRequest(SFXGraphicsPtr graphics) const
{
    // ウィンドウを描画する
    return;
}

参照

SFYContainer::SFYContainer | SFYWidget::SFYWidget | SFYContainer | SFZDialog | SFYResponder::ToFront | SFYResponder::Terminate | 仮想領域 | 実領域 | ローカル領域 | SFYContainer::SetScrollDownKey | SFYContainer::SetScrollUpKey | SFYContainer::SetPageDownKey | SFYContainer::SetPageUpKey | SFYContainer::SetSnapDownKey | SFYContainer::SetSnapUpKey | キーイベント[SFEVT_KEY] | 領域イベント[SFEVT_RESPONDER_BOUND] | 描画イベント[SFEVT_RESPONDER_RENDER] | フレーム | ウィンドウ(基礎編)

メンバ

コンストラクタ/デストラクタ
SFZWindow( Void )
SFZWindow クラスのコンストラクタです。
~SFZWindow( Void )
SFZWindow クラスのデストラクタです。
パブリック関数
static
SFZWindowSmp
NewInstance( SFCErrorPtr exception = null )
新しいインスタンスを作成します。
Void ClearHandler( Void ) (SFYResponder から継承)
このレスポンダのハンドラの登録をすべて解除します。
Void ClearTracer( Void ) (SFYResponder から継承)
このレスポンダのトレーサの配信規則の登録をすべて解除します。
SFCError Distribute( SFXEventConstRef event , BoolPtr result = null ) (SFYResponder から継承)
指定された配信型イベントを SFYDistributer インスタンスと、このレスポンダ以下のレスポンダツリーに配信します。
SFXRGBColorConstRef GetBackgroundColor( Void ) (SFYWidget から継承)
背景の色を取得します。
SFYResponderSmp GetChildBack( Void ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBack( UInt32 id ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SInt32 GetChildCount( Void ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SInt32 GetChildCount( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SInt32 GetChildCount( UInt32 id ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SInt32 GetChildCount( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SFYResponderSmp GetChildForward( SInt32 index ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( Void ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( UInt32 id ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYDistributerPtr GetDistributer( Void ) (SFYResponder から継承)
このレスポンダに設定されている配信エンジンを取得します。
SFYResponderSmp GetFrame( Void ) (SFYResponder から継承)
このレスポンダに装着されたフレームを取得します。
SFXRectangle GetGlobalBound( Void ) (SFYResponder から継承)
このレスポンダのグローバル領域を取得します。
UInt32 GetID( Void ) (SFYResponder から継承)
このレスポンダの ID を取得します。
SFXRectangle GetLocalBound( Void ) (SFYResponder から継承)
このレスポンダのローカル領域を取得します。
SInt32 GetNthBackward( Void ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( UInt32 id ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( Void ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( UInt32 id ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
AVKType GetPageDownKey( Void ) (SFYContainer から継承)
仮想領域を下方向に 1 ページ分スクロールする PageDown キーを取得します。
AVKType GetPageUpKey( Void ) (SFYContainer から継承)
仮想領域を上方向に 1 ページ分スクロールする PageUp キーを取得します。
SFYResponderSmp GetParent( Void ) (SFYResponder から継承)
このレスポンダの親レスポンダを取得します。
Bool GetPropertyTransparent( Void ) (SFYResponder から継承)
このレスポンダの透過属性を取得します。
SFXRectangleConstRef GetRealBound( Void ) (SFYResponder から継承)
このレスポンダの実領域を取得します。
VoidPtr GetReference( Void ) (SFYResponder から継承)
このレスポンダのリファレンス値を取得します。
SFYRendererPtr GetRenderer( Void ) (SFYResponder から継承)
このレスポンダに設定されている描画エンジンを取得します。
SFYResponderSmp GetRoot( Void ) (SFYResponder から継承)
このレスポンダが所属するレスポンダツリーのルートレスポンダを取得します。
AVKType GetScrollDownKey( Void ) (SFYContainer から継承)
仮想領域を下方向にスクロールステップ分スクロールする ScrollDown キーを取得します。
Bool GetScrollRepeat( Void ) (SFYContainer から継承)
連続スクロールフラグの値を取得します。
SInt16 GetScrollStep( Void ) (SFYContainer から継承)
スクロールステップを取得します。[単位 : ピクセル]
AVKType GetScrollUpKey( Void ) (SFYContainer から継承)
仮想領域を上方向にスクロールステップ分スクロールする ScrollUp キーを取得します。
AVKType GetSnapDownKey( Void ) (SFYContainer から継承)
仮想領域を下端までスクロールする SnapDown キーを取得します。
AVKType GetSnapUpKey( Void ) (SFYContainer から継承)
仮想領域を上端までスクロールする SnapUp キーを取得します。
Bool GetStateActive( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの活性状態を取得します。
Bool GetStateEnable( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの操作可能状態を取得します。
Bool GetStateFocus( Bool inherit = false ) (SFYResponder から継承)
このレスポンダのフォーカス状態を取得します。
Bool GetStateValid( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの有効状態を取得します。
Bool GetStateVisible( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの可視状態を取得します。
SFXRectangle GetSuitableBound( Void ) (SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
SFXRectangle GetSuitableBound( SFXRectangleConstRef rectangle ) (SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
SFXRectangle GetSuitableBound( SFXRectangleConstRef param , HorizontalEnum horizontal , VerticalEnum vertical ) (SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
SFXMargin GetSuitableMargin( Void ) (SFYResponder から継承)
このレスポンダのフレーム余白領域を取得します。
SFCType GetType( Void ) (SFYResponder から継承)
このレスポンダのタイプを取得します。
SFXRectangleConstRef GetVirtualBound( Void ) (SFYResponder から継承)
このレスポンダの仮想領域を取得します。
Bool HasFrame( Void ) (SFYResponder から継承)
このレスポンダがコンテントレスポンダであるかどうかを判定します。
Void Initialize( Void ) (SFYResponder から継承)
このレスポンダを初期化します。
Void Invalidate( Void ) (SFYResponder から継承)
指定された領域を再描画領域に登録します。
Void Invalidate( SFXRectangleConstRef param ) (SFYResponder から継承)
指定された領域を再描画領域に登録します。
Void InvokeBackward( SFXEventConstRef event , Bool overload , BoolPtr result = null ) (SFYResponder から継承)
指定されたコールバック型イベントをこのレスポンダに送信します (ハンドラは登録順に起動されます)。
Void InvokeForward( SFXEventConstRef event , Bool overload , BoolPtr result = null ) (SFYResponder から継承)
指定されたコールバック型イベントをこのレスポンダに送信します (ハンドラは登録の逆順に起動されます)。
Bool IsBack( Void ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsBack( UInt32 id ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsFrame( Void ) (SFYResponder から継承)
このレスポンダがアタッチメントフレームであるかどうかを判定します。
Bool IsFront( Void ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsFront( UInt32 id ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsRoot( Void ) (SFYResponder から継承)
このレスポンダがルートレスポンダであるかどうかを判定します。
Bool PageDown( Void ) (SFYContainer から継承)
仮想領域を下方向に 1 ページ分スクロールします。
Bool PageUp( Void ) (SFYContainer から継承)
仮想領域を上方向に 1 ページ分スクロールします。
SFCError Recover( Void ) (SFYResponder から継承)
デバイス画面保存用ビットマップを使用してこのレスポンダとレスポンダ空間との交差領域を復元します。
SFCError RegisterHandler( SFXEventRangeConstRef range , SFYHandler::RuleRecConstRef rule ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterHandler( SFXEventRangeConstRef range , SFYHandler::HandlerSPP spp , VoidPtr reference ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterHandler( SFXEventRangeConstPtr range , SFYHandler::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterHandler( SFXEventRangeConstPtr range , SFYHandler::HandlerSPPConstPtr spp , VoidPtrConstPtr reference , SInt32 length ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterTracer( SFXEventRangeConstRef range , SFYTracer::RuleRecConstRef rule ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError RegisterTracer( SFXEventRangeConstRef range , SFYTracer::OrderEnum order , SFYTracer::StateEnum state , Bool overload ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError RegisterTracer( SFXEventRangeConstPtr range , SFYTracer::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError RegisterTracer( SFXEventRangeConstPtr range , SFYTracer::OrderEnumConstPtr order , SFYTracer::StateEnumConstPtr state , BoolConstPtr overload , SInt32 length ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError Render( Bool force = false ) (SFYResponder から継承)
このレスポンダ以下のレスポンダツリーをレスポンダ空間に再描画します。
Bool ScrollDown( Void ) (SFYContainer から継承)
仮想領域を下方向にスクロールします。
Bool ScrollUp( Void ) (SFYContainer から継承)
仮想領域を上方向にスクロールします。
Void SetBackgroundColor( SFXRGBColorConstRef param ) (SFYWidget から継承)
背景の色を設定します。
Void SetDistributer( SFYDistributerPtr param ) (SFYResponder から継承)
指定された配信エンジンをこのレスポンダに設定します。
SFCError SetFrame( SFYResponderSmpConstRef param ) (SFYResponder から継承)
このレスポンダにフレームを装着します。
Void SetID( UInt32 param ) (SFYResponder から継承)
指定された ID をこのレスポンダに設定します。
Void SetPageDownKey( AVKType param ) (SFYContainer から継承)
仮想領域を下方向に 1 ページ分スクロールする PageDown キーを設定します。
Void SetPageUpKey( AVKType param ) (SFYContainer から継承)
仮想領域を上方向に 1 ページ分スクロールする PageUp キーを設定します。
SFCError SetParent( SFYResponderSmpConstRef param ) (SFYResponder から継承)
指定されたレスポンダをこのレスポンダの親レスポンダに設定します。
Void SetProperty( Bool transparent ) (SFYResponder から継承)
指定された属性をこのレスポンダに設定します。
Void SetPropertyTransparent( Bool param ) (SFYResponder から継承)
指定された透過属性をこのレスポンダに設定します。
Void SetRealBound( SFXRectangleConstRef param ) (SFYResponder から継承)
指定された領域をこのレスポンダの実領域に設定します。
Void SetReference( VoidPtr param ) (SFYResponder から継承)
指定された値をこのレスポンダのリファレンスに設定します。
Void SetRenderer( SFYRendererPtr param ) (SFYResponder から継承)
指定された描画エンジンをこのレスポンダに設定します。
Void SetScrollDownKey( AVKType param ) (SFYContainer から継承)
仮想領域を下方向にスクロールステップ分スクロールする ScrollDown キーを設定します。
Void SetScrollRepeat( Bool param ) (SFYContainer から継承)
連続スクロールフラグを設定します。
Void SetScrollStep( SInt16 param ) (SFYContainer から継承)
スクロールステップを設定します。[単位 : ピクセル]
Void SetScrollUpKey( AVKType param ) (SFYContainer から継承)
仮想領域を上方向にスクロールステップ分スクロールする ScrollUp キーを設定します。
Void SetSnapDownKey( AVKType param ) (SFYContainer から継承)
仮想領域を下端までスクロールする SnapDown キーを設定します。
Void SetSnapUpKey( AVKType param ) (SFYContainer から継承)
仮想領域を上端までスクロールする SnapUp キーを設定します。
Void SetState( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
指定された値をこのレスポンダの可視、活性、操作可能、フォーカスの各状態フラグに設定します。
Void SetStateActive( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダの活性状態フラグに設定します。
Void SetStateEnable( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダの操作可能状態フラグに設定します。
Void SetStateFocus( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダのフォーカス状態フラグに設定します。
Void SetStateVisible( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダの可視状態フラグに設定します。
Void SetVirtualBound( SFXRectangleConstRef param ) (SFYResponder から継承)
指定された領域をこのレスポンダの仮想領域に設定します。
Bool SnapDown( Void ) (SFYContainer から継承)
仮想領域を下端までスクロールします。
Bool SnapUp( Void ) (SFYContainer から継承)
仮想領域を上端までスクロールします。
SFCError Snapshot( SFBBitmapSmpConstRef bitmap ) (SFYResponder から継承)
デバイス画面保存用ビットマップからこのレスポンダとレスポンダ空間との交差領域のスナップショットを取得します。
Void Terminate( Void ) (SFYResponder から継承)
このレスポンダの終了処理を行います。
Void ToBack( Void ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToBack( UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToFront( Void ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToFront( UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToNthBackward( SInt32 index ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void UnregisterHandler( SFXEventRangeConstRef range , SFYHandler::RuleRecConstRef rule ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterHandler( SFXEventRangeConstRef range , SFYHandler::HandlerSPP spp , VoidPtr reference ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterHandler( SFXEventRangeConstPtr range , SFYHandler::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterHandler( SFXEventRangeConstPtr range , SFYHandler::HandlerSPPConstPtr spp , VoidPtrConstPtr reference , SInt32 length ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterTracer( SFXEventRangeConstRef range ) (SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
Void UnregisterTracer( SFXEventRangeConstPtr range , SInt32 length ) (SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
プロテクト関数
static
SFYResponderSmp
Factory( SFYResponderPtr responder , SFCErrorPtr exception = null ) (SFYResponder から継承)
NewInstance 関数の実装を補助します。
SFYResponderSmp GetThis( Void ) (SFYResponder から継承)
このレスポンダのスマートポインタを取得します。
Void HandleBoundGlobal( SFXRectangleConstRef rectangle ) (SFYWidget から継承)
[非推奨(廃止予定 API)] グローバル領域が変化したときに呼び出される関数です。
Void HandleBoundOptimize( SFXRectanglePtr rectangle ) (SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベントを受信したときに呼び出される関数です(指定した矩形に収まる範囲内で最適な領域を計算します)。
Void HandleBoundReal( Void ) (SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベントを受信したときに呼び出される関数です (実領域が変化したときの処理を行います)。
Void HandleBoundRequest( SFXRectanglePtr rectangle ) (SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベントを受信したときに呼び出される関数です(最適な領域を計算します)。
Void HandleBoundVirtual( Void ) (SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベントを受信したときに呼び出される関数です (仮想領域が変化したときの処理を行います)。
Bool HandlePageDownKey( Void ) (SFYContainer から継承)
PageDown キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
Bool HandlePageUpKey( Void ) (SFYContainer から継承)
PageUp キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
Void HandleRenderRequest( SFXGraphicsPtr graphics ) (SFYWidget から継承)
描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
Bool HandleScrollDownKey( Void ) (SFYContainer から継承)
ScrollDown キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
Bool HandleScrollUpKey( Void ) (SFYContainer から継承)
ScrollUp キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
Bool HandleSnapDownKey( Void ) (SFYContainer から継承)
SnapDown キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
Bool HandleSnapUpKey( Void ) (SFYContainer から継承)
SnapUp キーの SFEVT_KEY イベントを受信したときに呼び出される関数です。
Void SetType( SFCType param ) (SFYResponder から継承)
指定された値をこのレスポンダのタイプに設定します。
CodeEnum
SFZWindow クラスを表す定数です。
DefaultEnum (SFYContainer から継承)
デフォルトのスクロールステップ(単位 : ピクセル)を表す定数です。
HorizontalEnum (SFYResponder から継承)
水平方向のアライメントを表す定数です。
VerticalEnum (SFYResponder から継承)
垂直方向のアライメントを表す定数です。

SFZWindow::SFZWindow
SFZWindow クラスのコンストラクタです。
[ protected, explicit ]
SFZWindow(Void);

解説

このレスポンダのタイプを "wind" に設定します。

内部実装

このコンストラクタの内部実装は以下の通りです。

/*protected */SFZWindow::SFZWindow(Void) static_throws
{
    if (static_try()) {
        SetType(CODE_TYPE);
    }
}// SFZWindow::SFZWindow //

参照

SFYResponder::SetType | SFZWindow::CodeEnum | タイプ


SFZWindow::~SFZWindow
SFZWindow クラスのデストラクタです。
[ protected, virtual ]
virtual ~SFZWindow(Void);

解説

このデストラクタは、何も行いません。

内部実装

このデストラクタの内部実装は以下の通りです。

/*protected virtual */SFZWindow::~SFZWindow(Void)
{
}// SFZWindow::~SFZWindow //

SFZWindow::NewInstance
新しいインスタンスを作成します。
[ public, static ]
SFZWindowSmp NewInstance(
    SFCErrorPtr exception = null   // エラー値
);

引数

exception

関数内部で発生したエラー値を返します。

戻り値

  • 成功したとき: null 以外のポインタ
  • 失敗したとき: null ポインタ

解説

この関数は、SFZWindow クラスの新しいインスタンスを作成します。

作成に成功した場合は null 以外のポインタを返し、exception 引数は常に SFERR_NO_ERROR になります。メモリ不足などで作成に失敗した場合は null ポインタを返し、exception 引数にエラー値が返ります。

使用例

以下は、ウィンドウのインスタンスを生成するためのコードです。

// ウィンドウのインスタンスを生成する
SFZWindowSmp _window;
SFCError error;

if ((_window = SFZWindow::NewInstance(&error)) != null) {
    ...
}

SFZWindow::CodeEnum
SFZWindow クラスを表す定数です。
enum CodeEnum {
    CODE_TYPE = four_char_code('w', 'i', 'n', 'd')
};
SFMTYPEDEFTYPE(CodeEnum)

参照

SFYResponder::GetType | SFYResponder::SetType