Blender  V2.93
filelist.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2007 Blender Foundation.
17  * All rights reserved.
18  */
19 
24 #pragma once
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 struct BlendHandle;
31 struct FileList;
33 struct FileSelection;
34 struct wmWindowManager;
35 
36 struct FileDirEntry;
37 
38 typedef enum FileSelType {
43 
44 typedef enum FileCheckType {
47  CHECK_ALL = 3,
49 
50 void folderlist_free(struct ListBase *folderlist);
51 void folderlist_popdir(struct ListBase *folderlist, char *dir);
52 void folderlist_pushdir(struct ListBase *folderlist, const char *dir);
53 const char *folderlist_peeklastdir(struct ListBase *folderlist);
54 int folderlist_clear_next(struct SpaceFile *sfile);
55 
57 void folder_history_list_free(struct SpaceFile *sfile);
58 struct ListBase folder_history_list_duplicate(struct ListBase *listbase);
59 
60 void filelist_setsorting(struct FileList *filelist, const short sort, bool invert_sort);
61 void filelist_sort(struct FileList *filelist);
62 
63 void filelist_setfilter_options(struct FileList *filelist,
64  const bool do_filter,
65  const bool hide_dot,
66  const bool hide_parent,
67  const uint64_t filter,
68  const uint64_t filter_id,
69  const bool filter_assets_only,
70  const char *filter_glob,
71  const char *filter_search);
72 void filelist_filter(struct FileList *filelist);
73 void filelist_setlibrary(struct FileList *filelist,
74  const struct FileSelectAssetLibraryUID *asset_library);
75 
76 void filelist_init_icons(void);
77 void filelist_free_icons(void);
78 struct ImBuf *filelist_getimage(struct FileList *filelist, const int index);
80 struct ImBuf *filelist_geticon_image(struct FileList *filelist, const int index);
81 int filelist_geticon(struct FileList *filelist, const int index, const bool is_main);
82 
83 struct FileList *filelist_new(short type);
84 void filelist_settype(struct FileList *filelist, short type);
85 void filelist_clear(struct FileList *filelist);
86 void filelist_clear_ex(struct FileList *filelist, const bool do_cache, const bool do_selection);
87 void filelist_free(struct FileList *filelist);
88 
89 const char *filelist_dir(struct FileList *filelist);
90 bool filelist_is_dir(struct FileList *filelist, const char *path);
91 void filelist_setdir(struct FileList *filelist, char *r_dir);
92 
95 FileDirEntry *filelist_file(struct FileList *filelist, int index);
96 FileDirEntry *filelist_file_ex(struct FileList *filelist, int index, bool use_request);
97 
98 int filelist_file_findpath(struct FileList *filelist, const char *file);
99 struct ID *filelist_file_get_id(const struct FileDirEntry *file);
100 FileDirEntry *filelist_entry_find_uuid(struct FileList *filelist, const int uuid[4]);
101 void filelist_file_cache_slidingwindow_set(struct FileList *filelist, size_t window_size);
102 bool filelist_file_cache_block(struct FileList *filelist, const int index);
103 
104 bool filelist_needs_force_reset(struct FileList *filelist);
105 void filelist_tag_force_reset(struct FileList *filelist);
106 bool filelist_pending(struct FileList *filelist);
107 bool filelist_needs_reset_on_main_changes(const struct FileList *filelist);
108 bool filelist_is_ready(struct FileList *filelist);
109 
110 unsigned int filelist_entry_select_set(const struct FileList *filelist,
111  const struct FileDirEntry *entry,
113  unsigned int flag,
114  FileCheckType check);
115 void filelist_entry_select_index_set(struct FileList *filelist,
116  const int index,
118  unsigned int flag,
119  FileCheckType check);
121  FileSelection *sel,
123  unsigned int flag,
124  FileCheckType check);
125 unsigned int filelist_entry_select_get(struct FileList *filelist,
126  struct FileDirEntry *entry,
127  FileCheckType check);
128 unsigned int filelist_entry_select_index_get(struct FileList *filelist,
129  const int index,
130  FileCheckType check);
131 bool filelist_entry_is_selected(struct FileList *filelist, const int index);
132 void filelist_entry_parent_select_set(struct FileList *filelist,
134  unsigned int flag,
135  FileCheckType check);
136 
137 void filelist_setrecursion(struct FileList *filelist, const int recursion_level);
138 
139 struct BlendHandle *filelist_lib(struct FileList *filelist);
140 bool filelist_islibrary(struct FileList *filelist, char *dir, char **r_group);
141 void filelist_freelib(struct FileList *filelist);
142 
143 void filelist_readjob_start(struct FileList *filelist, const struct bContext *C);
144 void filelist_readjob_stop(struct wmWindowManager *wm, struct Scene *owner_scene);
145 int filelist_readjob_running(struct wmWindowManager *wm, struct Scene *owner_scene);
146 
147 bool filelist_cache_previews_update(struct FileList *filelist);
148 void filelist_cache_previews_set(struct FileList *filelist, const bool use_previews);
149 bool filelist_cache_previews_running(struct FileList *filelist);
150 
151 #ifdef __cplusplus
152 }
153 #endif
struct BlendHandle BlendHandle
Definition: BLO_readfile.h:49
_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:39
void sort(btMatrix3x3 &U, btVector3 &sigma, btMatrix3x3 &V, int t)
Helper function of 3X3 SVD for sorting singular values.
FILE * file
struct ImBuf * filelist_file_getimage(const FileDirEntry *file)
Definition: filelist.c:1152
bool filelist_cache_previews_running(struct FileList *filelist)
Definition: filelist.c:2461
void folderlist_free(struct ListBase *folderlist)
Definition: filelist.c:177
void filelist_free(struct FileList *filelist)
Definition: filelist.c:1796
bool filelist_is_ready(struct FileList *filelist)
Definition: filelist.c:1910
void folder_history_list_ensure_for_active_browse_mode(struct SpaceFile *sfile)
Definition: filelist.c:213
void filelist_setsorting(struct FileList *filelist, const short sort, bool invert_sort)
Definition: filelist.c:728
struct FileList * filelist_new(short type)
Definition: filelist.c:1721
void filelist_sort(struct FileList *filelist)
Definition: filelist.c:695
int filelist_geticon(struct FileList *filelist, const int index, const bool is_main)
Definition: filelist.c:1298
int filelist_readjob_running(struct wmWindowManager *wm, struct Scene *owner_scene)
Definition: filelist.c:3505
bool filelist_islibrary(struct FileList *filelist, char *dir, char **r_group)
Definition: filelist.c:2731
bool filelist_cache_previews_update(struct FileList *filelist)
Definition: filelist.c:2408
void filelist_readjob_start(struct FileList *filelist, const struct bContext *C)
void filelist_entry_select_index_set(struct FileList *filelist, const int index, FileSelType select, unsigned int flag, FileCheckType check)
Definition: filelist.c:2656
struct ImBuf * filelist_getimage(struct FileList *filelist, const int index)
Definition: filelist.c:1145
void filelist_settype(struct FileList *filelist, short type)
Definition: filelist.c:1735
void folder_history_list_free(struct SpaceFile *sfile)
Definition: filelist.c:240
void filelist_freelib(struct FileList *filelist)
Definition: filelist.c:1819
void filelist_setfilter_options(struct FileList *filelist, const bool do_filter, const bool hide_dot, const bool hide_parent, const uint64_t filter, const uint64_t filter_id, const bool filter_assets_only, const char *filter_glob, const char *filter_search)
Definition: filelist.c:988
struct BlendHandle * filelist_lib(struct FileList *filelist)
Definition: filelist.c:1827
struct ListBase folder_history_list_duplicate(struct ListBase *listbase)
Definition: filelist.c:247
void folderlist_popdir(struct ListBase *folderlist, char *dir)
Definition: filelist.c:99
bool filelist_needs_force_reset(struct FileList *filelist)
Definition: filelist.c:1900
void filelist_setdir(struct FileList *filelist, char *r_dir)
Definition: filelist.c:1876
int folderlist_clear_next(struct SpaceFile *sfile)
Definition: filelist.c:155
void filelist_file_cache_slidingwindow_set(struct FileList *filelist, size_t window_size)
Definition: filelist.c:2103
unsigned int filelist_entry_select_index_get(struct FileList *filelist, const int index, FileCheckType check)
Definition: filelist.c:2693
bool filelist_needs_reset_on_main_changes(const struct FileList *filelist)
void filelist_tag_force_reset(struct FileList *filelist)
Definition: filelist.c:1905
void filelist_setrecursion(struct FileList *filelist, const int recursion_level)
Definition: filelist.c:1892
FileSelType
Definition: filelist.h:38
@ FILE_SEL_REMOVE
Definition: filelist.h:39
@ FILE_SEL_ADD
Definition: filelist.h:40
@ FILE_SEL_TOGGLE
Definition: filelist.h:41
int filelist_file_findpath(struct FileList *filelist, const char *file)
Definition: filelist.c:2046
FileDirEntry * filelist_entry_find_uuid(struct FileList *filelist, const int uuid[4])
Definition: filelist.c:2076
void filelist_entries_select_index_range_set(struct FileList *filelist, FileSelection *sel, FileSelType select, unsigned int flag, FileCheckType check)
Definition: filelist.c:2666
bool filelist_file_cache_block(struct FileList *filelist, const int index)
Definition: filelist.c:2172
void filelist_clear(struct FileList *filelist)
Definition: filelist.c:1791
void filelist_init_icons(void)
Definition: filelist.c:1094
void filelist_filter(struct FileList *filelist)
Definition: filelist.c:937
FileCheckType
Definition: filelist.h:44
@ CHECK_FILES
Definition: filelist.h:46
@ CHECK_DIRS
Definition: filelist.h:45
@ CHECK_ALL
Definition: filelist.h:47
bool filelist_entry_is_selected(struct FileList *filelist, const int index)
Definition: filelist.c:2704
FileDirEntry * filelist_file(struct FileList *filelist, int index)
Definition: filelist.c:2041
bool filelist_pending(struct FileList *filelist)
Definition: filelist.c:1915
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:2679
void filelist_setlibrary(struct FileList *filelist, const struct FileSelectAssetLibraryUID *asset_library)
void filelist_readjob_stop(struct wmWindowManager *wm, struct Scene *owner_scene)
Definition: filelist.c:3500
void folderlist_pushdir(struct ListBase *folderlist, const char *dir)
Definition: filelist.c:119
const char * folderlist_peeklastdir(struct ListBase *folderlist)
Definition: filelist.c:143
void filelist_entry_parent_select_set(struct FileList *filelist, FileSelType select, unsigned int flag, FileCheckType check)
Definition: filelist.c:2720
struct ImBuf * filelist_geticon_image(struct FileList *filelist, const int index)
Definition: filelist.c:1176
bool filelist_is_dir(struct FileList *filelist, const char *path)
Definition: filelist.c:1868
void filelist_clear_ex(struct FileList *filelist, const bool do_cache, const bool do_selection)
Definition: filelist.c:1770
FileDirEntry * filelist_file_ex(struct FileList *filelist, int index, bool use_request)
Definition: filelist.c:1993
void filelist_cache_previews_set(struct FileList *filelist, const bool use_previews)
Definition: filelist.c:2384
int filelist_files_ensure(struct FileList *filelist)
Definition: filelist.c:1931
int filelist_needs_reading(struct FileList *filelist)
Definition: filelist.c:2603
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:1128
const char * filelist_dir(struct FileList *filelist)
Definition: filelist.c:1863
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
unsigned __int64 uint64_t
Definition: stdint.h:93
FileDirEntryArr filelist
Definition: filelist.c:381
Definition: DNA_ID.h:273
short flag
Definition: DNA_ID.h:288
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
Definition: util_avxb.h:167