Documentation ¶
Overview ¶
Package gi is the top-level repository for the GoGi GUI framework.
All of the code is in the sub-packages within this repository:
- examples: example main programs for learning how to use GoGi -- see widgets and its README file for a basic introduction. marbles is fun!
* gist: css-based styling settings, including Color
* girl: rendering library, can be used standalone, SVG compliant
* gi: the main 2D GUI Node, Widgets, and Window
* giv: more complex Views of Go data structures, supporting Model-View paradigm.
* svg: full SVG rendering framework, used for Icons in gi.
* gi3d: 3D rendering of a Scene within 2D windows -- full interactive 3D scenegraph.
* histyle: text syntax-based highlighting styles -- used in giv.TextView
- oswin: OS-specific framework for low-level rendering, event interface, including GPU abstraction (OpenGL for now, ultimately Vulcan)
* python: access all of GoGi from within Python using GoPy system.
- undo: generic undo / redo functionality using text blobs of state compressed using diff, or commands.
Directories ¶
Path | Synopsis |
---|---|
examples
|
|
Package Gi (GoGi) provides a Graphical Interface based on GoKi Tree Node structs
|
Package Gi (GoGi) provides a Graphical Interface based on GoKi Tree Node structs |
Package gi3d provides a 3D scenegraph for the GoGi GUI framework.
|
Package gi3d provides a 3D scenegraph for the GoGi GUI framework. |
io/obj
Package obj is used to parse the Wavefront OBJ file format (*.obj), including associated materials (*.mtl).
|
Package obj is used to parse the Wavefront OBJ file format (*.obj), including associated materials (*.mtl). |
Package gimain provides a Main function that encapsulates the standard oswin driver main function, and also ensures that standard sub-packages that are required for typical gi gui usage are automatically included
|
Package gimain provides a Main function that encapsulates the standard oswin driver main function, and also ensures that standard sub-packages that are required for typical gi gui usage are automatically included |
Package GiRl is the GoGi render library -- renders to an image.RGBA using styles defined in GiSt styles
|
Package GiRl is the GoGi render library -- renders to an image.RGBA using styles defined in GiSt styles |
Package GiSt contains the style structures for the GoGi GUI framework.
|
Package GiSt contains the style structures for the GoGi GUI framework. |
Package GiV (GoGi Views) provides a model / view framework to view Go data using reflection
|
Package GiV (GoGi Views) provides a model / view framework to view Go data using reflection |
package histyle provides syntax highlighting styles -- it is based on github.com/alecthomas/chroma which in turn was based on the python pygments package.
|
package histyle provides syntax highlighting styles -- it is based on github.com/alecthomas/chroma which in turn was based on the python pygments package. |
Package oswin provides interfaces for OS-specific GUI hardware for portable two-dimensional graphics and input events.
|
Package oswin provides interfaces for OS-specific GUI hardware for portable two-dimensional graphics and input events. |
clip
Package clip defines the system clipboard for the GoGi GUI system.
|
Package clip defines the system clipboard for the GoGi GUI system. |
cursor
Package cursor defines the oswin cursor interface and standard system cursors that are supported across platforms
|
Package cursor defines the oswin cursor interface and standard system cursors that are supported across platforms |
dnd
Package dnd defines the system drag-and-drop events for the GoGi GUI system.
|
Package dnd defines the system drag-and-drop events for the GoGi GUI system. |
driver
Package driver provides the default driver for accessing a screen.
|
Package driver provides the default driver for accessing a screen. |
driver/internal/_errapp
Package errapp provides a stub App implementation.
|
Package errapp provides a stub App implementation. |
driver/internal/_macdriver
Package macdriver provides an OpenGL-based driver for MacOS platform.
|
Package macdriver provides an OpenGL-based driver for MacOS platform. |
driver/internal/_x11driver
Package x11driver provides the X11 driver for oswin
|
Package x11driver provides the X11 driver for oswin |
driver/internal/event
Package event provides an infinitely buffered double-ended queue of events.
|
Package event provides an infinitely buffered double-ended queue of events. |
key
Package key defines an event for physical keyboard keys, for the GoGi GUI system.
|
Package key defines an event for physical keyboard keys, for the GoGi GUI system. |
mimedata
Package mimedata defines MIME data support used in clipboard and drag-and-drop functions in the GoGi GUI.
|
Package mimedata defines MIME data support used in clipboard and drag-and-drop functions in the GoGi GUI. |
mouse
Package mouse defines mouse events, for the GoGi GUI system.
|
Package mouse defines mouse events, for the GoGi GUI system. |
osevent
Package osevent defines operating system level events, not associated with a particular window.
|
Package osevent defines operating system level events, not associated with a particular window. |
touch
Package touch defines an event for touch input, for the GoGi GUI system.
|
Package touch defines an event for touch input, for the GoGi GUI system. |
window
Package window defines events associated with windows -- including changes in the dimensions, physical resolution and orientation of the app's window, and iconify, open and close events.
|
Package window defines events associated with windows -- including changes in the dimensions, physical resolution and orientation of the app's window, and iconify, open and close events. |
Package svg provides SVG rendering classes, I/O parsing: full SVG rendering
|
Package svg provides SVG rendering classes, I/O parsing: full SVG rendering |
Package undo supports generic undo / redo functionality, using an efficient diff of string-valued state representation of a 'document' being edited which can be JSON or XML or actual text -- whatever.
|
Package undo supports generic undo / redo functionality, using an efficient diff of string-valued state representation of a 'document' being edited which can be JSON or XML or actual text -- whatever. |
Package Units supports full range of CSS-style length units (em, px, dp, etc)
|
Package Units supports full range of CSS-style length units (em, px, dp, etc) |
Click to show internal directories.
Click to hide internal directories.