Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
GOB52 committed Nov 25, 2023
2 parents 3c65fa1 + 694852f commit 3cd419a
Show file tree
Hide file tree
Showing 9 changed files with 184 additions and 168 deletions.
96 changes: 0 additions & 96 deletions README.en.md

This file was deleted.

98 changes: 98 additions & 0 deletions README.ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# gob_unifiedButton

![gob_unifiedButton](https://github.com/GOB52/gob_unifiedButton/assets/26270227/590cde0d-f4b6-4fe6-8cae-e25d27b32f8b)

[English](README.md)

## 概要
物理ボタン、タッチボタンを持たない CoreS3 上にタッチボタンを追加し、 M5.BtnX 経由で状態を取得できるようにしたライブラリです。
将来的に [M5Unified](https://github.com/m5stack/M5Unified) に同様の機能がつくまでの暫定としてお使いください。
CoreS3 以外では処理をしないので、Basic, Gray, Core2 と共通のソースで作っている方にも有用です。

## 必要なもの
* [M5Unified](https://github.com/m5stack/M5Unified)
* [M5GFX](https://github.com/m5stack/M5GFX)

**M5Unified 前提ですので、 M5Core3.h を使用した物には適用できません。**

## 導入
環境によって適切な方法でインストールしてください
* git clone や Zip ダウンロードからの展開
* platformio.ini
```ini
lib_deps = gob/gob_unifiedButton
```
* ArduinoIDE ライブラリマネージャからのインストール

## 使い方
```cpp
#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 で使用できるフォントを設定できます。
```cpp
unifiedButton.setFont(&fonts::Font4);
```

## 外観変更
begin で指定、または changeAppearance で変更できます。

|引数 goblib::UnifiedButton::appearance\_t|外観|
|---|---|
|bottom| 画面下側にボタンを表示 (default)|
|top|画面上側にボタンを表示|
|custom|独自にボタンをカスタマイズ(下記参照)|
|transparent\_bottom|bottom と同様の位置に透明ボタンを配置|
|transparent\_top|top と同様の位置に透明ボタンを配置|
|transparent_all|画面全体に透明ボタンを配置(縦3分割)|

## ボタンのカスタマイズ
goblib::UnifiedButton::appearance\_t::custom を指定した後であれば、
getButoonA / getButtonB / getButtonC で LGFX_Button\* を取得できます。
```cpp
void setup()
{
M5.begin();
unifiedButton.begin(&M5.Display, goblib::UnifiedButton::appearance_t::custom);

auto btnA = unifiedButton.getButtonA();
auto btnB = unifiedButton.getButtonB();
auto btnC = unifiedButton.getButtonC();

// 独自形状、色、テキストのボタンを再作成
btnA->initButton(unifiedButton.gfx(), 40, 120, 80, 240 ,TFT_GREEN, TFT_BLUE, TFT_WHITE, "[A]");
...
}
```

## ドキュメント
[Doxygen](https://www.doxygen.nl/) 用の[設定ファイル](doc/Doxyfile)[シェルスクリプト](doc/doxy.sh)で作成できます。
89 changes: 47 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,48 @@
# gob_unifiedButton

[English](README.en.md)
[日本語](https://github.com/GOB52/gob_unifiedButton/blob/master/README.ja.md)

## 概要
物理ボタン、タッチボタンを持たない CoreS3 上にタッチボタンを追加し、 M5.BtnX 経由で状態を取得できるようにしたライブラリです。
将来的に [M5Unified](https://github.com/m5stack/M5Unified) に同様の機能がつくまでの暫定としてお使いください。
CoreS3 以外では処理をしないので、Basic, Gray, Core2 と共通のソースで作っている方にも有用です。
![gob_unifiedButton](https://github.com/GOB52/gob_unifiedButton/assets/26270227/590cde0d-f4b6-4fe6-8cae-e25d27b32f8b)

## 必要なもの
## Overview
This library adds touch buttons on CoreS3, which does not have physical buttons or touch buttons, and enables the user to acquire the status via M5.BtnX.
Please use this as an interim feature until a similar feature is added to [M5Unified](https://github.com/m5stack/M5Unified) in the future.
It is also useful for those who are making a common source for Basic, Gray, and Core2, as it does not process anything other than CoreS3.

## Required libraries
* [M5Unified](https://github.com/m5stack/M5Unified)
* [M5GFX](https://github.com/m5stack/M5GFX)

**M5Unified 前提ですので、 M5Core3.h を使用した物には適用できません。**
**M5Unified is assumed, so it cannot be applied to those using M5Core3.h.**

## 導入
環境によって適切な方法でインストールしてください
* git clone や Zip ダウンロードからの展開
## How to install
Install in an appropriate way depending on your environment.
* git clone or download zip, and extract into place
* platformio.ini
```ini
lib_deps = https://github.com/GOB52/gob_unifiedButton
lib_deps = gob/gob_unifiedButton
```
* ArduinoIDE ライブラリマネージャからのインストール

## 使い方
* Use library manager on ArduinoIDE

## How to use
```cpp
#include <M5Unified.h>
#include <gob_unifiedButton.hpp>

goblib::UnifiedButton unfiedButton;
goblib::UnifiedButton unifiedButton;

void setup()
{
M5.begin();
unfiedButton.begin(&M5.Display);
unifiedButton.begin(&M5.Display);
}

void loop()
{
M5.update();
unfiedButton.update(); // M5.update() の後に呼ぶ事 (0.1.0 から後呼びに変更されました)
unifiedButton.update(); // Must be call after M5.update. (Changed to call after M5.update() since 0.1.0)

// M5.BtnX 経由で同様に状態取得
// M5.BtnX can be used to obtain status
if(M5.BtnA.wasHold())
{
// ...
Expand All @@ -51,44 +52,48 @@ void loop()
// ...
}

// ボタンを描画する
unfiedButton.draw();
// Drawing Buttons
unifiedButton.draw();
}
```
## Button text font changes
You can configure which fonts can be used with M5GFX.
```cpp
unifiedButton.setFont(&fonts::Font4);
```

## 外観変更

begin で指定、または changeAppearance で変更できます。
## Appearance changes
You can specify it with begin or change it with changeAppearance.

|引数 goblib::UnifiedButton::appearance\_t|外観|
|Argument goblib::UnifiedButton::appearance\_t|Description|
|---|---|
|bottom| 画面下側にボタンを表示 (default)|
|top|画面上側にボタンを表示|
|custom|独自にボタンをカスタマイズ(下記参照)|
|transparent\_bottom|bottom と同様の位置に透明ボタンを配置|
|transparent\_top|top と同様の位置に透明ボタンを配置|
|transparent_all|画面全体に透明ボタンを配置(縦3分割)|
|bottom| Display buttons at the bottom of the screen (default)|
|top|Display buttons at the top of the screen|
|custom|Customize your own buttons|
|transparent\_bottom|Transparent buttons on the bottom of the screen|
|transparent\_top|Transparent buttons on the top of the screen|
|transparent_all|Transparent buttons are placed on the entire screen (three vertical sections)|

## ボタンのカスタマイズ
## Customize Buttons
If after specifying goblib::UnifiedButton::appearance\_t::custom,
getButtonA / getButtonB / getButtonC to get LGFX_Button\*.

goblib::UnifiedButton::appearance\_t::custom を指定した後であれば、
getButoonA / getButtonB / getButtonC で LGFX_Button\* を取得できます。
```cpp

void setup()
{
M5.begin();
unfiedButton.begin(&M5.Display, goblib::UnifiedButton::appearance_t::custom);
unifiedButton.begin(&M5.Display, goblib::UnifiedButton::appearance_t::custom);

auto btnA = unfiedButton.getButtonA();
auto btnB = unfiedButton.getButtonB();
auto btnC = unfiedButton.getButtonC();
auto btnA = unifiedButton.getButtonA();
auto btnB = unifiedButton.getButtonB();
auto btnC = unifiedButton.getButtonC();

// 独自形状、色、テキストのボタンを再作成
btnA->initButton(unfiedButton.gfx(), 40, 120, 80, 240 ,TFT_GREEN, TFT_BLUE, TFT_WHITE, "[A]");
// Re-create buttons with unique shape, color, and text
btnA->initButton(unifiedButton.gfx(), 40, 120, 80, 240 ,TFT_GREEN, TFT_BLUE, TFT_WHITE, "[A]");
...
}
```

## ドキュメント
[Doxygen](https://www.doxygen.nl/) 用の[設定ファイル](doc/Doxyfile)[シェルスクリプト](doc/doxy.sh)で作成できます。
## Document
Can be created from a [configuration file](doc/Doxyfile) and [shell script](doc/doxy.sh) for [Doxygen](https://www.doxygen.nl/).

5 changes: 4 additions & 1 deletion examples/simple/simple_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ void setup()
unifiedButton.begin(&M5.Display);
M5.Display.clear(TFT_DARKGREEN);
M5_LOGI("gob_unifiedButton %s / %x", GOBLIB_UNIFIED_BUTTON_VERSION_STRING, GOBLIB_UNIFIED_BUTTON_VERSION_VALUE);

// You can change text font of button.
unifiedButton.setFont(&fonts::Font4);
}

void loop()
Expand Down Expand Up @@ -62,6 +65,6 @@ void loop()
}
}
}

unifiedButton.draw();
}
10 changes: 2 additions & 8 deletions library.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,12 @@
"type": "git",
"url": "https://github.com/GOB52/gob_unifiedButton.git"
},
"version": "0.1.0",
"build": {
"libArchive": false
},
"version": "0.1.1",
"headers": "gob_unifiedButton.hpp",
"license": "MIT",
"platforms": "espressif32",
"frameworks": "arduino",
"dependencies": {
"m5stack/M5Unified": "^0.1.10"
},
"export": {
"include" : [ ".gitignore", "README.en.md", "platformio.ini", "src", "examples", "doc/Doxyfile", "doc/doxy.sh" ]
}
}
}
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=gob_unifiedButton
version=0.1.0
version=0.1.1
author=GOB
maintainer=GOB
sentence=Add touch buttons for CoreS3 and commonality with conventional buttons (M5.BtnX)
Expand Down
Loading

0 comments on commit 3cd419a

Please sign in to comment.