# Part I. GtkExtra Overview

GtkExtra is a useful set of widgets for creating GUI's for the Xwindow system using GTK+. You can use it complementary to GTK+ and it is written in C. It is also Free Software and released under the LGPL license.

The library includes the following widgets:

GtkSheet | GtkSheet is a matrix widget for GTK+. It consists of an scrollable grid of cells where you can allocate text. Cell contents can be edited interactively through a specially designed entry, GtkItemEntry. It is also a container subclass, allowing you to display buttons, curves, pixmaps and any other widget in it. You can also set many attributes as: border, foreground and background color, text justification, and more. The testgtksheet program shows how easy is to create a spreadsheet-like GUI using this widget set.
GtkPlot | GtkPlot is a widget for GTK+. It allows to draw high quality scientific plots in two dimensions with a look and feel very similar to Microcal Origin for Windows. The distribution includes GtkPlotCanvas subclass, and a demo program showing two layered plots with different kind of curves. You can choose between a number of symbol types, lines, connectors -straight lines, steps, splines-, and change their attributes -color, size, width-. You can also plot functions, add error bars, edit legends, rotate and move axis titles, change axis properties, etc. The package also includes GtkPlot3D and GtkPlotPolar. GtkPlotCanvas is a GtkFixed subclass and allows to DnD plots, points, and child objects (text, axis titles). You can move them or resize your plots dragging with the mouse! The distribution includes also a PostScript driver. All the features are demonstrated in testgtkplot and testrealtime.
GtkIconList | GtkIconList is a GtkFixed subclass that allows you to display a table of xpm icons with editable labels. It's completely designed from scratch with some ideas borrowed from gnome-icon-list. It contains almost all of its features and more. It can be used for file browsers and as a replacement of gnome-icon-list (without the need of using gnome libraries). Like GtkSheet, it uses the widget GtkItemEntry to edit the text fields.
GtkDirTree | It is a GtkCTree subclass that allows you to navigate the file-system.
GtkFileList | It is a GtkIconList subclass that displays the contents of a given directory using fancy icons for different types of files.
GtkIconFileSelection | It is a nice looking file selection dialog using icons. It combines GtkDirTree and GtkFileList to navigate the file system and select files. It has also two entries to select the file and filter.
GtkItemEntry | It is a GtkEntry subclass. It can have fixed size or can be dinamically resized when the text is entered. You can change text justification to centered, left, or right, and change the foreground and background colors very easily. It only displays the text and has no borders.
GtkFontCombo | It is a GtkToolBar subclass with two combos to select among the 35 standard Adobe PostScript fonts with different sizes. It has also two buttons to select bold and italics. When you select a new font, it returns the name of the corresponding Postscript font and the equivalent Xfont. This is what we all expect to have on the top of a GUI for a spreadsheet or word processor.
GtkComboBox | It is a composite widget with two buttons, one with an arrow to display a popdown window where you can pack whatever you want, from a calendar to a clist.
GtkColorCombo | It is a GtkComboBox subclass with a pallette of colors in the popdown window to pickup the one you like the most. It has a default pallette, but it's completelly customizable.
GtkBorderCombo | It is a GtkComboBox subclass with a variety of border styles in the popdown window arranged in a table of togglebuttons.
GtkCheckItem | It is a GtkCheckButton hack with the look and feel of the Redmond95 theme.