Blender V4.5
file_intern.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2008 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "DNA_space_types.h"
13
14#include "ED_fileselect.hh"
15
16/* internal exports only */
17
18struct ARegion;
19struct ARegionType;
22struct FileSelectParams;
23struct Main;
24struct SpaceFile;
25struct View2D;
26struct uiLayout;
27namespace blender::asset_system {
28class AssetLibrary;
29}
30
32
33/* `file_context.cc` */
34
35int /*eContextResult*/ file_context(const bContext *C,
36 const char *member,
38
39/* `file_draw.cc` */
40
41#define ATTRIBUTE_COLUMN_PADDING (0.5f * UI_UNIT_X)
42
43#define FILE_LAYOUT_COMPACT(_layout) \
44 (_layout->flag & FILE_LAYOUT_VER && (_layout->width / UI_SCALE_FAC) < 500)
45#define FILE_LAYOUT_HIDE_DATE(_layout) \
46 (_layout->flag & FILE_LAYOUT_VER && (_layout->width / UI_SCALE_FAC) < 250)
47#define FILE_LAYOUT_HIDE_SIZE(_layout) \
48 (_layout->flag & FILE_LAYOUT_VER && (_layout->width / UI_SCALE_FAC) < 350)
49
50void file_calc_previews(const bContext *C, ARegion *region);
51void file_draw_list(const bContext *C, ARegion *region);
56bool file_draw_hint_if_invalid(const bContext *C, const SpaceFile *sfile, ARegion *region);
57
63void file_draw_check_cb(bContext *C, void *arg1, void *arg2);
65
66/* file_ops.h */
67
68struct wmOperator;
69struct wmOperatorType;
70
85
88
108
117void file_directory_enter_handle(bContext *C, void *arg_unused, void *arg_but);
118void file_filename_enter_handle(bContext *C, void *arg_unused, void *arg_but);
119
120int file_highlight_set(SpaceFile *sfile, ARegion *region, int mx, int my);
121
125void file_sfile_filepath_set(SpaceFile *sfile, const char *filepath);
127 bContext *C, Main *bmain, wmOperator *op, SpaceFile *sfile, char *filepath);
128void file_sfile_to_operator(bContext *C, Main *bmain, wmOperator *op, SpaceFile *sfile);
129
130void file_operator_to_sfile(Main *bmain, SpaceFile *sfile, wmOperator *op);
131
132/* `space_file.cc` */
133
134extern "C" const char *file_context_dir[]; /* doc access */
135
136/* `filesel.cc` */
137
142void fileselect_file_set(bContext *C, SpaceFile *sfile, int index);
145 const FileLayout *layout);
150 const FileLayout *layout,
151 int x,
152 int y);
158 FileLayout *layout,
159 int x);
160float file_string_width(const char *str);
161
162float file_font_pointsize();
164int file_select_match(SpaceFile *sfile, const char *pattern, char *matched_file);
165int autocomplete_directory(bContext *C, char *str, void *arg_v);
166int autocomplete_file(bContext *C, char *str, void *arg_v);
167
181 wmWindow *win,
182 SpaceFile *sfile,
183 const FileDirEntry *rename_file);
189
190using onReloadFnData = void *;
191using onReloadFn = void (*)(SpaceFile *space_data, onReloadFnData custom_data);
193 /* Called once after the file browser has reloaded. Reset to NULL after calling.
194 * Use file_on_reload_callback_register() to register a callback. */
197
198 /* Indicates, if the current filepath is a blendfile library one, if its status has been checked,
199 * and if it is readable. */
203};
204
210 onReloadFn callback,
211 onReloadFnData custom_data);
212
213/* folder_history.cc */
214
215/* not listbase itself */
216void folderlist_free(ListBase *folderlist);
217void folderlist_popdir(ListBase *folderlist, char *dir);
218void folderlist_pushdir(ListBase *folderlist, const char *dir);
219const char *folderlist_peeklastdir(ListBase *folderlist);
221
225
226/* `file_panels.cc` */
227
231
232/* `file_utils.cc` */
233
234void file_tile_boundbox(const ARegion *region, FileLayout *layout, int file, rcti *r_bounds);
235
239void file_path_to_ui_path(const char *path, char *r_path, int r_path_maxncpy);
240
241/* asset_catalog_tree_view.cc */
242
244
246 asset_system::AssetLibrary *asset_library,
247 uiLayout *layout,
248 SpaceFile *space_file,
250
251class AssetCatalogFilterSettings;
252
253AssetCatalogFilterSettings *file_create_asset_catalog_filter_settings();
254void file_delete_asset_catalog_filter_settings(AssetCatalogFilterSettings **filter_settings);
260 AssetCatalogFilterSettings *filter_settings,
262 const ::bUUID &catalog_id);
263void file_ensure_updated_catalog_filter_data(AssetCatalogFilterSettings *filter_settings,
264 const asset_system::AssetLibrary *asset_library);
266 const AssetCatalogFilterSettings *filter_settings, const AssetMetaData *asset_data);
267
268} // namespace blender::ed::asset_browser
eFileSel_Params_AssetCatalogVisibility
eDirEntry_SelectFlag
FileAttributeColumnType
#define C
Definition RandGen.cpp:29
#define str(s)
const char * file_context_dir[]
void FILE_OT_parent(wmOperatorType *ot)
Definition file_ops.cc:2284
void FILE_OT_select_box(wmOperatorType *ot)
Definition file_ops.cc:533
void FILE_OT_directory_new(wmOperatorType *ot)
Definition file_ops.cc:2746
void file_draw_check(bContext *C)
Definition file_ops.cc:1766
void FILE_OT_edit_directory_path(wmOperatorType *ot)
Definition file_ops.cc:3354
bool folderlist_clear_next(SpaceFile *sfile)
const char * folderlist_peeklastdir(ListBase *folderlist)
void file_path_to_ui_path(const char *path, char *r_path, int r_path_maxncpy)
Definition file_utils.cc:32
void FILE_OT_bookmark_add(wmOperatorType *ot)
Definition file_ops.cc:1166
void file_params_smoothscroll_timer_clear(wmWindowManager *wm, wmWindow *win, SpaceFile *sfile)
Definition filesel.cc:1361
void FILE_OT_select_bookmark(wmOperatorType *ot)
Definition file_ops.cc:1125
void folder_history_list_ensure_for_active_browse_mode(SpaceFile *sfile)
bool file_attribute_column_type_enabled(const FileSelectParams *params, FileAttributeColumnType column, const FileLayout *layout)
Definition filesel.cc:907
void FILE_OT_refresh(wmOperatorType *ot)
Definition file_ops.cc:2243
void FILE_OT_mouse_execute(wmOperatorType *ot)
Definition file_ops.cc:2203
void file_calc_previews(const bContext *C, ARegion *region)
Definition file_draw.cc:575
void file_params_rename_end(wmWindowManager *wm, wmWindow *win, SpaceFile *sfile, const FileDirEntry *rename_file)
Definition filesel.cc:1380
void file_params_invoke_rename_postscroll(wmWindowManager *wm, wmWindow *win, SpaceFile *sfile)
Definition filesel.cc:1367
void FILE_OT_sort_column_ui_context(wmOperatorType *ot)
Definition file_ops.cc:1529
void file_operator_to_sfile(Main *bmain, SpaceFile *sfile, wmOperator *op)
Definition file_ops.cc:1695
float file_string_width(const char *str)
Definition filesel.cc:965
void FILE_OT_filepath_drop(wmOperatorType *ot)
Definition file_ops.cc:2600
void FILE_OT_previous(wmOperatorType *ot)
Definition file_ops.cc:2320
bool file_attribute_column_header_is_inside(const View2D *v2d, const FileLayout *layout, int x, int y)
Definition filesel.cc:897
int autocomplete_directory(bContext *C, char *str, void *arg_v)
Definition filesel.cc:1230
int autocomplete_file(bContext *C, char *str, void *arg_v)
Definition filesel.cc:1278
void file_params_renamefile_clear(FileSelectParams *params)
Definition filesel.cc:1397
int file_select_match(SpaceFile *sfile, const char *pattern, char *matched_file)
Definition filesel.cc:1205
void file_execute_region_panels_register(ARegionType *art)
void FILE_OT_bookmark_delete(wmOperatorType *ot)
Definition file_ops.cc:1203
void fileselect_file_set(bContext *C, SpaceFile *sfile, int index)
Definition filesel.cc:728
void FILE_OT_external_operation(wmOperatorType *ot)
Definition file_ops.cc:1874
void file_on_reload_callback_register(SpaceFile *sfile, onReloadFn callback, onReloadFnData custom_data)
void FILE_OT_select_walk(wmOperatorType *ot)
Definition file_ops.cc:937
void FILE_OT_filenum(wmOperatorType *ot)
Definition file_ops.cc:3124
void folder_history_list_free(SpaceFile *sfile)
void * onReloadFnData
void FILE_OT_delete(wmOperatorType *ot)
Definition file_ops.cc:3282
void folderlist_pushdir(ListBase *folderlist, const char *dir)
void file_tile_boundbox(const ARegion *region, FileLayout *layout, int file, rcti *r_bounds)
Definition file_utils.cc:19
ListBase folder_history_list_duplicate(ListBase *listbase)
bool file_draw_hint_if_invalid(const bContext *C, const SpaceFile *sfile, ARegion *region)
void fileselect_refresh_params(SpaceFile *sfile)
Definition filesel.cc:457
void file_sfile_to_operator_ex(bContext *C, Main *bmain, wmOperator *op, SpaceFile *sfile, char *filepath)
Definition file_ops.cc:1593
void FILE_OT_bookmark_cleanup(wmOperatorType *ot)
Definition file_ops.cc:1256
void file_directory_enter_handle(bContext *C, void *arg_unused, void *arg_but)
Definition file_ops.cc:2888
FileAttributeColumnType file_attribute_column_type_find_isect(const View2D *v2d, const FileSelectParams *params, FileLayout *layout, int x)
Definition filesel.cc:925
void file_draw_check_ex(bContext *C, ScrArea *area)
Definition file_ops.cc:1742
void file_sfile_to_operator(bContext *C, Main *bmain, wmOperator *op, SpaceFile *sfile)
Definition file_ops.cc:1688
void FILE_OT_smoothscroll(wmOperatorType *ot)
Definition file_ops.cc:2553
void(*)(SpaceFile *space_data, onReloadFnData custom_data) onReloadFn
void FILE_OT_bookmark_move(wmOperatorType *ot)
Definition file_ops.cc:1344
void FILE_OT_select_all(wmOperatorType *ot)
Definition file_ops.cc:1028
void FILE_OT_reset_recent(wmOperatorType *ot)
Definition file_ops.cc:1393
int file_highlight_set(SpaceFile *sfile, ARegion *region, int mx, int my)
Definition file_ops.cc:1412
void folderlist_free(ListBase *folderlist)
void FILE_OT_select(wmOperatorType *ot)
Definition file_ops.cc:651
void file_sfile_filepath_set(SpaceFile *sfile, const char *filepath)
Definition file_ops.cc:1723
void file_select_deselect_all(SpaceFile *sfile, eDirEntry_SelectFlag flag)
Definition filesel.cc:1196
void FILE_OT_start_filter(wmOperatorType *ot)
Definition file_ops.cc:3318
void folderlist_popdir(ListBase *folderlist, char *dir)
bool file_main_region_needs_refresh_before_draw(SpaceFile *sfile)
void file_tool_props_region_panels_register(ARegionType *art)
void FILE_OT_execute(wmOperatorType *ot)
Definition file_ops.cc:2145
float file_font_pointsize()
Definition filesel.cc:972
void file_external_operations_menu_register()
Definition file_ops.cc:2035
void FILE_OT_rename(wmOperatorType *ot)
Definition file_ops.cc:3181
void file_tools_region_panels_register(ARegionType *art)
void file_filename_enter_handle(bContext *C, void *arg_unused, void *arg_but)
Definition file_ops.cc:2975
void FILE_OT_cancel(wmOperatorType *ot)
Definition file_ops.cc:1575
bool file_draw_check_exists(SpaceFile *sfile)
Definition file_ops.cc:1777
void file_params_renamefile_activate(SpaceFile *sfile, FileSelectParams *params)
Definition filesel.cc:1411
void FILE_OT_next(wmOperatorType *ot)
Definition file_ops.cc:2357
void file_draw_check_cb(bContext *C, void *arg1, void *arg2)
Definition file_ops.cc:1772
void FILE_OT_view_selected(wmOperatorType *ot)
Definition file_ops.cc:1084
int file_context(const bContext *C, const char *member, bContextDataResult *result)
void FILE_OT_highlight(wmOperatorType *ot)
Definition file_ops.cc:1476
void FILE_OT_hidedot(wmOperatorType *ot)
Definition file_ops.cc:3046
void file_draw_list(const bContext *C, ARegion *region)
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
void file_ensure_updated_catalog_filter_data(AssetCatalogFilterSettings *filter_settings, const asset_system::AssetLibrary *asset_library)
AssetCatalogFilterSettings * file_create_asset_catalog_filter_settings()
bool file_is_asset_visible_in_catalog_filter_settings(const AssetCatalogFilterSettings *filter_settings, const AssetMetaData *asset_data)
void file_delete_asset_catalog_filter_settings(AssetCatalogFilterSettings **filter_settings)
bool file_set_asset_catalog_filter_settings(AssetCatalogFilterSettings *filter_settings, eFileSel_Params_AssetCatalogVisibility catalog_visibility, const ::bUUID &catalog_id)
void file_create_asset_catalog_tree_view_in_layout(const bContext *C, asset_system::AssetLibrary *asset_library, uiLayout *layout, SpaceFile *space_file, FileAssetSelectParams *params)
The meta-data of an asset. By creating and giving this for a data-block (ID.asset_data),...
ReportList is_blendfile_readable_reports
onReloadFnData on_reload_custom_data
onReloadFn on_reload
wmOperatorType * ot
Definition wm_files.cc:4225
uint8_t flag
Definition wm_window.cc:139