{"id":17586988,"url":"https://github.com/lovyan03/m5stack_treeview","last_synced_at":"2025-04-28T20:58:37.496Z","repository":{"id":110701991,"uuid":"169089196","full_name":"lovyan03/M5Stack_TreeView","owner":"lovyan03","description":"M5Stack TreeView menu UI library.","archived":false,"fork":false,"pushed_at":"2020-06-27T14:22:41.000Z","size":742,"stargazers_count":61,"open_issues_count":2,"forks_count":12,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-28T20:58:32.238Z","etag":null,"topics":["m5stack","treeview"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lovyan03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-02-04T14:17:33.000Z","updated_at":"2025-03-12T12:09:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"c787d1ad-55af-410e-a173-0dd95bc8fced","html_url":"https://github.com/lovyan03/M5Stack_TreeView","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovyan03%2FM5Stack_TreeView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovyan03%2FM5Stack_TreeView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovyan03%2FM5Stack_TreeView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovyan03%2FM5Stack_TreeView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lovyan03","download_url":"https://codeload.github.com/lovyan03/M5Stack_TreeView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251389338,"owners_count":21581778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["m5stack","treeview"],"created_at":"2024-10-22T03:43:04.683Z","updated_at":"2025-04-28T20:58:37.467Z","avatar_url":"https://github.com/lovyan03.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"M5Stack TreeView menu UI library.\n===\n\nTreeView menu user interface library for M5Stack.  \n\nM5Stack用 ツリービュー形式のメニューUIライブラリ  \n\n## Description\n\nカスタマイズして独自のメニュー項目を作成できます。  \n\nSupport FACES Keyboard and GameBoy unit.  \nSupport PLUS Encoder unit.  \nSupport JoyStick unit.  \nSupport CardKB unit.  \n\nM5Stackの各種ユニットでの操作にも対応。  \n\n![treeview](https://user-images.githubusercontent.com/42724151/52274970-90550b00-2991-11e9-9e6a-dc62c61252a6.png)\n\n `BtnA click` : フォーカスを親へ移動  Move focus to parent item.  \n `BtnA hold`  : フォーカスを前へ移動  Move focus to the previous item.  \n `BtnB click` : 選択  Select focus item.  \n `BtnC click/hold` : フォーカスを次へ移動  Move focus to the next item.  \n  \n## Requirement\n動作には M5OnScreenKeyboard が必要です。  \nM5OnScreenKeyboard is required for operation.  \n(https://github.com/lovyan03/M5Stack_OnScreenKeyboard)\n\n\n## Usage\n\n```\n#include \u003cM5Stack.h\u003e\n#include \u003cM5TreeView.h\u003e\nM5TreeView tv;\nvoid setup() {\n  M5.begin();\n  Wire.begin();\n// setItemsでツリー構造の定義を作成します\n// 個々のアイテムは new MenuItemで作成し、\n// 引数で表示名のほかに、識別用タグ値、サブツリー、コールバック処理などを渡せます）\n  tv.setItems(std::vector\u003cMenuItem*\u003e\n               { new MenuItem( \"main 1\")\n               , new MenuItem( \"main 2\", 2) // 識別用タグ値\n               , new MenuItem( \"main 3\", func) // コールバック処理\n               , new MenuItem( \"main 4\"\n                             , std::vector\u003cMenuItem*\u003e // サブメニュー\n                               { new MenuItem(\"sub1\")\n                               , new MenuItem(\"sub2\") \n                               }\n                             )\n               }\n             );\n  tv.begin();\n}\n\nvoid loop() {\n// tv.updateを繰り返し呼ぶことで動作します。\n// update の引数に true を渡すと強制再描画します。\n// update の戻り値には選択されたアイテムが返されます。\n  tv.update();\n}\n\nvoid func(MenuItem* mi) {\n// コールバック関数やファンクタが設定されていると、アイテム選択時に呼び出されます。\n// （親アイテムに設定されている場合にも呼び出されます。）\n// 引数には選択されたアイテムのポインタが渡されます。\n}\n```\n\n## Licence\n\n[MIT](https://github.com/lovyan03/M5Stack_TreeView/blob/master/LICENSE)  \n\n## Author\n\n[lovyan03](https://twitter.com/lovyan03)  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovyan03%2Fm5stack_treeview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flovyan03%2Fm5stack_treeview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovyan03%2Fm5stack_treeview/lists"}