Short Term TODO items: Bonobo Issues: 1. DnD does not seem to be working, it always defaults to "destroy column". 2. Cursor location is not propagated (no feedback). Functionality: 2. Implement GUI grouping. 3. Implement context menu on item-bars. 4. Implement config tool for the view. 5. Add multi-sorting. GUI: 1. Implement behaviours for "line-selection" 2. Implement good behaviour for editing. 3. Use the theme information for the captions. 4. Use the font from the widget style. 5. Fix the update problems when a group is resized. Implement e-cell-height Implement computation of heights from the e-cell-heights Make sure we compute the height from that Include spacing in columns and rows for the decoration lines Add threshold to compute a "global" size Implement the two methods for row finding: by full thing, or by a factor. + Add editing mouse grabbing for scrolling 1. Make sure that all values are updated on header changes and table model changes (they are slightly out of sync now) * Correctness * Make sure we can boot and shutdown with no memory leaks. * Run Insure on the thing. + * Propagation + * Row changes should be reflected in the subsets. * Add an ETable::get_specification method to get the current layout information. * Add input and output of column widths and minimum column widths. + * Add GUI sort * Add depressed button state to ETableHeaderItem? * Add GUI grouping * Create ETableGroupItem class. * Make it work. (A large step) * Add a context menu * Define the menu * Create the menu object. * Hook up all the menu items. * Add a possible column list GUI * Create ETableColumnList class. * Hook it up to ETableHeader. * Figure out the correct semantics for the connection between the ETableHeader and the ETableColumnList. * Implement widget display. * Implement drag&drop. * Add closing and openning of groups * Add + button to group display. * Build in semantics for clicking on the button. * Make sub items hide & show. * Resize group. * Figure out how to save this data. * Data entry ("Click here to add...") * Add "Allocate" to the ETableModel * Implement ETableDataEntry (a subclass of ETableModel). * Build GUI for the data entry model. This should be fairly simple. * Usability * When the widget grows, the columns should resize to occupy all the available space * Draw little arrows for new column position instead of little triangles. * Make new column position be closest to position instead of rounding to the left. * Copy gtk_dnd as e_dnd. * Fix known bug about navigating out of the bottom of the table.