.. default-domain:: csharp .. _CWinCtrlListbox: =========================== CWinCtrlListbox =========================== スクリプト: :ref:`LISTBOX` リストボックスのためのコントロールです。 コンテンツを複製し、それを一行とします。 コンテンツの数はメモリが許す限り自由に設定可能です。 垂直方向にコンテンツが並んでいるリストボックスだけでなく、水平方向にも並べることも可能です。 :ref:`CWindowBase` に届くコールバック :meth:`void onDrag(CWinCtrlBase cCtrl,Vector2 pos,Vector2 dragVelocity)` 領域をドラッグしたとき呼び出されます。 :ref:`ロック` しているときだけ、このコールバックは呼ばれます。 :meth:`void onDrop(CWinCtrlBase cCtrl,CWindowBase cDragWindow,CWinCtrlBase cDragCtrl)` .. class:: CWinCtrlListBox *固有の関数/プロパティ* .. property:: Vector2 viewsize { get; set; } リストボックスのサイズとなります。 sizeプロパティと同等です。 .. property:: Vector2 screensize { get; set; } リストボックスの仮想画面のサイズです。 コンテンツリスト内の全ての高さの総和になります。 .. property:: Vector2 offset { get; set; } リストボックスが仮想画面のどこをポイントしているかを表しています。 値を設定すると一気に移動します。 滑らかにアニメーションさせながら移動させたいときは、 :meth:`setSmoothOffset` を使ってください。 .. property:: bool isSwipe { get; } スワイプ中かどうか判定します。 .. method:: void setSmoothOffset(Vector2 offset,float spd) :param Vector2 offset: 設定したい最終オフセット :param float spd: 速度 .. property:: Vector2 smoothOffset { get; set; } 0.25の速度で、 :meth:`setSmoothOffset` したのと同じ振る舞いになります。 .. property:: bool isSmoothScrolled { get; } setSmoothOffsetによるスクロールアニメーションかどうかを取得できます。 .. method:: Vector2 getContentsOffset(int index,e_Anchor eAnchor) :param int index: 取得したいコンテンツオフセットのインデックス :param e_Anchor eAnchor: コンテンツがどの位置に来ることを望むかをアンカーで指定する 特定のコンテンツが指定したアンカー位置に沿って表示されるようなオフセットを取得できます。 リストボックスが縦方向の時は次の通りです。 +------------------------------+--------------------------------------------+ |e_Anchor |位置 | +==============================+============================================+ |Bottom,LeftBottom,RightBottom |コンテンツが一番下に来るようなオフセット値 | +------------------------------+--------------------------------------------+ |Top,LeftTop,RightTop |コンテンツが一番上に来るようなオフセット値 | +------------------------------+--------------------------------------------+ |Center,Left,Right |コンテンツが真ん中に来るようなオフセット値 | +------------------------------+--------------------------------------------+ リストボックスが横方向の時は次の通りです。 +------------------------------+--------------------------------------------+ |e_Anchor |位置 | +==============================+============================================+ |Left,LeftBottom,LeftTop |コンテンツが一番左に来るようなオフセット値 | +------------------------------+--------------------------------------------+ |Right,RightBottom,RightTop |コンテンツが一番右に来るようなオフセット値 | +------------------------------+--------------------------------------------+ |Center,Top,Bottom |コンテンツが真ん中に来るようなオフセット値 | +------------------------------+--------------------------------------------+ *使用例* .. code-block:: csharp override public void onUpdate() { // get control CWinCtrlListbox lbFriends = find(LISTBOX_Friends); // set list box contents num. lbFriends.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(BUTTON_Name); //Get ICON(Icon) CWinCtrlIcon icnName = contents.find(ICON_Icon); } } ..