13 #include <sys/types.h>
22 # include <sys/times.h>
64 #define VERTLIST_MAJORCOLUMN_WIDTH (25 * UI_UNIT_X)
74 if (blendfile_path[0] !=
'\0') {
103 "FileAssetSelectParams");
111 base_params->
file[0] =
'\0';
205 if (is_directory ==
true && is_filename ==
false && is_filepath ==
false &&
272 if (tmp !=
params->filter_glob) {
283 params->filter_glob[0] =
'\0';
286 if (
params->filter != 0) {
328 if (is_relative_path) {
344 params->filter_glob[0] =
'\0';
402 if (asset_params ==
NULL) {
419 library->custom_library_index);
427 base_params->
dir[0] =
'\0';
488 params->catalog_id = catalog_id;
494 ID *asset_id = (
ID *)custom_data;
524 params->active_file = file_index;
533 const char *relative_path = custom_data;
553 for (
int file_index = 0; file_index < num_files_filtered; ++file_index) {
556 if (
STREQ(
file->relpath, relative_path)) {
557 params->active_file = file_index;
572 #define PARAMS_FLAGS_REMEMBERED (FILE_HIDE_DOT)
588 return (sfile->
op ==
NULL) ||
596 return (sfile->
op ==
NULL) ||
632 const int temp_win_size[2],
633 const bool is_maximized)
657 if (temp_win_size && !is_maximized) {
663 if (memcmp(sfile_udata_new, &sfile_udata_old,
sizeof(sfile_udata_old)) != 0) {
664 U.runtime.is_dirty =
true;
694 const int x_over = x_item - (x_view % x_item);
695 numfiles = (int)((
float)(x_view + x_over) / (
float)(x_item));
696 return numfiles * layout->
rows;
701 const int y_over = y_item - (y_view % y_item);
702 numfiles = (int)((
float)(y_view + y_over) / (
float)(y_item));
708 return ((
x >= 0) && (
x < cols) && (
y >= 0) && (
y < rows));
713 int colmin, colmax, rowmin, rowmax;
717 if (layout ==
NULL) {
739 sel.
first = layout->
rows * colmin + rowmin;
750 sel.
last = layout->
rows * colmax + rowmax;
762 int offsetx, offsety;
765 if (layout ==
NULL) {
775 if (offsety > layout->
rows - 1) {
780 active_file = layout->
rows * offsetx + offsety;
864 if (offset_tile > -1) {
925 "23 Dec 6789, 23:59") +
933 int remwidth = layout->
tile_w;
940 remwidth -= columns[column_type].
width;
985 const float pad_fac = compact ? 0.15f : 0.3f;
1004 layout->
rows = numfiles;
1018 layout->
tile_h = textheight * 3 / 2;
1028 layout->
rows =
MAX2(rowcount, numfiles);
1040 layout->
tile_h = textheight * 3 / 2;
1050 if (layout->
rows > 0) {
1061 layout->
dirty =
false;
1086 params->filter_search[0] =
'\0';
1087 params->active_file = -1;
1129 for (
int i = 0; i < n; i++) {
1133 if (fnmatch(pattern,
file->relpath, 0) == 0) {
1174 if (
BLI_stat(path, &status) == 0) {
1175 if (
S_ISDIR(status.st_mode)) {
1203 for (
int i = 0; i < nentries; i++) {
1223 params->highlight_file = -1;
1299 params->renamefile[0] =
'\0';
1327 params->active_file = idx;
1342 params->active_file = idx;
1362 if (sfile->
op == file_operator) {
typedef float(TangentPoint)[2]
const char * BKE_appdir_folder_default(void) ATTR_WARN_UNUSED_RESULT
struct AssetLibrary AssetLibrary
struct ScrArea * CTX_wm_area(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
struct SpaceFile * CTX_wm_space_file(const bContext *C)
const char * BKE_main_blendfile_path_from_global(void)
struct bUserAssetLibrary * BKE_preferences_asset_library_find_from_index(const struct UserDef *userdef, int index) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
float BLF_height(int fontid, const char *str, size_t str_len) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
#define BLF_DRAW_STR_DUMMY_MAX
float BLF_width(int fontid, const char *str, size_t str_len) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
#define BLI_assert_msg(a, msg)
int BLI_stat(const char *path, BLI_stat_t *buffer) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
MINLINE uint divide_ceil_u(uint a, uint b)
void BLI_split_dir_part(const char *string, char *dir, size_t dirlen)
void BLI_path_normalize_dir(const char *relabase, char *dir) ATTR_NONNULL(2)
void BLI_split_dirfile(const char *string, char *dir, char *file, size_t dirlen, size_t filelen)
bool BLI_path_extension_glob_validate(char *ext_fnmatch) ATTR_NONNULL()
#define FILENAME_IS_CURRPAR(_n)
int BLI_path_slash_ensure(char *string) ATTR_NONNULL()
bool BLI_path_abs(char *path, const char *basepath) ATTR_NONNULL()
void BLI_join_dirfile(char *__restrict dst, size_t maxlen, const char *__restrict dir, const char *__restrict file) ATTR_NONNULL()
bool BLI_rcti_isect_pt(const struct rcti *rect, int x, int y)
bool BLI_rcti_isect(const struct rcti *src1, const struct rcti *src2, struct rcti *dest)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL(1
#define IN_RANGE(a, b, c)
Compatibility-like things for windows.
const char * dirname(char *path)
struct dirent * readdir(DIR *dp)
DIR * opendir(const char *path)
external readfile function prototypes.
const struct UserDef U_default
@ FILE_TYPE_BLENDER_BACKUP
@ FILE_PARAMS_RENAME_POSTSCROLL_PENDING
@ FILE_PARAMS_RENAME_ACTIVE
@ FILE_PARAMS_RENAME_POSTSCROLL_ACTIVE
@ FILE_PARAMS_RENAME_PENDING
@ FILE_SHOW_ASSETS_FROM_CATALOG
@ FILE_BROWSE_MODE_ASSETS
@ FILE_ASSET_IMPORT_APPEND_REUSE
#define FILE_SELECT_MAX_RECURSIONS
#define ED_screen_areas_iter(win, screen, area_name)
_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 const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_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 const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
#define AUTOCOMPLETE_FULL_MATCH
void UI_fontstyle_set(const struct uiFontStyle *fs)
const struct uiStyle * UI_style_get(void)
#define AUTOCOMPLETE_NO_MATCH
AutoComplete * UI_autocomplete_begin(const char *startname, size_t maxlen)
int UI_autocomplete_end(AutoComplete *autocpl, char *autoname)
void UI_autocomplete_update_name(AutoComplete *autocpl, const char *name)
#define V2D_SCROLL_HEIGHT
void UI_view2d_region_to_view(const struct View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL()
#define ND_SPACE_ASSET_PARAMS
#define ND_SPACE_FILE_PARAMS
#define ND_SPACE_FILE_LIST
int pad[32 - sizeof(int)]
void file_on_reload_callback_register(struct SpaceFile *sfile, onReloadFn callback, onReloadFnData custom_data)
#define SMALL_SIZE_CHECK(_size)
#define ATTRIBUTE_COLUMN_PADDING
void file_draw_check_ex(bContext *C, struct ScrArea *area)
void filelist_free(struct FileList *filelist)
bool filelist_is_ready(struct FileList *filelist)
void folder_history_list_ensure_for_active_browse_mode(SpaceFile *sfile)
int filelist_file_find_path(struct FileList *filelist, const char *filename)
void filelist_freelib(struct FileList *filelist)
void filelist_entries_select_index_range_set(FileList *filelist, FileSelection *sel, FileSelType select, uint flag, FileCheckType check)
void folder_history_list_free(SpaceFile *sfile)
void filelist_setdir(struct FileList *filelist, char *r_dir)
int folderlist_clear_next(struct SpaceFile *sfile)
void filelist_clear(FileList *filelist)
void folderlist_pushdir(ListBase *folderlist, const char *dir)
ID * filelist_file_get_id(const FileDirEntry *file)
AssetLibrary * filelist_asset_library(FileList *filelist)
void folderlist_free(ListBase *folderlist)
int filelist_file_find_id(const FileList *filelist, const ID *id)
void filelist_readjob_stop(FileList *filelist, wmWindowManager *wm)
uint filelist_entry_select_set(const FileList *filelist, const FileDirEntry *entry, FileSelType select, uint flag, FileCheckType check)
FileDirEntry * filelist_file(struct FileList *filelist, int index)
bool filelist_pending(struct FileList *filelist)
int filelist_files_ensure(FileList *filelist)
FileDirEntry * filelist_file_ex(struct FileList *filelist, const int index, const bool use_request)
bool filelist_needs_force_reset(FileList *filelist)
bool filelist_is_dir(struct FileList *filelist, const char *path)
const char * filelist_dir(struct FileList *filelist)
void ED_fileselect_params_to_userdef(SpaceFile *sfile, const int temp_win_size[2], const bool is_maximized)
void file_params_smoothscroll_timer_clear(wmWindowManager *wm, wmWindow *win, SpaceFile *sfile)
bool ED_fileselect_is_file_browser(const SpaceFile *sfile)
struct ID * ED_fileselect_active_asset_get(const SpaceFile *sfile)
int autocomplete_file(struct bContext *C, char *str, void *UNUSED(arg_v))
int file_select_match(struct SpaceFile *sfile, const char *pattern, char *matched_file)
void ED_fileselect_activate_by_relpath(SpaceFile *sfile, const char *relative_path)
int ED_fileselect_layout_numfiles(FileLayout *layout, ARegion *region)
int autocomplete_directory(struct bContext *C, char *str, void *UNUSED(arg_v))
bool ED_fileselect_is_local_asset_library(const SpaceFile *sfile)
FileSelectParams * ED_fileselect_get_active_params(const SpaceFile *sfile)
static int file_params_find_renamed(const FileSelectParams *params, struct FileList *filelist)
void ED_file_change_dir_ex(bContext *C, ScrArea *area)
void file_params_invoke_rename_postscroll(wmWindowManager *wm, wmWindow *win, SpaceFile *sfile)
int ED_fileselect_layout_offset(FileLayout *layout, int x, int y)
FileSelectParams * ED_fileselect_get_file_params(const SpaceFile *sfile)
float file_string_width(const char *str)
static void fileselect_ensure_updated_asset_params(SpaceFile *sfile)
bool file_attribute_column_header_is_inside(const View2D *v2d, const FileLayout *layout, int x, int y)
#define VERTLIST_MAJORCOLUMN_WIDTH
void ED_fileselect_activate_asset_catalog(const SpaceFile *sfile, const bUUID catalog_id)
void file_params_renamefile_clear(FileSelectParams *params)
static bool is_inside(int x, int y, int cols, int rows)
static void fileselect_initialize_params_common(SpaceFile *sfile, FileSelectParams *params)
ScrArea * ED_fileselect_handler_area_find_any_with_op(const wmWindow *win)
void fileselect_refresh_params(SpaceFile *sfile)
FileAttributeColumnType file_attribute_column_type_find_isect(const View2D *v2d, const FileSelectParams *params, FileLayout *layout, int x)
struct AssetLibrary * ED_fileselect_active_asset_library_get(const SpaceFile *sfile)
FileLayout * ED_fileselect_get_layout(struct SpaceFile *sfile, ARegion *region)
FileSelectParams * ED_fileselect_ensure_active_params(SpaceFile *sfile)
void ED_fileselect_exit(wmWindowManager *wm, SpaceFile *sfile)
bool ED_fileselect_is_asset_browser(const SpaceFile *sfile)
void ED_fileselect_deselect_all(SpaceFile *sfile)
FileSelection ED_fileselect_layout_offset_rect(FileLayout *layout, const rcti *rect)
void ED_fileselect_activate_by_id(SpaceFile *sfile, ID *asset_id, const bool deferred)
bool file_attribute_column_type_enabled(const FileSelectParams *params, FileAttributeColumnType column)
void ED_fileselect_set_params_from_userdef(SpaceFile *sfile)
static void file_attribute_columns_init(const FileSelectParams *params, FileLayout *layout)
float file_font_pointsize(void)
void fileselect_file_set(SpaceFile *sfile, const int index)
bool ED_fileselect_layout_is_inside_pt(const FileLayout *layout, const View2D *v2d, int x, int y)
void file_params_rename_end(wmWindowManager *wm, wmWindow *win, SpaceFile *sfile, FileDirEntry *rename_file)
#define PARAMS_FLAGS_REMEMBERED
static void on_reload_select_by_relpath(SpaceFile *sfile, onReloadFnData custom_data)
static void fileselect_refresh_asset_params(FileAssetSelectParams *asset_params)
void file_select_deselect_all(SpaceFile *sfile, uint flag)
void file_params_renamefile_activate(SpaceFile *sfile, FileSelectParams *params)
FileAssetSelectParams * ED_fileselect_get_asset_params(const SpaceFile *sfile)
void ED_fileselect_init_layout(struct SpaceFile *sfile, ARegion *region)
static bool file_select_use_default_display_type(const SpaceFile *sfile)
static void on_reload_activate_by_id(SpaceFile *sfile, onReloadFnData custom_data)
static void file_attribute_columns_widths(const FileSelectParams *params, FileLayout *layout)
static FileSelectParams * fileselect_ensure_updated_file_params(SpaceFile *sfile)
bool ED_fileselect_layout_isect_rect(const FileLayout *layout, const View2D *v2d, const rcti *rect, rcti *r_dst)
void ED_fileselect_window_params_get(const wmWindow *win, int win_size[2], bool *is_maximized)
void ED_fileselect_clear(wmWindowManager *wm, SpaceFile *sfile)
void ED_fileselect_layout_maskrect(const FileLayout *layout, const View2D *v2d, rcti *r_rect)
void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y)
void ED_file_change_dir(bContext *C)
static bool file_select_use_default_sort_type(const SpaceFile *sfile)
ScrArea * ED_fileselect_handler_area_find(const wmWindow *win, const wmOperator *file_operator)
ccl_global const KernelWorkTile * tile
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
bool RNA_property_is_set_ex(PointerRNA *ptr, PropertyRNA *prop, bool use_ghost)
bool RNA_struct_property_is_set_ex(PointerRNA *ptr, const char *identifier, bool use_ghost)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
bool RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop)
char * RNA_property_string_get_alloc(PointerRNA *ptr, PropertyRNA *prop, char *fixedbuf, int fixedlen, int *r_len)
int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
AssetLibraryReference asset_library_ref
FileSelectParams base_params
FileAttributeColumn attribute_columns[ATTRIBUTE_COLUMN_MAX]
int attribute_column_header_h
unsigned short thumbnail_size
struct wmTimer * smoothscroll_timer
struct FileLayout * layout
FileSelectParams * params
FileAssetSelectParams * asset_params
UserDef_FileSpaceData file_space_data
Universally Unique Identifier according to RFC4122.
struct wmOperatorType * type
struct wmWindow * winactive
static FT_Library library
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_event_fileselect_event(wmWindowManager *wm, void *ophandle, int eventval)
@ EVT_FILESELECT_EXTERNAL_CANCEL
const char * WM_operatortype_name(struct wmOperatorType *ot, struct PointerRNA *properties)
void WM_event_remove_timer(wmWindowManager *wm, wmWindow *UNUSED(win), wmTimer *timer)
int WM_window_pixels_y(const wmWindow *win)
void WM_window_set_dpi(const wmWindow *win)
bScreen * WM_window_get_active_screen(const wmWindow *win)
bool WM_window_is_temp_screen(const wmWindow *win)
bool WM_window_is_maximized(const wmWindow *win)
int WM_window_pixels_x(const wmWindow *win)
wmTimer * WM_event_add_timer(wmWindowManager *wm, wmWindow *win, int event_type, double timestep)