A GUI toolkit written in pure Go.
This repository has been archived on 2023-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Sasha Koshka c813463bb4 Basic elements now conform to the new API (largely untested) 2023-01-19 16:49:34 -05:00
artist Text drawer now takes in runes instead of a string 2023-01-18 00:42:04 -05:00
assets Added simple readme 2023-01-11 16:01:06 -05:00
backends/x Mouse test now conforms to new API 2023-01-19 15:05:13 -05:00
defaultfont Initial commit 2023-01-09 01:03:19 -05:00
elements Basic elements now conform to the new API (largely untested) 2023-01-19 16:49:34 -05:00
examples Ok thats it next commit im getting rid of parent hooks 2023-01-19 13:07:27 -05:00
flow Added an example of how to use the flow 2023-01-12 15:33:50 -05:00
layouts Dialog layout works now 2023-01-17 15:55:16 -05:00
popups Fixed layouts import paths 2023-01-16 00:11:06 -05:00
textmanip More intelligent text editing with new textmanip system 2023-01-18 01:19:10 -05:00
theme Very basic text input 2023-01-18 00:38:58 -05:00
LICENSE Added license 2023-01-11 17:57:29 -05:00
README.md Made the wording in README a bit better 2023-01-17 17:40:01 -05:00
backend.go Initial commit 2023-01-09 01:03:19 -05:00
canvas.go sigh 2023-01-15 13:55:02 -05:00
element.go Changed the API to replace hooks with event handler callbacks 2023-01-19 14:28:56 -05:00
go.mod Initial commit 2023-01-09 01:03:19 -05:00
go.sum Initial commit 2023-01-09 01:03:19 -05:00
input.go Initial commit 2023-01-09 01:03:19 -05:00
layout.go Half-working container flexibility propagation 2023-01-16 23:34:17 -05:00
tomo.go Split the functionality of tomo.go into multiple files 2023-01-14 21:24:39 -05:00
window.go Split the functionality of tomo.go into multiple files 2023-01-14 21:24:39 -05:00

README.md

tomo

Please note: Tomo is in early development. Some features may not work properly, and its API may change without notice.

Tomo is a retro-looking GUI toolkit written in pure Go. It is designed with these goals in mind:

  • Modularity: the core of Tomo is mostly composed of interfaces—and the overwhelming majority of its code resides in pluggable modules. If you don't need it, then dont import it—and you can be assured it won't be there.
  • Extendability: during the design of Tomo's API, use cases such as creating custom backends, elements, and layouts were given just as much importance as normal application building. Your custom element is a first-class citizen.
  • Independence: Tomo is minimally dependent on code outside of the Go standard library. Because of this, the file size of a compiled Tomo application is typically very small.
  • Frugality: Tomo foregoes things like animations and anti-aliasing in order to use a minimal amount of system resources without even having to touch the GPU.
  • Consistency: Tomo's design is not only consistent within itself, but also with the Go standard library. If you've worked with Go in the past, Tomo will feel pleasantly familliar.

You can find out more about how to use it by visiting the examples directory, or pull up its documentation by running godoc within the repository. You can also view it on the web on pkg.go.dev.