Andreas Kling
613c7b9856
GTableView: Make it possible to hide/show columns from a context menu.
...
Show a context menu when right clicking the headers of a GTableView, and
allow the user to hide/show individual columns.
2019-05-10 20:26:55 +02:00
Andreas Kling
48e3ea9e5c
GTableView: Make it possible to resize the columns with the mouse.
...
The GModel now merely provides an initial width for the columns. Once that
has been queried, the table view manages width from then on.
2019-05-04 23:45:31 +02:00
Andreas Kling
a8c856ed3d
GTableView: Improve look of column headers, and add sort order indicators.
2019-05-04 21:16:41 +02:00
Andreas Kling
18785ba5c3
LibGUI: Move editing logic from GTableView up to GAbstractView.
...
GAbstractView should be able to manage the high-level editing logic, as long
as subclasses implement content_rect(GModelIndex) so we know where to put
the editing widgets. :^)
2019-04-19 00:07:33 +02:00
Andreas Kling
0e6b273620
LibGUI: Start working on GTableView inline editing.
...
This is pretty shaky still, but the basic idea is that you subclass GModel
and return true for editable indices. The table view also needs to have its
editable flag set.
2019-04-18 22:27:14 +02:00
Andreas Kling
20f7d7ec67
LibGUI: Add GWidget::doubleclick_event().
...
Now double-clicking an item in a GTableView or GItemView will activate it.
2019-03-25 01:43:32 +01:00
Andreas Kling
19fa70c821
LibGUI: Add a GItemView class.
...
This is a GAbstractView subclass that implements a icon-based view onto
a GModel. It still need a bunch of work, but it's in basic usable shape.
2019-03-23 03:54:45 +01:00
Andreas Kling
5707d7f547
LibGUI: Add GAbstractView base class for GTableView.
...
This is in preparation for adding a new view class.
2019-03-23 02:04:31 +01:00
Andreas Kling
994cf10b3e
LibGUI: Rename GTableModel => GModel.
2019-03-23 01:42:49 +01:00
Andreas Kling
951377e93e
GTableView: Add ability to hide individual columns at view-level.
...
Use this in IRCClient to hide the "sender" column in the server message view
since everything in that view comes from the "Server" anyway.
2019-03-20 13:36:07 +01:00
Andreas Kling
f47945759b
LibGUI: Make GTableModel a retainable object.
...
It became clear that this class needs to support multiple owners.
2019-03-20 03:27:07 +01:00
Andreas Kling
6fbabac460
LibGUI: Factor out scrolling logic from GTableView into a GScrollableWidget.
...
This then becomes the base class for GTableView. I'd like to share as much
code as possible with GTextEditor and any other scrollable widgets.
2019-03-16 16:03:31 +01:00
Andreas Kling
b54ab06595
GTableView: Add a way to turn off alternating row colors.
2019-03-15 21:41:27 +01:00
Andreas Kling
a5d538b389
GTableView: Add a way to hide the column headers.
...
There are many situations where you would want a table view without headers.
2019-03-15 14:50:36 +01:00
Andreas Kling
3681a402ba
GTableView: Allow changing sort options by clicking column headers.
...
Also paint the sorted column slightly differently to indicate what's up.
2019-03-09 13:59:01 +01:00
Andreas Kling
574a399347
LibGUI: GTableView should scroll items into view when keyboard navigating.
2019-03-01 14:29:34 +01:00
Andreas Kling
b5dcad932e
LibGUI: Allow basic keyboard navigation in GTableView.
...
Pressing Enter will now "activate" the selected index, meaning that
the model gets a call to activate(GModelIndex).
2019-03-01 13:48:08 +01:00
Andreas Kling
bff5b71467
LibGUI: Add a GModelNotification class that views will receive.
...
I don't want to use GEvent here since these need to be synchronous
and mixing sync and async GEvents would be stupid.
2019-02-28 21:30:17 +01:00
Andreas Kling
8eefdbdce8
LibGUI: Add horizontal scrollbar to GTableView.
...
Now we can scroll content in both directions if it won't fit in the view.
2019-02-28 17:58:53 +01:00
Andreas Kling
827ec99a8f
LibGUI: Update GTableView's scrollbar range in response to resize.
2019-02-28 13:25:52 +01:00
Andreas Kling
dc9f8a9361
LibGUI: Take ProcessManager's process view and turn it into GTableView.
...
Make it sufficiently generic that it can be reused for any table data. :^)
2019-02-28 10:57:09 +01:00