Blender  V3.3
filelist.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2007 Blender Foundation. All rights reserved. */
3 
8 #pragma once
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
15 struct BlendHandle;
16 struct FileIndexerType;
17 struct FileList;
18 struct FileSelection;
19 struct bUUID;
20 struct wmWindowManager;
21 
22 struct FileDirEntry;
23 
24 typedef uint32_t FileUID;
25 
26 typedef enum FileSelType {
31 
32 typedef enum FileCheckType {
35  CHECK_ALL = 3,
37 
38 /* not listbase itself */
39 void folderlist_free(struct ListBase *folderlist);
40 void folderlist_popdir(struct ListBase *folderlist, char *dir);
41 void folderlist_pushdir(struct ListBase *folderlist, const char *dir);
42 const char *folderlist_peeklastdir(struct ListBase *folderlist);
43 int folderlist_clear_next(struct SpaceFile *sfile);
44 
46 void folder_history_list_free(struct SpaceFile *sfile);
47 struct ListBase folder_history_list_duplicate(struct ListBase *listbase);
48 
49 void filelist_setsorting(struct FileList *filelist, short sort, bool invert_sort);
50 void filelist_sort(struct FileList *filelist);
51 
52 void filelist_setfilter_options(struct FileList *filelist,
53  bool do_filter,
54  bool hide_dot,
55  bool hide_parent,
57  uint64_t filter_id,
58  bool filter_assets_only,
59  const char *filter_glob,
60  const char *filter_search);
66 void filelist_setindexer(struct FileList *filelist, const struct FileIndexerType *indexer);
72  struct FileList *filelist,
73  eFileSel_Params_AssetCatalogVisibility catalog_visibility,
74  const struct bUUID *catalog_id);
75 void filelist_tag_needs_filtering(struct FileList *filelist);
76 void filelist_filter(struct FileList *filelist);
80 void filelist_setlibrary(struct FileList *filelist,
81  const struct AssetLibraryReference *asset_library_ref);
82 
83 void filelist_init_icons(void);
84 void filelist_free_icons(void);
85 struct ImBuf *filelist_getimage(struct FileList *filelist, int index);
88 struct ImBuf *filelist_geticon_image(struct FileList *filelist, int index);
89 int filelist_geticon(struct FileList *filelist, int index, bool is_main);
90 
91 struct FileList *filelist_new(short type);
92 void filelist_settype(struct FileList *filelist, short type);
93 void filelist_clear(struct FileList *filelist);
95  bool do_asset_library,
96  bool do_cache,
97  bool do_selection);
103 void filelist_free(struct FileList *filelist);
104 
105 const char *filelist_dir(struct FileList *filelist);
106 bool filelist_is_dir(struct FileList *filelist, const char *path);
110 void filelist_setdir(struct FileList *filelist, char *r_dir);
111 
120 FileDirEntry *filelist_file(struct FileList *filelist, int index);
121 FileDirEntry *filelist_file_ex(struct FileList *filelist, int index, bool use_request);
122 
127 int filelist_file_find_path(struct FileList *filelist, const char *file);
132 int filelist_file_find_id(const struct FileList *filelist, const struct ID *id);
136 struct ID *filelist_file_get_id(const struct FileDirEntry *file);
137 bool filelist_uid_is_set(const FileUID uid);
138 void filelist_uid_unset(FileUID *r_uid);
139 void filelist_file_cache_slidingwindow_set(struct FileList *filelist, size_t window_size);
143 bool filelist_file_cache_block(struct FileList *filelist, int index);
144 
145 bool filelist_needs_force_reset(struct FileList *filelist);
146 void filelist_tag_force_reset(struct FileList *filelist);
147 void filelist_tag_force_reset_mainfiles(struct FileList *filelist);
148 bool filelist_pending(struct FileList *filelist);
149 bool filelist_needs_reset_on_main_changes(const struct FileList *filelist);
150 bool filelist_is_ready(struct FileList *filelist);
151 
152 unsigned int filelist_entry_select_set(const struct FileList *filelist,
153  const struct FileDirEntry *entry,
155  unsigned int flag,
156  FileCheckType check);
157 void filelist_entry_select_index_set(struct FileList *filelist,
158  int index,
160  unsigned int flag,
161  FileCheckType check);
163  FileSelection *sel,
165  unsigned int flag,
166  FileCheckType check);
167 unsigned int filelist_entry_select_get(struct FileList *filelist,
168  struct FileDirEntry *entry,
169  FileCheckType check);
170 unsigned int filelist_entry_select_index_get(struct FileList *filelist,
171  int index,
172  FileCheckType check);
173 bool filelist_entry_is_selected(struct FileList *filelist, int index);
177 void filelist_entry_parent_select_set(struct FileList *filelist,
179  unsigned int flag,
180  FileCheckType check);
181 
182 void filelist_setrecursion(struct FileList *filelist, int recursion_level);
183 
184 struct AssetLibrary *filelist_asset_library(struct FileList *filelist);
185 
186 struct BlendHandle *filelist_lib(struct FileList *filelist);
190 bool filelist_islibrary(struct FileList *filelist, char *dir, char **r_group);
191 void filelist_freelib(struct FileList *filelist);
192 
195 int filelist_files_num_entries(struct FileList *filelist);
196 
197 void filelist_readjob_start(struct FileList *filelist,
198  int space_notifier,
199  const struct bContext *C);
200 void filelist_readjob_stop(struct FileList *filelist, struct wmWindowManager *wm);
201 int filelist_readjob_running(struct FileList *filelist, struct wmWindowManager *wm);
202 
203 bool filelist_cache_previews_update(struct FileList *filelist);
204 void filelist_cache_previews_set(struct FileList *filelist, bool use_previews);
205 bool filelist_cache_previews_running(struct FileList *filelist);
206 bool filelist_cache_previews_done(struct FileList *filelist);
207 
208 #ifdef __cplusplus
209 }
210 #endif
struct AssetLibrary AssetLibrary
struct BlendHandle BlendHandle
Definition: BLO_readfile.h:35
eFileSel_Params_AssetCatalogVisibility
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
#define C
Definition: RandGen.cpp:25
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
Definition: avxb.h:154
void sort(btMatrix3x3 &U, btVector3 &sigma, btMatrix3x3 &V, int t)
Helper function of 3X3 SVD for sorting singular values.
FILE * file
void filelist_readjob_start(struct FileList *filelist, int space_notifier, const struct bContext *C)
struct ImBuf * filelist_file_getimage(const FileDirEntry *file)
Definition: filelist.c:1303
bool filelist_cache_previews_running(struct FileList *filelist)
Definition: filelist.c:2712
void filelist_entry_select_index_set(struct FileList *filelist, int index, FileSelType select, unsigned int flag, FileCheckType check)
Definition: filelist.c:2926
void folderlist_free(struct ListBase *folderlist)
Definition: filelist.c:166
void filelist_free(struct FileList *filelist)
Definition: filelist.c:2019
bool filelist_is_ready(struct FileList *filelist)
Definition: filelist.c:2158
void folder_history_list_ensure_for_active_browse_mode(struct SpaceFile *sfile)
Definition: filelist.c:202
void filelist_setrecursion(struct FileList *filelist, int recursion_level)
Definition: filelist.c:2132
int filelist_file_find_path(struct FileList *filelist, const char *file)
Definition: filelist.c:2285
struct FileList * filelist_new(short type)
Definition: filelist.c:1875
void filelist_sort(struct FileList *filelist)
Definition: filelist.c:720
struct AssetLibrary * filelist_asset_library(struct FileList *filelist)
Definition: filelist.c:2042
void filelist_tag_needs_filtering(struct FileList *filelist)
Definition: filelist.c:1056
struct ImBuf * filelist_geticon_image_ex(const FileDirEntry *file)
Definition: filelist.c:1308
bool filelist_islibrary(struct FileList *filelist, char *dir, char **r_group)
Definition: filelist.c:2998
unsigned int filelist_entry_select_index_get(struct FileList *filelist, int index, FileCheckType check)
Definition: filelist.c:2964
struct ImBuf * filelist_getimage(struct FileList *filelist, int index)
Definition: filelist.c:1296
bool filelist_cache_previews_update(struct FileList *filelist)
Definition: filelist.c:2655
void filelist_setfilter_options(struct FileList *filelist, bool do_filter, bool hide_dot, bool hide_parent, uint64_t filter, uint64_t filter_id, bool filter_assets_only, const char *filter_glob, const char *filter_search)
Definition: filelist.c:1116
uint32_t FileUID
Definition: filelist.h:22
bool filelist_entry_is_selected(struct FileList *filelist, int index)
Definition: filelist.c:2975
void filelist_settype(struct FileList *filelist, short type)
Definition: filelist.c:1888
void folder_history_list_free(struct SpaceFile *sfile)
Definition: filelist.c:229
void filelist_freelib(struct FileList *filelist)
Definition: filelist.c:2047
struct BlendHandle * filelist_lib(struct FileList *filelist)
Definition: filelist.c:2055
void filelist_set_asset_catalog_filter_options(struct FileList *filelist, eFileSel_Params_AssetCatalogVisibility catalog_visibility, const struct bUUID *catalog_id)
struct ListBase folder_history_list_duplicate(struct ListBase *listbase)
Definition: filelist.c:236
void folderlist_popdir(struct ListBase *folderlist, char *dir)
Definition: filelist.c:89
bool filelist_needs_force_reset(struct FileList *filelist)
Definition: filelist.c:2140
void filelist_readjob_stop(struct FileList *filelist, struct wmWindowManager *wm)
Definition: filelist.c:4118
void filelist_setdir(struct FileList *filelist, char *r_dir)
Definition: filelist.c:2116
int folderlist_clear_next(struct SpaceFile *sfile)
Definition: filelist.c:145
void filelist_file_cache_slidingwindow_set(struct FileList *filelist, size_t window_size)
Definition: filelist.c:2348
bool filelist_needs_reset_on_main_changes(const struct FileList *filelist)
void filelist_tag_force_reset(struct FileList *filelist)
Definition: filelist.c:2145
void filelist_setsorting(struct FileList *filelist, short sort, bool invert_sort)
Definition: filelist.c:753
void filelist_clear_ex(struct FileList *filelist, bool do_asset_library, bool do_cache, bool do_selection)
Definition: filelist.c:1942
FileSelType
Definition: filelist.h:26
@ FILE_SEL_REMOVE
Definition: filelist.h:27
@ FILE_SEL_ADD
Definition: filelist.h:28
@ FILE_SEL_TOGGLE
Definition: filelist.h:29
int filelist_files_num_entries(struct FileList *filelist)
Definition: filelist.c:2060
int filelist_file_find_id(const struct FileList *filelist, const struct ID *id)
void filelist_tag_force_reset_mainfiles(struct FileList *filelist)
Definition: filelist.c:2150
int filelist_readjob_running(struct FileList *filelist, struct wmWindowManager *wm)
Definition: filelist.c:4123
bool filelist_cache_previews_done(struct FileList *filelist)
Definition: filelist.c:2719
int filelist_geticon(struct FileList *filelist, int index, bool is_main)
Definition: filelist.c:1449
bool filelist_uid_is_set(const FileUID uid)
Definition: filelist.c:2336
bool filelist_file_cache_block(struct FileList *filelist, int index)
Definition: filelist.c:2416
void filelist_entries_select_index_range_set(struct FileList *filelist, FileSelection *sel, FileSelType select, unsigned int flag, FileCheckType check)
Definition: filelist.c:2936
void filelist_clear(struct FileList *filelist)
Definition: filelist.c:2000
void filelist_init_icons(void)
Definition: filelist.c:1245
void filelist_filter(struct FileList *filelist)
Definition: filelist.c:1061
void filelist_setlibrary(struct FileList *filelist, const struct AssetLibraryReference *asset_library_ref)
FileCheckType
Definition: filelist.h:32
@ CHECK_FILES
Definition: filelist.h:34
@ CHECK_DIRS
Definition: filelist.h:33
@ CHECK_ALL
Definition: filelist.h:35
FileDirEntry * filelist_file(struct FileList *filelist, int index)
Definition: filelist.c:2280
bool filelist_pending(struct FileList *filelist)
Definition: filelist.c:2163
struct ID * filelist_file_get_id(const struct FileDirEntry *file)
unsigned int filelist_entry_select_get(struct FileList *filelist, struct FileDirEntry *entry, FileCheckType check)
Definition: filelist.c:2949
void filelist_setindexer(struct FileList *filelist, const struct FileIndexerType *indexer)
void filelist_clear_from_reset_tag(struct FileList *filelist)
Definition: filelist.c:2005
void folderlist_pushdir(struct ListBase *folderlist, const char *dir)
Definition: filelist.c:109
const char * folderlist_peeklastdir(struct ListBase *folderlist)
Definition: filelist.c:133
void filelist_entry_parent_select_set(struct FileList *filelist, FileSelType select, unsigned int flag, FileCheckType check)
Definition: filelist.c:2988
void filelist_cache_previews_set(struct FileList *filelist, bool use_previews)
Definition: filelist.c:2630
bool filelist_is_dir(struct FileList *filelist, const char *path)
Definition: filelist.c:2111
FileDirEntry * filelist_file_ex(struct FileList *filelist, int index, bool use_request)
Definition: filelist.c:2232
struct ImBuf * filelist_geticon_image(struct FileList *filelist, int index)
Definition: filelist.c:1327
void filelist_uid_unset(FileUID *r_uid)
Definition: filelist.c:2343
int filelist_files_ensure(struct FileList *filelist)
Definition: filelist.c:2173
int filelist_needs_reading(struct FileList *filelist)
Definition: filelist.c:2873
unsigned int filelist_entry_select_set(const struct FileList *filelist, const struct FileDirEntry *entry, FileSelType select, unsigned int flag, FileCheckType check)
void filelist_free_icons(void)
Definition: filelist.c:1279
const char * filelist_dir(struct FileList *filelist)
Definition: filelist.c:2106
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
unsigned int uint32_t
Definition: stdint.h:80
unsigned __int64 uint64_t
Definition: stdint.h:90
FileDirEntryArr filelist
Definition: filelist.c:373
Definition: DNA_ID.h:368
short flag
Definition: DNA_ID.h:383
Universally Unique Identifier according to RFC4122.