Matthias Clasen
94c5b00231
columnviewcolumn: Add a reorderable property
...
This will be used for interactive column reordering
in the future.
2020-05-30 20:01:14 -04:00
Matthias Clasen
59e49dafd7
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-05-30 20:01:14 -04:00
Matthias Clasen
d5ce5b53d6
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-05-30 20:01:14 -04:00
Matthias Clasen
915bdf24a7
columnviewtitle: Invert on release
...
This is necessary to make drag-to-reorder work
without triggering inversion.
2020-05-30 20:01:14 -04:00
Matthias Clasen
114054266b
columnview: Interactive column resizing
...
This copies just enough of the treeview code to
get columns moving.
2020-05-30 20:01:14 -04:00
Matthias Clasen
dcea6d6cda
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-05-30 20:01:14 -04:00
Matthias Clasen
a118267ab7
columnviewcolumn: Add a resizable property
...
This will be used for interactive column resizing
in the future.
2020-05-30 20:01:14 -04:00
Matthias Clasen
cc63c581c3
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-05-30 20:01:14 -04:00
Matthias Clasen
dbc1a8ba11
columnview: Add column reordering
...
Add an API to allow reordering columns.
2020-05-30 20:01:14 -04:00
Matthias Clasen
515a86645a
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 in size_allocate.
2020-05-30 20:01:14 -04:00
Matthias Clasen
cbabb85e6d
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-05-30 20:01:14 -04:00
Matthias Clasen
1031625bd4
columnviewcolumn: Add a visible property
...
This lets us hide columns, which is useful.
2020-05-30 20:01:14 -04:00
Matthias Clasen
65ed3aa1d9
inspector: Touch up list styling
...
This is just the minimal amount of work to make
headers recognizable.
2020-05-30 20:01:14 -04:00
Matthias Clasen
ed04c46078
inspector: Use a column view for actions
...
A straight conversion from list box to column view.
2020-05-30 20:01:14 -04:00
Matthias Clasen
1b2df91e6d
inspector: Make the resource list sortable
...
This is using a GtkTreeListRowSorter to keep expanded
state of the tree while changing the sorting.
2020-05-30 20:01:14 -04:00
Matthias Clasen
f745c0c2aa
inspector: Use a column view for the resource list
...
A conversion from tree view to column view.
2020-05-30 20:01:14 -04:00
Matthias Clasen
2ed46450ea
inspector: Use a column view for properties
...
Just a straight conversion from list box to column view.
2020-05-30 20:01:14 -04:00
Matthias Clasen
6d168079d4
inspector: Add columns to the object tree
...
Add columnview columns in the object tree.
We do the same for treeview columns.
2020-05-30 20:01:14 -04:00
Matthias Clasen
fc9462d49e
Add some tests for new GtkBuilder syntax
...
Some valid and invalid examples for <closure>,
<lookup> and <constant>.
2020-05-30 19:31:38 -04:00
Matthias Clasen
9c849d2084
docs: Update the list widget overview
...
Fill in the GtkComboBox and GtkCellView replacements
in the quick reference table.
2020-05-30 19:31:38 -04:00
Matthias Clasen
336b30c532
gtk-demo: Add a large grid demo
...
This is similar to the flowbox demo, but much bigger.
2020-05-30 19:31:38 -04:00
Matthias Clasen
b331e29e43
inspector: Use dropdowns in the visual page
...
Convert everything in the visual page to dropdowns.
2020-05-30 19:31:38 -04:00
Matthias Clasen
54cdafdd67
inspector: Use a dropdown for size groups
...
Use a GtkDropDown for the modes of size groups.
2020-05-30 19:31:38 -04:00
Matthias Clasen
30541201b6
inspector: Use a dropdown for controllers
...
Use a GtkDropDown for the phases of event controllers.
2020-05-30 19:31:38 -04:00
Matthias Clasen
6346fa960c
inspector: Use a dropdown for attribute mapping
...
Use a GtkDropDown for the attribute mapping editor.
2020-05-30 19:31:38 -04:00
Matthias Clasen
99c98d0736
inspector: Use dropdowns in property editor
...
Replace combo boxes by dropdowns in the property editor.
2020-05-30 19:31:38 -04:00
Matthias Clasen
496e673d77
filechooser: Use a dropdown for choices
2020-05-30 19:31:38 -04:00
Matthias Clasen
d3aad3b574
filechooser: Use a dropdown for the filter combo
...
Replace an internal use of GtkComboBox with GtkDropDown.
2020-05-30 19:31:38 -04:00
Matthias Clasen
371dab51bb
Add GtkDropDown
...
This is a simple drop down control using list models.
2020-05-30 19:31:38 -04:00
Benjamin Otte
3ea2258ce9
xxx: isnanf() is some wtf
2020-05-30 19:30:14 -04:00
Matthias Clasen
c7feae65f1
builderlistitemfactory: Precompile the xml
...
This is the one place where we can really take advantage
of precompiling, since we instantiate this template
over and over.
2020-05-30 19:30:14 -04:00
Matthias Clasen
b087948933
gtk-demo: Use single-click-activate for minesweeper
...
The explanation say we do, so do it.
2020-05-30 19:30:14 -04:00
Matthias Clasen
f611d55f16
Spread single-click-activate api
...
This makes sense to have in all the views,
not just GtkListView.
2020-05-30 19:30:14 -04:00
Matthias Clasen
12b1007046
docs: Add a listview overview section
...
Add a conceptual overview for all the listmodel-based
widgets.
Fixes : #2214
2020-05-30 19:30:14 -04:00
Matthias Clasen
4a4c15b2ac
gtk-demo: Add filtering to the settings demo
...
A demo of filtering with lists was missing so far.
2020-05-30 19:30:14 -04:00
Matthias Clasen
8804427677
gtk-demo: Demo columnview sorting
...
Enhance the settings demo to have a sortable column.
2020-05-30 19:30:14 -04:00
Matthias Clasen
d717971f41
gtk-demo: Cosmetic improvements to the listview demos
...
Set default sizes, window titles and add more
detail to the descriptions.
2020-05-30 19:30:14 -04:00
Matthias Clasen
f33df84eff
gtk-builder-tool: Minimally validate <binding>
...
Check that the toplevel property name is legit.
2020-05-30 19:30:14 -04:00
Benjamin Otte
7910271b6c
testsuite: Add tests for GtkTreeListSorter
2020-05-30 19:30:14 -04:00
Matthias Clasen
e3ce99988f
Add GtkTreeListRowSorter
...
This is a special-purpose sorter that can
apply the sorting of another sorter to the
levels of a GtkTreeListModel.
2020-05-30 19:30:14 -04:00
Benjamin Otte
fb78f1ef8e
testcolumnview: Add sorters
2020-05-30 19:28:30 -04:00
Matthias Clasen
1ba1eda8ab
column view title: Show sort indicators
2020-05-30 19:28:30 -04:00
Matthias Clasen
2945430ad7
columnview: Add a sort-by api
2020-05-30 19:28:28 -04:00
Matthias Clasen
66500a6882
columnview: Add sorting
...
This is a somewhat large commit that:
- Adds GtkColumnViewSorter
This is a special-purpose, private sorter implementation which sorts
according to multiple sorters, allowing each individual sorter to be
inverted. This will be used with clickable column view headers.
- Adds a read-only GtkColumnView::sorter property
The GtkColumnView creates a GtkColumnViewSorter at startup that it uses
for this property.
- Adds a writable GtkColumnViewColumn::sorter property
This allows defining per-column sorters. Whenever an application sets a
sorter for a column, the header becomes clickable and whenever
a header is clicked, that column's sorter is prepended to the list of
sorters, unless it is already the first sorter, in which case we invert
its order. No column can be in the list more than once.
2020-05-30 19:26:46 -04:00
Matthias Clasen
2c4c07c96d
listview: Add single-click-activate
...
Add a single-click-activate property to GtkListView.
2020-05-30 19:26:46 -04:00
Matthias Clasen
69c86ae385
listitemwidget: Add single-click-activate
...
Add a mode to GtkListItemWidget that activates on
single click and selects on hover. Make
GtkListItemManager set this on its items
when its own 'property' of the same name is set.
2020-05-30 19:26:46 -04:00
Matthias Clasen
21eac434c3
builder-tool: Pass through CDATA where it makes sense
...
This avoids a ton of escaping for
GtkBuilderListItemFactory::bytes.
2020-05-30 19:26:46 -04:00
Matthias Clasen
2f21003064
docs: Reorganize list widgets in their own chapter
2020-05-30 19:26:46 -04:00
Benjamin Otte
58b65d1bf6
fontchooserwidget: Port to listmodels
...
The port is kind of evil, in that it stores either a PangoFontFamily or a
PangoFontFace in the list, depending on if the fontchooser is configured
to select fonts or faces.
It also does not cache the font description anymore, so more calls to
pango_font_describe() may happen.
If both of these issues turn out problematic, the fontchooser would need
to resurrect GtkDelayedFontDescription again and put objects of that
type through the model.
These changes depend on Pango 1.46's introduction of listmodels and
various new getters, so the dependency has been upgraded.
2020-05-30 19:26:46 -04:00
Matthias Clasen
542829ee81
Add some tests for expression binding
...
In particular, test that expressios can deal with object == this.
2020-05-30 19:26:46 -04:00