aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/e-table/TODO
blob: fd7fe2b91a7946b6e4626f137fa45ed358a9253d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
Short Term TODO items:

Functionality:

    1. Remove the internal XML API.
    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.

GUI 2:
    1. Make the insertion points be shaped X windows instead of canvas items.

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 frozen_columns output.
    * Add input and output of column widths and minimum column widths.

+ * Add GUI sort

+   * Create an ETableSortInfo class.
+   * Add display of proper arrows to the ETableHeaderItem.
+   * Add switching of sorting on clicks.
    * 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.