Introduction

GtkSheet

GtkSheet is not a spreadsheet! It is a widget for GTK+ applications.

It gives all the tools and the graphic interface to build applications that need an editable grid of cells. The demo program is a very nice example of how easy can be to program an Excel-like spreadsheet using it.

GtkSheet started as an excercise: porting XSpread (Spreadsheet Calculator), the popular spreadsheet, to GTK. I understood that a a flexible widget could do this and much more: it can be used as interface for many applications (see links). Finally, GtkSheet grew more than I expected, and now my main interest is maintaining it fixing bugs, adding features on request, and developing new widgets for the dozens of developers that are using GTK for their own projects.

GTK has demonstrated to be a very powerful, flexible, and easy to use toolkit, and in consequence it's becoming very popular. I believed that GTK would be the best choice for a graphic library. As a result, GtkSheet code is very simple and clean, with a lot of nice features. GtkSheet can be easily compared to competitors like Motif-based table widgets. In addition, it has a very nice look and feel, very similar to commercial spreadsheets.

I understand that GTK is self contained, and additional and complex widgets, dedicated to special purposes, are kept as separate projects. Thus, I thought that creating a new set of useful widgets for scientific applications could be a good business for the Unix community.

GtkSheetEntry is the default entry widget for GtkSheet. It's dinamically resized with the typed text, and you can change its justification. You can also use GtkEntry, a GtkEntry subclass (like GtkCombo), or any widget containing an entry (like GtkSpinButton) as replacement for the default, allowing you to customize it (the example 3 in the demo program shows how to do it).

GtkSheet is also a GtkContainer subclass, so you can pack other widgets in it, as you can see in the example 1. This can be used to show charts, menus, etc, displayed as part of the table, like any commercial spreadsheet.

With the new releases I've been adding new features, and in oder to show them, I hacked GtkCombo to develope GtkComboBox, GtkColorCombo, and GtkBorderCombo, the set of widgets that comes in the package. They offer the posibility of choosing border styles, text and background colors for selected ranges, and can be used as separate tools for your own applications. You can also install all of them as a library.


GtkPlot

I do really feel the need of a powerful tool for scientific plots in the Unix world. I understand that Gnuplot is fantastic, but it's isn't dedicated to quality presentations. On the other side, Xmgr and Xvgr do supply all this requirements, but they don't have a good interface for editing and interacting with the data.

I believe that the last item can be easily supplied by GtkSheet but, until now, we didn't have a widget for drawing quality plots in GTK. Thus, I decided to start the GtkPlot project in order to bring all the tools for scientific applications needing such visual interface.

GtkPlot is a powerful tool for drawing quality scientific plots, with a look and feel very similar to Microcal Origin for Windows. You can add sets of numerical data to the plots and display them using different styles of lines and points, and error bars. You can join them using straight lines, steps, splines, etc. It's easy to change the axis properties, ticks intervals, label orientations, add gridlines, legends, function graphs, and more.

You can also plot 3D and Polar graphics using GtkPlot3D and GtkPlotPolar.

The package includes GtkPlotCanvas, a GtkFixed subclass that allows to display the plots in a layered way.


GtkIconList

You can think that I'm against Gnome, and you'll be wrong: be sure I love it. I decided to create gtkiconlist as a replacement for gnome-icon-list because I don't expect everybody to have gnome installed on their computers. I'm thinking about scientific applications ready to run on workstations in laboratories. I know by experience that people working with workstations in institutions don't like to play with their systems and they leave the administration to an expert. In a few words, I'd like to be completely independent of Gnome libs (or KDE or whatever) If I can, I'd like my code need to be linked only against gtk+. This is a point of view, and you don't need to agree with me, but in this way I can make my programs run on any platform, even on win32.

The widget includes GtkItemEntry, originally GtkSheetEntry. This widget allows to change colors and justification and can be dinamically resized.