物理ボタン、タッチボタンを持たない CoreS3、Tough 上にソフトウェアタッチボタンを追加し、 M5.BtnX 経由で状態を取得できるようにしたライブラリです。
将来的に M5Unified に同様の機能がつくまでの暫定としてお使いください。
CoreS3、Tough 以外では処理をしないので、Basic, Gray, Core2 等と共通のソースで作っている方にも有用です。
なお CoreS3SE では M5Unified を使用していればも画面外の部分が Core2 同様にボタンとして機能します。(CoreS3 ではその部分はタッチとして機能しません)
M5Unified 前提ですので、 M5Core3.h を使用した物には適用できません。
環境によって適切な方法でインストールしてください
- git clone や Zip ダウンロードからの展開
- platformio.ini
lib_deps = gob/gob_unifiedButton
- ArduinoIDE ライブラリマネージャからのインストール
#include <M5Unified.h>
#include <gob_unifiedButton.hpp>
goblib::UnifiedButton unifiedButton;
void setup()
{
M5.begin();
unifiedButton.begin(&M5.Display);
}
void loop()
{
M5.update();
unifiedButton.update(); // M5.update() の後に呼ぶ事 (0.1.0 から後呼びに変更されました)
// M5.BtnX 経由で同様に状態取得
if(M5.BtnA.wasHold())
{
// ...
}
else if(M5.BtnA.wasClicked())
{
// ...
}
// ボタンを描画する
unifiedButton.draw();
}
M5GFX で使用できるフォントを設定できます。
unifiedButton.setFont(&fonts::Font4);
begin で指定、または changeAppearance で変更できます。
引数 goblib::UnifiedButton::appearance_t | 外観 |
---|---|
bottom | 画面下側にボタンを表示 (default) |
top | 画面上側にボタンを表示 |
transparent_bottom | bottom と同様の位置に透明ボタンを配置 |
transparent_top | top と同様の位置に透明ボタンを配置 |
transparent_all | 画面全体に透明ボタンを配置(縦3分割) |
LGFX_Button* を取得できます。
void setup()
{
M5.begin();
unifiedButton.begin(&M5.Display);
auto btnA = unifiedButton.getButtonA();
// 独自形状、色、テキストのボタンを再作成
btnA->initButton(unifiedButton.gfx(), 40, 120, 80, 240 ,TFT_GREEN, TFT_BLUE, TFT_WHITE, "[A]");
// ラベル変更
btnA->setLabelText("Own");
}
LGFX_Button についてはこちらを参照してください。
Doxygen 用の設定ファイルとシェルスクリプトで作成できます。
出力先は doc/html です。
bash doc/doxy.sh
またはGitHub Pagesを参照してください。