UI_DragIcon

   <task pointer> = UI_DragIcon( <parent pointer>, <order>, <x>, <y>, <tap area>, "<asset>",
                                 "<drag asset>", <drag order offset>, <drag alpha>, <centerX>, <centerY>,
                                 "<callback>" [ , <flags> ])

   <tap area> = {
     x = <x>,
     y = <y>,
     width = <width>,
     height = <height>
   }

   function <callback>(step, x, y)
   end

    stepは下記二つの値を取る。
    DRAGICON_DRAG ドラッグ中
      DRAGICON_RELEASE リリース(ドロップ)

引数

  • <parent pointer> 親UIのポインタ
  • <order> アイコン表示プライオリティ
  • <x>, <y> アイコン表示座標
  • <tap area> アイコンとして反応するエリアの指定配列。自身の表示座標を基準に指定。
  • <asset> アイコン表示に使用する画像assetのパス
  • <drag asset> ドラッグ中、指先について回る表示物のasset
  • <drag order offset> ドラッグ中<drag asset>の表示に使用するプライオリティの、<order>からのオフセット
  • <drag alpha> ドラッグ中<drag asset>を表示する際のalpha値。
  • <centerX>,<centerY> ドラッグ中<drag asset>を表示する際に、指先の真下にくるべき<drag asset>表示位置からの相対座標。
  • <callback> 操作中や操作終了の通知を受け取るコールバック関数名。
  • <flags> 動作規定フラグ。下記の値をbitOR()関数等でORした結果で動作を規定する。
    • F_DICON_BASEINVISIBLE ドラッグ中元アイコンを非表示にする

戻り値

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

解説

アイコン位置からのドラッグ&ドロップ操作によって、操作対象の位置を取得できるUIタスク。 モーダルスタックの影響を受ける。

UI_DragIcon を起動すると指定した座標に<asset>によるアイコンが表示される。 このアイコンに対し、<tap area>で指定された領域内から始まるDRAG操作により、現在のDRAG座標に<drag asset>が表示され、 RELEASE操作でDropした段階で<drag asset>の表示が消える。

この間、DRAGとRELEASEそれぞれについて<callback>で指定されたLua関数が呼ばれ、この関数を適切に実装することにより、 ドラッグ&ドロップ操作を実装できる。

コマンド

UI_DRAGICON_ENABLE
ドラッグアイコンの操作を許可または禁止する。
  • UI_DRAGICON_ENABLE
       pDIC= UI_DragIcon(...)
       sysCommand(pDIC, UI_DRAGICON_ENABLE, <enabled(true/false)>)
    
UI_DRAGICON_DRAGAREA
ドラッグアイコンをドロップ操作可能な画面領域に制限を与える。 このコマンド実行以後、画面上の指定した領域以外に対してはドロップ操作ができなくなる。
  • UI_DRAGICON_DRAGAREA
       pDIC= UI_DragIcon(...)
       sysCommand(pDIC, UI_DRAGICON_DRAGAREA, <drop area>)
    
       <drop area> = {
         x = <x>,
         y = <y>,
         width = <width>,
         height = <height>
       }