REBOL 3 Docs Guide Concepts Functions Datatypes Errors
  TOC < Back Next >   Updated: 9-Apr-2010 Edit History  

REBOL 3 Concepts: Gui: Main concepts and terms

This is a summary of the basic ideas of the GUI.

Precise details and changes can be found on .



The main goal of the R3 GUI is to provide a simple way to create a wide range of user interfaces.

We achieve this goal by providing a set of standard GUI elements, an easy way to arrange them in a window, and a quick way to associate user interactions with a common set of desired results.

It is best to think of the REBOL GUI system sort of like HTML, where you provide descriptions of content, rather than calls to functions that generate content. Of course, REBOL is more concise than normal markup languages, and it can generate a wider variety of results and actions with a lot less verbiage and clutter.

Different from R2

The R3 GUI is an entirely new design with many improvements, new features, and easier methods that those provided in the R2 VID GUI. Although R3 uses many similar concepts, it is not generally compatible with R2. However, it is our intention that you will find building GUI's in R3 to be a lot easier and faster than R2.


Here is a nutshell summary of the system:

Each of these elements can be specified, generated, and processed separately, but for most small programs they are specified together in a shorthand form.

Common terms

In this documentation we will use specific terms such as viewing a panel. Here are some of the important ones:

viewWe say that we view a window to display it. We use the view function to do that. Sometimes we talk about viewing a panel or viewing a layout, which simply means to view the panel in a window (because a window is defined by a panel).
layoutWe often talk about a layout. It's just a collection of faces that we put into a panel, arranged a certain way. Here we use the layout function. It takes a description (called a dialect) of how the faces are organized. The the layout function is also built into view, so we can skip a step for convenience.
showTo update a window, panel, or face we show it. This action causes a "refresh" or "redraw" of the related pixels of the window. In most cases there is no need to call the show function, because to be efficient, the system collects several independent show requests, and displays them all at once.
doWhen a user clicks a button, we do it. More precisely, we evaluate its reactor, the action we want to happen. For example, the user clicks on a button, and we do a reactor that submits a message to a server, opens a file requestor box, or sends an email.
stylizeTo define a new face style we stylize. For most small programs, you probably won't need to create entirely new styles. You will create styles simply by stylizing from existing styles.
facetsAttributes used by faces and styles are called facets. For example, the area-color of a button is one facet of the button. There are a few ways to modify facets when you stylize or when you specify a face in a layout.

  TOC < Back Next > - WIP Wiki Feedback Admin