Blender V4.5
ED_fileselect.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_uuid_types.h"
12
13struct ARegion;
15struct FileDirEntry;
16struct FileSelectParams;
17struct FSMenu;
18struct FSMenuEntry;
19struct ID;
20struct ScrArea;
21struct SpaceFile;
22struct bContext;
23struct bScreen;
24struct uiBlock;
25struct wmOperator;
26struct wmWindow;
27struct wmWindowManager;
28struct View2D;
29struct rcti;
30namespace blender::asset_system {
31class AssetLibrary;
32}
33
34#define FILE_LAYOUT_HOR 1
35#define FILE_LAYOUT_VER 2
36
45
48 const char *name;
49
50 float width;
52 int sort_type; /* eFileSortType */
53
55 int text_align; /* eFontStyle_Align */
56};
57
98
100 int first;
101 int last;
102};
103
115
125 const int temp_win_size[2],
126 bool is_maximized);
127
128void ED_fileselect_init_layout(SpaceFile *sfile, ARegion *region);
129
131
133int ED_fileselect_layout_offset(FileLayout *layout, int x, int y);
135
140void ED_fileselect_layout_maskrect(const FileLayout *layout, const View2D *v2d, rcti *r_rect);
141bool ED_fileselect_layout_is_inside_pt(const FileLayout *layout, const View2D *v2d, int x, int y);
143 const View2D *v2d,
144 const rcti *rect,
145 rcti *r_dst);
146void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y);
147
149
152
154
158 const SpaceFile *sfile);
160
161void ED_fileselect_activate_asset_catalog(const SpaceFile *sfile, bUUID catalog_id);
162
176int /* #eAssetImportMethod */ ED_fileselect_asset_import_method_get(const SpaceFile *sfile,
177 const FileDirEntry *file);
178
183void ED_fileselect_activate_by_id(SpaceFile *sfile, ID *asset_id, bool deferred);
184
186void ED_fileselect_activate_by_relpath(SpaceFile *sfile, const char *relative_path);
187
188void ED_fileselect_window_params_get(const wmWindow *win, int r_win_size[2], bool *r_is_maximized);
189
193ScrArea *ED_fileselect_handler_area_find(const wmWindow *win, const wmOperator *file_operator);
199
204void ED_fileselect_ensure_default_filepath(bContext *C, wmOperator *op, const char *extension);
205
206/* TODO: Maybe we should move this to BLI?
207 * On the other hand, it's using defines from space-file area, so not sure... */
208int ED_path_extension_type(const char *path);
209int ED_file_extension_icon(const char *path);
210int ED_file_icon(const FileDirEntry *file);
211
213
220
221void ED_file_path_button(bScreen *screen,
222 const SpaceFile *sfile,
224 uiBlock *block);
225
226/* File menu stuff */
227
228/* FSMenuEntry's without paths indicate separators */
231
232 char *path;
233 char name[256]; /* FILE_MAXFILE */
234 short save;
235 short valid;
236 int icon;
237};
238
247
250 FS_INSERT_SAVE = (1 << 1),
252 FS_INSERT_FIRST = (1 << 2),
254 FS_INSERT_LAST = (1 << 3),
257};
258
261void ED_fsmenu_set_category(FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head);
262
263int ED_fsmenu_get_nentries(FSMenu *fsmenu, FSMenuCategory category);
264
265FSMenuEntry *ED_fsmenu_get_entry(FSMenu *fsmenu, FSMenuCategory category, int idx);
266
268void ED_fsmenu_entry_set_path(FSMenuEntry *fsentry, const char *path);
269
271void ED_fsmenu_entry_set_name(FSMenuEntry *fsentry, const char *name);
272
274void ED_fsmenu_entry_set_icon(FSMenuEntry *fsentry, int icon);
FSMenuEntry * ED_fsmenu_get_entry(FSMenu *fsmenu, FSMenuCategory category, int idx)
Definition fsmenu.cc:111
int ED_file_icon(const FileDirEntry *file)
Definition filelist.cc:1348
int ED_fsmenu_get_nentries(FSMenu *fsmenu, FSMenuCategory category)
Definition fsmenu.cc:99
FSMenu * ED_fsmenu_get()
Definition fsmenu.cc:46
void ED_fileselect_activate_asset_catalog(const SpaceFile *sfile, bUUID catalog_id)
Definition filesel.cc:503
bool ED_fileselect_is_file_browser(const SpaceFile *sfile)
Definition filesel.cc:465
void ED_fsmenu_entry_set_name(FSMenuEntry *fsentry, const char *name)
Definition fsmenu.cc:189
void ED_fileselect_activate_by_relpath(SpaceFile *sfile, const char *relative_path)
Definition filesel.cc:596
FSMenuCategory
@ FS_CATEGORY_RECENT
@ FS_CATEGORY_BOOKMARKS
@ FS_CATEGORY_SYSTEM_BOOKMARKS
@ FS_CATEGORY_OTHER
@ FS_CATEGORY_SYSTEM
char * ED_fsmenu_entry_get_name(FSMenuEntry *fsentry)
Definition fsmenu.cc:175
void ED_operatormacros_file()
Definition file_ops.cc:3372
int ED_fileselect_layout_numfiles(FileLayout *layout, ARegion *region)
Definition filesel.cc:742
FileSelectParams * ED_fileselect_get_active_params(const SpaceFile *sfile)
Definition filesel.cc:382
void ED_fsmenu_set_category(FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head)
Definition fsmenu.cc:78
bool ED_fileselect_is_local_asset_library(const SpaceFile *sfile)
Definition filesel.cc:410
ID * ED_fileselect_active_asset_get(const SpaceFile *sfile)
Definition filesel.cc:484
void ED_file_change_dir_ex(bContext *C, ScrArea *area)
Definition filesel.cc:1157
char * ED_fsmenu_entry_get_path(FSMenuEntry *fsentry)
Definition fsmenu.cc:124
void ED_fsmenu_entry_set_icon(FSMenuEntry *fsentry, int icon)
Definition fsmenu.cc:153
int ED_fsmenu_entry_get_icon(FSMenuEntry *fsentry)
Definition fsmenu.cc:148
int ED_fileselect_layout_offset(FileLayout *layout, int x, int y)
Definition filesel.cc:829
ScrArea * ED_fileselect_handler_area_find(const wmWindow *win, const wmOperator *file_operator)
Definition filesel.cc:1455
ScrArea * ED_fileselect_handler_area_find_any_with_op(const wmWindow *win)
Definition filesel.cc:1472
FileSelectParams * ED_fileselect_get_file_params(const SpaceFile *sfile)
Definition filesel.cc:400
FileLayout * ED_fileselect_get_layout(SpaceFile *sfile, ARegion *region)
Definition filesel.cc:1149
int ED_file_extension_icon(const char *path)
Definition filelist.cc:2842
void ED_fileselect_activate_by_id(SpaceFile *sfile, ID *asset_id, bool deferred)
Definition filesel.cc:557
void ED_fileselect_ensure_default_filepath(bContext *C, wmOperator *op, const char *extension)
Definition filesel.cc:1490
FSMenuEntry * ED_fsmenu_get_category(FSMenu *fsmenu, FSMenuCategory category)
Definition fsmenu.cc:54
FileSelectParams * ED_fileselect_ensure_active_params(SpaceFile *sfile)
Definition filesel.cc:363
void ED_fileselect_params_to_userdef(SpaceFile *sfile, const int temp_win_size[2], bool is_maximized)
Definition filesel.cc:691
void ED_fileselect_exit(wmWindowManager *wm, SpaceFile *sfile)
Definition filesel.cc:1328
FSMenuInsert
@ FS_INSERT_SAVE
@ FS_INSERT_FIRST
@ FS_INSERT_NO_VALIDATE
@ FS_INSERT_SORTED
@ FS_INSERT_LAST
bool ED_fileselect_is_asset_browser(const SpaceFile *sfile)
Definition filesel.cc:470
void ED_fileselect_deselect_all(SpaceFile *sfile)
Definition filesel.cc:623
FileSelection ED_fileselect_layout_offset_rect(FileLayout *layout, const rcti *rect)
Definition filesel.cc:777
FileAssetSelectParams * ED_fileselect_get_asset_params(const SpaceFile *sfile)
Definition filesel.cc:405
void ED_fsmenu_entry_set_path(FSMenuEntry *fsentry, const char *path)
Definition fsmenu.cc:129
void ED_fileselect_set_params_from_userdef(SpaceFile *sfile)
Definition filesel.cc:661
FileAttributeColumnType
@ COLUMN_DATETIME
@ ATTRIBUTE_COLUMN_MAX
@ COLUMN_NAME
@ COLUMN_NONE
@ COLUMN_SIZE
bool ED_fileselect_layout_is_inside_pt(const FileLayout *layout, const View2D *v2d, int x, int y)
Definition filesel.cc:864
int ED_path_extension_type(const char *path)
Definition filelist.cc:2756
blender::asset_system::AssetLibrary * ED_fileselect_active_asset_library_get(const SpaceFile *sfile)
Definition filesel.cc:475
void ED_fileselect_window_params_get(const wmWindow *win, int r_win_size[2], bool *r_is_maximized)
Definition filesel.cc:633
void ED_file_read_bookmarks()
void ED_file_path_button(bScreen *screen, const SpaceFile *sfile, FileSelectParams *params, uiBlock *block)
Definition file_draw.cc:76
void ED_fileselect_init_layout(SpaceFile *sfile, ARegion *region)
Definition filesel.cc:1038
void ED_fileselect_clear_main_assets(wmWindowManager *wm, SpaceFile *sfile)
Definition filesel.cc:1312
bool ED_fileselect_layout_isect_rect(const FileLayout *layout, const View2D *v2d, const rcti *rect, rcti *r_dst)
Definition filesel.cc:871
void ED_fileselect_clear(wmWindowManager *wm, SpaceFile *sfile)
Definition filesel.cc:1298
void ED_fileselect_layout_maskrect(const FileLayout *layout, const View2D *v2d, rcti *r_rect)
Definition filesel.cc:858
void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y)
Definition filesel.cc:881
int ED_fileselect_asset_import_method_get(const SpaceFile *sfile, const FileDirEntry *file)
Definition filesel.cc:515
void ED_file_change_dir(bContext *C)
Definition filesel.cc:1190
#define C
Definition RandGen.cpp:29
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
const ccl_global KernelWorkTile * tile
char name[256]
FSMenuEntry * next
FileAttributeColumn attribute_columns[ATTRIBUTE_COLUMN_MAX]
int attribute_column_header_h
Definition DNA_ID.h:404
Universally Unique Identifier according to RFC4122.