{{div_begin}} [[← 7 章に戻る|Palm OS Programmer's API Reference/7]] [[↑トップへ|Palm OS Programmer's API Reference]] [[9 章に進む →|Palm OS Programmer's API Reference/9]] {{div_end}} {{div_begin style="margin-bottom:-10px"}} !!!8 日付と時間セレクタ {{div_end}} {{div_begin "style='position:absolute;right:0px;font-size:70%;margin-right:15px;margin-top:15px;width:250px;'"}} *{{goto Date and Time Selections Data Structures,日付と時間選択データ構造体}} **{{goto SelectDayType,SelectDayType}} **{{goto DaySelectorType,DaySelectorType}} **{{goto HMSTime ,HMSTime }} *{{goto Date and Time Selections Functions,日付と時間選択関数}} **{{goto DayDrawDays,DayDrawDays}} **{{goto DayDrawDaySelector,DayDrawDaySelector}} **{{goto DayHandleEvent,DayHandleEvent}} **{{goto SelectDay,SelectDay}} **{{goto SelectDayV10,SelectDayV10}} **{{goto SelectOneTime,SelectOneTime}} **{{goto SelectTime,SelectTime}} **{{goto SelectTimeV33,SelectTimeV33}} **{{goto SelectTimeZone,SelectTimeZone}} {{div_end}} {{div_begin "style='position:relative;padding:0px;padding-right:5px;padding-left:10px;margin-right:250px;margin-top:20px;width:auto;border-right:dotted;border-right-width:2px;border-right-color:silver;'"}} Palm OS UI は、日付と時間入力値を受け付けるために、2 つのシステム リソースを提供します。 これらのリソースは、日付と時間を入力するための UI ガゼット(訳者注: 原文は gadgetry = 小物類)を保持するダイアログ ボックスです。 Palm OS UI はまた、これらのリソースとの相互作用を管理するための関数を提供します。 この章ではそれらの関数について説明します。 この章で説明される API は、ヘッダ ファイル {{span style='color:blue;font-family:monospace;',Day.h}}, {{span style='color:blue;font-family:monospace;',SelDay.h}}, {{span style='color:blue;font-family:monospace;',SelTime.h}} それに {{span style='color:blue;font-family:monospace;',SelTimeZone.h}} で宣言されています。 !!{{anchor Date and Time Selections Data Structures}}日付と時間選択データ構造体 {{goto top,^TOP^}} !{{anchor SelectDayType}}SelectDayType 構造体 {{goto top,^TOP^}} '''Prototype''' typedef enum { selectDayByDay, // return d/m/y selectDayByWeek, // return d/m/y with d as // same day of the week selectDayByMonth // return d/m/y with d as // same day of the month } SelectDayType; !{{anchor DaySelectorType}}DaySelectorType 構造体 {{goto top,^TOP^}} '''Prototype''' typedef struct DaySelectorType { RectangleType bounds; Boolean visible; UInt8 reserved1; Int16 visibleMonth; // month actually // displayed Int16 visibleYear; // year actually // displayed DateTimeType selected; SelectDayType selectDayBy; UInt8 reserved2; } DaySelectorType; !{{anchor HMSTime}}HMSTime 構造体 {{goto top,^TOP^}} '''Prototype''' typedef struct { UInt8 hours; UInt8 minutes; UInt8 seconds; UInt8 reserved; } HMSTime; !!{{anchor Date and Time Selections Functions}}日付と時間選択関数 {{goto top,^TOP^}} !{{anchor DayDrawDays}}DayDrawDays 関数 {{goto top,^TOP^}} '''目的''' 日にち選択コントロール オブジェクトの月の日々の部分だけを描きます。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',Day.h}} '''Prototype''' void DayDrawDays( const DaySelectorType *selectorP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ selectorP}} **描くコントロール オブジェクトへのポインタ '''返り値''' 返り値はありません。 '''コメント''' この関数は年または月を変更するときに使用されます。月の日々を表すコントロール部分だけを描くことで、週のタイトルが再描画される場合に起こる画面のちらつきを回避します。 '''互換性''' {{goto 5.0 New Feature Set,5.0 New Feature Set|Palm OS Programmer's API Reference/B-2}} または {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B-2}} のどちらかが存在する場合、この関数は実装されません。 '''参照''' {{goto DayDrawDaySelector,DayDrawDaySelector()}} !{{anchor DayDrawDaySelector}}DayDrawDaySelector 関数 {{goto top,^TOP^}} '''目的''' スクリーン上の日にち選択コントロール オブジェクトを描きます。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',Day.h}} '''Prototype''' void DayDrawDaySelector( const DaySelectorType *selectorP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ selectorP}} **描画するコントロール オブジェクトへのポインタ '''返り値''' 返り値はありません。 '''コメント''' コントロールは、それが使用可能な場合にのみ、描画されます。 '''互換性''' {{goto 5.0 New Feature Set,5.0 New Feature Set|Palm OS Programmer's API Reference/B-2}} または {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B-2}} のどちらかが存在する場合、この関数は実装されません。 !{{anchor DayHandleEvent}}DayHandleEvent 関数 {{goto top,^TOP^}} '''目的''' 指定されたコントロールのイベントを処理します。この関数は 2 種類のイベント({{goto penDownEvent,penDownEvent|Palm OS Programmer's API Reference/2}} と {{goto ctlEnterEvent,ctlEnterEvent|Palm OS Programmer's API Reference/2}})を処理します。この関数は OS に使用されることを主に意図しています; アプリケーションは、通常、この関数を使用しません。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',Day.h}} '''Prototype''' Boolean DayHandleEvent( DaySelectorType *selectorP, const EventType *pEvent ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ selectorP}} **コントロール オブジェクトへのポインタ *{{span style='color:blue;font-family:monospace;',→ pEvent}} **{{span style='color:blue;font-family:monospace;',EventType}} 構造体へのポインタ '''返り値''' イベントが処理された場合は {{span style='color:blue;font-family:monospace;',true}}、されなかった場合は {{span style='color:blue;font-family:monospace;',false}}。 日付を使用するかどうかの情報を持つ {{goto daySelectEvent,daySelectEvent|Palm OS Programmer's API Reference/2}} を発します。 '''コメント''' ユーザが可視の月の中の日にちを選択する場合、日付が使用されます。 この関数が {{goto penDownEvent,penDownEvent|Palm OS Programmer's API Reference/2}} を受け取ると、ペンの位置がコントロール オブジェクトの領域内かどうかをチェックします。 領域内であれば、{{span style='color:blue;font-family:monospace;',dayEnterEvent}} がイベント キューに追加され、関数は終了します。 この関数が {{span style='color:blue;font-family:monospace;',dayEnterEvent}} を受け取ると、イベント レコードの中のコントロール ID が指定されたコントロールの ID と一致するかどうかチェックします。一致する場合、この関数は、{{span style='color:blue;font-family:monospace;',daySelectEvent}} が発せられたコントロールの領域内でペンが持ち上げられるまで、ペンを追跡します。 ペンが領域内から出る場合、{{span style='color:blue;font-family:monospace;',dayExitEvent}} が発せられます。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B-2}} が存在する場合、この関数は実装されません。 !{{anchor SelectDay}}SelectDay 関数 {{goto top,^TOP^}} '''目的''' 日付を表示するフォームを表示します; ユーザが異なる日付を選択できるようにします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SelDay.h}} '''Prototype''' Boolean SelectDay( const SelectDayType selectDayBy, Int16 *month, Int16 *day, Int16 *year, const Char *title ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',selectDayBy}} **ユーザに日にちを選択させるための手段(訳者注: 原文は method)。取り得る値は、{{span style='color:blue;font-family:monospace;',selectDayByDay}}, {{span style='color:blue;font-family:monospace;',selectDayByWeek}} それに {{span style='color:blue;font-family:monospace;',selectDayByMonth}} です。{{goto SelectDayType,SelectDayType}} を参照してください。 *{{span style='color:blue;font-family:monospace;',"←→ month, day, year"}} **選択される月、日、年 *{{span style='color:blue;font-family:monospace;',→ title}} **ダイアログのための文字列タイトル '''返り値''' OK ボタンが押された場合、{{span style='color:blue;font-family:monospace;',true}}。{{span style='color:blue;font-family:monospace;',month}}, {{span style='color:blue;font-family:monospace;',day}} それに {{span style='color:blue;font-family:monospace;',year}} が新しい日付を保持している場合、{{span style='color:blue;font-family:monospace;',true}}。 '''互換性''' {{goto 2.0 New Feature Set,2.0 New Feature Set|Palm OS Programmer's API Reference/B-1}} が存在する場合にのみ、実装されます。 !{{anchor SelectDayV10}}SelectDayV10 関数 {{goto top,^TOP^}} '''目的''' 日付を表示するフォームを表示します; ユーザが異なる日付を選択できるようにします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SelDay.h}} '''Prototype''' Boolean SelectDayV10 ( Int16 *month, Int16 *day, Int16 *year, const Char *title ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',"←→ month, day, year"}} **選択される月、日、年。これらのパラメータに渡される初期値は有効でなければなりません。 *{{span style='color:blue;font-family:monospace;',→ title}} **ダイアログのための文字列タイトル '''返り値''' OK ボタンが押された場合、{{span style='color:blue;font-family:monospace;',true}} を返します。そのようなケースでは、渡されたパラメータは変更されています。 '''互換性''' この関数は、{{span style='color:blue;font-family:monospace;',SelectDay}} の 1.0 バージョンに対応するものです。 '''参照''' {{goto SelectDay,SelectDay()}} !{{anchor SelectOneTime}}SelectOneTime 関数 {{goto top,^TOP^}} '''目的''' 時刻を表示するフォームを表示し、ユーザが異なる時刻を選択できるようにします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SelTime.h}} '''Prototype''' Boolean SelectOneTime ( Int16 *hour, Int16 *minute, const Char *titleP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',←→ hour}} **フォームの中で選択される時 *{{span style='color:blue;font-family:monospace;',←→ minute}} **フォームの中で選択される分 *{{span style='color:blue;font-family:monospace;',→ titleP}} **タイトルとして表示される文字列へのポインタ。関数が実行している間は変更しないでください。 '''返り値''' ユーザが OK を選択すると、{{span style='color:blue;font-family:monospace;',true}} を返し、そうでない場合は {{span style='color:blue;font-family:monospace;',false}} を返します。{{span style='color:blue;font-family:monospace;',true}} が返される場合、{{span style='color:blue;font-family:monospace;',hour}} と {{span style='color:blue;font-family:monospace;',minute}} の中の値は変更されている可能性があります。 '''コメント''' 開始点と終了点を持つ時刻の範囲ではなく、時間のある 1 点を指定するダイアログを表示したい場合に、{{span style='color:blue;font-family:monospace;',SelectTime}} の代わりにこの関数を使用します。 '''互換性''' {{goto 3.1 New Feature Set,3.1 New Feature Set|Palm OS Programmer's API Reference/B-1}} が存在する場合にのみ、実装されます。 '''参照''' {{goto SelectTimeV33,SelectTimeV33()}} !{{anchor SelectTime}}SelectTime 関数 {{goto top,^TOP^}} '''目的''' 開始時刻と終了時刻を表示するフォームを表示します。ユーザが異なる時刻を選択できるようにします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SelTime.h}} '''Prototype''' Boolean SelectTime ( TimeType *startTimeP, TimeType *EndTimeP, Boolean untimed, const Char*titleP, Int16 startOfDay, Int16 endOfDay, Int16 startOfDisplay ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',"←→ startTimeP, EndTimeP"}} **タイプ {{span style='color:blue;font-family:monospace;',TimeType}} の値へのポインタ。これら 2 つのパラメータの間を表示するために値を渡します。ユーザが選択を行い、OK ボタンをタップした場合、選択された値がここに返されます。 *{{span style='color:blue;font-family:monospace;',→ untimed}} **時刻無しが選択されていることを示すためには {{span style='color:blue;font-family:monospace;',true}} を渡します。ユーザが時刻に時刻無しをした場合、{{span style='color:blue;font-family:monospace;',startTimeP}} と {{span style='color:blue;font-family:monospace;',EndTimeP}} の両方ともが定数 {{span style='color:blue;font-family:monospace;',noTime}} (-1) にセットされます。 *{{span style='color:blue;font-family:monospace;',→ titleP}} **タイトルとして表示される文字列へのポインタ。関数が実行している間は変更しないでください。 *{{span style='color:blue;font-family:monospace;',→ startOfDay}} **時リストがそのリストの先頭に表示する時。より早い時を見るために、ユーザはそのリストを上にスクロールさせることができます。この値は 0 以上 12 以下の間の値でなければなりません。 *{{span style='color:blue;font-family:monospace;',→ endOfDay}} **「すべての日」ボタンが選択されているときに使用される時。 *{{span style='color:blue;font-family:monospace;',→ startOfDisplay}} **初期状態で可視の最初の時。 '''返り値''' ユーザが OK を選択すると、{{span style='color:blue;font-family:monospace;',true}} を返し、そうでない場合は {{span style='color:blue;font-family:monospace;',false}} を返します。{{span style='color:blue;font-family:monospace;',true}} が返される場合、{{span style='color:blue;font-family:monospace;',hour}} と {{span style='color:blue;font-family:monospace;',minute}} の中の値は変更されている可能性があります。 '''コメント''' {{span style='color:blue;font-family:monospace;',SelectTime}} のこのバージョンは、機能的に {{span style='color:blue;font-family:monospace;',endOfDay}} と {{span style='color:blue;font-family:monospace;',startOfDisplay}} を追加します。 '''互換性''' {{goto 3.5 New Feature Set,3.5 New Feature Set|Palm OS Programmer's API Reference/B-1}} が存在する場合にのみ、実装されます。 '''参照''' {{goto SelectDay,SelectDay()}}, {{goto SelectOneTime,SelectOneTime()}} !{{anchor SelectTimeV33}}SelectTimeV33 関数 {{goto top,^TOP^}} '''目的''' 時刻を表示するフォームを表示し、ユーザが異なる時刻を選択できるようにします。 この関数は古いものであり、使用すべきではありません。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SelTime.h}} '''Prototype''' Boolean SelectTimeV33 ( TimeType *startTimeP, TimeType *EndTimeP, Boolean untimed, const Char *titleP, Int16 startOfDay ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',"←→ startTimeP, EndTimeP"}} **タイプ {{span style='color:blue;font-family:monospace;',TimeType}} の値へのポインタ。これら 2 つのパラメータの間を表示するために値を渡します。ユーザが選択を行い、OK ボタンをタップした場合、選択された値がここに返されます。 *{{span style='color:blue;font-family:monospace;',→ untimed}} **時刻無しが選択されていることを示すためには {{span style='color:blue;font-family:monospace;',true}} を渡します。ユーザが時刻に時刻無しをした場合、{{span style='color:blue;font-family:monospace;',startTimeP}} と {{span style='color:blue;font-family:monospace;',EndTimeP}} の両方ともが定数 {{span style='color:blue;font-family:monospace;',noTime}} (-1) にセットされます。 *{{span style='color:blue;font-family:monospace;',→ titleP}} **タイトルとして表示される文字列へのポインタ。関数が実行している間は変更しないでください。 *{{span style='color:blue;font-family:monospace;',→ startOfDay}} **時リストがそのリストの先頭に表示する時。より早い時を見るために、ユーザはそのリストを上にスクロールさせることができます。この値は 0 以上 12 以下の間の値でなければなりません。 '''返り値''' ユーザが OK を選択すると、{{span style='color:blue;font-family:monospace;',true}} を返し、そうでない場合は {{span style='color:blue;font-family:monospace;',false}} を返します。{{span style='color:blue;font-family:monospace;',true}} が返される場合、{{span style='color:blue;font-family:monospace;',hour}} と {{span style='color:blue;font-family:monospace;',minute}} の中の値は変更されている可能性があります。 '''コメント''' //---- //'''NOTE:''' 古い関数は下位互換性のため'''だけに'''提供されます; 例えば、1.0 アプリケーションが 3.x OS リリース上で機能するためです。新しいコードはこれらの関数を呼び出すべきではありません! //---- ::NOTE :::古い関数は下位互換性のため'''だけに'''提供されます; 例えば、1.0 アプリケーションが 3.x OS リリース上で機能するためです。新しいコードはこれらの関数を呼び出すべきではありません! '''参照''' {{goto SelectDay,SelectDay()}}, {{goto SelectOneTime,SelectOneTime()}} !{{anchor SelectTimeZone}}SelectTimeZone 関数 {{goto top,^TOP^}} '''目的''' ユーザが異なるタイム ゾーンを選択できるようにするフォームを表示します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',SelTimeZone.h}} '''Prototype''' Boolean SelectTimeZone ( Int16 *ioTimeZoneP, LmLocaleType *ioLocaleInTimeZoneP, const Char *titleP, Boolean showTimes, Boolean anyLocale ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',←→ ioTimeZoneP}} **グリニッジ標準時(GMT)の東に何分かで与えられるタイム ゾーンへのポインタ。初期値はフォームの最初の選択として使用されます。返り時には、このパラメータはユーザが選択した新しいタイム ゾーンを保持します。 *{{span style='color:blue;font-family:monospace;',←→ ioLocaleInTimeZoneP}} **タイム ゾーン カントリーを指定するロケール({{goto LmLocaleType,LmLocaleType|Palm OS Programmer's API Reference/41}} を参照してください)へのポインタ。このパラメータは、カナダとチリなどのようにタイム ゾーンを共有するカントリーのために使用されます。 *{{span style='color:blue;font-family:monospace;',→ titleP}} **ダイアログのためのタイトルとして使用される文字列。デフォルトのタイトル "Set Time Zone" を使用するには、{{span style='color:blue;font-family:monospace;',NULL}} を渡します。 *{{span style='color:blue;font-family:monospace;',→ showTimes}} **{{span style='color:blue;font-family:monospace;',true}} の場合、ダイアログは、現在と新しく選択されたタイム ゾーン両方の正確な時刻を表示します。{{span style='color:blue;font-family:monospace;',false}} の場合、ダイアログは現在の時刻を表示しません。{{span style='color:blue;font-family:monospace;',false}} を使用することで、タイム ゾーンのリストのための領域をより大きくすることができます。 *{{span style='color:blue;font-family:monospace;',→ anyLocale}} **{{span style='color:blue;font-family:monospace;',true}} の場合、エントリ時の {{span style='color:blue;font-family:monospace;',ioLocaleInTimeZoneP}} を無視します。 '''返り値''' ユーザがタイム ゾーンを変更するためにダイアログの中の OK ボタンをクリックした場合は、{{span style='color:blue;font-family:monospace;',true}} を返します。ユーザが Cancel ボタンをクリックした場合は、{{span style='color:blue;font-family:monospace;',false}} を返します。 '''コメント''' フォームの中に表示されるタイム ゾーンはカントリーによってリストされます。このため、{{span style='color:blue;font-family:monospace;',ioTimeZoneP}} によって指定されるタイム ゾーンがいくつかのカントリーによって共有されている場合、リストが最初に表示されるときにどのカントリーが選択されているべきかを指定するために、{{span style='color:blue;font-family:monospace;',ioLocaleInTimeZoneP}} の値を供給する必要があります。このパラメータによって指される構造体の言語フィールドのための値として定数 {{span style='color:blue;font-family:monospace;',lmAnyLanguage}} を使用することができます。 初期状態で選択されている値がどれであっても気にしない場合は、{{span style='color:blue;font-family:monospace;',anyLocale}} パラメータに {{span style='color:blue;font-family:monospace;',true}} を渡します。このケースでは、初期状態で、{{span style='color:blue;font-family:monospace;',ioTimeZoneP}} で与えられた GMT オフセットに一致するカントリーが選択されます。 {{span style='color:blue;font-family:monospace;',ioTimeZoneP}} のための初期値としてシステム設定の中に保存されている現在のタイム ゾーンを使用したいと思うかもしれません。このタイム ゾーンを取得するには、以下のようにします: Int16 timeZone = (Int16)PrefGetPreference(prefTimeZone); CountryType timeZoneCountry = (CountryType) PrefGetPreference(prefTimeZoneCountry); LmLocaleType timeZoneLocale; Boolean change; timeZoneLocale.country = timeZoneCountry; timeZoneLocale.language = lmAnyLanguage; change = SelectTimeZone(&timeZone, &timeZoneLocale, NULL, true, false); '''互換性''' {{goto 4.0 New Feature Set,4.0 New Feature Set|Palm OS Programmer's API Reference/B-1}} が存在する場合に実装されます。 {{div_end}} {{div_begin "style='border-top:solid;border-top-width:1px;border-top-color:silver;'"}} [[← 7 章に戻る|Palm OS Programmer's API Reference/7]] [[↑トップへ|Palm OS Programmer's API Reference]] [[9 章に進む →|Palm OS Programmer's API Reference/9]] {{div_end}}