Blender V5.0
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 <string>
12
13#include "BLI_vector.hh"
14
15#include "DNA_uuid_types.h"
16
17struct ARegion;
19struct FileDirEntry;
20struct FileSelectParams;
21struct FSMenu;
22struct FSMenuEntry;
23struct ID;
24struct ScrArea;
25struct SpaceFile;
26struct bContext;
27struct bScreen;
28struct uiBlock;
29struct wmOperator;
30struct wmWindow;
31struct wmWindowManager;
32struct View2D;
33struct rcti;
34namespace blender::asset_system {
35class AssetLibrary;
36}
37
38#define FILE_LAYOUT_HOR 1
39#define FILE_LAYOUT_VER 2
40
49
52 const char *name;
53
54 float width;
56 int sort_type; /* eFileSortType */
57
59 int text_align; /* eFontStyle_Align */
60};
61
102
104 int first;
105 int last;
106};
107
119
129
130void ED_fileselect_init_layout(SpaceFile *sfile, ARegion *region);
131
133
135int ED_fileselect_layout_offset(FileLayout *layout, int x, int y);
137
142void ED_fileselect_layout_maskrect(const FileLayout *layout, const View2D *v2d, rcti *r_rect);
143bool ED_fileselect_layout_is_inside_pt(const FileLayout *layout, const View2D *v2d, int x, int y);
145 const View2D *v2d,
146 const rcti *rect,
147 rcti *r_dst);
148void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y);
149
151
154
156
160 const SpaceFile *sfile);
162
163void ED_fileselect_activate_asset_catalog(const SpaceFile *sfile, bUUID catalog_id);
164
178int /* #eAssetImportMethod */ ED_fileselect_asset_import_method_get(const SpaceFile *sfile,
179 const FileDirEntry *file);
180
185void ED_fileselect_activate_by_id(SpaceFile *sfile, ID *asset_id, bool deferred);
186
188void ED_fileselect_activate_by_relpath(SpaceFile *sfile, const char *relative_path);
189
190void ED_fileselect_window_params_get(const wmWindow *win, int r_win_size[2], bool *r_is_maximized);
191
195ScrArea *ED_fileselect_handler_area_find(const wmWindow *win, const wmOperator *file_operator);
201
206void ED_fileselect_ensure_default_filepath(bContext *C, wmOperator *op, const char *extension);
207
209
210/* TODO: Maybe we should move this to BLI?
211 * On the other hand, it's using defines from space-file area, so not sure... */
212int ED_path_extension_type(const char *path);
213int ED_file_extension_icon(const char *path);
214int ED_file_icon(const FileDirEntry *file);
215
217
224
225void ED_file_path_button(bScreen *screen,
226 const SpaceFile *sfile,
228 uiBlock *block);
229
230/* File menu stuff */
231
232/* FSMenuEntry's without paths indicate separators */
235
236 char *path;
237 char name[/*FILE_MAXFILE*/ 256];
238 short save;
239 int icon;
240};
241
250
253 FS_INSERT_SAVE = (1 << 1),
255 FS_INSERT_FIRST = (1 << 2),
257 FS_INSERT_LAST = (1 << 3),
258};
259
262void ED_fsmenu_set_category(FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head);
263
264int ED_fsmenu_get_nentries(FSMenu *fsmenu, FSMenuCategory category);
265
266FSMenuEntry *ED_fsmenu_get_entry(FSMenu *fsmenu, FSMenuCategory category, int idx);
267
269void ED_fsmenu_entry_set_path(FSMenuEntry *fsentry, const char *path);
270
272void ED_fsmenu_entry_set_name(FSMenuEntry *fsentry, const char *name);
273
275void 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:397
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:500
bool ED_fileselect_is_file_browser(const SpaceFile *sfile)
Definition filesel.cc:462
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:595
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:3405
void ED_fileselect_params_to_userdef(SpaceFile *sfile)
Definition filesel.cc:691
int ED_fileselect_layout_numfiles(FileLayout *layout, ARegion *region)
Definition filesel.cc:735
FileSelectParams * ED_fileselect_get_active_params(const SpaceFile *sfile)
Definition filesel.cc:379
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:407
ID * ED_fileselect_active_asset_get(const SpaceFile *sfile)
Definition filesel.cc:481
void ED_file_change_dir_ex(bContext *C, ScrArea *area)
Definition filesel.cc:1149
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:821
ScrArea * ED_fileselect_handler_area_find(const wmWindow *win, const wmOperator *file_operator)
Definition filesel.cc:1435
ScrArea * ED_fileselect_handler_area_find_any_with_op(const wmWindow *win)
Definition filesel.cc:1452
FileSelectParams * ED_fileselect_get_file_params(const SpaceFile *sfile)
Definition filesel.cc:397
FileLayout * ED_fileselect_get_layout(SpaceFile *sfile, ARegion *region)
Definition filesel.cc:1141
int ED_file_extension_icon(const char *path)
Definition filelist.cc:1869
void ED_fileselect_activate_by_id(SpaceFile *sfile, ID *asset_id, bool deferred)
Definition filesel.cc:556
void ED_fileselect_ensure_default_filepath(bContext *C, wmOperator *op, const char *extension)
Definition filesel.cc:1470
FSMenuEntry * ED_fsmenu_get_category(FSMenu *fsmenu, FSMenuCategory category)
Definition fsmenu.cc:54
blender::Vector< std::string > ED_fileselect_selected_files_full_paths(const SpaceFile *sfile)
Definition filesel.cc:1489
FileSelectParams * ED_fileselect_ensure_active_params(SpaceFile *sfile)
Definition filesel.cc:360
void ED_fileselect_exit(wmWindowManager *wm, SpaceFile *sfile)
Definition filesel.cc:1321
FSMenuInsert
@ FS_INSERT_SAVE
@ FS_INSERT_FIRST
@ FS_INSERT_SORTED
@ FS_INSERT_LAST
bool ED_fileselect_is_asset_browser(const SpaceFile *sfile)
Definition filesel.cc:467
void ED_fileselect_deselect_all(SpaceFile *sfile)
Definition filesel.cc:622
FileSelection ED_fileselect_layout_offset_rect(FileLayout *layout, const rcti *rect)
Definition filesel.cc:769
FileAssetSelectParams * ED_fileselect_get_asset_params(const SpaceFile *sfile)
Definition filesel.cc:402
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:856
int ED_path_extension_type(const char *path)
Definition filelist.cc:1786
blender::asset_system::AssetLibrary * ED_fileselect_active_asset_library_get(const SpaceFile *sfile)
Definition filesel.cc:472
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:77
void ED_fileselect_init_layout(SpaceFile *sfile, ARegion *region)
Definition filesel.cc:1030
void ED_fileselect_clear_main_assets(wmWindowManager *wm, SpaceFile *sfile)
Definition filesel.cc:1305
bool ED_fileselect_layout_isect_rect(const FileLayout *layout, const View2D *v2d, const rcti *rect, rcti *r_dst)
Definition filesel.cc:863
void ED_fileselect_clear(wmWindowManager *wm, SpaceFile *sfile)
Definition filesel.cc:1291
void ED_fileselect_layout_maskrect(const FileLayout *layout, const View2D *v2d, rcti *r_rect)
Definition filesel.cc:850
void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y)
Definition filesel.cc:873
int ED_fileselect_asset_import_method_get(const SpaceFile *sfile, const FileDirEntry *file)
Definition filesel.cc:512
void ED_file_change_dir(bContext *C)
Definition filesel.cc:1182
#define C
Definition RandGen.cpp:29
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
const ccl_global KernelWorkTile * tile
const char * name
char name[256]
FSMenuEntry * next
FileAttributeColumn attribute_columns[ATTRIBUTE_COLUMN_MAX]
int attribute_column_header_h
Definition DNA_ID.h:414
Universally Unique Identifier according to RFC4122.