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 <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 const int temp_win_size[2],
130 bool is_maximized);
131
132void ED_fileselect_init_layout(SpaceFile *sfile, ARegion *region);
133
135
137int ED_fileselect_layout_offset(FileLayout *layout, int x, int y);
139
144void ED_fileselect_layout_maskrect(const FileLayout *layout, const View2D *v2d, rcti *r_rect);
145bool ED_fileselect_layout_is_inside_pt(const FileLayout *layout, const View2D *v2d, int x, int y);
147 const View2D *v2d,
148 const rcti *rect,
149 rcti *r_dst);
150void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y);
151
153
156
158
162 const SpaceFile *sfile);
164
165void ED_fileselect_activate_asset_catalog(const SpaceFile *sfile, bUUID catalog_id);
166
180int /* #eAssetImportMethod */ ED_fileselect_asset_import_method_get(const SpaceFile *sfile,
181 const FileDirEntry *file);
182
187void ED_fileselect_activate_by_id(SpaceFile *sfile, ID *asset_id, bool deferred);
188
190void ED_fileselect_activate_by_relpath(SpaceFile *sfile, const char *relative_path);
191
192void ED_fileselect_window_params_get(const wmWindow *win, int r_win_size[2], bool *r_is_maximized);
193
197ScrArea *ED_fileselect_handler_area_find(const wmWindow *win, const wmOperator *file_operator);
203
208void ED_fileselect_ensure_default_filepath(bContext *C, wmOperator *op, const char *extension);
209
211
212/* TODO: Maybe we should move this to BLI?
213 * On the other hand, it's using defines from space-file area, so not sure... */
214int ED_path_extension_type(const char *path);
215int ED_file_extension_icon(const char *path);
216int ED_file_icon(const FileDirEntry *file);
217
219
226
227void ED_file_path_button(bScreen *screen,
228 const SpaceFile *sfile,
230 uiBlock *block);
231
232/* File menu stuff */
233
234/* FSMenuEntry's without paths indicate separators */
237
238 char *path;
239 char name[256]; /* FILE_MAXFILE */
240 short save;
241 short valid;
242 int icon;
243};
244
253
256 FS_INSERT_SAVE = (1 << 1),
258 FS_INSERT_FIRST = (1 << 2),
260 FS_INSERT_LAST = (1 << 3),
263};
264
267void ED_fsmenu_set_category(FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head);
268
269int ED_fsmenu_get_nentries(FSMenu *fsmenu, FSMenuCategory category);
270
271FSMenuEntry *ED_fsmenu_get_entry(FSMenu *fsmenu, FSMenuCategory category, int idx);
272
274void ED_fsmenu_entry_set_path(FSMenuEntry *fsentry, const char *path);
275
277void ED_fsmenu_entry_set_name(FSMenuEntry *fsentry, const char *name);
278
280void 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
blender::Vector< std::string > ED_fileselect_selected_files_full_paths(const SpaceFile *sfile)
Definition filesel.cc:1509
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.