Skip to content

Commit

Permalink
Update manual for backend and interface files
Browse files Browse the repository at this point in the history
  • Loading branch information
gcasa committed Nov 25, 2023
1 parent cd927fc commit e7ab793
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Documentation/manual/interfacefiles.texi
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
@chapter Interface Files

@cindex interface files, definition
@dfn{Interface files} are used to store your applications graphical user interface. This separation means that you can modify it more easily than other interface generation mechanisms, such as code generators, which generate code that makes it hard to modify the interface or requires you to rewrite your own code. The advantage of a separate interface file is that you can change the interface without having to recompile one bit of code (in most instances).
@dfn{Interface files} are used to store your applications graphical user interface. This separation means that you can modify it more easily than other interface generation mechanisms, such as code generators, that make it hard to modify the interface or requires you to rewrite your own code. The advantage of a separate interface file is that you can change the interface without having to recompile one bit of code (in most instances).

@cindex nibs (and other models)
Interface files are often referred to as "nib" (or, more generally, model) files.@footnote{This is a throwback to the origin's of the GNUstep framework, when it's API specification (OpenStep) was based on NeXTStep, which used typedstream "nib" files (NeXT Inteface Builder) to store interfaces.} XML nib files after 10.2.x are usable by GNUstep, early nib files are ``typedstream'' style nibs which cannot be read by GNUstep. The framework can read other formats as detailed below. This section is very important to understanding key concepts in the AppKit, especially with regards to manipulation of your user interface. It is strongly recommended you do not skip this section, and refer back to it if you do not understand anything, even if you don't intend to use Gorm (also not recommended).
Expand Down
36 changes: 35 additions & 1 deletion Documentation/manual/intro.texi
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ workspace support classes such as data links, open/save panels,
context-dependent help, spell checking.

It provides functionality that aims to implement the @samp{AppKit}
portion of the OpenStep standard. However the implementation has
portion of the OpenStep / Cocoa API. However the implementation has
been written to take advantage of GNUstep enhancements wherever possible.

The GNUstep GUI Library is divided into a front and back-end. The
Expand All @@ -34,6 +34,40 @@ back-end, because it allows different platforms to share the large
amount of front-end code. Documentation for how the individual backends
work is coverered in a separate document.

The backend is divided into two parts: graphical and event handling. The
graphical portion renders the widgets based on code in the AppKit/GUI
framework. The events portion processes the events from mouse and
keyboard input. Both portions are operating system / environment
specific.

The backends supported by GNUstep currently are:
@table @command

@item Cairo
The Cairo backend uses the more postscript like rendering of the cairo
graphics library (available from opendesktop.org) to render.

@item Win32 / GDI
This backend uses GDI to render the widgets.

@item Wayland
This backend uses the Wayland display technology to render. This is
an expermental backend at present.

@item Art
The art backend uses libart (the LGPL version) to render the widgets.
This backend is deprecated.

@item Xlib
The Xlib backend is the bare X11 backend that uses primitive calls to
render the objects. This backend is deprecated.

@end table

In general, GNUstep GUI can theoretically be used on any system on which
you can build a backend. Currently, you can build on most UNIX systems
(not Darwin, currently) as well as Windows under MSYS2 and MSVC.

@section Implementation Details

Following are some implementation details of the GUI library. These will
Expand Down

0 comments on commit e7ab793

Please sign in to comment.