Table changes/improvements

Over the years, I've done a lot of editing in Igor tables in order to put experimental information that isn't captured automatically into waves. Table editing lacks some functions that programs like excel has, but the ability to combine manual entry and automated routines is really helpful. I think that there are some changes that would make it much easier to work with Igor tables. 

1. No resizing of a wave(s) during paste without a user prompt. Or maybe suppress resizing with different paste option (e.g., hotkey ctrl+shift+C). I'm usually fairly meticulous with dimension labels and wave sizes, so this resizing is always unintentional, at least for me.

2. When pasting multiple cells into a single-cell selection, paste the cells on the clipboard starting with the selected cell on the top left. Currently, the user must select exactly the same range as is on the clipboard. This is usually fairly time consuming, even difficult, and risks deleting or adding rows by accident. One could paste data faster by simple selecting the top left cell for the paste.

3. When pasting multiple cells into a multi-cell selection, warn the user that the matrices do not match in size (this does not always happen now). I think it would be best not to resize the wave(s) when this happens, which is current behavior. It would be better to ignore extra cells when the selection is larger than the clipboard matrix, and overwrite cells beyond the selection when the clipboard is larger than the selection (up to the limits of the waves).

4. "Freeze" row labels on the table (like row indices and column indices and labels are frozen) so that no matter how far to the right one scrolls along a multi-column table, the row labels are visible. 

5. Allow direct editing and pasting into column labels, as is available for row labels. (There is currently an annoying asymmetry where row labels are individually selectable and column labels are not.)

6. Allow pasting of the clipboard after transposition and give it a hotkey (e.g., transpose paste with ctrl+T?)

7. Let the user alter the bounds of the box at the top showing the current cell value so that multiple lines from the selected cell can be viewed. 

Side note: colons and semi-colons can be entered into dimension labels (e.g., via setdimlabel 0,0,$":;",wave0), but it's not allowed in manual editing. It would be useful to allow it in manual editing.

Two additional thoughts:

8. Hide rows/columns option. Sometimes it's nice to be able to look at cells that happen to far apart in the wave.

9. Like multiple waves can be stacked along the table as additional columns, allow stacking of additional waves along rows.

Edit to add a point related to #5 in my original post:

5a. column labels are also not searchable, while row labels are. It would be nice to be able to search the column labels. I haven't checked but I imagine higher dimension labels are also not searchable. It would be nice if any data / label in the displayed wave(s) was searchable.

Re point 7: the edit box at the top of the table handles only a single line. We have thought about trying to make it a multi-line edit box, but various problems become apparent. In Igor 7 and later, if the current cell is in a text wave, you should see an "edit" icon (page of a document with a pencil). If you click that, you get a full-featured dialog that allows you to enter arbitrary text. It also has all the tools from other places in Igor for editing Igor-style formatted text.

The edit icon is useful, but I find its use to be limited by two shortcomings. 1) It's a separate free-standing popup and, 2) more problematically, you can't do anything else while it's open. Here's one example of the type of limitation this causes: sometimes I want to scroll through a bunch of cells and see something in the middle of the string they each hold. Only the beginning of the string is visible on the table and only the end of the string on the edit box at the top of the window, and of course I can't change the selection while the edit dialog is open, so it's not possible.

A nice middle ground would be to change that edit dialog to a window and attach it to the table -- so it acts like the ctrl+I and ctrl+T tool do for all windows. The user would toggle whether it's shown by clicking the edit box (or a hotkey like ctrl+T). Maybe that would make it easier to implement?

A slightly poorer middle ground would be to add some controls in the current editing dialog box for switching the cell that is being edited (maybe shift+arrow keys would move it and there would be a jump to cell option)