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:
* gi: contains the main 2D GUI code
* giv: are more complex Views of Go data structures, built out of gi widgets, supporting the Model-View paradigm.
* svg is something: provides a full SVG rendering framework, used for Icons, and in its own right.
* oswin: is the OS-specific framework, originally based on Shiny, that provides all the gory guts for dealing with different OS's.
* examples: contains a number of useful examples for learning how to use GoGi -- see widgets and its README file for a basic introduction. marbles is really fun!
Directories ¶
Path | Synopsis |
---|---|
examples
|
|
Package Gi (GoGi) provides a Graphical Interface based on GoKi Tree Node structs 2D and 3D (in gi3d) scenegraphs supported, each rendering to respective Viewport or Scene.
|
Package Gi (GoGi) provides a Graphical Interface based on GoKi Tree Node structs 2D and 3D (in gi3d) scenegraphs supported, each rendering to respective Viewport or Scene. |
styled
Package styled implements styling via generic walking of reflect type info.
|
Package styled implements styling via generic walking of reflect type info. |
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 GiV (GoGi Views) provides a model / view framework to view Go data using reflection Views are Widgets that automatically display and interact with standard Go data, including structs, maps, slices, and the primitive data elements (string, int, etc).
|
Package GiV (GoGi Views) provides a model / view framework to view Go data using reflection Views are Widgets that automatically display and interact with standard Go data, including structs, maps, slices, and the primitive data elements (string, int, etc). |
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/_swizzle
Package swizzle provides functions for converting between RGBA pixel formats.
|
Package swizzle provides functions for converting between RGBA pixel formats. |
driver/internal/_x11driver
Package x11driver provides the X11 driver for oswin
|
Package x11driver provides the X11 driver for oswin |
driver/internal/drawer
Package drawer provides functions that help implement screen.Drawer methods.
|
Package drawer provides functions that help implement screen.Drawer methods. |
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. |
gpu
Package gpu provides an abstract interface to a graphical processing unit (GPU).
|
Package gpu provides an abstract interface to a graphical processing unit (GPU). |
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. |
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 SVG currently supports most of SVG, but not: * Flow * Filter Effects * 3D Perspective transforms See gi/examples/svg for a basic SVG viewer app, using the svg.Editor, which will ultimately be expanded to support more advanced editing.
|
Package svg provides SVG rendering classes, I/O parsing: full SVG rendering SVG currently supports most of SVG, but not: * Flow * Filter Effects * 3D Perspective transforms See gi/examples/svg for a basic SVG viewer app, using the svg.Editor, which will ultimately be expanded to support more advanced editing. |
Package Units supports full range of CSS-style length units (em, px, dp, etc) The unit is stored along with a value, and can be converted at a later point into a raw display pixel value using the Context which contains all the necessary reference values to perform the conversion.
|
Package Units supports full range of CSS-style length units (em, px, dp, etc) The unit is stored along with a value, and can be converted at a later point into a raw display pixel value using the Context which contains all the necessary reference values to perform the conversion. |
Click to show internal directories.
Click to hide internal directories.