diff options
author | Benjamin Otte <otte@redhat.com> | 2019-02-11 04:57:46 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2019-02-15 06:28:35 +0100 |
commit | 1f56f5c2e97afdd6ab75a0826f13ea8608e8246c (patch) | |
tree | a605c2bca0417ccfccc0107588ea2ddc385c051a /gtk/gtkselectionmodel.h | |
parent | cd37b872caba6765375bd8684957d302086ada92 (diff) | |
download | gtk+-1f56f5c2e97afdd6ab75a0826f13ea8608e8246c.tar.gz |
selectionmodel: Change prototype of query_range()
1. Do not make position an inout variable
The function is meant to return a range for a given position, not modify
a position. So it makes no conceptual sense to use an inout variable.
2. Pass the selected state as an out variable
Using a boolean return value - in particular in an interface full of
boolean return values - makes the return value intuitively feel like a
success/failure return. Using an out variable clarifies the usage.
3. Allow passing every position value
Define what happens when position >= list.n_items
4. Clarify the docs about how this function should behave
In particular, mention the case from point (3)
5. Add more tests
Again, (3) needs testing.
Diffstat (limited to 'gtk/gtkselectionmodel.h')
-rw-r--r-- | gtk/gtkselectionmodel.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/gtk/gtkselectionmodel.h b/gtk/gtkselectionmodel.h index 65c424716d..9e8de6a66b 100644 --- a/gtk/gtkselectionmodel.h +++ b/gtk/gtkselectionmodel.h @@ -79,9 +79,11 @@ struct _GtkSelectionModelInterface guint n_items); gboolean (* select_all) (GtkSelectionModel *model); gboolean (* unselect_all) (GtkSelectionModel *model); - gboolean (* query_range) (GtkSelectionModel *model, - guint *position, - guint *n_items); + void (* query_range) (GtkSelectionModel *model, + guint position, + guint *start_range, + guint *n_items, + gboolean *selected); }; GDK_AVAILABLE_IN_ALL @@ -110,9 +112,11 @@ GDK_AVAILABLE_IN_ALL gboolean gtk_selection_model_unselect_all (GtkSelectionModel *model); GDK_AVAILABLE_IN_ALL -gboolean gtk_selection_model_query_range (GtkSelectionModel *model, - guint *position, - guint *n_items); +void gtk_selection_model_query_range (GtkSelectionModel *model, + guint position, + guint *start_range, + guint *n_items, + gboolean *selected); /* for implementations only */ GDK_AVAILABLE_IN_ALL |