Matthias Clasen
843bf23f84
Drop gtk_multi_selection-copy
...
It is not used anymore.
2020-06-05 00:51:35 -04:00
Matthias Clasen
eeb2d2cc38
listbase: Redo rubberbanding
...
Make it so that the selection is only updated in the end.
2020-06-05 00:51:35 -04:00
Matthias Clasen
20611cf68c
Add gtk_selection_model_[un]select_callback
...
Add a methods to add or remove a whole set
(specified via a query-range style callback).
2020-06-04 22:28:54 -04:00
Matthias Clasen
06c34ce02f
set: Add a few useful functions
...
Allow to find out if a set is empty, and its
min and max.
2020-06-04 21:36:23 -04:00
Matthias Clasen
ed985640e8
docs: Expand list widget docs
...
Begin to flesh out the long descriptions for GtkListView,
GtkGridView and GtkColumnView.
2020-06-04 15:33:53 -04:00
Matthias Clasen
f6b6688186
Merge branch 'list-widget-styles' into 'master'
...
List widget styles
Closes #2818
See merge request GNOME/gtk!2035
2020-06-04 16:27:37 +00:00
Matthias Clasen
51c6ce1734
list widgets: Document css structure
...
We didn't fill in this expected part of the widget
documentation yet.
2020-06-04 10:05:17 -04:00
Benjamin Otte
1998b673f4
Merge branch 'ensure-style-no-recurse' into 'master'
...
Avoid recursion in gtk_css_node_ensure_style()
See merge request GNOME/gtk!2031
2020-06-04 14:04:55 +00:00
Matthias Clasen
627497f942
docs: Fix a parameter name mismatch
2020-06-04 09:52:17 -04:00
Matthias Clasen
f9287941b4
Change css names of list widget
...
The new names are
GtkListView - listview row
GtkGridView - gridview child
GtkColumView - columnview header
columnview listview row
Adwaita css has been updated to preserve
existing styles.
Fixes : #2818
2020-06-04 09:51:49 -04:00
Alexander Larsson
fc823eb610
Avoid recursion in gtk_css_node_ensure_style()
...
gtk_css_node_ensure_style() recurses over previous siblings to ensure
these have a style before its following sibling. As seen in
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2027 this can
cause us to stack overflow and crash if we have a lot of children.
And even if we don't have *that* many children its still somewhat
bad to have stack depths of the same magnitude as the number of
children, both for performance reasons and debuggability.
2020-06-04 12:10:31 +02:00
Kjell Ahlstedt
612955f2b7
flowbox: Don't use a removed child after it has been unparented
...
In gtk_flow_box_remove(), call g_sequence_remove() before the child is unparented.
See MR !2029
2020-06-04 11:23:46 +02:00
Matthias Clasen
4b68362981
columnview: Add a property for column separators
...
Rename the show-separators property to show-row-separators,
and add a matching show-column-separators property. It is
implemented by setting the .column-separators style class
on the column view.
2020-06-03 17:57:23 -04:00
Matthias Clasen
658e4c5357
listview: Use gtk_widget_add_css_class
...
No need to use the style context api for this anymore.
2020-06-03 17:51:22 -04:00
Matthias Clasen
77b65ada4f
Merge branch 'columnview-printdialog' into 'master'
...
Port the printdialog to column view
See merge request GNOME/gtk!2010
2020-06-03 21:47:58 +00:00
Matthias Clasen
fa37225a42
Merge branch 'columnview-rubberbanding' into 'master'
...
columnview: Implement rubberbanding
See merge request GNOME/gtk!2008
2020-06-03 21:46:13 +00:00
Matthias Clasen
78a06859b9
Merge branch 'columnview-expand' into 'master'
...
columnview: Implement expanding columns
See merge request GNOME/gtk!2007
2020-06-03 21:39:33 +00:00
Matthias Clasen
3ec8f4e84e
Merge branch 'columnview-reordering' into 'master'
...
columnview: Implement interactive reordering
See merge request GNOME/gtk!2006
2020-06-03 21:38:59 +00:00
Matthias Clasen
f13a596d15
Merge branch 'columnview-resizing' into 'master'
...
columnview: Implement interactive resizing
See merge request GNOME/gtk!2004
2020-06-03 20:04:17 +00:00
Matthias Clasen
94f14778a3
Merge branch 'columnview-scrolling' into 'master'
...
columnview: Implement horizontal scrolling
See merge request GNOME/gtk!1998
2020-06-03 19:50:59 +00:00
Benjamin Otte
7312284e4f
Merge branch 'wip/otte/for-master' into 'master'
...
Wip/otte/for master
See merge request GNOME/gtk!2024
2020-06-03 17:40:26 +00:00
Matthias Clasen
ebc07d1458
printdialog: Port to column view
2020-06-03 13:35:09 -04:00
Matthias Clasen
03c2202942
Add rubberband api
...
Add an ::enable-rubberband property to GtkListView,
GtkGridView and GtkColumnView.
2020-06-03 13:34:27 -04:00
Matthias Clasen
b3a97cb755
listbase: Simplify rubberbanding
...
The new approach is:
- plain: clear and start a new selection
- extend: add to the existing selection
- modify: subtract from the existing selection
2020-06-03 13:32:57 -04:00
Matthias Clasen
a9273e1c73
listbase: Split off rubberband data
2020-06-03 13:32:57 -04:00
Matthias Clasen
14d11ebcab
listbase: Use a widget for the rubberband
...
We no longer need to juggle manual css nodes. Just create
a widget for the rubberband, and update its allocation
as we rubberband.
2020-06-03 13:32:57 -04:00
Matthias Clasen
7dc458d925
Add autoscroll
...
This is an expected feature with rubberband selection:
as you get close to the edge while doing rubberband
selection, the list scrolls to extend your selection.
2020-06-03 13:32:57 -04:00
Matthias Clasen
a0f04bdcf3
listbase: Add rubberband selection
...
Implement the typical rubberband selection, including
autoscroll. This is only useful with multiselection,
and not very compatible with single-click-activate.
Therefore, it is not enabled by default, and needs
to be turned on explicitly.
2020-06-03 13:32:57 -04:00
Matthias Clasen
28f6e27276
Add GtkMultiSelection
...
This is implemented using a private GtkSet helper.
Includes tests.
2020-06-03 13:32:57 -04:00
Matthias Clasen
03c1fa43f4
inspector: Expand the actions list
2020-06-03 13:32:15 -04:00
Matthias Clasen
3b9f0ab866
inspector: Expand the resource list
...
This is an experiment with adding a filler column.
2020-06-03 13:32:15 -04:00
Matthias Clasen
9617a00ae3
inspector: Expand the property list
...
It looks better this way.
2020-06-03 13:32:15 -04:00
Matthias Clasen
1408199957
inspector: Expand the object tree
...
This is how it used to look, and it looks better that way.
2020-06-03 13:32:15 -04:00
Matthias Clasen
067df8d4dd
columnview: Take expand into account
...
When allocating columns, distribute extra space
to columns that have expand set to TRUE.
2020-06-03 13:32:15 -04:00
Matthias Clasen
2ab1b13092
columnview: Add a GtkColumnViewColumn:expand property
...
This will be used to determine how to distribute
available extra space in a column view.
2020-06-03 13:32:15 -04:00
Matthias Clasen
964d0c219a
columnview: Add autoscroll
...
Autoscroll when the pointer gets close to the
edge during column resizing or reordering. This
is similar to what the treeview does, but it is
implemented using a tick callback, and has
variable speed.
2020-06-03 13:31:39 -04:00
Matthias Clasen
c58eb9c276
columnview: Allow to cancel reorder with Escape
...
The treeview does this too.
2020-06-03 13:31:39 -04:00
Matthias Clasen
5d4893b3f0
columnview: Interactive column reordering
...
Allow rearranging columns by dragging, in the same
way the treeview does.
We add the "dnd" style class to the header while
it is dragged, and we move the header of the dragged
column to the end of its parents children, so that
it gets drawn on top.
2020-06-03 13:31:39 -04:00
Matthias Clasen
11b4e0d4c0
columnview: Add a GtkColumnView:reorderable property
...
This property controls if users can reorder columns
by drag-and-drop. It defaults to TRUE.
2020-06-03 13:31:39 -04:00
Matthias Clasen
e637693131
columnviewlayout: Use header allocation for titles
...
Normally, this will be identical to the column
allocation, but we will temporarily change it
during column reordering.
2020-06-03 13:31:39 -04:00
Matthias Clasen
c9d5b77403
columnviewcolumn: Add reordering helpers
...
Add helper functions that let us temporarily give
a different allocation to headers. These will be
used to implement interactive column reordering
in GtkColumnView.
2020-06-03 13:31:39 -04:00
Matthias Clasen
f65f9591a1
columnview: Interactive column resizing
...
This copies just enough of the treeview code to
get columns moving.
2020-06-03 12:49:40 -04:00
Matthias Clasen
a1eadde25b
columnviewcolumn: Add a helper
...
We need to check whether clicks are in the headers
of columns, so let the column view get at the the
header widget.
2020-06-03 12:49:40 -04:00
Matthias Clasen
66e5027756
columnview: Add a GtkColumnViewColumn:resizable property
...
This will be used for interactive column resizing
in the future.
2020-06-03 12:49:38 -04:00
Matthias Clasen
aa2d339508
columnview: Add a helper
...
The column code needs to get access to the
listitem widgets that are children of the listview,
so add a getter.
2020-06-03 12:48:56 -04:00
Matthias Clasen
d43aacefc9
columnview: Add GtkColumnViewColumn:fixed-width
...
Add a fixed-width property similar to the same property
of GtkTreeViewColumn.
2020-06-03 12:48:39 -04:00
Matthias Clasen
f0a0e20b2f
columnview: Implement horizontal scrolling
...
The listview inside always thinks it gets its full size,
and updates its horizontal adjustment accordingly.
So keep our own adjustment, and update it when allocating.
2020-06-03 12:48:20 -04:00
Matthias Clasen
befdd8bb66
columnview: Revise scroll-minimum handling
...
Tweak the behavior slightly. We don't show
a scrollbar as long as we have at least
min-size available, but we still give the
entire size to the child, up to nat-size.
This matches how viewports handle scroll-minimum.
2020-06-03 12:48:20 -04:00
Benjamin Otte
27ed2cc009
Merge branch 'wip/otte/for-master' into 'master'
...
Wip/otte/for master
See merge request GNOME/gtk!2022
2020-06-03 16:33:54 +00:00
Benjamin Otte
a60c866a12
listbase: Don't grab_focus() when moving focus
...
We want to call gtk_widget_child_focus() to have Tab focus the right
widget.
2020-06-03 18:12:49 +02:00