Blender V5.0
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"
12
13#include "BKE_report.hh"
14
15#include "ED_fileselect.hh"
16
17/* internal exports only */
18
19struct ARegion;
20struct ARegionType;
23struct FileSelectParams;
24struct Main;
25struct SpaceFile;
26struct View2D;
27struct uiLayout;
28namespace blender::asset_system {
29class AssetLibrary;
30}
31
33
34/* `file_context.cc` */
35
36int /*eContextResult*/ file_context(const bContext *C,
37 const char *member,
39
40/* `file_draw.cc` */
41
42#define ATTRIBUTE_COLUMN_PADDING (0.5f * UI_UNIT_X)
43
44#define FILE_LAYOUT_COMPACT(_layout) \
45 (_layout->flag & FILE_LAYOUT_VER && (_layout->width / UI_SCALE_FAC) < 500)
46#define FILE_LAYOUT_HIDE_DATE(_layout) \
47 (_layout->flag & FILE_LAYOUT_VER && (_layout->width / UI_SCALE_FAC) < 250)
48#define FILE_LAYOUT_HIDE_SIZE(_layout) \
49 (_layout->flag & FILE_LAYOUT_VER && (_layout->width / UI_SCALE_FAC) < 350)
50
51void file_calc_previews(const bContext *C, ARegion *region);
52void file_draw_list(const bContext *C, ARegion *region);
57bool file_draw_hint_if_invalid(const bContext *C, const SpaceFile *sfile, ARegion *region);
58
64void file_draw_check_cb(bContext *C, void *arg1, void *arg2);
66
67/* file_ops.h */
68
69struct wmOperator;
70struct wmOperatorType;
71
86
89
109
118void file_directory_enter_handle(bContext *C, void *arg_unused, void *arg_but);
119void file_filename_enter_handle(bContext *C, void *arg_unused, void *arg_but);
120
121int file_highlight_set(SpaceFile *sfile, ARegion *region, int mx, int my);
122
126void file_sfile_filepath_set(SpaceFile *sfile, const char *filepath);
128 bContext *C, Main *bmain, wmOperator *op, SpaceFile *sfile, char *filepath);
129void file_sfile_to_operator(bContext *C, Main *bmain, wmOperator *op, SpaceFile *sfile);
130
131void file_operator_to_sfile(Main *bmain, SpaceFile *sfile, wmOperator *op);
132
133/* `space_file.cc` */
134
135extern "C" const char *file_context_dir[]; /* doc access */
136
137/* `filesel.cc` */
138
143void fileselect_file_set(bContext *C, SpaceFile *sfile, int index);
146 const FileLayout *layout);
151 const FileLayout *layout,
152 int x,
153 int y);
159 FileLayout *layout,
160 int x);
161float file_string_width(const char *str);
162
163float file_font_pointsize();
165int file_select_match(SpaceFile *sfile, const char *pattern, char *matched_file);
166int autocomplete_directory(bContext *C, char *str, void *arg_v);
167int autocomplete_file(bContext *C, char *str, void *arg_v);
168
182 wmWindow *win,
183 SpaceFile *sfile,
184 const FileDirEntry *rename_file);
190
191using onReloadFnData = void *;
192using onReloadFn = void (*)(SpaceFile *space_data, onReloadFnData custom_data);
194 /* Called once after the file browser has reloaded. Reset to NULL after calling.
195 * Use file_on_reload_callback_register() to register a callback. */
198
199 /* Indicates, if the current filepath is a blendfile library one, if its status has been checked,
200 * and if it is readable. */
204};
205
211 onReloadFn callback,
212 onReloadFnData custom_data);
213
214/* folder_history.cc */
215
216/* not listbase itself */
217void folderlist_free(ListBase *folderlist);
218void folderlist_popdir(ListBase *folderlist, char *dir);
219void folderlist_pushdir(ListBase *folderlist, const char *dir);
220const char *folderlist_peeklastdir(ListBase *folderlist);
222
226
227/* `file_panels.cc` */
228
232
233/* `file_utils.cc` */
234
235void file_tile_boundbox(const ARegion *region, FileLayout *layout, int file, rcti *r_bounds);
236
240void file_path_to_ui_path(const char *path, char *r_path, int r_path_maxncpy);
241
242/* asset_catalog_tree_view.cc */
243
245
247 asset_system::AssetLibrary *asset_library,
248 uiLayout *layout,
249 SpaceFile *space_file,
251
252class AssetCatalogFilterSettings;
253
254AssetCatalogFilterSettings *file_create_asset_catalog_filter_settings();
255void file_delete_asset_catalog_filter_settings(AssetCatalogFilterSettings **filter_settings);
261 AssetCatalogFilterSettings *filter_settings,
263 const ::bUUID &catalog_id);
264void file_ensure_updated_catalog_filter_data(AssetCatalogFilterSettings *filter_settings,
265 const asset_system::AssetLibrary *asset_library);
267 const AssetCatalogFilterSettings *filter_settings, const AssetMetaData *asset_data);
268
269} // 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:2316
void FILE_OT_select_box(wmOperatorType *ot)
Definition file_ops.cc:536
void FILE_OT_directory_new(wmOperatorType *ot)
Definition file_ops.cc:2779
void file_draw_check(bContext *C)
Definition file_ops.cc:1772
void FILE_OT_edit_directory_path(wmOperatorType *ot)
Definition file_ops.cc:3387
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:34
void FILE_OT_bookmark_add(wmOperatorType *ot)
Definition file_ops.cc:1169
void file_params_smoothscroll_timer_clear(wmWindowManager *wm, wmWindow *win, SpaceFile *sfile)
Definition filesel.cc:1341
void FILE_OT_select_bookmark(wmOperatorType *ot)
Definition file_ops.cc:1128
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:899
void FILE_OT_refresh(wmOperatorType *ot)
Definition file_ops.cc:2275
void FILE_OT_mouse_execute(wmOperatorType *ot)
Definition file_ops.cc:2238
void file_calc_previews(const bContext *C, ARegion *region)
Definition file_draw.cc:605
void file_params_rename_end(wmWindowManager *wm, wmWindow *win, SpaceFile *sfile, const FileDirEntry *rename_file)
Definition filesel.cc:1360
void file_params_invoke_rename_postscroll(wmWindowManager *wm, wmWindow *win, SpaceFile *sfile)
Definition filesel.cc:1347
void FILE_OT_sort_column_ui_context(wmOperatorType *ot)
Definition file_ops.cc:1531
void file_operator_to_sfile(Main *bmain, SpaceFile *sfile, wmOperator *op)
Definition file_ops.cc:1701
float file_string_width(const char *str)
Definition filesel.cc:957
void FILE_OT_filepath_drop(wmOperatorType *ot)
Definition file_ops.cc:2633
void FILE_OT_previous(wmOperatorType *ot)
Definition file_ops.cc:2352
bool file_attribute_column_header_is_inside(const View2D *v2d, const FileLayout *layout, int x, int y)
Definition filesel.cc:889
int autocomplete_directory(bContext *C, char *str, void *arg_v)
Definition filesel.cc:1222
int autocomplete_file(bContext *C, char *str, void *arg_v)
Definition filesel.cc:1271
void file_params_renamefile_clear(FileSelectParams *params)
Definition filesel.cc:1377
int file_select_match(SpaceFile *sfile, const char *pattern, char *matched_file)
Definition filesel.cc:1197
void file_execute_region_panels_register(ARegionType *art)
void FILE_OT_bookmark_delete(wmOperatorType *ot)
Definition file_ops.cc:1206
void fileselect_file_set(bContext *C, SpaceFile *sfile, int index)
Definition filesel.cc:721
void FILE_OT_external_operation(wmOperatorType *ot)
Definition file_ops.cc:1917
void file_on_reload_callback_register(SpaceFile *sfile, onReloadFn callback, onReloadFnData custom_data)
void FILE_OT_select_walk(wmOperatorType *ot)
Definition file_ops.cc:940
void FILE_OT_filenum(wmOperatorType *ot)
Definition file_ops.cc:3157
void folder_history_list_free(SpaceFile *sfile)
void * onReloadFnData
void FILE_OT_delete(wmOperatorType *ot)
Definition file_ops.cc:3315
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:21
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:454
void file_sfile_to_operator_ex(bContext *C, Main *bmain, wmOperator *op, SpaceFile *sfile, char *filepath)
Definition file_ops.cc:1595
void FILE_OT_bookmark_cleanup(wmOperatorType *ot)
Definition file_ops.cc:1258
void file_directory_enter_handle(bContext *C, void *arg_unused, void *arg_but)
Definition file_ops.cc:2921
FileAttributeColumnType file_attribute_column_type_find_isect(const View2D *v2d, const FileSelectParams *params, FileLayout *layout, int x)
Definition filesel.cc:917
void file_draw_check_ex(bContext *C, ScrArea *area)
Definition file_ops.cc:1748
void file_sfile_to_operator(bContext *C, Main *bmain, wmOperator *op, SpaceFile *sfile)
Definition file_ops.cc:1694
void FILE_OT_smoothscroll(wmOperatorType *ot)
Definition file_ops.cc:2586
void(*)(SpaceFile *space_data, onReloadFnData custom_data) onReloadFn
void FILE_OT_bookmark_move(wmOperatorType *ot)
Definition file_ops.cc:1346
void FILE_OT_select_all(wmOperatorType *ot)
Definition file_ops.cc:1031
void FILE_OT_reset_recent(wmOperatorType *ot)
Definition file_ops.cc:1395
int file_highlight_set(SpaceFile *sfile, ARegion *region, int mx, int my)
Definition file_ops.cc:1414
void folderlist_free(ListBase *folderlist)
void FILE_OT_select(wmOperatorType *ot)
Definition file_ops.cc:654
void file_sfile_filepath_set(SpaceFile *sfile, const char *filepath)
Definition file_ops.cc:1729
void file_select_deselect_all(SpaceFile *sfile, eDirEntry_SelectFlag flag)
Definition filesel.cc:1188
void FILE_OT_start_filter(wmOperatorType *ot)
Definition file_ops.cc:3351
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:2180
float file_font_pointsize()
Definition filesel.cc:964
void file_external_operations_menu_register()
Definition file_ops.cc:2070
void FILE_OT_rename(wmOperatorType *ot)
Definition file_ops.cc:3214
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:3008
void FILE_OT_cancel(wmOperatorType *ot)
Definition file_ops.cc:1577
bool file_draw_check_exists(SpaceFile *sfile)
Definition file_ops.cc:1783
void file_params_renamefile_activate(SpaceFile *sfile, FileSelectParams *params)
Definition filesel.cc:1391
void FILE_OT_next(wmOperatorType *ot)
Definition file_ops.cc:2389
void file_draw_check_cb(bContext *C, void *arg1, void *arg2)
Definition file_ops.cc:1778
void FILE_OT_view_selected(wmOperatorType *ot)
Definition file_ops.cc:1087
int file_context(const bContext *C, const char *member, bContextDataResult *result)
void FILE_OT_highlight(wmOperatorType *ot)
Definition file_ops.cc:1478
void FILE_OT_hidedot(wmOperatorType *ot)
Definition file_ops.cc:3079
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:4237
uint8_t flag
Definition wm_window.cc:145