# 1 Introduction

This manual explains the application programming interface (API) for the EZ Widget and Graphics Library (henceforth, the EZwgl). It serves as both a specification and a users guide. This document referes to EZwgl release 1.2.

EZwgl is a library of C functions based on Xlib. It is designed for developing graphical user interface (GUI) and writing graphics applications under the X window system.

The main goal of EZwgl is to provide a tool that simplifies the task of X programming. If you are a C programmer and want to build a nice graphical user interface for your applications, or you want to do some simple graphics programming under the X window system programming environment, then EZwgl is for you.

EZwgl consists of two logically independent pieces, a widget library and a graphics library. The widget library implements about twenty or so most commonly used widgets. Currently implemented widgets are:

- buttons, push button, check button, radio button and menu button.

- entry, a one line text editor, supports a few emacs editing commands and the X11 selection mechanism.

- executor, a widget to run other EZwgl applications.

- fancy listbox, an item selector with configurable items.

- file selector, a Motif style file selection dialogue.

- frame/labled-frame, a simple container widget for grouping widgets together.

- gridbag, a container widget that arrange its children in rows and columns.

- icon, a toplevel label/frame that is invisible by your window manager.

- label, textual or bitmap/pixmap/image labeled.

- listbox, a simple item selector.

- list tree, a widget for displaying a tree of items.

- menus, popup menu and pull-down menu.

- notebook, a container widget for grouping widgets into pages.

- optional entry, a comboBox.

- pane-handle, a special widget for dividing its parent into panes.

- sliders, horizontal and vertical sliders.

- text, an editable text browser. Text widget supports a few hardcoded text properties: fonts, foreground/background color and bitmaps/pixmaps.

- raw X window, a widget that gives you a native X window.

- work area, a special container widget capable of managing items and other widgets.

- 3D canvas, a widget specifically for the EZ graphics library.

There are also two special purpose widgets in the EZ widget library.

- no-window-label/frame. This widget is not a widget in the usual sense because it doesn't have its own window. Its primary purpose is to serve as buliding blocks for constructing complex labels (e.g. mixed pixmap and textual labels) for button type widgets.

- free label/frame. A freely movable label/frame. It is essentially an icon with a parent. The location of a free label/frame is not managed by the geometry manager.

The EZ graphics library is a set of about 100 OpenGL like graphics routines that provide high-level support for 3D graphics. It currently supports

- zbuffer

- doublle buffer, supports a pixmap back buffer and an XImage back buffer.

- RGB or Colormap mode, supports a simulated RGB mode (dithering) for 8bit visuals.

- flat or smooth shading

- lighting

- fog

- polygon, line and points rendering

- bitmap fonts and a vector font

- mouse and keyboard input devices

EZwgl is designed to work on displays with a bit deep PseudoColor, DirectColor, TrueColor, StaticColor, GrayScale, or StaticGray visual. It does not, and will not work on displays with depth bit.

EZwgl has been tested on the following platforms, SunSparc/X11R5, SGI-Indigo/X11R5, Pentium-Linux/X11R6 and Alpha OSF/X11R5/X11R6. It should work on any Unix systems with X11R5/X11R6.

V1.3.

HTML Documentation Maintainance:`Arturo Espinosa <arturo@nuclecu.unam.mx>`