GtkSheet is a matrix widget for Gtk+. It consist of an scrollable grid of cells where you can allocate text which can be edited interactively. It is also a container subclass so it allows 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, etc. GtkSheet comes also with an extra set of useful widgets: GtkComboBox, GtkColorCombo, and GtkBorderCombo. A demo program shows all of them interacting in a spreadsheet-like GUI. This distribution includes the following set of widgets: * GtkSheet * GtkSheetEntry * GtkComboBox * GtkColorCombo * GtkBorderCombo and a demo program showing their features acting interactivelly. Download fom http://magnet.fsu.edu/~feiguin/gtk/download.html NEWS & CHANGES ============== GtkSheet has its own Home Page! Take a look at http://magnet.fsu.edu/~feiguin/gtk GtkSheet-9.0 ============ - Fixes in row/column deletion and text editing. Thanks to Matias Mutchinick <mmb@quetzal.innsz.mx> for his patches and Kevin Handy for his examples <kth@srv.net>. - Fixes in GtkItemEntry, GtkColorCombo and GtkBorderCombo. - Fixes in gtk_sheet_map/realize/destroy/finalize/size_allocate - Fixes in delete/insert rows/columns for the attached widgets (Thanks to Striker <striker@dread.net> for pointing me out the bug) - Fixes in gtksheet.h Thanks to Aaron Lehman - New feature: gtk_sheet_set_selection_mode Use GTK_SELECTION_SINGLE to select single rows/columns/cells GtkSheet-8.0 ============ - GtkSheetEntry changed by GtkItemEntry (cast using GTK_IENTRY now) GtkItemEntry is a completely independent widget and it's been used also in GtkIconList. - Improvements in look and feel, mainly in GtkItemEntry - "Unlimited" text size. - Bugfixes. Many thanks to Brad Pepers <brad@linuxcanada.com> who read the code carefully and pointed me out lots of details. Thanks to Kevin Handy <kth.srv.net>, Ralf Forsberg <rfg@home.se>, Tom Sobota <tsobota@teleline.es>, and of course, Bob Lissner and the Quicklist team. GtkSheet-7.10 ============= - New functions: * gtk_sheet_cell_delete * gtk_sheet_range_delete (They remove cell contents and links, while gtk_sheet_cell/range_clear remove only contents) * gtk_sheet_remove_link * gtk_sheet_row_button_justify * gtk_sheet_column_button_justify (justify row/column button label) - Some small fixes. GtkSheet-7.9 ============ - Bugfix release. * gtk_sheet_get_link patched by Bob Lissner. GtkSheet-7.8 ============ - Bugfix release. * GtkSheetEntry was grabbing focus with button presses. Now it doesn't do that with right button to avoid problems with popups. (Thanks to Scott Dattalo <sdattalo@unix.sri.com> and Brad Pepers <brad@linuxcanada.com>) GtkSheet-7.7 ============ - Bugfix release. * Key presses: events propagation, and patches by Kevin Handy <kth@srv.net> * Hiding rows/columns Both patched by Sam Phillips from the quicklist team. <sam@usaworks.com> * gtk_sheet_link_cell, gtk_sheet_get_link, patched by Bob Lissner from the quicklist team. * sheet's entry creation warnings Patched by Heath Martin <martinh@pegasus.cc.ucf.edu> GtkSheet-7.6 ============ - This is mainly a bugfix release. Thanks again to the quicklist team. List of fixed bugs: * Ctrl+Key. * row/column deletion. * flashing range scrolling. * child widgets scrolling. * auto scrolling. (If you click on the last cell of a row/column, the sheet scrolls to show the entire cell.) * selection DnD. * selection highlighting (patched by Sam Phillips from the quicklist team <sam@usaworks.com>) * hiding titles when the widget is not realized. (Thanks to Glenn Trigg <ggt@linuxfan.com> -- www.linuxfan.com/~gtk/privtool.html) - Renamed libGtkSheet.a as libgtksheet.a GtkSheet-7.5 ============ - New field in the GtkSheetCell struct : gpointer link; - You can link a cell to an object using: gtk_sheet_link_cell(GtkSheet *sheet, gint row, gint col, gpointer link); gtk_sheet_get_link(GtkSheet *sheet, gint row, gint col); The only efect is making cell->link point to the given object. - New signal "clear cell" - Bug fix in column shifts when they are deleted Thanks to Nick Slobodsky <pentahd@pentahd.redline.ru> GtkSheet-7.4 ============ * Rows/Columns insertion/deletion optimized. * Improvements in scrollbars * Improvements in dragging and resizing selections * Features added: - Multiline button labels. ("this is\na multiline\nlabel") - Themeable button gadgets. - gtk_sheet_attach (GtkSheet *sheet, GtkWidget *child, gint row, gint column, gfloat x_align, gfloat y_align); Attaches a child widget to the given cell with the given alignments. The child is reallocated each time the column or row changes, keeping attached to the same cell. - GTK_SHEET_ADJUST_TEXT flag renamed as GTK_SHEET_CLIP_TEXT Thanks to Jan Fedak <J.Fedak@sh.cvut.cz> for his comments, and to the quicklist team for their perseverance (www.quicklist.org). GtkSheet-7.3 ============ Silly but big bug fixed on previous version. GtkSheet-7.2 ============ More silly bugs fixed. Thanks again to Sam and Bob. (gtk_sheet_set_column_width/row_height, gtksheet_row/column_set_sensitivity) Thanks to Erwan Corvellec <eco@club-internet.fr> for his patches and bug reports. Twitching scrollbars aren't anymore. Makefile builds libGtkSheet.a GtkSheet-7.1 ============ Maily a bug fix release, and some new features: * About a dozen of "invisible" bugs fixed thanks to Quicklist team (www.quicklist.org). Special thanks to Bob Lissner <lissnerr@ColdSprings.net> and Sam Philips <sam@usaworks.com>. GtkSheet is being used by Quicklist, and these guys made a lot of tests for it. * Features added: - gtk_sheet_set_column_titles_height(GtkSheet *sheet, gint height); - gtk_sheet_set_row_titles_width(GtkSheet *sheet, gint width); - gtk_sheet_column_set_justification(GtkSheet *sheet, gint column, gint justification); If column->justification != GTK_JUSTIFY_FILL (default value) it will always win over individual cells' justifications. - New flag: GTK_SHEET_AUTO_SCROLL. For default this flag is on. If you turn it off, gtksheet won't scroll automatically to keep the active cell in the viewport. GtkSheet-7.0 ============ GtkSheet has moved to gtk+-1.2 and new features have been added. This version has been tested with gtk+-1.2.0 * GtkSheet is a self scrolling widget a la GtkClist and GtkLayout. You have to add it to a scrolled window to display it propertly. Shadow borders will be fixed with the patch added to gtkscrolledwindow. * Container features implemented. Adding widgets to the sheet is very easy with: gtk_sheet_put (GtkSheet *sheet, GtkWidget *child, gint x, gint y); * Move it with gtk_sheet_move_child (GtkSheet *sheet, GtkWidget *widget, gint x, gint y); * Remove it with gtk_container_remove(GTK_CONTAINER(sheet), GtkWidget *child); * Some signals have been renamed: "activate_cell" -> "activate" "deactivate_cell" -> "deactivate" * Rejection option for activation/deactivation of the active cell. * New signals: "new_column_width" "new_row_height" * new function gtk_sheet_set_cell_text(GtkSheet *sheet, gint row, gint col, gchar *text); (you don't have to set the justification) * Some minor bugs fixed. ** READ THE HEADERS FOR MORE INFORMATION ** GtkSheet Xtra Widgets Set ========================= GtkComboBox: ============ Derived from Paolo Molaro's GtkCombo, it consists of a button, an arrow button, and a popup window with a frame, that can contain a widget which is displayed with the arrow. You can pack any widget in the frame (e.g. GtkCalendar). It has been thought to be a parent class for the following widgets: GtkColorCombo: ============== It's a GtkComboBox subclass with a pallette of colors diplayed in a table. GtkBorderCombo: ============== It's a GtkComboBox subclass with a set of border patterns displayed in a table.