Andreas Kling
3c62534ae6
GTableView: Update content size immediately on column show/hide.
2019-05-11 00:19:34 +02:00
Andreas Kling
dd7406ce3f
GTableView: Don't include hidden columns in content width.
2019-05-11 00:16:34 +02:00
Andreas Kling
d643daebb2
GTableView: Headers were not usable when the view was scrolled.
2019-05-10 20:56:00 +02:00
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
fa232ac180
LibGUI: Remove GModel activations to GAbstractView.
...
Now you can hook activation via GAbstractView::on_activation.
The design still isn't quite right, we should eventually move the selection
away from the model somehow.
2019-05-09 04:56:52 +02:00
Andreas Kling
2848a96d66
GTableView: Fix crash on mousemove when no model is assigned.
2019-05-08 03:33:13 +02:00
Andreas Kling
e66f88ed60
GTableView: Make column resizing work when view is scrolled horizontally.
2019-05-06 23:38:35 +02:00
Andreas Kling
b7cd6dea13
GTableView: Fix crash when clicking at random places.
2019-05-05 00:58:42 +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
8bce4b3f42
GTableView: Ignore double-clicks that hit the header section.
2019-04-26 23:13:05 +02:00
Andreas Kling
8a3d00ac02
GTableView: Double-click should only activate/edit valid indices.
2019-04-25 22:55:44 +02:00
Andreas Kling
de913529d7
GTableView: Tweak appearance of key column with alternating rows.
2019-04-20 19:41:37 +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
9cab7a0707
LibGUI: Move the editing widget along with the content when scrolling.
2019-04-18 23:57:07 +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
73c70e5d2e
GTableView: Remove the old-style focus rect.
2019-04-16 03:04:14 +02:00
Andreas Kling
ef23ed7ef1
GTableView: Handle not having a model a bit more gracefully.
2019-04-11 17:26:30 +02:00
Andreas Kling
4ab0cd5d4c
LibGUI: Move frame painting from GFrame to StylePainter.
...
This way it can be used by others who might not have a GFrame object.
2019-04-10 03:43:46 +02:00
Andreas Kling
f249c40aaa
Rename Painter::set_clip_rect() to add_clip_rect().
...
It was confusing to see multiple calls to set_foo() in a row. Since this is
an intersecting operation, let's call it add_clip_rect() instead.
2019-03-29 15:01:54 +01:00
Andreas Kling
d02238af48
LibGUI: Expand GModelIndex a bit, adding internal data and model pointers.
...
This will be useful for implementing more complicated models.
2019-03-29 04:58:15 +01:00
Andreas Kling
5d72cf5a3f
LibGUI: Improve GFrame's look for Container shapes.
...
This is now starting to look like a proper container. Very nice :^)
2019-03-28 20:15:13 +01:00
Andreas Kling
9fa21fa585
LibGUI: Add a GPainter class that inherits from Painter.
...
This gets rid of the last little piece of LibGUI knowledge in Painter.
2019-03-28 17:19:56 +01:00
Andreas Kling
3dc4255eb4
LibGUI: Use GFrame to draw the frames around GItemView and GTableView.
2019-03-28 16:58:29 +01:00
Andreas Kling
670e376e27
Tweak the look of various UI surfaces and buttons.
2019-03-27 20:48:23 +01: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
86413a6f5a
LibGUI+FileManager: Add a GIcon class to support multi-size icons.
...
A GIcon can contain any number of bitmaps internally, and will give you
the best fitting icon when you call bitmap_for_size().
2019-03-24 04:28:36 +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
d466f2634d
LibGUI: Add GTableModel::Role::ForegroundColor.
...
This makes it possible to specify the text color for each table cell.
Use this to make the IRCClient show unread window list items in red.
2019-03-18 04:54: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
1fc283ed7d
IRCClient+LibGUI: Add an input box so we can send messages to channels.
...
Implement this using a GTextEditor with a special single-line mode.
This new mode needs some polishing, but it's already very useful.
2019-03-15 17:37:13 +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
5d69bf06d2
LibGUI: Don't fill widgets with background color by defualt.
2019-03-10 13:16:36 +01:00
Andreas Kling
963e95cb1a
GTableView: Minor painting cleanup.
2019-03-09 21:38:13 +01:00
Andreas Kling
7d2c962836
LibGUI: Minor tidying.
2019-03-09 14:39:24 +01:00
Andreas Kling
46caa2663b
LibGUI: Use a separate data role for the table model sorting order.
...
This allows data to be displayed nicely while sorting happens based on some
underlying raw data. :^)
2019-03-09 14:24:34 +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
7df1121e1c
LibGUI: GTableModel::data() should take a GModelIndex instead of int,int.
2019-03-06 19:56:47 +01:00
Andreas Kling
09ecef6299
GTableView: Ignore right clicks for now.
2019-03-06 19:44:18 +01:00
Andreas Kling
d932c03843
GTableView: Tweak focus appearance for selected items.
2019-03-04 11:17:25 +01:00
Andreas Kling
06bd2fb2d5
GTableView: Allow initiating keyboard navigation with no current selection.
2019-03-04 10:57:26 +01:00
Andreas Kling
7e955f7b60
GTableView: Tweak the look of column headers.
2019-03-04 10:54:34 +01:00
Andreas Kling
ac2a3f7fdf
GTableView: Make the last column header separator look right.
2019-03-04 10:26:16 +01:00
Andreas Kling
f91a20f9d0
LibGUI: Unbreak clearing GTableView selection by clicking outside items.
...
Also, clicking on the column headers should not clear selection.
2019-03-04 10:18:05 +01:00
Andreas Kling
ef4d517429
LibGUI: Tweak focus appearance and add it to GTableView.
2019-03-04 10:12:09 +01:00