This series of commits starts by cloning GtkTreeView under the name PsppSheetView, then it continues by transforming the clone into a widget that is suitable for displaying a large spreadsheet-like sheet of cells. In particular this sheet is appropriate for use as a data sheet and variable sheet in PSPPIRE. This series doesn't actually switch over PSPPIRE to use the new sheet; that is for the next patch series.
I understand that this large set of patches may take a long time to review. I'll try to be patient. Thanks, Ben. Ben Pfaff (17): Import GtkTreeView from GTK+ 2.0-2.20.1 renamed as PsppSheetView. pspp-sheet-view: Reduce time and memory cost to O(1) in number of rows. pspp-sheet-view: Improve scrolling performance. pspp-sheet-view: Fix visual artifacts for sheet views > 65535 pixels wide. pspp-sheet-view: Fix rendering moving cursor left or right with keyboard. pspp-sheet-view-column: Add support for tooltips on columns. pspp-sheet-view: Edit cells on the first click by default. pspp-sheet-view: Support rectangular selection, column popup menus. pspp-sheet-view: Start editing upon button release, not press. pspp-sheet-view: Add "special-cells" property to speed drawing many columns. pspp-widget-facade: New code to measure and render some GTK+ widgets. pspp-sheet-view: Optimize by making column header widgets lazy. pspp-sheet-view: Improve look of sheet when there are few columns. pspp-sheet-view: Make pspp_sheet_view_stop_editing() public. pspp-sheet-view: Add "fixed-height" and "fixed-height-set" properties. psppire-cell-renderer-button: New cell renderer for GtkButton. psppire-cell-renderer-button: Add "slash" property. src/ui/gui/automake.mk | 16 +- src/ui/gui/include/gtk/gtk.in.h | 21 + src/ui/gui/marshaller-list | 6 + src/ui/gui/pspp-sheet-private.h | 459 ++ src/ui/gui/pspp-sheet-selection.c | 1305 +++ src/ui/gui/pspp-sheet-selection.h | 159 + src/ui/gui/pspp-sheet-view-column.c | 4330 ++++++++++ src/ui/gui/pspp-sheet-view-column.h | 267 + src/ui/gui/pspp-sheet-view.c |12796 +++++++++++++++++++++++++++++ src/ui/gui/pspp-sheet-view.h | 424 + src/ui/gui/pspp-widget-facade.c | 356 + src/ui/gui/pspp-widget-facade.h | 87 + src/ui/gui/psppire-button-editable.c | 240 + src/ui/gui/psppire-button-editable.h | 53 + src/ui/gui/psppire-cell-renderer-button.c | 572 ++ src/ui/gui/psppire-cell-renderer-button.h | 71 + src/ui/gui/psppire.gtkrc | 7 + 17 files changed, 21167 insertions(+), 2 deletions(-) create mode 100644 src/ui/gui/pspp-sheet-private.h create mode 100644 src/ui/gui/pspp-sheet-selection.c create mode 100644 src/ui/gui/pspp-sheet-selection.h create mode 100644 src/ui/gui/pspp-sheet-view-column.c create mode 100644 src/ui/gui/pspp-sheet-view-column.h create mode 100644 src/ui/gui/pspp-sheet-view.c create mode 100644 src/ui/gui/pspp-sheet-view.h create mode 100644 src/ui/gui/pspp-widget-facade.c create mode 100644 src/ui/gui/pspp-widget-facade.h create mode 100644 src/ui/gui/psppire-button-editable.c create mode 100644 src/ui/gui/psppire-button-editable.h create mode 100644 src/ui/gui/psppire-cell-renderer-button.c create mode 100644 src/ui/gui/psppire-cell-renderer-button.h create mode 100644 src/ui/gui/psppire.gtkrc -- 1.7.2.5 _______________________________________________ pspp-dev mailing list pspp-dev@gnu.org https://lists.gnu.org/mailman/listinfo/pspp-dev