Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lovyan03/m5stack_treeview
M5Stack TreeView menu UI library.
https://github.com/lovyan03/m5stack_treeview
m5stack treeview
Last synced: 30 days ago
JSON representation
M5Stack TreeView menu UI library.
- Host: GitHub
- URL: https://github.com/lovyan03/m5stack_treeview
- Owner: lovyan03
- License: mit
- Created: 2019-02-04T14:17:33.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-27T14:22:41.000Z (over 4 years ago)
- Last Synced: 2024-05-02T03:42:59.055Z (7 months ago)
- Topics: m5stack, treeview
- Language: C++
- Size: 725 KB
- Stars: 54
- Watchers: 8
- Forks: 11
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
M5Stack TreeView menu UI library.
===TreeView menu user interface library for M5Stack.
M5Stack用 ツリービュー形式のメニューUIライブラリ
## Description
カスタマイズして独自のメニュー項目を作成できます。
Support FACES Keyboard and GameBoy unit.
Support PLUS Encoder unit.
Support JoyStick unit.
Support CardKB unit.M5Stackの各種ユニットでの操作にも対応。
![treeview](https://user-images.githubusercontent.com/42724151/52274970-90550b00-2991-11e9-9e6a-dc62c61252a6.png)
`BtnA click` : フォーカスを親へ移動 Move focus to parent item.
`BtnA hold` : フォーカスを前へ移動 Move focus to the previous item.
`BtnB click` : 選択 Select focus item.
`BtnC click/hold` : フォーカスを次へ移動 Move focus to the next item.
## Requirement
動作には M5OnScreenKeyboard が必要です。
M5OnScreenKeyboard is required for operation.
(https://github.com/lovyan03/M5Stack_OnScreenKeyboard)## Usage
```
#include
#include
M5TreeView tv;
void setup() {
M5.begin();
Wire.begin();
// setItemsでツリー構造の定義を作成します
// 個々のアイテムは new MenuItemで作成し、
// 引数で表示名のほかに、識別用タグ値、サブツリー、コールバック処理などを渡せます)
tv.setItems(std::vector
{ new MenuItem( "main 1")
, new MenuItem( "main 2", 2) // 識別用タグ値
, new MenuItem( "main 3", func) // コールバック処理
, new MenuItem( "main 4"
, std::vector // サブメニュー
{ new MenuItem("sub1")
, new MenuItem("sub2")
}
)
}
);
tv.begin();
}void loop() {
// tv.updateを繰り返し呼ぶことで動作します。
// update の引数に true を渡すと強制再描画します。
// update の戻り値には選択されたアイテムが返されます。
tv.update();
}void func(MenuItem* mi) {
// コールバック関数やファンクタが設定されていると、アイテム選択時に呼び出されます。
// (親アイテムに設定されている場合にも呼び出されます。)
// 引数には選択されたアイテムのポインタが渡されます。
}
```## Licence
[MIT](https://github.com/lovyan03/M5Stack_TreeView/blob/master/LICENSE)
## Author
[lovyan03](https://twitter.com/lovyan03)