{"id":15014633,"url":"https://github.com/osch/lua-lwtk","last_synced_at":"2025-07-31T23:32:15.519Z","repository":{"id":65957507,"uuid":"238413672","full_name":"osch/lua-lwtk","owner":"osch","description":"Lua Widget Toolkit: implement cross platform GUI widgets in pure Lua on top of LPugl or LÖVE 2D game engine","archived":false,"fork":false,"pushed_at":"2024-11-19T23:10:33.000Z","size":434,"stargazers_count":61,"open_issues_count":1,"forks_count":1,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-27T12:06:28.486Z","etag":null,"topics":["cairo","gui","love2d","love2d-gui","love2d-gui-library","love2d-library","lua","lua-gui","lua-library","widget-toolkit"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/osch.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-02-05T09:34:13.000Z","updated_at":"2025-05-22T15:56:29.000Z","dependencies_parsed_at":"2024-01-06T15:39:22.805Z","dependency_job_id":"f5154da7-8ae1-474a-ad71-bc3bd7334a21","html_url":"https://github.com/osch/lua-lwtk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/osch/lua-lwtk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osch%2Flua-lwtk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osch%2Flua-lwtk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osch%2Flua-lwtk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osch%2Flua-lwtk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osch","download_url":"https://codeload.github.com/osch/lua-lwtk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osch%2Flua-lwtk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262188396,"owners_count":23272341,"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":["cairo","gui","love2d","love2d-gui","love2d-gui-library","love2d-library","lua","lua-gui","lua-library","widget-toolkit"],"created_at":"2024-09-24T19:45:52.450Z","updated_at":"2025-06-27T04:33:08.665Z","avatar_url":"https://github.com/osch.png","language":"Lua","readme":"# lwtk - Lua Widget Toolkit\n[![Licence](http://img.shields.io/badge/Licence-MIT-brightgreen.svg)](LICENSE)\n[![build status](https://github.com/osch/lua-lwtk/workflows/test/badge.svg)](https://github.com/osch/lua-lwtk/actions)\n[![Install](https://img.shields.io/badge/Install-LuaRocks-brightgreen.svg)](https://luarocks.org/modules/osch/lwtk)\n\nThis toolkit provides a foundation for building cross platform GUI widgets in pure [Lua] \non top of [LPugl] or within the [LÖVE] 2D game engine. For [LPugl] only the cairo drawing backend \nis supported. Further Backend abstraction and support for other backends could be possible in \nthe future.\n\nThis project is work in progress. First aim is to provide a basic infrastructure\nfor creating and customizing widgets. Second aim is to implement a reasonable set \nof standard widgets. So far only very simple standard widgets are provided, e.g. \n`lwtk.TextInput` and `lwtk.PushButton`.\n\n\u003c!-- ---------------------------------------------------------------------------------------- --\u003e\n\n#### Supported platforms: \n   * Linux (X11)\n   * Windows\n   * Mac OS X\n   * [LÖVE] 2D game engine\n\n\n\u003c!-- ---------------------------------------------------------------------------------------- --\u003e\n\n#### Further reading:\n   * [Documentation](doc/README.md)\n   * [Examples](./example/README.md#lwtk-examples)\n\n\u003c!-- ---------------------------------------------------------------------------------------- --\u003e\n\n## First Example\n\n* The first example demonstrates a simple \"Hello World\" dialog.\n  The appearance of the widgets is configured in [lwtk.DefaultStyle](src/lwtk/DefaultStyle.lua).\n  The key bindings are configured in [lwtk.DefaultKeyBinding](src/lwtk/DefaultKeyBinding.lua).\n\n     ![Screenshot example01](./example/screenshot00.png)\n\n    ```lua\n    local lwtk = require(\"lwtk\")\n    \n    local Application    = lwtk.Application\n    local Column         = lwtk.Column\n    local Row            = lwtk.Row\n    local PushButton     = lwtk.PushButton\n    local TitleText      = lwtk.TitleText\n    local Space          = lwtk.Space\n    \n    local app = Application(\"example\")\n    \n    local function quit()\n        app:close()\n    end\n    \n    local win = app:newWindow {\n        title = \"example\",\n        Column {\n            TitleText  { text = \"Hello World!\", style = { textSize = 35 } },\n            Row {\n                Space {},\n                PushButton { text = \"\u0026OK\", onClicked = quit },\n                Space {}\n            }\n        },\n    }\n    win:show()\n    app:runEventLoop()\n    ```\n\n\u003c!-- ---------------------------------------------------------------------------------------- --\u003e\n\n[lua]:                      https://www.lua.org/\n[LÖVE]:                     https://love2d.org/\n[lpugl]:                    https://github.com/osch/lua-lpugl#lpugl\n\n\u003c!-- ---------------------------------------------------------------------------------------- --\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosch%2Flua-lwtk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosch%2Flua-lwtk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosch%2Flua-lwtk/lists"}