Palm Programmer's Laboratory

トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Palm OS Programmer's API Reference/11-1

← 10 章に戻る ↑トップへ 12 章に進む →

11 フォーム (ページ 1)

↑ 11 章のトップへ 11 章のページ 2 へ →

フォーム構造体と型 ^TOP^

AlertTemplateType 構造体 ^TOP^

目的

アラート リソースの構造体。OS がリソース データベースからアラート リソースを取得し、以前表示していたアラートの内容を操作する必要があるとき、OS がこの構造体を使用します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は AlertTemplateType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

宣言されている場所

Form.h

Prototype

typedef struct AlertTemplateTag {
	UInt16 alertType;
	UInt16 helpRscID;
	UInt16 numButtons;
	UInt16 defaultButton;
} AlertTemplateType

フィールド

  • alertType
    • アラート タイプ。AlertType で定義されている値の 1 つをとります。
  • helpRscID
    • アラートのオンライン ヘルプを提供するリソースの記号的 ID。
  • numButtons
    • アラート上にあるボタンの数。
  • defaultButton
    • アラートのデフォルトの行動を提供するボタンの記号的 ID。

コメント

この構造体のすぐ後に、アラート タイトル、アラート メッセージ、ボタン文字列(各文字列は null で終了し、そのすぐ後に次の文字列が続く)が続きます。

FormActiveStateType 構造体 ^TOP^

目的

アクティブ フォームとウィドウの状態を保存、元に戻すとき、FrmSaveActiveState()FrmRestoreActiveState() に渡される構造体。

宣言されている場所

Form.h

Prototype

typedef struct FormActiveStateType {
	UInt16 data[11];
} FormActiveStateType

フィールド

  • data
    • フォームとウィンドウの状態情報を保持している抽象データ。ある Palm OS のリリースと他のリリースでは、この構造体の内容がまったく異なる可能性があるため、このデータは抽象データであるということに注意してください。アプリケーションはこのフィールドの内容を読み込んだり、書き込んだりしようとすべきではありません。

互換性

この構造体は Palm OS 3.0 で追加されました。

FormAttrType 構造体 ^TOP^

目的

FormAttrType ビット フィールドはフォームの可視特性を定義します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormAttrType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	UInt16 usable:1;
	UInt16 enabled:1;
	UInt16 visible:1;
	UInt16 dirty:1;
	UInt16 saveBehind:1;
	UInt16 graffitiShift:1;
	UInt16 globalsAvailable:1;
	UInt16 doingDialog:1;
	UInt16 exitDialog:1;
	UInt16 reserved:7;
	UInt16 reserved2;
} FormAttrType;

コードは FormAttrType ビット フィールドを実体の無いものとして扱うべきです。ビット フィールド メンバ値を直接変更しようとしてはいけません。

フィールド

  • usable
    • セットしないと、フォームはアプリケーションの現在のインターフェイスの一部とは見なされず、スクリーン上にも現れません。
  • enabled
    • 使用されません。
  • visible
    • フィールド オブジェクトが描画または消去されるとき、内部的にセットまたはクリアされます。
  • dirty
    • 使用されません。
  • saveBehind
    • フォームが描画されるときにフォームの背後にあるビットを保存する場合、セットします。
  • graffitiShift
    • シフト指示子がサポートされる場合、セットします。
  • globalsAvailable
    • システムのみが使用します。
  • doingDialog
    • システムのみが使用します。
  • exitDialog
    • システムのみが使用します。
  • reserved
    • 将来使用するために予約されています。
  • reserved2
    • 将来使用するために予約されています。

互換性

globalsAvailable, doingDialog それに exitDialog フラグは、3.5 New Feature Set が存在する場合にのみ、意味を持ちます。

FormBitmapType 構造体 ^TOP^

目的

FormBitmapType 構造体はフォームのビットマップの可視特性を定義します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormBitmapType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	FormObjAttrType attr;
	PointType pos;
	UInt16 rscID;
} FormBitmapType;

フィールド

FormFrameType 構造体 ^TOP^

目的

FormFrameType 構造体はフォームのフレームを定義します。

Prototyp

typedef struct {
	UInt16 id;
	FormObjAttrType attr;
	RectangleType rect;
	UInt16 frameType;
} FormFrameType;

フィールド

  • id
    • フレームの ID。
  • attr
  • rect
    • フレームの位置とサイズ。
  • frameType
    • フレームのタイプ。

FormGadgetAttrType 構造体 ^TOP^

目的

FormGadgetAttrType ビット フィールドはガゼットの属性を定義します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormGadgetAttrType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	UInt16 usable:1;
	UInt16 extended:1;
	UInt16 visible:1;
	UInt16 reserved:13;
} FormGadgetAttrType;

コードは FormGadgetAttrType ビット フィールドを実体の無いものとして扱うべきです。各値を取得しセットするためには、以下の説明で指定された関数を使用してください。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • usable
    • セットされていない場合、ガゼットはアプリケーションの現在のインターフェイスの一部とは見なされず、スクリーン上にも表示されません。この値は FrmShowObuject() によってセットされ、FrmHideObject() によってクリアされます。
  • extend
    • セットされている場合、ガゼットは拡張ガゼットです。拡張ガゼットは 3.5 New Feature Set が存在する場合にサポートされます。拡張ガゼットは FormGadgetType の中で定義される handler フィールドを持ちます。セットされていない場合、ガゼットはすべての Palm OS で互換性を持つ標準ガゼットです。
  • visible
    • ガゼットが描かれたり消されたりするときに、セット、または、クリアされます。FrmHideObjec() がこの値をクリアします。(ガゼットがコールバック関数を持つ場合)描画要求に応答するとき、ガゼットのコールバック関数の中で明示的にこの値をセットすべきです。
  • reserved
    • 将来使用するために予約されています。

多くのフォーム関数(例えば、FrmGetObjectType(), FrmHideObject(), FrmGetObjectBounds())は引数の 1 つとしてオブジェクトのインデックスをとります。オブジェクトのインデックスを取得する最も一般的な方法は、FrmGetObjectIndex() を呼び出すことです。FrmGetObjectIndex は引数としてフォームへのポインタとオブジェクトの ID をとり(訳者注: 原文では form ID となっていたが誤りと思われる)、フォーム オブジェクトのインデックスを返します。このルーチンは最も多くのケースで使われるものです。なぜなら、アプリケーションは通常オブジェクト ID を知っているからです。しかしながら、ガゼット -- 明確に言えば拡張ガゼット -- は、ID ではなくガゼット ポインタを返すコールバック関数を含む API を持ちます。そのようなケースでは、オブジェクト インデックスを取得する(それにより FrmGetObjectIndex API が使用可能になる)唯一の方法は、FrmGetObjectIndexFromPtr() を使用することです。

Palm OS 4.0 以前のシステムで同じ機能が必要な場合、以下のコードで同じことを実現できます。

UInt16 index;
UInt16 objIndex = frmInvalidObjectId;
UInt16 numObjects = FrmGetNumberOfObjects(frmP)
for (index = 0; index < numObjects; index++) {
     if (FrmGetObjectPtr(index) == myObjPtr) {
          // Found it
          objIndex = index;
          break;
    }
}

互換性

この構造体は、3.5 New Feature Set が存在する場合にのみ、定義されます。

FormGadgetType 構造体 ^TOP^

目的

FormGadgetType 構造体はフォーム上に現れるガゼット オブジェクトを定義します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormGadgetType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	UInt16 id;
	FormGadgetAttrType attr;
	RectangleType rect;
	const void *data;
	FormGadgetHandlerType *handler;
} FormGadgetType;

コードは FormGadgetType ビット フィールドを実体の無いものとして扱うべきです。各値を取得しセットするためには、以下の説明で指定された関数を使用してください。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • id
    • ガゼット リソースの ID。
  • attr
  • rect
    • オブジェクトの位置とサイズ。
  • data
    • 保存される必要のあるすべてのデータへのポインタ。このフィールドの値をセット、取得するために FrmSetGadgetData()FrmGetGadgetData() を使用することができます。
  • handler
    • ガゼットの振る舞いとイベントへの応答を制御するコールバック関数へのポインタ。このフィールドを FrmSetGadgetHandler() を使ってセットすることができます。

多くのフォーム関数(例えば、FrmGetObjectType(), FrmHideObject(), FrmGetObjectBounds())は引数の 1 つとしてオブジェクトのインデックスをとります。オブジェクトのインデックスを取得する最も一般的な方法は、FrmGetObjectIndex() を呼び出すことです。FrmGetObjectIndex は引数としてフォームへのポインタとオブジェクトの ID をとり(訳者注: 原文では form ID となっていたが誤りと思われる)、フォーム オブジェクトのインデックスを返します。このルーチンは最も多くのケースで使われるものです。なぜなら、アプリケーションは通常オブジェクト ID を知っているからです。しかしながら、ガゼット -- 明確に言えば拡張ガゼット -- は、ID ではなくガゼット ポインタを返すコールバック関数を含む API を持ちます。そのようなケースでは、オブジェクト インデックスを取得する(それにより FrmGetObjectIndex API が使用可能になる)唯一の方法は、FrmGetObjectIndexFromPtr() を使用することです。

Palm OS 4.0 以前のシステムで同じ機能が必要な場合、以下のコードで同じことを実現できます。

UInt16 index;
UInt16 objIndex = frmInvalidObjectId;
UInt16 numObjects = FrmGetNumberOfObjects(frmP)
for (index = 0; index < numObjects; index++) {
     if (FrmGetObjectPtr(index) == myObjPtr) {
          // Found it
          objIndex = index;
          break;
    }
}

Palm OS 3.5 より前のリリースでは、attr フィールドは FormObjectAttrType であり、handler フィールドは存在しません。

FormGadgetTypeInCallback 構造体 ^TOP^

目的

FormGadgetTypeInCallback 構造体は拡張ガゼット ハンドラに渡されます。またこの構造体は、DO_NOT_ALLOW_ACCESS_TO_INTERNALS_OF_STRUCTS が定義されているときは構造体の内容が隠されない点を除き、FormGadgetType と同じです。この構造体により、拡張ガゼット コールバック関数から拡張ガゼット構造体の内容に自由にアクセスすることが可能になります。

Prototype

typedef struct {
	UInt16 id;
	FormGadgetAttrType attr;
	RectangleType rect;
	const void *data;
	FormGadgetHandlerType *handler;
} FormGadgetTypeInCallback;

フィールド

  • id
    • ガゼット リソースの ID。
  • attr
  • rect
    • オブジェクトの位置とサイズ。
  • data
    • 保存される必要のあるすべてのデータへのポインタ。
  • handler
    • ガゼットの振る舞いとイベントへの応答を制御するコールバック関数へのポインタ。

多くのフォーム関数(例えば、FrmGetObjectType(), FrmHideObject(), FrmGetObjectBounds())は引数の 1 つとしてオブジェクトのインデックスをとります。オブジェクトのインデックスを取得する最も一般的な方法は、FrmGetObjectIndex() を呼び出すことです。FrmGetObjectIndex は引数としてフォームへのポインタとオブジェクトの ID をとり(訳者注: 原文では form ID となっていたが誤りと思われる)、フォーム オブジェクトのインデックスを返します。このルーチンは最も多くのケースで使われるものです。なぜなら、アプリケーションは通常オブジェクト ID を知っているからです。しかしながら、ガゼット -- 明確に言えば拡張ガゼット -- は、ID ではなくガゼット ポインタを返すコールバック関数を含む API を持ちます。そのようなケースでは、オブジェクト インデックスを取得する(それにより FrmGetObjectIndex API が使用可能になる)唯一の方法は、FrmGetObjectIndexFromPtr() を使用することです。

Palm OS 4.0 以前のシステムで同じ機能が必要な場合、以下のコードで同じことを実現できます。

UInt16 index;
UInt16 objIndex = frmInvalidObjectId;
UInt16 numObjects = FrmGetNumberOfObjects(frmP)
for (index = 0; index < numObjects; index++) {
     if (FrmGetObjectPtr(index) == myObjPtr) {
          // Found it
          objIndex = index;
          break;
    }
}

互換性

Palm OS 4.0 SDK Update 1 で導入されました。

FormLabelType 構造体 ^TOP^

目的

FormLabelType 構造体はフォーム上に現れるラベルを定義します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormLabelType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	UInt16 id;
	PointType pos;
	FormObjAttrType attr;
	FontID fontID;
	UInt8 reserved;
	Char *text;
} FormLabelType;

コードは FormLabelType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • id
    • ラベルの ID。
  • pos
    • ラベルの位置。
  • attr
  • fontID
    • ラベルに使用されるフォントのフォント ID。
  • reserved
    • 将来使用するために予約されています。
  • text
    • ラベルのテキスト。

FormLineType 構造体 ^TOP^

目的

FormLineType 構造体はフォーム上に現れる線を定義します。

Prototype

typedef struct {
	FormObjAttrType attr;
	PointType point1;
	PointType point2;
} FormLineType;

コードは FormLineType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • attr
  • point1
    • 線の開始位置。
  • point2
    • 線の終了位置。

FormObjAttrType 構造体 ^TOP^

目的

FormObjAttrType ビット フィールドはフォーム オブジェクトの属性を定義します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormObjAttrType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	UInt16 usable : 1;
	UInt16 reserved : 15;
} FormObjAttrType;

コードは FormObjAttrType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • usable
    • セットされていない場合、オブジェクトはアプリケーションの現在のインターフェイスの一部とは見なされず、スクリーン上にも現れません。
  • reserved
    • 将来使用するために予約されています。

FormObjectType 構造体 ^TOP^

目的

FormObjectType 共用体(訳者注: 原文では union)は、フォーム上に現れるユーザ インターフェイス オブジェクトのための C 構造体を指します。

Prototype

typedef union {
	void *ptr;
	FieldType *field;
	ControlType *control;
	GraphicControlType *graphicControl;
	SliderControlType *sliderControl;
	ListType *list;
	TableType *table;
	FormBitmapType *bitmap;
	FormLabelType *label;
	FormTitleType *title;
	FormPopupType *popup;
	FormGraffitiStateType *grfState;
	FormGadgetType *gadget;
	ScrollBarType *scrollBar;
} FormObjectType;

コードは FormObjectType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • ptr
    • オブジェクトのタイプが以下で指定されるものの 1 つではない場合に使用されます。
  • field
    • テキスト フィールドの構造体。FieldType を参照してください。
  • control
    • コントロールの構造体。ControlType を参照してください。
  • graphicControl
    • グラフィック ボタン構造体。GraphicControlType を参照してください。
  • sliderControl
    • スライダ コントロール構造体。SliderControlType を参照してください。
  • control
    • リスト オブジェクトの構造体。ListType を参照してください。
  • table
    • テーブル構造体。TableType を参照してください。
  • bitmap
    • フォーム ビットマップの構造体。FormBitmapType を参照してください。
  • label
    • ラベルの構造体。FormLabelType を参照してください。
  • title
    • フォーム タイトルの構造体。FormTitleType を参照してください。
  • popup
    • ポップアップ リストの構造体。FormPopupType を参照してください。
  • grfState
  • gadget
    • ガゼット(カスタム UI リソース)構造体。FormGadgetType を参照してください。
  • scrollbar
    • スクロール バーの構造体。ScrollBarType を参照してください。

互換性

graphicControlsliderControl は、3.5 New Feature Set が存在する場合にのみ、定義されます。

FormObjListType 構造体 ^TOP^

目的

FormObjListType 構造体はフォーム上に現れるユーザ インターフェイス オブジェクトを指定します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormObjListType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	FormObjectKind objectType;
	UInt8 reserved;
	FormObjectType object;
} FormObjListType;

コードは FormObjListType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • objectType
    • オブジェクトのタイプ(コントロール、フィールドなど)を指定します。FormObjectKind を参照してください。
  • reserved
    • 将来使用するために予約されています。
  • object
    • オブジェクトを定義する C データ構造体。FormObjectType を参照してください。

FormPopupType 構造体 ^TOP^

目的

FormPopupType 構造体はフォーム上に現れるポップアップ リストを定義します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormPopupType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	UInt16 controlID;
	UInt16 listID;
} FormPopupType;

コードは FormPopupType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • controlID
    • リストの表示を引き起こすリスト オブジェクトのリソース ID。
  • listID
    • ポップアップ リストを定義するリスト オブジェクトのリソース ID。

FormPtr Typeder ^TOP^

目的

FormPtr 型は FormType 構造体へのポインタを定義します。

Prototype

typedef FormType *FormPtr;

FormRectangleType 構造体 ^TOP^

目的

FormRectangleType 構造体はフォーム上に現れる Rectangle (四角形)を定義します。

Prototype

typedef struct {
	FormObjAttrType attr;
	RectangleType rect;
} FormRectangleType;

コードは FormRectangleType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • attr
  • rect
    • Rectangle の位置とサイズ。

FormTitleType 構造体 ^TOP^

目的

FormTitleType 構造体はフォームのタイトルを定義します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormTitleType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	RectangleType rect;
	char *text;
} FormTitleType;

コードは FormTitleType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • rect
    • タイトル エリアの位置とサイズ。
  • text
    • タイトルのテキスト。

FormType 構造体 ^TOP^

目的

FormType 構造体とそれをサポートする構造体は以下で定義されます。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FormType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct {
	WindowType window;
	UInt16 formId;
	FormAttrType attr;
	WinHandle bitsBehindForm;
	FormEventHandlerType *handler;
	UInt16 focus;
	UInt16 defaultButton;
	UInt16 helpRscId;
	UInt16 menuRscId;
	UInt16 numObjects;
	FormObjListType *objects;
} FormType;

コードは FormType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • window
  • formId
    • アプリケーション開発者によって指定されるフォームの ID 番号。この ID 値は frmOpenEvent のイベント データの一部になります。この ID はフォームのリソース ID と一致するべきです。FrmGetFormId() を使ってこのフィールドにアクセスします。
  • attr
    • フォーム オブジェクト属性。FormAttrType を参照してください。
  • bitsBehindForm
    • フォームの背後にあるすべてのビットを保存するために使用されます。保存することにより、フォームがクローズされたときにスクリーンを適切にリフレッシュすることができます。このフィールドはモーダル フォーム(訳者注)によって内部的に使用されるのみです。
  • handler
    • フォームがイベントをハンドルする必要があるときに呼び出されるルーチン。通常、これは FrmSetEventHandler() の呼び出しによってアプリケーションのイベント ハンドル用関数にセットされます。
  • focus
    • フォーカスを保持するフォームの中のフィールドまたはテーブル オブジェクトのインデックス。すべての keyDownEvent はフォーカスを持つオブジェクトに渡されます。フォーカスを持つオブジェクトが無い場合は noFocus をセットします。
  • defaultButton
    • デフォルト ボタンとして定義されているオブジェクトのリソース ID。この値はルーチン FrmDoDialog() によって使用されます。
  • helpRscId
    • ヘルプ リソースのリソース ID 番号。ヘルプ リソースは文字列リソース(tSTR 型)です。
  • menuRscId
    • フォームがメニューを持つ場合に使用されるメニュー バーの ID 番号。フォームがメニューを持たない場合は 0。
  • numObjects
    • フォーム内部で保持されるオブジェクトの数。FrmGetNumberOfObjects() を使用してこのフィールドにアクセスします。
  • objects
    • フォーム内部で保持されるオブジェクトの配列へのポインタ。FormObjListType を参照してください。

FrmGraffitiStateType 構造体 ^TOP^

目的

FrmGraffitiStateType 構造体はシフト指示子を定義します。

WARNING!
PalmSource 社(訳者注: 現 ACCESS 社)は FrmGraffitiStateType 構造体の下位互換をサポートしません。この構造体のメンバに直接アクセスしてはいけません。そのようなコードは、将来のバージョンでは機能しないかもしれません。以下の情報はデバッグ目的でのみ使用してください。

Prototype

typedef struct{
	PointerType pos;
}FrmGraffitiStateType;

コードは FormGraffitiStateType 構造体を実体の無いものとして扱うべきです。構造体メンバ値を直接変更しようとしてはいけません。

フィールド

  • pos
    • シフト指示子の位置。

FrmNavHeaderType 構造体 ^TOP^

目的

フォームのナビゲーション順のためのヘッダ情報を保持します。与えられたフォームのためのこの構造体を取得するには、FrmGetNavOrder() を呼び出します。セットするには FrmSetNavOrder() を呼び出します。

宣言されている場所

Form.h

Prototype

typedef struct FrmNavHeaderTag {
	UInt16 version;
	UInt16 numberOfObjects;
	UInt16 headerSizeInBytes;
	UInt16 listElementSizeInBytes;
	FrmNavHeaderFlagsType navFlags;
	UInt16 initialObjectIDHint;
	UInt16 jumpToObjectIDHint;
	UInt16 bottomLeftObjectIDHint;
	UInt16 padding1;
} FrmNavHeaderType

フィールド

  • version
    • デバイスによって使用されるこの構造体のバージョン。Form.h で定義されるこの構造体のバージョンは kFrmNavInfoVersion によって指定されます。
  • numberOfObjects
    • このフォームのためのナビゲーション順の中にあるオブジェクトの数。
  • headerSizeInBytes
    • このヘッダ構造体のサイズをバイト数で。バージョン 1 構造体は 20 バイトあります。
  • listElementSizeInBytes
    • ナビゲーション順の中の各オブジェクトを表すために使用される FrmNavOrderEntryType 構造体のサイズ。
  • navFlags
    • FrmNavHeaderFlagsType でリストされているフラグの組み合わせ。これらのフラグはフォームの初期フォーカス モードを指定します。
  • initialObjectIDHint
    • フォームが初期化されたときにフォーカスが位置するオブジェクトの ID。initialObjectIDHint が 0 の場合、OS は初期フォーカスを最初のアクション ボタン(がある場合は)に置きます。また、ボタンが無い場合は、タブ順が最初のオブジェクトをフォーカスします。
  • jumpToObjectIDHint
    • フォーカスが「ジャンプ」できるオブジェクトの ID。ただし、デバイスがこの機能をサポートする場合です。デバイスは、オプションとして、フォーカスを使用頻度の高いオブジェクトに移動させるアクション トリガを持つことができます。
  • bottomLeftObjectIDHint
    • 垂直に巡回するプラットフォームに対して、このフィールドは、フォームの最初の行に位置するオブジェクト(aboveObjectID[FrmNavOrderEntryType を参照]が 0 のオブジェクト)からナビゲーションが上に移動するとき、どのオブジェクトがフォーカスを受け取るのかを指定します。0 の bottomLeftObjectIDHint 値はフォーカスがフォームの中を垂直には巡回しないことを意味します。
  • padding1
    • 構造体が埋めるバイト。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

FrmNavOrderEntryType 構造体 ^TOP^

目的

フォーカスを移動させることを目的としたキーを使用したとき、与えられた UI オブジェクトからどのようにナビゲーションがアップまたはダウンするかを定義します。

宣言されている場所

Form.h

Prototype

typedef struct FrmNavOrderEntryTag {
	UInt16 objectID;
	FrmNavObjectFlagsType objectFlags;
	UInt16 aboveObjectID;
	UInt16 belowObjectID;
} FrmNavOrderEntryType

フィールド

  • objectID
    • ナビゲーション順の中のオブジェクトの ID。
  • objectFlags
  • aboveObjectID
    • 記述されているオブジェクト(訳者注: objectID で指定されるオブジェクトのことだと思われる)の上に位置するオブジェクトの ID。記述されているオブジェクトがフォームの最初の行にある場合、0 にすべきです。ユーザがこの値が 0 のオブジェクトからナビゲーション アップする場合、いくつかのプラットフォームはフォーカスをフォームの FrmNavHeaderType 構造体の中の bottomLeftObjectIDHint で指定されるオブジェクトに移動させます。
  • belowObjectID
    • 記述されているオブジェクトの下に位置するオブジェクトの ID。オブジェクトがフォームの一番下の行にある場合、0 にすべきです。ユーザがこの値が 0 のオブジェクトからナビゲーション ダウンする場合、いくとかのプラットフォームはフォーカスをタブ順が最初のオブジェクトに移動させます。

コメント

与えられたフォームに対して、FrmGetNavOrder() を呼び出すことでこのタイプの構造体の配列を取得できます。フォームに対してナビゲーション順がセットするとき、これらの構造体 -- 1 つの構造体がナビゲーション順の中の 1 つの UI オブジェクトのためにある -- の配列を作成し、それからその配列のアドレスを FrmSetNavOrder() に渡します。

NOTE
FrmSetNavOrder() はナビゲーション リソースの内容を置き換えることを意図してはいません。カスタム ナビゲーション順を持つことを必要とするフォームは常にナビゲーション リソースを敵供すべきです。FrmSetNavOrder() は、主に、動的に作成されるフォームまたはナビゲーション リソースを持つがフォームの初期化後に順番を変更するフォームのためにあります。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

フォーム定数 ^TOP^

AlertType 列挙体(Enum) ^TOP^

目的

この定数はユーザに示されるアラートのタイプを定義します。

宣言されている場所

Form.h

Prototype

typedef enum alertTypes AlertType;

定数

  • informationAlert
    • ユーザに致命的ではない状況を単純に知らせるアラート。
  • confirmationAlert
    • ユーザが表示された情報を確認することを要求するアラート。
  • warningAlert
    • ユーザに深刻かもしれない状態を知らせるためのアラート。
  • errorAlert
    • ユーザにエラーが起こったことを知らせるためのアラート。

列挙体(Enum) ^TOP^

目的

FormObjectKind 列挙体は FormObjListTypeobjectType フィールドのための値を指定します。この列挙体は object フィールドをどのように解釈するかを指定します。

宣言されている場所

Form.h

Prototype

typedef enum formObjects FormObjectKind;

定数

  • frmFieldObj
    • テキスト フィールド
  • frmControlObj
    • コントロール
  • frmListObj
    • リスト
  • frmTableObj
    • テーブル
  • frmBitmapObj
    • フォーム ビットマップ
  • frmLineObj
  • frmFrameObj
    • フレーム
  • frmRectangleObj
    • Rectangle(四角形)
  • frmLabelObj
    • ラベル
  • frmTitleObj
    • フォーム タイトル
  • frmPopupObj
    • ポップアップ リスト
  • frmGraffitiStateObj
    • Graffiti または Graffiti 2 シフト指示子
  • frmGadgetObj
    • ガゼット(カスタム オブジェクト)
  • frmScrollBarObj
    • スクロール バー

FrmNavFocusRingStyleEnum Typedef ^TOP^

目的

この列挙体の定数はフォーカス リング スタイルを示します。

宣言されてる場所

Form.h

Prototype

typedef UInt16 FrmNavFocusRingStyleEnum

定数

  • frmNavFocusRingStyleObjectTypeDefault = 0
    • 下にある(訳者注: 原文は underlying)オブジェクトに一致するフォーカス リングを使用します。
  • frmNavFocusRingStyleSquare = 1
    • 角ばった四隅を持つ四角形のフォーカス リング。
  • frmNavFocusRingStyleRound = 2
    • 丸まった四隅を持つ四角形のフォーカス リング。
  • frmNavFocusRingStyleHorizontalBars = 3
    • 単純に水平な線を持つフォーカス リング。
  • frmNavFocusRingStyleInvalid = 0xFFFF
    • FrmNavGetFocusRingInfo() によって返されるリング スタイルが無効であることを示すための値。

コメント

フォーム オブジェクトのリング スタイルを FrmNavDrawFocusRing() を使ってセットします。存在しているオブジェクトのリング スタイルを、FrmNavGetFocusRingInfo() を呼び出すことで、調べることができます。

選択されたフォーカス リング スタイルがデバイスでサポートされない場合、FrmNavDrawFocusRing() は代わりとして frmNavFocusRingStyleObjectTypeDefault を使用します。frmNavFocusRingStyleHorizontalBars はすべてのデバイスでサポートされないことに注意してください。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

FrmNavHeaderFlagsType Typedef ^TOP^

目的

フォーム ナビゲーション フラグは主にフォームの初期フォーカス モードを指定します(アプリケーション フォーカス モードまたはオブジェクト フォーカス モード)。これらのフラグは FrmNavHeaderType 構造体の navFlags フィールドを作成します。

宣言されている場所

Form.h

Prototype

typedef UInt32 FrmNavHeaderFlagsType

定数

  • #define kFrmNavHeaderFlagsAppFocusStartState 0x00000002
    • このフラグがセットされている場合、フォームの初期状態はアプリケーション フォーカス モードになります。
  • #define kFrmNavHeaderFlagsAppFocusStartStateValue 0x00000002
    • kFrmNavHeaderFlagsStartStateMask でフラグ ビットにマスクをかけた後、その結果は、フォームの初期状態がアプリケーション フォーカス モードになるかどうかを調べるために、この値と比較することができます。
  • #define kFrmNavHeaderFlagsAutoGenerated 0x80000000
  • #define kFrmNavHeaderFlagsDefaultStartStateValue 0x00000000
    • kFrmNavHeaderFlagsStartStateMask でフラグ ビットにマスクをかけた後、その結果は、フォームの初期フォーカス モードがシステムによって選択されるかどうかを調べるために、この値と比較することができます。
  • #define kFrmNavHeaderFlagsInvalidStartStateValue 0x00000003
    • kFrmNavHeaderFlagsStartStateMask でフラグ ビットにマスクをかけた後、その結果は、フォーカス モード フラグが不適切にセットされているかどうかを調べるために、この値と比較することができます。
  • #define kFrmNavHeaderFlagsObjectFocusStartState 0x00000001
    • このフラグがセットされている場合、フォームの初期状態はオブジェクト フォーカス モードになります。
  • #define kFrmNavHeaderFlagsObjectFocusStartStateValue 0x00000001
    • kFrmNavHeaderFlagsStartStateMask でフラグ ビットにマスクをかけた後、その結果は、フォームの初期状態がオブジェクト フォーカス モードになるかどうかを調べるために、この値と比較することができます。
  • #define kFrmNavHeaderFlagsStartStateMask 0x00000003
    • 「初期状態(訳者注: 原文は start state)」ビットを孤立させ、その結果を値として扱うことを可能にするマスク。マスクをかけた結果は、初期状態を調べるために kFrmNavHeaderFlags...StartStateValue 定数のいずれかと比較することができます。

コメント

kFrmNavHeaderFlagsObjectFocusStartState norkFrmNavHeaderFlagsAppFocusStartState もセットされていない場合、システムがフォームの初期状態をオブジェクト フォーカス モードにするかアプリケーション フォーカス モードにするかを決定します。両方のフラグがセットされている場合、エラーになります。


以下のコードは、フォームの初期状態がシステムによって決定されるかどうかをどのようにチェックするかを示しています。

if ( (navFlags & kFrmNavHeaderFlagsStartStateMask) ==
kFrmNavHeaderFlagsDefaultStartStateValue)) {
   // Form's initial state is decided by system
}

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

FrmNavObjectFlagsType Typedef ^TOP^

目的

ナビゲーション オブジェクトの異なる側面を指定するフラグ。

宣言されている場所

Form.h

Prototype

typedef UInt16 FrmNavObjectFlagsType

定数

  • #define kFrmNavObjectFlagsForceInteractionMode 0x0002
    • 複数行のテキスト フィールドに使用されます。このフラグがセットされている場合、フィールドがフォーカスを受け取ると、フォームは相互作用モードに入ります。セットされていない場合、フィールドがフォーカスを受け取ると、フィールドはフォーカスされてた状態で描画され、非相互作用モード状態になります。
  • #define kFrmNavObjectFlagsIsBigButton 0x8000
    • オブジェクトは「大ボタン(訳者注: big button)」になります。大ボタンは palmOne(訳者注: Palm のハードウェアの製造・販売を行う会社)によって作成された UI オブジェクトの 1 タイプです。基本的に、大ボタンはビットマップとテキストを持つ thumbable (訳者: ??)ボタンです。これらはガゼットとして実装されます。
  • #define kFrmNavObjectFlagsSkip 0x0001
    • このフラグがセットされている場合、フォーカスがオブジェクトからオブジェクトへと移動するとき、このフラグを持つオブジェクトはスキップされます。このオブジェクトは、明示的にフォーカスを取得するとき(これは主に、フィールド、フィールドを持つテーブル、ポップアップ トリガ、セレクタ トリガが、ペンでタップされることにより、フォーカスを取得するときに起こります)にのみ、順番(順序)に含まれます。

コメント

ナビゲーション順の中にある与えられたコントロールのためのフラグは FrmGetNavEntry() を呼び出すことによって取得することができます。FrmSetNavEntry() を呼び出すことにより、コントロールに対してそれらのフラグをセットすることができます。両方のケースで、フラグは FrmNavOrderEntryType 構造体のフィールドの 1 つです。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

FrmNavStateFlagsType Typedef ^TOP^

目的

フォームのナビゲーション状態を定義するフラグ。フォームのナビゲーション状態を取得するには FrmGetNavState() を使用します。セットするには、FrmSetNavState() を使用します。

宣言されている場所

Form.h

Prototype

typedef UInt32 FrmNavStateFlagsType

定数

  • #define kFrmNavStateFlagsInteractionMode 0x00000001
    • フォームは「相互作用モード」になっています。このビットがセットされていない場合、フォームは「ナビゲーション モード」になっています。これらのモードが意味することについての情報は、以下のコメントを参照してください。
  • #define kFrmNavStateFlagsObjectFocusMode 0x00000002
    • フォームは「オブジェクト フォーカス モード」になっています。このビットがセットされていない場合、フォームは「アプリケーション フォーカス モード」になっています。これらのモードが意味することについての情報は、以下のコメントを参照してください。

コメント

相互作用モードとナビゲーション モード

より複雑なオブジェクトは、スクロール キーと相互作用するために、それらスクロール キーを「引き継ぐ」必要があります。例えば、テキスト フィールドはカーソルを移動させるために全部で 4 つのスクロール キーを割り当てる必要があります。同様に、ポップアップ リストはリストの選択を変更するためにアップ キーとダウン キーを使用する必要があります。このことは、オブジェクト間をナビゲートするためにスクロール キーを使用するという要求と衝突します。結果として、これらの複雑なオブジェクトは相互作用モード(このモードではオブジェクトがキーの制御を引き継ぎます)を持つ必要があります。相互作用モードと対極にあるのがナビゲーション モードです。このモードではスクロール キーはオブジェクト間のナビゲートに使用されます。One-Handed navigation (訳者注: 片手でのナビゲーション)を持つシステムでは、「中央」キーを押すことで相互作用モードとナビゲーション モードを切り替えます。最後に、相互作用モードの部分集合(subset)は編集モードです。編集モードは明確にテキスト フィールドを参照します。

オブジェクト フォーカス モードとアプリケーション フォーカス モード

相互作用モードとナビゲーション モードは palmOne(訳者注: Palm のハードウェアの製造・販売を行う会社)のコンセプトです。PalmSource(訳者注: 現 ACCESS、Palm のソフトウェア開発を行う会社)はアプリケーション フォーカス モードとオブジェクト フォーカス モードを定義しました。アプリケーション フォーカス モードは、キーボード ナビゲーションを使用可能にしないアプリケーションを参照します。この状態では、アップ キーとダウン キーはページ アップとページ ダウンとして機能します。それらは Palm OS がオリジナルのフォームで実装していた伝統的な手法です。オブジェクト フォーカス モードは、スクリーン上の個々のオブジェクトがフォーカスを受け取ることが可能なモードで、本質的に「ナビゲーション モード」が参照するモードです。

アプリケーションはアプリケーション フォーカス モードとオブジェクト フォーカス モードを切り替えるかもしれませんし、切り替えないかもしれません。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

フォーム ナビゲーション フォーカス エラー コード ^TOP^

目的

FrmNav...Frm...Nav... 関数によって返されるエラー コード。

宣言されている場所

Form.h

定数

  • #define uilibErrCurrentFocusInvalid (uilibErrorClass | 2)
    • 現在のフォーカス オブジェクトがありません。
  • #define uilibErrFormDoesNotHaveFocus (uilibErrorClass | 7)
    • 指定されたフォームは現在フォーカスを持っていません。
  • #define uilibErrInvalidFocusObject (uilibErrorClass | 6)
    • フォーカスが移されるべきコントロールに使用可能のマークが付いていません。
  • #define uilibErrInvalidParam (uilibErrorClass | 1)}}
    • 提供されたパラメータのうち少なくとも 1 つが無効です。
    • #define uilibErrNoNavInfoForForm (uilibErrorClass | 5)
    • 指定されたフォームはナビゲーション情報を持っていません。
  • #define uilibErrObjectFocusModeOff (uilibErrorClass | 3)
    • 指定されたフォームはオブジェクト フォーカス モードになっていません。このエラー コードはまた、Palm OS Glue ライブラリの中の FrmGlueNav...関数に対して、デバイスが One-handed navigation をサポートしていないことを示すためにも使用されます。
  • #define uilibErrObjectNotFound (uilibErrorClass | 4)
    • システムが描画するフォーカス リングを持つオブジェクトがありません。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

フォームの動的入力エリアのポリシー ^TOP^

目的

動的入力エリアのポリシーは、フォームがアクティブな間どのように動的入力エリアがハンドルされるべきかを指定します。これらの値はフォームの属性構造体の中の diaPolicy 属性のために使用されます。これらの値を FrmSetDIAPolicyAttr() でセットでき、FrmGetDIAPolicyAttr() で取得することができます。

宣言されている場所

Form.h

定数

  • #define frmDIAPolicyCustom 1
    • ユーザとアプリケーションが、入力エリアがアクティブかどうかを制御します。
  • #define frmDIAPolicyStayOpen 0
    • フォームがアクティブな間、動的入力エリアにオープンされたままでいることを強制します。入力トリガは使用不可です。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

その他のフォーム定数 ^TOP^

目的

これらのフォーム定数もまた定義されます。

宣言されている場所

Form.h

定数

  • #define formNavRscType 'fnav'
    • UIResources.h の中で定義されています。)ナビゲーション リソースのリソース タイプです。この定数は 68K フォーマット(big endian)リソースとして定義されています。
  • #define frmInvalidObjectId 0xffff
    • 無効なオブジェクト ID またはインデックスを表す定数値です。
  • #define frmNavFocusRingNoExtraInfo ((Int16)0xFFFF)
    • 現在のナビゲーション オブジェクトに関連付けられた臨時の情報が無いことを示す値です。フォーカス リングを取得しているオブジェクトに関連するような情報を持たない場合に、この値を FrmNavFocusRing() に渡します。この値は、周りにフォーカス リングが現在描かれているオブジェクトに関連付けられた臨時の情報が無かった場合に、{[goto FrmNavGetFocusRingInfo,FrmNavGetFocusRingInfo()|Palm OS Programmer's API Reference/11-2}} から返されます。
  • #define frmNoSelectedControl 0xff
  • #define frmRedrawUpdateCode 0x8000
    • フォームが描かれるべきであることを示します。frmUpdateEvent の中にあるフラグです。
  • #define frmResponseCreate 1974
  • #define frmResponseQuit ((Int16) 0xBEEF)
  • #define kFrmNavInfoVersion 1
  • #define noFocus 0xffff
    • フォーカスを持つフォーム オブジェクトはありません。

One-Handed Navigation Trap Selectors ^TOP^

目的

One-handed ナビゲーション関数のためのトラップ セレクタ。

宣言されている場所

Form.h

定数

  • #define NavSelectorFrmCountObjectsInNavOrder 0x0
  • #define NavSelectorFrmGetNavEntry 0x3
  • #define NavSelectorFrmGetNavOrder 0x1
  • #define NavSelectorFrmGetNavState 0x5
  • #define NavSelectorFrmNavDrawFocusRing 0x7
  • #define NavSelectorFrmNavGetFocusRingInfo 0x9
  • #define NavSelectorFrmNavObjectTakeFocus 0xA
  • #define NavSelectorFrmNavRemoveFocusRing 0x8
  • #define NavSelectorFrmSetNavEntry 0x4
  • #define NavSelectorFrmSetNavOrder 0x2
  • #define NavSelectorFrmSetNavState 0x6

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

フォーム リソース ^TOP^

以下のリソースは、フォームと上記で定義されるデータ構造体を持つフォーム上のオブジェクトに関連付けられます。

  • フォーム - フォーム リソース (tFRM)
  • アラート ダイアログ - アラート リソース (Talt)
  • ビットマップ - フォーム ビットマップ リソース (tFBM)
  • ボタン - ボタン リソース (tBTN)
  • チェック ボックス - チェック ボックス リソース (tCBX)
  • フィールド - フィールド リソース (tFLD)
  • ガゼット(カスタム オブジェクト) - ガゼット リソース (tGDT)
  • シフト指示子 - シフト指示子リソース (tGSI)
  • ラベル - ラベル リソース (tLBL)
  • リスト - リスト リソース (tLST)
  • ポップアップ トリガ - ポップアップ トリガ リソース (tPUT)
  • プッシュ ボタン - プッシュ ボタン リソース (tPBN)
  • リピート ボタン - リピート ボタン リソース (tREP)
  • スクロールバー - スクロール バー リソース (tSCL)
  • セレクタ トリガ - セレクタ トリガ リソース (tSLT)
  • テーブル - テーブル リソース (tTBL)

これらのリソースと他のリソースについての追加情報については、Palm OS User Interface Guidelines を参照してください。

フォーム関数 ^TOP^

ECFrmValidatePtr マクロ ^TOP^

目的

ERROR_CHECK_LEVELERROR_CHECK_FULL と等しく、指定されたポインタが有効なフォームを参照する場合、true を返します。

宣言されている場所

From.h

Prototype

#define ECFrmValidatePtr (
	formP
)

パラメータ

  • → formP
    • テストされるポインタ

返り値

ERROR_CHECK_LEVELERROR_CHECK_FULL と等しく、指定されたポインタが有効なフォーム構造体を持つオブジェクトを指す NULL ではないポインタである場合、true を返します。

コメント

このマクロは単純に、ERROR_CHECK_LEVELERROR_CHECK_FULL と等しい場合に FrmValidatePtr() を呼び出し、等しくない場合は何もしません。FrmValidatePtr() はデバッグ目的のみを意図したものであり、リリースされるコードに含むべきではありません。このマクロは条件付で FrmValidatePtr() 呼び出しをコンパイルするために使用することができます。

互換性

FrmValidatePtr() は、3.0 New Feature Set が存在する場合にのみ、実装されます。

FrmAlert 関数 ^TOP^

アラート リソースからモーダル ダイアログ(訳者注)を作成し、ユーザがダイアログのボタンを選択するまでダイアログを表示します。

宣言されている場所

Form.h

Prototype

UInt16 FrmAlert (
	UInt16 alertId
)

パラメータ

  • → alertId
    • アラート リソースの ID。

返り値

ユーザが選択したボタンのアイテム番号を返します。ボタンのアイテム番号はアラート ダイアログの中のボタンの順番によって決定されます。最初のボタンのアイテム番号は 0 です。

NOTE
デフォルトのボタンの押下は、モーダル ダイアログ(訳者注)がアクティブな間にユーザが異なるアプリケーションに切り替えた場合に、シミュレートされます。

参照

FrmDoDialog(), FrmCustomAlert(), FrmCustomResponseAlert()

FrmCloseAllForms 関数 ^TOP^

目的

オープンされているすべてのフォームに frmCloseEvent を送ります。

宣言されている場所

Form.h

Prototype

void FrmCloseAllForms (
	void
)

パラメータ

ありません。

返り値

返り値はありません。

コメント

アプリケーションは、PilotMain()|Palm OS Programmer's API Reference/54 を抜ける前、つまり、終了する前にすべてのフォームがクローズされていることを保証するために、この関数を呼び出すことができます。

参照

FrmSaveAllForms()

FrmCopyLabel 関数 ^TOP^

目的

渡された文字列をアクティブなフォームの中の指定されたラベル オブジェクトのデータ構造体にコピーします。

宣言されている場所

Form.h

Prototype

void FrmCopyLabel (
	FormType *formP,
	UInt16 labelID,
	const Char *newLabel
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → labelID
    • フォーム ラベル オブジェクトの ID。
  • → newLabel
    • null で終了する文字列へのポインタ

返り値

返り値はありません。

コメント

新しいラベルのサイズはリソースの中で定義されているラベルのサイズを越えてはいけません。リソースの中のラベルを定義するとき、初期サイズとして少なくとも動的に代入されるすべての文字列の最大サイズと同じ大きさを指定してください。この関数は、フォームの usable 属性とラベルの visible 属性がセットされている場合、再描画を行います。

この関数はラベルを再描画しますが、古いラベルを消しません。新しいラベルが古いラベルよりも短い場合、古いラベルの終端が可視のままになります。これを避けるために、FrmCopyLabel 使用後に FrmHideObject() を使ってラベルを隠し、それから FrmShowObject() を使ってラベルを表示させることができます。

FrmCopyLabel は渡された文字列をすでにラベルに割り当てられたメモリにコピーすることに注意してください。つまり、渡された文字列は、FrmCopyLabel が返った後に、存在し続ける必要はありません。

参照

FrmGetLabel()

FrmCopyTitle 関数 ^TOP^

目的

新しいタイトルをフォームの現在のタイトルにコピーします。フォームが可視の場合、新しいタイトルは再描画されます。

宣言されている場所

Form.h

Prototype

void FrmCopyTitle (
	FormType *formP,
	const Char *newTitle
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → newTitle
    • 新しいタイトル文字列へのポインタ

返り値

返り値はありません。

コメント

新しいタイトルのサイズはリソースの中で定義されているタイトルのサイズを越えてはいけません。リソースの中のタイトルを定義するとき、初期サイズとして少なくとも動的に代入されるすべての文字列の最大サイズと同じ大きさを指定してください。

参照

FrmGetTitle(), FrmSetTitle()

FrmCountObjectsInNavOrder 関数 ^TOP^

目的

フォームのナビゲーション タブ順の中のオブジェクトの数を取得します。

宣言されている場所

Form.h

Prototype

UInt16 FrmCountObjectsInNavOrder (
	const FormType *formP
)

パラメータ

  • → formP
    • ナビゲーション情報が取得されるフォームへのポインタ

返り値

ナビゲーション タブ順の中のオブジェクトの数。

コメント

フォームがナビゲーション リソースを持たない場合、フォームの中のすべてのオブジェクトがタブ順に含まれます。しかしながら、多くのオブジェクトはスキップされるようマークを付けられることに注意してください。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

参照

FrmGetNavOrder()

FrmCustomAlert 関数 ^TOP^

目的

アラート リソースからモーダル ダイアログ(訳者注)を作成し、ユーザがダイアログのボタンをタップするまでダイアログを表示します。

宣言されている場所

Form.h

Prototype

UInt16 FrmCustomAlert (
	UInt16 alertId,
	const Char *s1,
	const Char *s2,
	const Char *s3
)

パラメータ

  • → alertId
    • アラート リソースの ID。
  • → s1, s2, s3
    • ^1, ^2, ^3 を置き換えるための文字列(コメントを参照してください)。

返り値

ユーザがタップしたボタンのアイテム番号を返します。(最初のボタンのアイテム番号は 0 です。)

コメント

ボタンのアイテム番号はアラート テンプレートの中のボタンの順番によって決定されます。最初のボタンはアイテム番号 0 を持ちます。

3 つまでの文字列をこのルーチンに渡すことができます。それらの文字列は、アラート リソースのメッセージ文字列の中に保持される変数 ^1, ^2, ^3 を置き換えるために使用されます。

変数 ^1, ^2, ^3 がメッセージ文字列の中で使用される場合、引数 s1, s2, s3NULL を渡さないでください。引数を無視したい場合、空文字列("")を渡してください。Palm OS 2.0 以下では空文字列の代わりに空白を保持している文字列(" ")を渡してください。

NOTE:
デフォルトのボタンの押下は、モーダル ダイアログ(訳者注)がアクティブな間にユーザが異なるアプリケーションに切り替えた場合に、シミュレートされます。

参照

FrmAlert(), FrmDoDialog(), FrmCustomResponseAlert()

FrmCustomResponseAlert 関数 ^TOP^

目的

アラート リソースからテキスト フィールドを持つモーダル ダイアログ(訳者注)を作成し、ユーザがダイアログのボタンをタップするまでダイアログを表示します。

宣言されている場所

UInt16 FrmCustomResponseAlert (
	UInt16 alertId,
	const Char *s1,
	const Char *s2,
	const Char *s3,
	Char *entryStringBuf,
	Int16 entryStringBufLength,
	FormCheckResponseFuncPtr callback
)

パラメータ

  • → alertId
    • アラート リソースの ID。
  • → s1, s2, s3
    • ^1, ^2, ^3 を置き換えるための文字列(コメントを参照してください)。
  • ← entryStringBuf
    • ユーザがテキスト フィールドに入力した文字列。
  • → entryStringBufLength
    • entryStringBuf の中の文字列の最大長。
  • → callback
    • 文字列を処理するコールバック関数。FormCheckResponseType() を参照してください。コールバック関数が無い場合は NULL を渡してください。

返り値

ユーザがタップしたボタンのアイテム番号を返します。(最初のボタンのアイテム番号は 0 です。)

コメント

この関数はいくつかの点で FrmCustomAlert() とは異なります:

  • 表示されるダイアログは、ユーザが入力するためのテキスト フィールドを持ちます。ユーザが入力したテキストは entryStringBuf パラメータに収められて返されます。
  • ユーザがボタンをタップしたとき、callback 関数が呼び出され、ボタン番号と entryStringBuf を渡されます。ダイアログは、コールバック関数が true を返した場合にのみ棄却されます。この振る舞いは、ユーザが入力した文字列のエラー チェックとユーザに文字列を再入力する機会を与えることを可能にします。
  • コールバック関数は、アラート ダイアログが初期化されるときと、アラート ダイアログの割り当てが解除されるときにもまた、特別な定数と一緒に呼び出されます。これは、コールバック関数が必要な初期化とクリーンアップを行うことを可能にします。
NOTE:
デフォルトのボタンの押下は、モーダル ダイアログ(訳者注)がアクティブな間にユーザが異なるアプリケーションに切り替えた場合に、シミュレートされます。

互換性

3.5 New Feature Set が存在する場合にのみ、実装されます。

参照

FrmAlert(), FrmDoDialog()

FrmDeleteForm 関数 ^TOP^

目的

フォームによって占められていたメモリを解放します。フォームの中のオブジェクトに割り当てられていたすべてもメモリもまた解放されます。

宣言されている場所

Form.h

Prototype

void FrmDeleteForm (
	FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

返り値はありません。

コメント

この関数は表示を変更しません。

互換性

3.5 New Feature Set が満たされ、かつ、フォームが拡張ガゼットを保持する場合、この関数はガゼットのコールバック関数を formGadgetDeleteCmd と一緒に呼び出します。FormGadgetHandlerType() を参照してください。

参照

FrmInitForm(), FrmReturnToForm()

FrmDispatchEvent 関数 ^TOP^

目的

イベントをフォームのためのアプリケーションのハンドラに向けて発信します。

宣言されている場所

Form.h

Prototype

Boolean FrmDispatchEvent (
	EventType *eventP
)

パラメータ

  • → eventP
    • イベントへのポインタ

返り値

フォームのイベント ハンドラまたは FrmHandleEvent() によって返されるブール値を返します。(フォームのイベント ハンドラが false を返す場合、イベントは FrmHandleEvent に渡されます。)この関数はまた、イベントの中で指定されるフォームが無効である場合、false を返します。

コメント

イベント データ(例えば、frmOpenEventfrmGotoEvent)の中でフォーム ID が指定されない限り、イベントは現在のフォームのハンドラに向けて発信されます。フォームのイベント ハンドラ(FormEventHandlerType())は FrmSetEventHandler() によって登録されます。

フォームが登録されたイベント ハンドラを持たない場合、この関数は致命的なエラーを引き起こすことに注意してください。

FrmDoDialog 関数 ^TOP^

目的

ユーザがダイアログの中のボタンをタップするまで、モーダル ダイアログ(訳者注)を表示します。

宣言されている場所

Form.h

Prototype

UInt16 FrmDoDialog (
	FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

ユーザがタップしたボタンのリソース ID を返します。

NOTE:
デフォルトのボタンの押下は、モーダル ダイアログ(訳者注)がアクティブな間にユーザが異なるアプリケーションに切り替えた場合に、シミュレートされます。

FrmDoDialog を呼び出す前に、ダイアログを読み込んで初期化するために FrmInitForm() を呼び出し、それからイベント ハンドラが必要な場合はイベント ハンドラをセットしなくてはなりません。呼出し後は、ダイアログのオブジェクトから必要な値をすべて読み込み、それからダイアログによって占められていたメモリを解放するために FrmDeleteForm() を呼び出してください。

参照

FrmInitForm(), FrmCustomAlert(), FrmCustomResponseAlert()

FrmDrawForm 関数 ^TOP^

目的

フォームの中のすべてのオブジェクトとそのフォームの周りのフォームを描きます。

宣言されている場所

Form.h

Prototype

void FrmDrawForm (
	FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

返り値はありません。

コメント

saveBehind フォーム 属性がセットされていて、かつ、フォームが可視の場合、この関数はフォームの背後にあるビットを FormType 構造体の中の bitsBehindForm フィールドを使って保存します。

この関数を frmOpenEvent への応答の中で呼び出すべきです。

カスタム描画を行う場合、この関数を呼び出した後(前ではなく)に行うべきです。カスタム描画を行う場合、frmOpenEvent と同様に frmUpdateEvent にも応答し、確実に frmUpdateEvent がハンドルされたことを示すために true を返してください。frmUpdateEvent のためのデフォルトのイベント ハンドラは FrmDrawForm を呼び出します。そのため、false を返すことによってイベントのハンドルが失敗することを許可した場合、カスタム描画は消されます。

互換性

3.5 New Feature Set が存在する場合、FrmDrawForm は、描画を行う前に、フォームのウィンドウを消します。つまり、Palm OS 3.5 以降では、この関数の呼出し後にカスタム描画を行うことが特に重要となります。

3.5 New Feature Set が満たされ、かつ、フォームが拡張ガゼットを持つ場合、この関数は formGadgetDrawCmd と一緒にガゼットのコールバック関数を呼び出します。FormGadgetHandlerType() を参照してください。

参照

FrmEraseForm(), FrmInitForm()

FrmEraseForm 関数 ^TOP^

目的

ディスプレイからフォームを消します。

宣言されている場所

Form.h

Prototype

void FrmEraseForm (
	FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

返り値はありません。

コメント

フォームによって隠されていた領域が FrmDrawForm() によって保存されていた場合、この関数がその領域を戻します。

FrmGetActiveField 関数 ^TOP^

目的

指定されたフォームのアクティブなフィールドを返します。

宣言されている場所

Form.h

Prototype

FieldType *FrmGetActiveField(
	const FormType *formP
)

パラメータ

  • → formP
    • 返されるアクティブなフィールドがあるフォームへのポインタ。アクティブなフォーム上のアクティブなフィールドが返されることを望む場合は NULL

返り値

アクティブなフィールドのフィールド オブジェクトへのポインタを返します。フォームがアクティブなフィールドを持たない場合、または、アクティブなフォームが無い場合、NULL を返します。

コメント

この関数は、アクティブなフォーム上のアクティブなフィールドを取得するために NULL パラメータと一緒に呼び出されることが最も多くなります。

互換性

4.0 New Feature Set が存在する場合にのみ、実装されます。

FrmGetActiveForm 関数 ^TOP^

目的

現在のアクティブなフォームを返します。

宣言されている場所

Form.h

Prototype

FormType *FrmGetActiveForm (
	void
)

パラメータ

ありません。

返り値

アクティブなフォームのフォーム オブジェクトへのポインタを返します。

コメント

ポップアップ ウィンドウがオープンされているとき、FrmGetActiveForm 関数を呼び出すべきではありません。ポップアップが表示されている間はアクティブなフォームは無く、この状況で FrmGetActiveForm から返される値には意味がありません。

参照

FrmGetActiveField(), FrmGetActiveFormID(), FrmSetActiveForm()

FrmGetActiveFormID 関数 ^TOP^

目的

現在のアクティブなフォームの ID を返します。

宣言されている場所

Form.h

Prototype

UInt16 FrmGetActiveFormID (
	void
)

パラメータ

ありません。

返り値

アクティブなフォームの ID 番号を返します。

参照

FrmGetActiveForm()

FrmGetControlGroupSelection 関数 ^TOP^

目的

コントロールのグループの中の選択されているコントロールのアイテム番号を返します。

宣言されている場所

Form.h

Prototype

UInt16 FrmGetControlGroupSelection(
	const FormType *formP,
	UInt8 groupNum
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → groupNum
    • コントロール グループ番号

返り値

選択されているコントロールのアイテム番号を返します。選択されているアイテムが無い場合、frmNoSelectedControl を返します。

コメント

アイテム番号はフォーム オブジェクトのデータ構造体を指すインデックスです。

NOTE:
FrmSetControlGroupSelection はコントロール グループの中の選択をFrmGetControlGroupSelection が返すオブジェクト インデックスではなく、オブジェクト ID に基づいてセットします。

互換性

Palm OS 3.5 より前のバージョンでは、この関数は UInt16 の代わりに Byte を返します。

参照

FrmGetObjectId(), FrmGetObjectPtr(), FrmSetControlGroupSelection()

FrmGetControlValue 関数 ^TOP^

目的

コントロールの現在の値を返します。

宣言されている場所

Form.h

Prototype

Int16 FrmGetControlValue (
	const FormType *formP,
	UInt16 objIndex
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォーム オブジェクトのデータ構造体の中のコントロール オブジェクトのインデックス。この値を FrmGetObjectIndex() を使って取得できます。

返り値

コントロールの現在の値を返します。たいていのコントロールでは、返り値は 0 (off) または 1 (on) のどちらかです。スライダでは、この関数は value フィールドの値を返します。

コメント

この関数を呼び出す際は有効なインデックスを指定しなくてはなりません。この関数はプッシュ ボタンとチェック ボックス コントロール オブジェクトに対してのみ有効です。(訳者注: スライダの値を返すと前述されているが、スライダに対してこの関数は有効ではないのか?)

参照

FrmSetControlValue()

FrmGetDIAPolicyAttr 関数 ^TOP^

目的

フォームの動的入力エリアのポリシーを返します。

宣言されている場所

Form.h

Prototype

UInt16 FrmGetDIAPolicyAttr (
	FormPtr formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

「フォームの動的入力エリアのポリシー」 の中でリストされた定数のうちの 1 つを返します。

互換性

Pen Input Manager Feature Set が存在する場合にのみ、実装されます。

参照

FrmSetDIAPolicyAttr()

FrmGetFirstForm 関数 ^TOP^

目的

ウィンドウ リストの中にある最初のフォームを返します。

宣言されている場所

Form.h

Prototype

FormType *FrmGetFirstForm (
	void
)

パラメータ

ありません。

返り値

フォーム オブジェクトへのポインタを返します。フォームが無い場合は、NULL を返します。

コメント

ウィンドウ リストは LIFO スタックです。最後に作成されたウィンドウはウィンドウ リストの中で最初のウィンドウになります。

FrmGetFocus 関数 ^TOP^

目的

フォーカスを持つオブジェクトのアイテム(インデックス)番号を返します。

宣言されている場所

Form.h

Prototype

UInt16 FrmGetFocus (
	const FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

フォーカスを持つオブジェクト(UI 要素)のインデックスを返します。フォーカスを持つオブジェクトが無い場合は、noFocus を返します。オブジェクト インデックスを ID に変換するには、FrmGetObjectId() を使用します。

参照

FrmGetObjectPtr(), FrmSetFocus()

FrmGetFormBounds 関数 ^TOP^

目的

フォームの可視領域を返します。返される領域はフォームのフレームを含みます。

宣言されている場所

For.h

Prototype

void FrmGetFormBounds (
	const FormType *formP,
	RectangleType *rP
void FrmGetFormBounds (
  const FormType *formP,
  RectangleType *rP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • ← rP
    • 返される RectangleType 構造体へのポインタ

返り値

返り値はありません。フォームの領域は r に収められて返されます。

FrmGetFormId 関数 ^TOP^

目的

フォームのリソース ID を返します。

宣言されている場所

Form.h

Prototype

UInt16 FrmGetFormId (
	const FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

フォーム リソース ID を返します。

参照

FrmGetFormPtr()

FrmGetFormPtr 関数 ^TOP^

目的

指定された ID を持つフォームへのポインタを返します。

宣言されている場所

Form.h

Prototype

FormType *FrmGetFormPtr (
	UInt16 formId
)

パラメータ

  • → formId
    • フォーム ID 番号

返り値

フォーム オブジェクトへのポインタを返します。メモリの中にフォームが無い場合、NULL を返します。

参照

FrmGetFormId()

FrmGetGadgetData 関数 ^TOP^

目的

ガゼット オブジェクトの data フィールドの中に保存されている値を返します。

宣言されている場所

Form.h

Prototype

void *FrmGetGadgetData (
	const FormType *formP,
	UInt16 objIndex
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォーム オブジェクトのデータ構造体の中にあるガゼット オブジェクトのインデックス。この値を FrmGetObjectIndex() を使って取得することができます。

返り値

カスタム ガゼットのデータへのポインタを返します。

コメント

ガゼット オブジェクトは、アプリケーションのために、カスタム ガゼットをフォームに貼り付ける手段を提供します。一般に、ガゼット オブジェクトの data フィールドはカスタム オブジェクトのデータ構造体へのポインタを保持します。

参照

FrmSetGadgetData(), FrmSetGadgetHandler()

FrmGetLabel 関数 ^TOP^

目的

指定されたフォームの中にある指定されたラベル オブジェクトのテキストへのポインタを返します。

宣言されている場所

Form.h

Prototype

const Char *FrmGetLabel (
	const FormType *formP,
	UInt16 labelID
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → labelID
    • ラベル オブジェクトの ID

返り値

ラベル文字列へのポインタを返します。

コメント

返された文字列のポインタから文字列のコピーを作らないでください。このオブジェクトはラベルでなければなりません。

参照

FrmCopyLabel()

FrmGetNavEntry 関数 ^TOP^

目的

フォームの中にある 1 つのオブジェクトのためのナビゲーション情報を返します。

宣言されている場所

Form.h

Prototype

Err FrmGetNavEntry (
	const FormType *formP,
	UInt16 targetObjectID,
	UInt16 *afterObjectIDP,
	UInt16 *aboveObjectIDP,
	UInt16 *belowObjectIDP,
	FrmNavObjectFlagsType *objectFlagsP
)

パラメータ

  • → formP
    • 取得されるナビゲーション順を持つフォームへのポインタ
  • → targetObjectID
    • 「ターゲット オブジェクト」 -- 取得されるナビゲーション情報を持つオブジェクト -- の ID
  • ← afterObjectIDP
    • ターゲット オブジェクトの左にあるオブジェクトの ID が書き込まれた UInt16 へのポインタ。ターゲット オブジェクトがタブ順の中の最初のオブジェクトである場合、値 0 が *afterObjectIDP に書き込まれます。この情報を必要としない場合は、NULL を渡してください。
  • ← aboveObjectIDP
    • ターゲット オブジェクトの上にあるオブジェクトの ID が書き込まれる UInt16 へのポインタ。ターゲット オブジェクトがフォームの最初の行にある場合、値 0 が *aboveObjectIDP に書き込まれます。この情報を必要としない場合は、NULL を渡してください。
  • ← bellowObjectIDP
    • ターゲット オブジェクトの下にあるオブジェクトの ID が書き込まれる UInt16 へのポインタ。ターゲット オブジェクトがフォームの最後の行にある場合、値 0 が *bellowObjectIDP に書き込まれます。この情報を必要としない場合は、NULL を渡してください。
  • ← objectFlagsP
    • ターゲット オブジェクトのためのオブジェクト フラグが書き込まれる FrmNavObjectFlagsType へのポインタ。この情報を必要としない場合は、NULL を渡してください。

返り値

操作が成功裏に完了した場合 errNone を返します。そうでない場合、エラー コードを返します。

参照

FrmGetNavOrder(), FrmSetNavEntry()

FrmGetNavOrder 関数 ^TOP^

目的

フォームのナビゲーション順についての情報を取得します。

宣言されている場所

Form.h

Prototype

Err FrmGetNavOrder (
	const FormType *formP,
	FrmNavHeaderType *navHeaderP,
	FrmNavOrderEntryType *navOrderP,
	UInt16 *numObjectsP
)

パラメータ

  • → formP
    • フォーカス順が取得されるフォームへのポインタ
  • ← navHeaderP
    • このポインタが NULL ではない場合、渡された FrmNavHeaderType 構造体はフォームのナビゲーション順のためのヘッダ情報で満たされます。
  • ← navOrderP
    • このポインタが NULL ではない場合、渡された FrmNavOrderEntryType 構造体の配列はナビゲーション順の中にある各オブジェクトのための情報で満たされます。
  • ←→ numObjectsP
    • 渡すときは、ナビゲーション順の配列に割り当てられたエントリの数。返るときは、このパラメータにはナビゲーション順の配列の中で満たされたエントリの数がセットされます。

返り値

操作が成功裏に完了した場合 errNone を返します。そうでない場合、エラー コードを返します。

コメント

フォームがナビゲーション リソースを持たない場合、フォームの中のすべてのオブジェクトがタブ順に含まれます。しかしながら、多くのオブジェクトはスキップされるようマークを付けられることに注意してください。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

参照

FrmCountObjectsInNavOrder(), {[goto FrmSetNavOrder,FrmSetNavOrder()|Palm OS Programmer's API Reference/11-2}}

FrmGetNavState 関数 ^TOP^

目的

フォームの現在のナビゲーション状態を取得します。

宣言されている場所

Form.h

Prototype

Err FrmGetNavState (
	const FormType *formP,
	FrmNavStateFlagsType *stateFlagsP
)

パラメータ

  • → formP
    • ナビゲーション状態が取得されるフォームへのポインタ
  • ← stateFlagsP
    • 現在のナビゲーション状態が書き込まれる FrmNavStateFlagsType へのポインタ。この状態はフォームの現在のフォーカス モードを指定します。

返り値

操作が成功裏に完了した場合 errNone を返します。そうでない場合、エラー コードを返します。

互換性

One-Handed Navigation Feature Set が存在する場合にのみ、実装されます。

参照

FrmSetNavState()||Palm OS Programmer's API Reference/11-2

FrmGetNumberOfObjects 関数 ^TOP^

目的

フォームの中にあるオブジェクトの数を返します。

宣言されている場所

Form.h

Prototype

UInt16 FrmGetNumberOfObjects(
	const FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

指定されたフォームの中にあるオブジェクトの数を返します。

参照

FrmGetObjectPtr(), FrmGetObjectId()

FrmGetObjectBounds 関数 ^TOP^

目的

与えられたフォームとインデックスからオブジェクトの領域を取得します。

宣言されている場所

Form.h

Prototype

void FrmGetObjectBounds (
	const FormType *formP,
	UInt16 objIndex,
	RectangleType *rP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。この値を FrmGetObjectIndex() を使って取得することができます。
  • ← rP
    • オブジェクト領域が返されるための RectangleType 構造体へのポインタ。返される領域はウィンドウから見た相対座標です。

返り値

返り値はありません。オブジェクトの領域は r に収められて返されます。

参照

FrmGetObjectPosition(), FrmSetObjectBounds(), FrmSetObjectPosition()

FrmGetObjectId 関数 ^TOP^

目的

指定されたオブジェクトの ID を返します。

宣言されている場所

Form.h

Prototype

UInt16 FrmGetObjectId (
	const FormType *formP,
	UInt16 objIndex
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。この値を FrmGetObjectIndex() を使って取得することができます。

返り値

オブジェクトの ID 番号を返します。objIndex パラメータが無効の場合は、frmInvalidObjectId を返します。

参照

FrmGetObjectPtr()

FrmGetObjectIndex 関数 ^TOP^

目的

フォームのオブジェクト リストの中にあるオブジェクトのインデックスを返します。

宣言されている場所

Form.h

Prototype

UInt16 FrmGetObjectIndex (
	const FormType *formP,
	UInt16 objID
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objID
    • フォームの中にあるフォームの ID

返り値

指定されたオブジェクトのインデックスを返します。(最初のオブジェクトのインデックスは 0 です。)提供されたオブジェクト ID が無効な場合は、frmInvalidObjectId を返します。

コメント

ビットマップは、それ以外のオブジェクトでの ID のための仕組みとは異なる仕組みを使用します。FrmGetObjectIndex でビットマップを検索するとき、フォーム ビットマップ オブジェクトの ID ではなくビットマップのリソース ID を渡す必要があります。(フォーム ビットマップ オブジェクトの ID を渡した場合、正しいオブジェクトが返されるかもしれませんし、返されないかもしれません。どのようにオブジェクトが作成されたかに依存します。)

このことは、同じフォーム上の異なる 2 つのフォームの中にある同じビットマップを配置した場合、2 番目のビットマップを取得するために FrmGetObjectIndex を使用することはできないということを意味します。この関数は常に最初のオブジェクトを返します。

参照

FrmGetObjectPtr(), FrmGetObjectId()

FrmGetObjectIndexFromPtr 関数 ^TOP^

目的

オブジェクトのインデックスを返します。

宣言されている場所

Form.h

Prototype

UInt16 FrmGetObjectIndexFromPtr(
	const FormType *formP,
	void *objP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objP
    • オブジェクトへのポインタ

返り値

オブジェクトのインデックスを返します。objP がフォームに関連付けられていない場合、frmInvalidObjectId が返されます。

コメント

多くのフォーム関数(例えば、FrmGetObjectType(), FrmHideObject(), FrmGetObjectBounds()})は、引数の 1 つとしてオブジェクト インデックスをとります。オブジェクトのインデックスを取得する最も一般的な方法は、FrmGetObjectIndex() を呼び出すことです。FrmGetObjectIndex はフォーム ID をとり、フォーム オブジェクトのインデックスを返します。この関数は最も多くのケースで使われるルーチンです。なぜなら、アプリケーションは通常、オブジェクト ID を知っているからです。しかしながら、ガゼットとある特定の拡張ガゼットは、ID ではなくガゼット ポインタを返すコールバック関数を含む API を持ちます。そのようなケースでは、オブジェクト インデックスを取得する(それにより FrmGetObject APIが使用可能になる)唯一の方法は、FrmGetObjectIndexFromPtr を使用することです。

Palm OS 4.0 以前のシステムで同じ機能が必要な場合、以下のコードで同じことを実現できます。

UInt16 index;
UInt16 objIndex = frmInvalidObjectId;
UInt16 numObjects = FrmGetNumberOfObjects(frmP)
for (index = 0; index < numObjects; index++) {
     if (FrmGetObjectPtr(index) == myObjPtr) {
          // Found it
          objIndex = index;
          break;
    }
}

互換性

4.0 New Feature Set が存在する場合にのみ、実装されます。

FrmGetObjectPosition 関数 ^TOP^

目的

指定されたオブジェクトのフォームとの相対座標を返します。

宣言されている場所

Form.h

Prototype

void FrmGetObjectPosition (
	const FormType *formP,
	UInt16 objIndex,
	Coord *x,
	Coord *y
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。この値を FrmGetObjectIndex() を使って取得することができます。
  • ← x, y
    • 返されるオブジェクトのウィンドウとの相対 x, y 座標へのポインタ。これらの位置情報はオブジェクトの左上端を指します。

返り値

返り値はありません。

参照

FrmGetObjectBounds(), FrmSetObjectPosition()

FrmGetObjectPtr 関数 ^TOP^

目的

フォームの中にあるオブジェクトのデータ構造体へのポインタを返します。

宣言されている場所

Form.h

Prototype

void *FrmGetObjectPtr (
	const FormType *formP,
	UInt16 objIndex
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。この値を FrmGetObjectIndex() を使って主と繰るすることができます。

返り値

フォームの中にあるオブジェクトへのポインタを返します。

参照

FrmGetObjectId()

FrmGetObjectType 関数 ^TOP^

目的

オブジェクトのタイプを返します。

宣言されている場所

Form.h

Prototype

FormObjectKind FrmGetObjectType(
	const FormType *formP,
	UInt16 objIndex
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ
  • → objIndex
    • フォームの中にあるオブジェクトのインデックス。この値を FrmGetObjectIndex() を使って主と繰るすることができます。

返り値

指定されたオブジェクトのタイプを返します。この関数によって返され得る値の集合については、FormObjectKind を参照してください。

FrmGetTitle 関数 ^TOP^

目的

フォームのタイトル文字列へのポインタを返します。

宣言されている場所

Form.h

Prototype

const Char *FrmGetTitle (
	const FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

タイトル文字列へのポインタを返します。タイトル文字列が無い場合、または、タイトル文字列を検索中にエラーが起きた場合、NULL を返します。

コメント

返り値は内部構造体そのものへのポインタです。コピーを作成しないでください。

参照

FrmCopyTitle(), FrmSetTitle()

FrmGetWindowHandle 関数 ^TOP^

目的

フォームのウィンドウ ハンドルを返します。

宣言されている場所

Form.h

Prototype

WinHandle FrmGetWindowHandle(
	const FormType *formP
)

パラメータ

  • → formP
    • フォーム オブジェクト(FormType 構造体)へのポインタ

返り値

フォーム データ構造体を保持するメモリ ブロックのハンドルを返します。フォーム構造体は WindowType|Palm OS Programmer's API Reference/59 で始まるため、返り値は WinHandle でもあります。


訳者注: モーダル ダイアログとは、そのダイアログ ボックスが表示されている間はダイアログ以外の操作を受け付けなくするダイアログです。

※訳者は古い Palm デバイスしか所有していないため、ナビゲーション関係の記述についてはあやふやな部分が多いです。

↑ 11 章のトップへ 11 章のページ 2 へ →

← 10 章に戻る ↑トップへ 12 章に進む →