メイン・コンテンツまでスキップ

Repeat Button(繰り返しボタン)

TouchGFのRepeat Buttonは、タッチ・イベントを認識するウィジェットで、Repeat Buttonが押されるとコールバックを送信します。 このボタンは押下されたアクションを即座にアクティブ化し、一定の遅延後、間隔を置いて繰り返します。 押下と解放の各状態は、画像と関連付けられます。

Repeat Buttonは、Flex Buttonによって再現できます。 Flex Buttonはさらに詳しい設定が可能なボタンで、柔軟性と引き換えにRAM使用量も少し多くなります。

シミュレータで実行されるRepeat Button

ウィジェット・グループ

Repeat Buttonは、TouchGFX DesignerのButtonsウィジェット・グループ内にあります。

TouchGFX DesignerのRepeat Button

プロパティ

TouchGFX DesignerのRepeat Buttonのプロパティは以下のとおりです。

プロパティ・グループプロパティの説明
Nameウィジェットの名前。 Nameは、TouchGFX Designerおよびコードで使用される一意の識別子です。
場所XとYは、親に対するウィジェットの左上隅を指定します。

WおよびHは、ウィジェットの幅と高さを指定します。
ボタンのサイズは選択した画像のサイズによって決まります。

Lockは、ウィジェットを現在のX、Y、W、Hでロックするかどうかを指定します。
ウィジェットをロックすると、画面を介したウィジェットとの相互作用も無効にします。

Visibleは、ウィジェットの可視性を指定します。
ウィジェットを非表示にすると、画面を介したウィジェットとの相互作用も無効にします。
StyleStyleは、ウィジェットの事前定義のセットアップを指定します。選択プロパティが事前定義された値に設定されます。
これらのスタイルには、自由に使用できる画像が含まれています。
ImageReleased ImageおよびPressed Imageは、押下状態と解放状態に割り当てられる画像を、Designerのスキン・ライブラリまたはProjectフォルダから指定します。
SettingsDelayは、トリガーのループを開始する前にボタンが押されたときに待機する時間(ミリ秒)を指定します。

Intervalは、各トリガー間の時間(ミリ秒)を指定します。 Designerはミリ秒単位の入力を受け付け、それをティックに変換します。
AppearanceAlphaは、ウィジェットの透明度を指定します。
ウィジェットのアルファ値の範囲は0~255です。 0は完全に透明で、255は塗りつぶされた状態です。
MixinsDraggableは、実行時にウィジェットをドラッグ可能にするかどうかを指定します。

ClickListenerは、ウィジェットがクリックされたときにコールバックを発行するかどうかを指定します。

FadeAnimatorは、ウィジェットがAlpha値への変更をアニメーション化できるかどうかを指定します。

MoveAnimatorは、ウィジェットがXおよびY値への変更をアニメーション化できるかどうかを指定します。

インタラクション

以下のセクションでは、Repeat Buttonによってサポートされるアクションとトリガについて説明します。

アクション

標準のウィジェット・アクション説明
Move widget時間の経過に伴ってウィジェットを新しい位置に移動します。
Fade widget時間の経過に伴ってウィジェットのアルファ値を変更します。
Hide widgetウィジェットを非表示にします(可視性をfalseに設定します)。
Show widget非表示のウィジェットを表示します(可視性をtrueに設定します)。

トリガ

トリガ説明
Button is clickedボタンがクリックされました。

パフォーマンス

Repeat Buttonは2つの画像で構成され、画像描画に依存します。 このため、Repeat Buttonはほとんどのプラットフォーム上で高速処理のウィジェットであると見なされます。

画像描画のパフォーマンスの詳細については、「一般的なUIコンポーネントのパフォーマンス」セクションを参照してください。

生成済みコード

View基底クラスの生成済みコードを見ると、TouchGFX DesignerによるRepeat Buttonの設定方法がわかります。

Screen1ViewBase.cpp
#include <gui_generated/screen1_screen/Screen1ViewBase.hpp>
#include "BitmapDatabase.hpp"

Screen1ViewBase::Screen1ViewBase() :
buttonCallback(this, &Screen1ViewBase::buttonCallbackHandler)
{
repeatButtonName.setXY(155, 106);
repeatButtonName.setBitmaps(touchgfx::Bitmap(BITMAP_BLUE_BUTTONS_ROUND_EDGE_SMALL_ID), touchgfx::Bitmap(BITMAP_BLUE_BUTTONS_ROUND_EDGE_SMALL_PRESSED_ID));
repeatButtonName.setDelay(12); // Set at 200 (ms) in Designer
repeatButtonName.setInterval(20); // Set at 333 (ms) in Designer
repeatButtonName.setAction(buttonCallback);

add(repeatButtonName);
}

void Screen1ViewBase::buttonCallbackHandler(const touchgfx::AbstractButton& src)
{
if (&src == &repeatButtonName)
{
//InteractionName
//When repeatButtonName clicked calls the new virtual function "functionName()" set by the user
functionName();
}
}
Tip
ユーザ・コードでは、これらの関数や、RepeatButtonクラスで使用可能なその他の関数を使用できます。 ウィジェットの外観を変更する場合には、 repeatButtonName.invalidate() を呼び出して、再描画を行う必要があることを忘れないでください。

API参照