-
Alec Bloss authored
Signed-off-by:
Alec Bloss <abloss@libranext.com>
Alec Bloss authoredSigned-off-by:
Alec Bloss <abloss@libranext.com>
General Graphics Engine
General Graphics Engine, or GGE for short, is a project aimed at bringing more complex application interfaces to the shell. This is probably a bit abhorrent to some extent because of using BASH.
Technically, GGE makes use of BASH as well as some bits of ncurses.
General Overview
Display stack
The display stack consists of a few different parts. Every GGE session has to have at least one display. Displays are physical - always a monitor of some kind, whether it be one attached to the computer, or a remote one accessed via SSH or the likes.
In order to be able to output something on the display, a screen is required. Every session has a Screen 0
, or the root screen, and that screen is owned by GGE, not the calling program. Every application using GGE must set up its own screen(s), which are children of Screen 0
, but are owned by the program. A program can have multiple screens and can create and destroy them at will (with the exception of the initially created screen). Screens define the displayable area - Screen 0
covers all available area. In most cases, this would be the full monitor. Application screens can use area equal to or less than their parent screen.
In order to put content and actionable items onto a screen, programs will typically use widgets. Various widgets will be available, such as headers, footers, text boxes, forms, menus, buttons, and more.
For advanced items, programs could also use buffers directly, however, this is generally more work than desired, which is why widgets are available for most cases.