Blender V4.3
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
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
91
93 int first;
94 int last;
95};
96
108
118 const int temp_win_size[2],
119 bool is_maximized);
120
121void ED_fileselect_init_layout(SpaceFile *sfile, ARegion *region);
122
124
126int ED_fileselect_layout_offset(FileLayout *layout, int x, int y);
128
133void ED_fileselect_layout_maskrect(const FileLayout *layout, const View2D *v2d, rcti *r_rect);
134bool ED_fileselect_layout_is_inside_pt(const FileLayout *layout, const View2D *v2d, int x, int y);
136 const View2D *v2d,
137 const rcti *rect,
138 rcti *r_dst);
139void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y);
140
142
144
146
150 const SpaceFile *sfile);
152
153void ED_fileselect_activate_asset_catalog(const SpaceFile *sfile, bUUID catalog_id);
154
168int /* #eAssetImportMethod */ ED_fileselect_asset_import_method_get(const SpaceFile *sfile,
169 const FileDirEntry *file);
170
175void ED_fileselect_activate_by_id(SpaceFile *sfile, ID *asset_id, bool deferred);
176
178void ED_fileselect_activate_by_relpath(SpaceFile *sfile, const char *relative_path);
179
180void ED_fileselect_window_params_get(const wmWindow *win, int r_win_size[2], bool *r_is_maximized);
181
185ScrArea *ED_fileselect_handler_area_find(const wmWindow *win, const wmOperator *file_operator);
191
196void ED_fileselect_ensure_default_filepath(bContext *C, wmOperator *op, const char *extension);
197
198/* TODO: Maybe we should move this to BLI?
199 * On the other hand, it's using defines from space-file area, so not sure... */
200int ED_path_extension_type(const char *path);
201int ED_file_extension_icon(const char *path);
202int ED_file_icon(const FileDirEntry *file);
203
205
212
213void ED_file_path_button(bScreen *screen,
214 const SpaceFile *sfile,
216 uiBlock *block);
217
218/* File menu stuff */
219
220/* FSMenuEntry's without paths indicate separators */
223
224 char *path;
225 char name[256]; /* FILE_MAXFILE */
226 short save;
227 short valid;
228 int icon;
229};
230
239
242 FS_INSERT_SAVE = (1 << 1),
244 FS_INSERT_FIRST = (1 << 2),
246 FS_INSERT_LAST = (1 << 3),
249};
250
253void ED_fsmenu_set_category(FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head);
254
255int ED_fsmenu_get_nentries(FSMenu *fsmenu, FSMenuCategory category);
256
257FSMenuEntry *ED_fsmenu_get_entry(FSMenu *fsmenu, FSMenuCategory category, int idx);
258
260void ED_fsmenu_entry_set_path(FSMenuEntry *fsentry, const char *path);
261
263void ED_fsmenu_entry_set_name(FSMenuEntry *fsentry, const char *name);
264
266void ED_fsmenu_entry_set_icon(FSMenuEntry *fsentry, int icon);
FSMenuEntry * ED_fsmenu_get_entry(FSMenu *fsmenu, FSMenuCategory category, int idx)
Definition fsmenu.cc:110
int ED_file_icon(const FileDirEntry *file)
Definition filelist.cc:1374
int ED_fsmenu_get_nentries(FSMenu *fsmenu, FSMenuCategory category)
Definition fsmenu.cc:98
FSMenu * ED_fsmenu_get()
Definition fsmenu.cc:45
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:188
void ED_fileselect_activate_by_relpath(SpaceFile *sfile, const char *relative_path)
Definition filesel.cc:593
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:174
void ED_operatormacros_file()
Definition file_ops.cc:3309
int ED_fileselect_layout_numfiles(FileLayout *layout, ARegion *region)
Definition filesel.cc:739
FileSelectParams * ED_fileselect_get_active_params(const SpaceFile *sfile)
Definition filesel.cc:380
void ED_fsmenu_set_category(FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head)
Definition fsmenu.cc:77
bool ED_fileselect_is_local_asset_library(const SpaceFile *sfile)
Definition filesel.cc:408
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:1148
char * ED_fsmenu_entry_get_path(FSMenuEntry *fsentry)
Definition fsmenu.cc:123
void ED_fsmenu_entry_set_icon(FSMenuEntry *fsentry, int icon)
Definition fsmenu.cc:152
int ED_fsmenu_entry_get_icon(FSMenuEntry *fsentry)
Definition fsmenu.cc:147
int ED_fileselect_layout_offset(FileLayout *layout, int x, int y)
Definition filesel.cc:823
ScrArea * ED_fileselect_handler_area_find(const wmWindow *win, const wmOperator *file_operator)
Definition filesel.cc:1431
ScrArea * ED_fileselect_handler_area_find_any_with_op(const wmWindow *win)
Definition filesel.cc:1448
FileSelectParams * ED_fileselect_get_file_params(const SpaceFile *sfile)
Definition filesel.cc:398
FileLayout * ED_fileselect_get_layout(SpaceFile *sfile, ARegion *region)
Definition filesel.cc:1140
int ED_file_extension_icon(const char *path)
Definition filelist.cc:2862
void ED_fileselect_activate_by_id(SpaceFile *sfile, ID *asset_id, bool deferred)
Definition filesel.cc:554
void ED_fileselect_ensure_default_filepath(bContext *C, wmOperator *op, const char *extension)
Definition filesel.cc:1466
FSMenuEntry * ED_fsmenu_get_category(FSMenu *fsmenu, FSMenuCategory category)
Definition fsmenu.cc:53
FileSelectParams * ED_fileselect_ensure_active_params(SpaceFile *sfile)
Definition filesel.cc:361
void ED_fileselect_params_to_userdef(SpaceFile *sfile, const int temp_win_size[2], bool is_maximized)
Definition filesel.cc:688
void ED_fileselect_exit(wmWindowManager *wm, SpaceFile *sfile)
Definition filesel.cc:1303
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:467
void ED_fileselect_deselect_all(SpaceFile *sfile)
Definition filesel.cc:620
FileSelection ED_fileselect_layout_offset_rect(FileLayout *layout, const rcti *rect)
Definition filesel.cc:773
FileAssetSelectParams * ED_fileselect_get_asset_params(const SpaceFile *sfile)
Definition filesel.cc:403
void ED_fsmenu_entry_set_path(FSMenuEntry *fsentry, const char *path)
Definition fsmenu.cc:128
void ED_fileselect_set_params_from_userdef(SpaceFile *sfile)
Definition filesel.cc:658
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:857
int ED_path_extension_type(const char *path)
Definition filelist.cc:2776
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:630
void ED_file_read_bookmarks()
void ED_file_path_button(bScreen *screen, const SpaceFile *sfile, FileSelectParams *params, uiBlock *block)
Definition file_draw.cc:72
void ED_fileselect_init_layout(SpaceFile *sfile, ARegion *region)
Definition filesel.cc:1035
bool ED_fileselect_layout_isect_rect(const FileLayout *layout, const View2D *v2d, const rcti *rect, rcti *r_dst)
Definition filesel.cc:864
void ED_fileselect_clear(wmWindowManager *wm, SpaceFile *sfile)
Definition filesel.cc:1289
void ED_fileselect_layout_maskrect(const FileLayout *layout, const View2D *v2d, rcti *r_rect)
Definition filesel.cc:851
void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y)
Definition filesel.cc:874
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:1181
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
ccl_global const KernelWorkTile * tile
FSMenuEntry * next
FileAttributeColumn attribute_columns[ATTRIBUTE_COLUMN_MAX]
int attribute_column_header_h
Definition DNA_ID.h:413
Universally Unique Identifier according to RFC4122.