CWinCtrlListboxEx

スクリプト: LISTBOXEX

リストボックスのためのコントロールです。

コンテンツを複製し、それを一行とします。

コンテンツの数はメモリが許す限り自由に設定可能です。

垂直方向にコンテンツが並んでいるリストボックスだけでなく、水平方向にも並べることも可能です。

LISTBOX と違う点は、コンテンツサイズを自動的に計測するところです。

垂直方向に並んでいる場合は、縦幅のみ自動計算の対象になります。

それに対して水平方向に並んでいる場合は、横幅のみ自動計算の対象になります。

CWindowBase に届くコールバック

固有の関数/プロパティ

リストボックスのサイズとなります。 sizeプロパティと同等です。

リストボックスの仮想画面のサイズです。 コンテンツリスト内の全ての高さの総和になります。

リストボックスが仮想画面のどこをポイントしているかを表しています。 値を設定すると一気に移動します。 滑らかにアニメーションさせながら移動させたいときは、 :meth:`setSmoothOffset<CWinCtrlListBoxEx.setSmoothOffset>` を使ってください。

スワイプ中かどうか判定します。

0.25の速度で、 :meth:`setSmoothOffset<CWinCtrlListBoxEx.setSmoothOffset>` したのと同じ振る舞いになります。

setSmoothOffsetによるスクロールアニメーションかどうかを取得できます。

特定のコンテンツが指定したアンカー位置に沿って表示されるようなオフセットを取得できます。

リストボックスが縦方向の時は次の通りです。

e_Anchor

位置

Bottom,LeftBottom,RightBottom

コンテンツが一番下に来るようなオフセット値

Top,LeftTop,RightTop

コンテンツが一番上に来るようなオフセット値

Center,Left,Right

コンテンツが真ん中に来るようなオフセット値

リストボックスが横方向の時は次の通りです。

e_Anchor

位置

Left,LeftBottom,LeftTop

コンテンツが一番左に来るようなオフセット値

Right,RightBottom,RightTop

コンテンツが一番右に来るようなオフセット値

Center,Top,Bottom

コンテンツが真ん中に来るようなオフセット値

使用例

override public void onUpdate() {
   // get control
   CWinCtrlListboxEx   lbPartys = find<CWinCtrlListboxEx>(LISTBOXEX_Partys);

   // set listbox contents num
   lbPartys.resize(10);

   // Refresh the status in a list box (In this case, 10 lines will be updated.)
   for (int i = 0;i < lbFriends.Count;++i) {
       // Get a single line of list box content.
       CWinContents contents = lbFriends.getContentsFromIndex(i);

       //Get BUTTON(Name)
       CWinCtrlButton btnName = contents.find<CWinCtrlButton>(BUTTON_Name);

       //Get ICON(Icon)
       CWinCtrlIcon icnName = contents.find<CWinCtrlIcon>(ICON_Icon);
   }
}