UI_List


!!!ご注意!!!

UI_List は非常に多機能であり、使用方法についてもっとも質問の多いタスクであるため、 質問や不具合報告を行う前に、必ず FAQ およびマニュアルを確認することを推奨します。


   <task pointer> = UI_List( <parent pointer>, 
                             <base priority>, <max order>,
                             <x>, <y>, <clip width>, <clip height>,
                             <default line step>, <vertical flag>, "<drag callback>" [ , <option flags> ] )


   function <drag callback>(<task pointer>, <type>, <tap-x>, <tap-y>, <move-x>, <move-y>)

   end

引数

  • <parent pointer> 親UIのポインタ
  • <base priority> 基準表示プライオリティ
  • <max order> クリッピング対象とする最大プライオリティ値
  • <x>, <y> クリッピング領域とする領域の位置
  • <clip width>, <clip height> クリッピング領域のサイズ
  • <default line step> デフォルトの項目間隔(アイテムの幅)
  • <vertical flag> 縦方向リストフラグ。trueで縦方向、falseで横方向
  • <drag callback> リストをドラッグ操作した際のコールバック。nil を指定した場合はコールバックを呼ばない。
  • <option flags> 動作オプションのフラグ
    • LIST_FLAG_BOTTOM アイテムとなるフォームを並べる軸線を、横スクロールであればクリッピング領域の下端、縦スクロールであれば右端に設定する。
    • LIST_FLAG_MODAL モーダルコントロールとして生成する(モーダルスタックについて)

※LIST_FLAG_BOTTOM を使用する場合、アイテムとして追加されるフォームの起点が軸線上に来るため、データ作成上注意が必要。

  • <task pointer> コールバックを呼び出した UI_List タスクのポインタ
  • <type> タッチパネル操作の種類
  • <tap-x> 今回の操作が始まった時点におけるタップ位置x座標
  • <tap-y> 今回の操作が始まった時点におけるタップ位置y座標
  • <move-x> タップ位置から今回のイベントが検出された位置までのx方向差分
  • <move-y> タップ位置から今回のイベントが検出された位置までのy方向差分

戻り値

  • <task pointer> 生成された UI_List タスクのポインタ

解説

UIエディタで生成されたJSONを項目として、複数のフォームを縦または横に並べたリストを表示/管理するタスクを生成する。

プロパティ

  • .margin_top (integer:default = 0) 先端マージンサイズ(integer)
  • .margin_bottom (integer:default = 0) 終端マージンサイズ(integer)
  • .default_scroll (boolean:default = false) 起動時に指定された <drag callback>がnilの場合、trueでデフォルトドラッグスクロールが有効になる。

コマンド

UI_LIST_ITEM_ADD
リストの末尾に項目を追加する。項目は JSON asset または同じ構造のLuaテーブルで与えられる。
  • UI_LIST_ITEM_ADD
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_ITEM_ADD, "<form JSON asset>" [, <step by prev>, <item-id> ] )
       sysCommand(pList, UI_LIST_ITEM_ADD, <form Lua table> [, <step by prev>, <item-id> ] )
    
       <item-id> 0以上の値を持つ任意の整数値
    
UI_LIST_SET_ITEM_ID
指定されたindex値を持つアイテムに、任意のID値を与える。
  • UI_LIST_SET_ITEM_ID
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_SET_ITEM_ID, <index>, <item-id>)
    
UI_LIST_SEARCH_ID
指定されたID値を持つアイテムを検索し、そのindex値を返す。
  • UI_LIST_SEARCH_ID
       pList = UI_List(...)
       <index> = sysCommand(pList, UI_LIST_SEARCH_ID, <item-id>)
    
UI_LIST_ITEM_INSERT
リスト中の指定したindex位置に項目を挿入する。項目はJSON asset または同じ構造のLuaテーブルで与えられる。
  • UI_LIST_ITEM_INSERT
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_ITEM_INSERT, "<form JSON asset>", <exist item index [, <item-id> ])
       sysCommand(pList, UI_LIST_ITEM_INSERT, <form Lua table>, <exist item index> [, <item-id> ])
    
       <item-id> 0以上の値を持つ任意の整数値
    
UI_LIST_ITEM_REMOVE
リスト中の指定したindex位置にある項目を削除する。 indexはその場で先頭に詰めます
  • UI_LIST_ITEM_REMOVE
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_ITEM_REMOVE, <exist item index>)
    
UI_LIST_ITEM_MOVE
<src-index>で指定されたアイテムのindex位置が、<dst-index>になるように移動する。 ただし、index値として指定できるのは0~(アイテム総数-1)に限られ、この範囲を超えると末尾に移動する。
   pList = UI_List(...)
   sysCommand(pList, UI_LIST_ITEM_MOVE, <src-index>, <dst-index>)
UI_LIST_ITEM_REMOVE_SELECTION
Luaテーブルで指定されたリスト中に含まれる複数のindex位置にある項目をまとめて削除する。
  • UI_LIST_ITEM_REMOVE_SELECTION
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_ITEM_REMOVE_SELECTION, <item-index-array>)
    
       ex) sysCommand(pList, UI_LIST_ITEM_REMOVE_SELECTION, { 0, 3, 8, 12 } )
    
         indexが 0, 3, 8, 12 のアイテムをまとめて削除します。
    
UI_LIST_SET_LOOPMODE
リストの先端と終端が連結され、アイテムがループする動作モードの有効/無効を設定する。 リスト全体の長さがクリッピングエリアより短い場合、ループ動作モードはループ動作にならず、UI_LIST_SET_LIMITCLIPによる設定に準じた動作となる。
  • UI_LIST_SET_LOOPMODE
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_SET_LOOPMODE, <loop-mode>)
    
       <loop-mode> true:ループ有効 / false:ループ無効
    
UI_LIST_SET_ITEMMODE
リストにおけるアイテムの保持モードを設定する。
  • UI_LIST_SET_ITEMMODE
       pList = UI_List(...)
       sysCommand(plist, UI_LIST_SET_ITEMMODE, <item-mode> [ , <into-callback> ])
    
       <item-mode> として設定可能な値
    
         LIST_ITEM_NORMAL    NORMALモード: アイテム追加時点でformを作成する。UI_LIST_UPDATE_NODEコマンドによるノードの更新が可能。
    
         LIST_ITEM_DYNAMIC   DYNAMICモード: アイテム追加時点でformのjsonのみを保持し、クリッピング領域内に入った時点でformを生成、
                             領域外に出たときにformを破棄する。formの状態を保持することができないので、UI_LIST_UPDATE_NODE コマンドによる
                             ノードの更新は禁止される。表示分のみformを生成するため、assetによるメモリ資源の消費を抑えることができる。
    
       <into-callback> アイテムがクリップ領域に入った時に呼ばれるコールバック。
    
         function <into-callback>( pList , <item-index>, <item-id> )
    
         end
    
UI_LIST_SET_MARGIN
リストスクロール範囲の先端と終端における、アイテム以前/以後の余白となる領域のサイズを指定する。
  • UI_LIST_SET_MARGIN
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_SET_MARGIN, <margin-top>, <margin-bottom>)
    
       ※プロパティ .margin_top および .margin_bottom でも値は操作可能。
    
UI_LIST_SET_POSITION
リスト項目のスクロール位置を指定する。スクロール方向は縦か横どちらかなので、位置を表す値は一つのみ。実際に設定された値を返す。 また、ループ動作モード時など、あるポジションに行くために二つのスクロール方向がある場合のため、 スクロール方向を指定する値として <dir> を指定することができる。 <dir>に指定する値は 1(増加方向)あるいは -1(減少方向)となる。
  • UI_LIST_SET_POSITION
       pList = UI_List(...)
       <set position X or Y> = sysCommand(pList, UI_LIST_SET_POSITION, <position X or Y> [ , <dir> ] )
    
UI_LIST_GET_POSITION
現在のスクロール位置を取得する。
  • UI_LIST_SET_POSITION
       pList = UI_List(...)
       <position X or Y> = sysCommand(pList, UI_LIST_GET_POSITION)
    
UI_LIST_SET_INITIAL
リスト項目の初期位置を指定する。UI_LIST_SET_POSITION と基本的に同じだが、 スクロールマネージャによるアニメーションを伴わず、瞬時にその位置まで移動する。表示開始時の初期位置指定等に使用する。
  • UI_LIST_SET_INITIAL
       pList = UI_List(...)
       <set position X or Y> = sysCommand(pList, UI_LIST_SET_INITIAL, <position X or Y>)
    
UI_LIST_SET_ITEM_POS
インデックスで指定したリスト中のアイテムが、クリッピング領域内にはいるように、スクロール位置を自動設定する。
  • UI_LIST_SET_ITEM_POS
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_SET_ITEM_POS, <position mode>, <exist item index> [, <offset> ])
       
       <position mode> は下記の中から選択する。
    		LIST_VIEW_TOP    クリッピング領域の上端にアイテム上端を合わせる
    		LIST_VIEW_CENTER クリッピング領域の中央にアイテムが来るように合わせる
    		LIST_VIEW_END    クリッピング領域の下端にアイテム下端を合わせる
                    LIST_VIEW_OFFSET クリッピング領域の上端を基準とした指定オフセット位置にアイテム上端を合わせる
    
       ※ <offset> は <position mode>がLIST_VIEW_OFFSET以外の時に指定されるとエラーとなるので注意。
    
UI_LIST_CHANGE_STEP
インデックスで指定したリスト中のアイテムが占有するスクロール幅を変更する
  • UI_LIST_CHANGE_STEP
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_CHANGE_STEP, <exist item index>, <new step> )
    
UI_LIST_SET_LIMITCLIP
リストの上端および下端を超えたスクロールの許可/禁止を設定する。デフォルト状態では禁止状態。 スクロールの結果、が両端に達した際呼ばれるコールバックを指定できる。 このコールバックは、<limit clip enable>がtrueのときは両端に達した/離れたとき、falseの場合は両端からの領域に入った/出たときに呼ばれる。
  • UI_LIST_SET_LIMITCLIP
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_SET_LIMITCLIP, <limit clip enable> [, "<limit callback>" ] )
       
       <limit clip enable> true でクリップあり(禁止)、falseでクリップなし(許可)
    
       <limit callback> スクロールの結果、リスト両端から一定の範囲がクリッピング領域に入った際に呼ばれるコールバック関数の名前。
    
       function <limit callback>(<list task pointer>, <mode>, <items>, <length>, <pos>)
       end
    
       <list task pointer> 呼び出し元 UI_List タスクのポインタ
       <mode>              LIST_SCROVER_TOP(先頭側) / LIST_SCROVER_BOTTOM(末端側) / LIST_SCROVER_TAKEOFF(先頭または末端を離れた)のいずれか。
       <items>             現在のアイテム総数
       <length>            現在のスクロール範囲長さ
       <pos>               現在のスクロール位置
    
    
UI_LIST_SET_LIMITAREA
UI_LIST_SET_LIMITCLIP で超過スクロール警告コールバックを指定した際、呼び出し条件となる両端からの範囲のサイズを指定する。 0 を指定すると両端からクリッピング領域のサイズ(1画面分)と同じ値となり、デフォルトではこの状態となる。
  • UI_LIST_SET_LIMITAREA
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_SET_LIMITAREA, <limit area size> )
       
       <limit area size> コールバック呼び出しの条件となる両端からの範囲のサイズ
    

UI_LIST_SET_LIMITCLIP で false とコールバックを指定したとき、UI_LIST_SET_LIMITAREA で設定された範囲は下図のような概念で扱われます。

UI_LIST_GET_LIMIT
現在のリスト下端がクリッピング領域の下端に来るスクロール値を返す。
  • UI_LIST_GET_LIMIT
       pList = UI_List(...)
       <limit position X or Y> = sysCommand(pList, UI_LIST_GET_LIMIT)
    
UI_LIST_EXIST_NODE
リスト内に含まれるノードを名前で検索し、存在するか否かを返す。 <target index>は0から始まる。
  • UI_LIST_EXIST_NODE
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_EXIST_NODE, <target index>, "<node name>")
    
       <target index>  対象アイテムのindex
       <node name>     ノードの名称
    
UI_LIST_UPDATE_NODE
リスト内に含まれるノードを名前で検索し、サブコマンドで指定された操作を行う。 <target index>は0から始まる。
  • UI_LIST_UPDATE_NODE
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, <subcommand>, ... )
    
    
       <node identifier>  ノードの名称"<node name>"または、FORM_NODE_POINTER で取得される <node pointer> いずれか
    
    
       引数の数と意味は <subcommand> の値ごとに異なる。
       <subcommand>の値は UI_Form と共通の定数を使用する。また、<subcommand>以降の書式は UI_Formと共通。
    
       FORM_NODE_~: 全ノード共通処理
         <node pointer> = sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_NODE_POINTER)  ノードポインタ取得
    
          ※取得されるポインタは SceneGraph上に存在するノードのポインタであり、そのノードが持つタスクのポインタではないことに注意。
            タスクのポインタを取得する場合は、FORM_NODE_TASK サブコマンド(後述)を使用。
    
    
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_NODE_RECURSIVE, "<function name>") ノード再帰処理
    
    
           function <function name>(<parent task pointer>, <node pointer>, <index>, <level>)
             -- <parent task pointer>  呼び出し元UI_Listタスクのポインタ
             -- <node pointer>         再帰処理対象となるノードのポインタ
             -- <index>                アイテムインデックス。UI_ListではFORM_NODE_RECURSIVEで指定した <target index> の値
             -- <level>                再帰呼び出しの階層。FORM_NODE_RECURSIVEで指定した<node identifier>に該当するノードが0、以降、階層を子の側に辿るごとに+1される
           end
    
    
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_NODE_TRANS, <x>, <y>)           移動
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_NODE_SCALE, <scaleX>, <scaleY>) 表示倍率指定
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>", FORM_NODE_ROT, <rotation-degree>)    回転角指定。正の方向で時計回り。単位はdegree.
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_NODE_COLOR, <alpha>, <RGB> )    表示RGBおよびalpha指定
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_NODE_VISIBLE, <visible flag> )  表示/非表示切り替え
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_NODE_ORDER, <priority> )        表示プライオリティ指定
         <node order>   = sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_NODE_GET_ORDER)表示プライオリティ取得
         <task pointer> = sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_NODE_TASK)     指定のノードを持つタスクポインタを取得
    
          ※FORM_NODE_TASK で取得できるのは、Compositeで指定され起動されたタスクのみであり、
             UI_GENERIC_RECONNECT_NODE 等を使用してスクリプトから後天的に接続したタスクについては対象とならない。
             そのようなタスクについては、別途スクリプタの責任においてタスクのポインタを保持すること。
    
    
       FORM_UIE_~: CKLBUIElement型用
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_UIE_SET_ENABLED, <enabled flag> )           有効/無効切り替え
         <enabled flag> = sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_UIE_GET_ENABLED)           有効/無効状態取得
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_UIE_SET_ASSET, <asset path>, <asset type> ) 表示asset変更
    
         <asset type> は、form中で使用される目的別の分類。
    		FORM_ASSET_NORMAL    通常時
    		FORM_ASSET_DISABLED  無効時
    		FORM_ASSET_FOCUSED   フォーカス時(タッチパネルデバイスでは無意味)
    		FORM_ASSET_PUSHED    押された時
    
        sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_UIE_SET_TEXT, "<new text>" )                 ラベルテキスト変更(ラベル以外は無視)
         ※現状未実装
    
    
       FORM_UIS_~: CKLBUISelectable型用
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_UIS_SET_CLICK, <x>, <y>, <width>, <height> ) クリック範囲指定
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_UIS_SET_STICK, <stick flag> )                チェックボックス状態指定
         <sticked status> = sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_UIS_GET_STICK)            チェックボックス状態取得
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_UIS_SET_RADIO, <radio ID> )                  ラジオボタンID指定
    
       FORM_CONT_~: CKLBUIContainer型用
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_CONT_VIEWOFFSET, <offsetX>, <offsetY> )      View内表示offset指定
         <radio value> = sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_CONT_GET_RADIO_VALUE)        ラジオボタン値取得
    
       FORM_TEXT_~: CKLBUITextBox型用
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_TEXT_SET, <text string> )                    テキストボックス文字列設定
         <text string> = sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_TEXT_GET)                    テキストボックス文字列取得
       
       FORM_WEB_~: CKLBUIWebView型用
         sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_WEB_SET_URI, <URI string> )                  WebView 表示 URI 指定
         <URI string> = sysCommand(pList, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_WEB_GET_URI)                  現在の URI 文字列取得
    
       FORM_LBL_~: CKLBLabelNode型用
         sysCommand(pForm, UI_LIST_UPDATE_NODE, <target index>, <node identifier>, FORM_LBL_SET_TEXT, "<new text>" )                ラベルテキスト変更
         <text string> = sysCommand(pForm, UI_FORM_UPDATE_NODE, <target index>, <node identifier>, FORM_LBL_GET_TEXT)               ラベルテキスト取得
    
UI_LIST_INPUT_ENABLE
リスト各項目の表示状態を変えずに操作を許可/禁止する。
  • UI_LIST_INPUT_ENABLE
       pList = UI_List(...)
       sysCommand(pLilst, UI_LIST_INPUT_ENABLE, <enable flag>)
    
UI_LIST_ANIM_CALLBACK
フォームのアニメーションコールバックを指定する。
  • UI_LIST_ANIM_CALLBACK
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_ANIM_CALLBACK, "<callback name>")
    
       コールバックの型は下記の通り。
    
       function <callback name>(pList, name, id)
       end
    
        pList アニメーションを終了させたUI_Listタスクのポインタ
        name  終了したアニメーションの名前
        id    アニメーション起動時に与えたID(リストアイテムのindex値と同じ,あるいは-1)
    
UI_LIST_ANIMATION_ITEM
名前を指定して、listの持つアイテムのうち、<item index>で指定されたアイテムのアニメーションを開始させる。 UI_LIST_ANIM_CALLBACKが使用されている場合、id値として<item index>が渡される。
  • UI_LIST_ANIMATION_ITEM
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_ANIMATION_ITEM, <item index>, "<animation name>" [, <blend flag>])
    
         <item index> アニメーションさせるアイテムのindex
         <animation name> アニメーションの名前
         <blend flag> Form中のアニメーションとの補間フラグ。指定しない場合はfalseと同じ扱いとなる。
                      trueであればこのコマンドで最初に指定した時にだけ再生を行い、
                      falseであれば指定される都度に再生される。
    
UI_LIST_ANIMATION_ALL
名前を指定して、listの持つ全てのアイテムのアニメーションを開始させる。 UI_LIST_ANIM_CALLBACKが使用されている場合、渡されるid値は -1 となる。
  • UI_LIST_ANIMATION_ALL
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_ANIMATION_ALL, "<animation name>" [, <blend flag>])
    
         <animation name> アニメーションの名前
         <blend flag> Form中のアニメーションとの補間フラグ。指定しない場合はfalseと同じ扱いとなる。
                      trueであればこのコマンドで最初に指定した時にだけ再生を行い、
                      falseであれば指定される都度に再生される。
    
UI_LIST_USE_SCROLLBAR
UI_List の組み込みスクロールバーを表示させる。 スクロールバーは縦スクロールの場合は左右いずれか、横スクロールの場合は上下いずれかに表示させることができる。
  • UI_LIST_USE_SCROLLBAR
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_USE_SCROLLBAR, <order>, <side>, <line-weight>, <image>, <min-slider-size>,
                  "<callback>", <alpha-normal>, <color-normal>, <alpha-select>, <color-select>, <active> [ , <hide-mode> ] )
    
       <order>   表示プライオリティ
       <side>            スクロールバーの表示位置。true で右側または下側、falseで左側または上側
       <line-weight>     スクロールバーの太さ。表示領域サイズに使用される。
       <image>           スクロールバーのスライダ表示に使用される画像asset名。
       <min-slider-size> スクロール領域の変動に伴うスライダサイズ変更時の最小サイズ
       <callback>        スクロールバーによるコールバックの関数名称(不要な場合は nil を指定)
    
       <alpha-normal>    通常時のスライダ表示アルファ値
       <color-normal>    通常時のスライダ表示カラー
       <alpha-select>    選択/操作時のスライダ表示アルファ値
       <color-select>    選択/操作時のスライダ表示
       <active>          ユーザによるスクロールバー自体の操作可否(true:許可/false:禁止)
       <hide-mode>       手を放して1秒後にフェードアウトするモードの使用(true:有効/false:無効)
    
    
       ※コールバック関数仕様
       function <callback>(<pList>, <type>, <pos>)
    
       end
    
       <pList>    呼び出し元となるスクロールバーを持つUI_Listタスクのポインタ
       <type>     操作の種類。0(Drag) または 1(Release)
       <pos>      スクロールバーの値
    
    
    
UI_LIST_SELECT_SCRMGR
名前を指定してスクロールバーが使用するスクロールマネージャを選択し、必要に応じてそのパラメータを与える。
  • UI_LIST_SELECT_SCRMGR
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_SELECT_SCRMGR, "<manager-name>" [, ... ])
    
         <manager-name> スクロールマネージャ名称
    
         ※現在、スクロールマネージャは下記のものが用意されている。()内はパラメータ
           "default" 指定位置まで急加速→減速の動きでスクロールする([, <delay> ])
           "solid"   一切の補間処理なく指定位置にそのフレームで即ジャンプする(パラメータなし)
           "page"    一定単位を「ページサイズ」とし、その境界単位でスクロールする(, <page-size> [, <delay> [ , <stopline-offset> ] ])
    
             <stopline-offset> クリッピング領域上端からページ境界の停止位置オフセット
    
UI_LIST_SCRMGR_CALLBACK
スクロールマネージャレベルのコールバックを指定する。 コールバックはスクロールマネージャがそのフレーム処理の中でスクロールを停止した時点で呼ばれる。
  • UI_LIST_SCRMGR_CALLBACK
       pList = UI_List(...)
       sysCommand(pList, UI_LIST_SCRMGR_CALLBACK, "<callback-function-name>")
    
       function <callback-function-name>( <task-pointer>, <pos> )
         -- <task-pointer>  親となるUI_Listのポインタ
         -- <pos>           停止した時点のスクロール位置
       end
    
       ※スクロール停止位置が前回の停止位置と同じ場合はコールバック関数は呼ばれない(仕様)
    
UI_LIST_SET_GROUP
リストにグループ名を与える。同じグループ名を持つ UI_Form および UI_List は同一のグループに所属すると見做され、操作の排他制御が行われる。
   pList = UI_List(...)
   sysCommand(pList, UI_LIST_SET_GROUP, "<group-name>")
UI_LIST_SET_CLIP
クリッピングを再設定する機能です。start_priorityとend_priorityも設定できるが、-1に設定した場合、前の値のままになります。

そして、x,yは基本的に0だが、自由に設定できる。

width == 0 and height == 0の場合、クリップが無効になります。

width != 0 or height != 0の場合、クリップ有効になります。

   pList = UI_List(...)
   sysCommand(pList, UI_LIST_SET_CLIP, start_priority, end_priority, x, y, width, height)