diff options
author | Julian Eisel <eiseljulian@gmail.com> | 2015-06-11 18:20:29 +0300 |
---|---|---|
committer | Julian Eisel <eiseljulian@gmail.com> | 2015-06-11 18:20:29 +0300 |
commit | 939948c23384119dbcc7d94614cabf76dde22391 (patch) | |
tree | ee70ead880a234ab45bd21b6591f1ae629762880 /source/blender/editors/space_file/file_intern.h | |
parent | 356afe0085718cd326f4e830c943537923c2e976 (diff) |
File Browser Arrow Keys Navigation
Adds support for selecting/deselecting files in File Browser using the
arrow keys. All directions (up, down, left, right) are possible.
When to Select, When to Deselect?
Standard behaviour is selecting, however if we move into a block of
already selected files (meaning 2+ files are selected) we start
deselecting
Possible Selection Methods
Simple selection (arrow-key): All other files are deselected
Expand selection (Shift+arrow key): Add to/remove from existing
selection
ill-Expand selection (Ctrl+Shift+arrow key): Add to/remove from existing
selection and fill everything in-between
From which file do we start navigating?
From each available selection method (Mouse-, Walk-, All-, Border
Select), we use the last selected file. If there's no selection at all
we use the first (down/right arrow) or last (up/left arrow) file.
(Ideally, the view would automatically be set to the new selection, but
this behaviour overlaps with an other patch I've been working on, so
prefer to do that separately)
(Also tweaks color for highlighted file for better feedback)
D1297, Review done by @campbellbarton, thx a lot :)
Diffstat (limited to 'source/blender/editors/space_file/file_intern.h')
-rw-r--r-- | source/blender/editors/space_file/file_intern.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/editors/space_file/file_intern.h b/source/blender/editors/space_file/file_intern.h index dbb5e8a773d..d7af6c9b812 100644 --- a/source/blender/editors/space_file/file_intern.h +++ b/source/blender/editors/space_file/file_intern.h @@ -59,8 +59,17 @@ bool file_draw_check_exists(SpaceFile *sfile); /* file_ops.h */ struct wmOperatorType; struct wmOperator; + +typedef enum WalkSelectDirection { + FILE_SELECT_WALK_UP, + FILE_SELECT_WALK_DOWN, + FILE_SELECT_WALK_LEFT, + FILE_SELECT_WALK_RIGHT, +} WalkSelectDirections; + void FILE_OT_highlight(struct wmOperatorType *ot); void FILE_OT_select(struct wmOperatorType *ot); +void FILE_OT_select_walk(struct wmOperatorType *ot); void FILE_OT_select_all_toggle(struct wmOperatorType *ot); void FILE_OT_select_border(struct wmOperatorType *ot); void FILE_OT_select_bookmark(struct wmOperatorType *ot); @@ -111,5 +120,8 @@ int autocomplete_file(struct bContext *C, char *str, void *arg_v); /* file_panels.c */ void file_panels_register(struct ARegionType *art); +/* file_utils.c */ +void file_tile_boundbox(const ARegion *ar, FileLayout *layout, const int file, rcti *r_bounds); + #endif /* __FILE_INTERN_H__ */ |