Blender
V3.3
|
#include <errno.h>
#include <math.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_alloca.h"
#include "BLI_blenlib.h"
#include "BLI_fileops_types.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BIF_glutil.h"
#include "BKE_blendfile.h"
#include "BKE_context.h"
#include "BKE_report.h"
#include "BLO_readfile.h"
#include "BLT_translation.h"
#include "BLF_api.h"
#include "IMB_imbuf_types.h"
#include "DNA_userdef_types.h"
#include "DNA_windowmanager_types.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "ED_fileselect.h"
#include "ED_screen.h"
#include "UI_interface.h"
#include "UI_interface_icons.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "WM_api.h"
#include "WM_types.h"
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
#include "GPU_state.h"
#include "filelist.h"
#include "file_intern.h"
Go to the source code of this file.
Functions | |
void | ED_file_path_button (bScreen *screen, const SpaceFile *sfile, FileSelectParams *params, uiBlock *block) |
static char * | file_draw_tooltip_func (bContext *UNUSED(C), void *argN, const char *UNUSED(tip)) |
static void | draw_tile_background (const rcti *draw_rect, int colorid, int shade) |
static void | file_draw_icon (const SpaceFile *sfile, uiBlock *block, const FileDirEntry *file, const char *path, const rcti *tile_draw_rect, int icon, int width, int height, bool drag, bool dimmed) |
static void | file_draw_string (int sx, int sy, const char *string, float width, int height, eFontStyle_Align align, const uchar col[4]) |
static void | file_draw_string_multiline (int sx, int sy, const char *string, int wrap_width, int line_height, const uchar text_col[4], int *r_sx, int *r_sy) |
void | file_calc_previews (const bContext *C, ARegion *region) |
static void | file_draw_preview (const SpaceFile *sfile, uiBlock *block, const FileDirEntry *file, const char *path, const rcti *tile_draw_rect, const float icon_aspect, ImBuf *imb, const int icon, FileLayout *layout, const bool is_icon, const bool drag, const bool dimmed, const bool is_link) |
static void | renamebutton_cb (bContext *C, void *UNUSED(arg1), char *oldname) |
static void | draw_background (FileLayout *layout, View2D *v2d) |
static void | draw_dividers (FileLayout *layout, View2D *v2d) |
static void | draw_columnheader_background (const FileLayout *layout, const View2D *v2d) |
static void | draw_columnheader_columns (const FileSelectParams *params, FileLayout *layout, const View2D *v2d, const uchar text_col[4]) |
static const char * | filelist_get_details_column_string (FileAttributeColumnType column, FileDirEntry *file, const bool small_size, const bool update_stat_strings) |
static void | draw_details_columns (const FileSelectParams *params, const FileLayout *layout, FileDirEntry *file, const rcti *tile_draw_rect, const uchar text_col[4]) |
static rcti | tile_draw_rect_get (const View2D *v2d, const FileLayout *layout, const enum eFileDisplayType display, const int file_idx, const int padx) |
void | file_draw_list (const bContext *C, ARegion *region) |
static void | file_draw_invalid_asset_library_hint (const bContext *C, const SpaceFile *sfile, ARegion *region, FileAssetSelectParams *asset_params) |
static void | file_draw_invalid_library_hint (const bContext *UNUSED(C), const SpaceFile *sfile, ARegion *region, const char *blendfile_path, ReportList *reports) |
bool | file_draw_hint_if_invalid (const bContext *C, const SpaceFile *sfile, ARegion *region) |
|
static |
Definition at line 578 of file file_draw.c.
References View2D::cur, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), immBindBuiltinProgram(), immRectf(), immUnbindProgram(), immUniformThemeColorBlend(), immVertexFormat(), FileLayout::offset_top, pos, round_fl_to_int(), FileLayout::rows, sy, TH_BACK, TH_ROW_ALTERNATE, FileLayout::tile_border_y, FileLayout::tile_h, View2D::tot, UI_GetThemeColor4fv(), rctf::xmax, rctf::xmin, and rctf::ymax.
Referenced by file_draw_list().
|
static |
Definition at line 660 of file file_draw.c.
References FileLayout::attribute_column_header_h, View2D::cur, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), immBindBuiltinProgram(), immRectf(), immUnbindProgram(), immUniformThemeColorShade(), immVertexFormat(), pos, TH_BACK, rctf::xmax, rctf::xmin, and rctf::ymax.
Referenced by file_draw_list().
|
static |
Definition at line 676 of file file_draw.c.
References FileLayout::attribute_column_header_h, ATTRIBUTE_COLUMN_MAX, ATTRIBUTE_COLUMN_PADDING, FileLayout::attribute_columns, COLUMN_NAME, View2D::cur, file_attribute_column_type_enabled(), file_draw_string(), FILE_SORT_INVERT, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_PRIM_LINES, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), IFACE_, immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniformThemeColorShade(), immVertex2f(), immVertexFormat(), FileAttributeColumn::name, params, pos, rgba_uchar_to_float(), FileAttributeColumn::sort_type, sx, sy, TH_BACK, FileLayout::tile_border_y, UI_draw_icon_tri(), UI_STYLE_TEXT_LEFT, FileAttributeColumn::width, rctf::xmax, rctf::xmin, and rctf::ymax.
Referenced by file_draw_list().
|
static |
Definition at line 794 of file file_draw.c.
References ATTRIBUTE_COLUMN_MAX, ATTRIBUTE_COLUMN_PADDING, FileLayout::attribute_columns, COLUMN_NAME, FileLayout::curr_size, file, file_attribute_column_type_enabled(), file_draw_string(), filelist_get_details_column_string(), IFACE_, params, SMALL_SIZE_CHECK, str, sx, FileAttributeColumn::text_align, FileLayout::tile_border_x, FileLayout::tile_border_y, FileLayout::tile_h, UI_UNIT_X, FileAttributeColumn::width, rcti::xmin, and rcti::ymax.
Referenced by file_draw_list().
|
static |
Definition at line 607 of file file_draw.c.
References color, View2D::cur, GPU_COMP_I32, GPU_COMP_U8, GPU_FETCH_INT_TO_FLOAT, GPU_FETCH_INT_TO_FLOAT_UNIT, GPU_PRIM_LINES, GPU_SHADER_2D_FLAT_COLOR, GPU_vertformat_attr_add(), immAttr3ubv(), immAttrSkip(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immVertex2iv(), immVertexFormat(), pos, sx, TH_BACK, FileLayout::tile_border_x, FileLayout::tile_border_y, FileLayout::tile_w, View2D::tot, UI_GetThemeColorShade3ubv(), v1, v2, rctf::xmin, rctf::ymax, and rctf::ymin.
Referenced by file_draw_list().
Definition at line 119 of file file_draw.c.
References BLI_rctf_rcti_copy(), color, UI_CNR_ALL, UI_draw_roundbox_aa(), UI_draw_roundbox_corner_set(), and UI_GetThemeColorShade4fv().
Referenced by file_draw_list().
void ED_file_path_button | ( | bScreen * | screen, |
const SpaceFile * | sfile, | ||
FileSelectParams * | params, | ||
uiBlock * | block | ||
) |
Definition at line 63 of file file_draw.c.
References autocomplete_directory(), BLI_assert, BLI_assert_msg, file_directory_enter_handle(), file_draw_check_cb(), FILE_MAX, filelist_lib(), SpaceFile::files, bScreen::id, NULL, params, RNA_pointer_create(), TIP_, UI_block_func_set(), UI_BTYPE_TEXT, UI_BUT_DISABLED, UI_but_flag_enable(), UI_but_flag_is_set(), UI_but_func_complete_set(), UI_but_funcN_set(), UI_but_is_utf8(), UI_BUT_UNDO, UI_UNIT_X, UI_UNIT_Y, and uiDefButR().
Definition at line 288 of file file_draw.c.
References C, CTX_wm_space_file(), ED_fileselect_init_layout(), FileLayout::height, SpaceFile::layout, UI_view2d_totRect_set(), ARegion::v2d, and FileLayout::width.
Referenced by file_main_region_draw().
Draw a string hint if the file list is invalid.
Definition at line 1199 of file file_draw.c.
References ASSET_LIBRARY_LOCAL, FileAssetSelectParams::asset_library_ref, FileAssetSelectParams::base_params, BKE_blendfile_is_readable(), BKE_reports_clear(), C, FileSelectParams::dir, ED_fileselect_get_asset_params(), ED_fileselect_is_asset_browser(), file_draw_invalid_asset_library_hint(), file_draw_invalid_library_hint(), FILE_MAX_LIBEXTRA, filelist_files_num_entries(), filelist_is_dir(), filelist_is_ready(), filelist_islibrary(), SpaceFile::files, SpaceFile_Runtime::is_blendfile_readable, SpaceFile_Runtime::is_blendfile_readable_reports, SpaceFile_Runtime::is_blendfile_status_set, NULL, SpaceFile::runtime, and AssetLibraryReference::type.
Referenced by file_main_region_draw().
|
static |
Definition at line 130 of file file_draw.c.
References BLI_assert, BLI_strdup(), BLO_library_path_explode(), SpaceFile::browse_mode, ED_fileselect_get_asset_params(), file, FILE_BROWSE_MODE_ASSETS, file_draw_tooltip_func(), FILE_MAX_LIBEXTRA, FILE_TYPE_ASSET, filelist_file_get_id(), filelist_file_getimage(), height, id, FileAssetSelectParams::import_type, SpaceFile::layout, MEM_freeN, NULL, FileLayout::tile_border_y, UI_BTYPE_LABEL, UI_but_drag_attach_image(), UI_but_drag_set_asset(), UI_but_drag_set_id(), UI_but_drag_set_path(), UI_but_func_tooltip_set(), UI_DPI_FAC, uiDefIconBut(), width, x, rcti::xmin, y, and rcti::ymax.
Referenced by file_draw_list().
|
static |
Definition at line 1088 of file file_draw.c.
References FileAssetSelectParams::base_params, BLI_rctf_size_x(), C, FileSelectParams::dir, file_draw_string(), file_draw_string_multiline(), file_path_to_ui_path(), SpaceFile::layout, NULL, pad, PATH_MAX, RNA_enum_set(), sx, sy, FileLayout::textheight, TH_TEXT, FileLayout::tile_border_x, TIP_, View2D::tot, UI_block_begin(), UI_block_draw(), UI_block_end(), UI_BTYPE_BUT, UI_but_operator_ptr_get(), UI_EMBOSS, UI_GetThemeColor4ubv(), UI_icon_draw(), UI_STYLE_TEXT_LEFT, UI_UNIT_X, UI_UNIT_Y, uiDefIconTextButO(), USER_SECTION_FILE_PATHS, ARegion::v2d, width, WM_OP_INVOKE_DEFAULT, rctf::xmin, and rctf::ymax.
Referenced by file_draw_hint_if_invalid().
|
static |
Definition at line 1147 of file file_draw.c.
References BLI_rctf_size_x(), file_draw_string(), file_draw_string_multiline(), SpaceFile::layout, ReportList::list, LISTBASE_FOREACH, NULL, pad, RPT_INFO, RPT_WARNING, sx, sy, FileLayout::textheight, TH_TEXT, FileLayout::tile_border_x, TIP_, View2D::tot, UI_GetThemeColor4ubv(), UI_icon_draw(), UI_STYLE_TEXT_LEFT, UI_UNIT_X, UI_UNIT_Y, ARegion::v2d, width, rctf::xmin, and rctf::ymax.
Referenced by file_draw_hint_if_invalid().
Definition at line 856 of file file_draw.c.
References ATTRIBUTE_COLUMN_PADDING, FileLayout::attribute_columns, BLF_batch_draw_begin(), BLF_batch_draw_end(), BLI_assert, BLI_join_dirfile(), BLI_rcti_translate(), C, CHECK_ALL, COLUMN_NAME, CTX_wm_manager(), CTX_wm_space_file(), CTX_wm_window(), View2D::cur, FileLayout::curr_size, draw_background(), draw_columnheader_background(), draw_columnheader_columns(), draw_details_columns(), draw_dividers(), draw_tile_background(), ED_fileselect_get_active_params(), ED_fileselect_get_layout(), ED_fileselect_layout_numfiles(), ED_fileselect_layout_offset(), file, FILE_ATTR_ANY_LINK, FILE_ATTR_HIDDEN, file_draw_icon(), file_draw_preview(), file_draw_string(), FILE_IMGDISPLAY, FILE_LAYOUT_HOR, FILE_MAX_LIBEXTRA, file_params_rename_end(), FILE_SEL_EDITING, FILE_SEL_HIGHLIGHTED, FILE_SEL_SELECTED, FILE_VERTICALDISPLAY, filelist_cache_previews_done(), filelist_cache_previews_running(), filelist_cache_previews_update(), filelist_dir(), filelist_entry_select_get(), filelist_file(), filelist_file_cache_block(), filelist_file_cache_slidingwindow_set(), filelist_files_ensure(), filelist_geticon(), filelist_geticon_image(), filelist_getimage(), FILENAME_IS_CURRPAR, SpaceFile::files, FileLayout::flag, FileLayout::flow_columns, ICON_DEFAULT_HEIGHT_SCALE, ICON_DEFAULT_WIDTH_SCALE, MIN2, min_ii(), NC_SPACE, ND_SPACE_FILE_PARAMS, ND_SPACE_FILE_PREVIEW, NULL, offset, params, SpaceFile::previews_timer, renamebutton_cb(), round_fl_to_int(), FileLayout::rows, FileLayout::textheight, TH_BACK, TH_HILITE, TH_TEXT, FileLayout::tile_border_x, FileLayout::tile_border_y, tile_draw_rect_get(), FileLayout::tile_w, UI_block_begin(), UI_block_draw(), UI_block_end(), UI_BTYPE_TEXT, UI_but_active_only(), UI_but_flag_disable(), UI_but_flag_enable(), UI_but_func_rename_set(), UI_BUT_NO_UTF8, UI_BUT_UNDO, UI_CNR_NONE, UI_draw_roundbox_corner_set(), UI_EMBOSS, UI_GetThemeColor4ubv(), UI_STYLE_TEXT_CENTER, UI_STYLE_TEXT_LEFT, UI_UNIT_X, uiDefBut(), UNUSED_VARS_NDEBUG, ARegion::v2d, FileAttributeColumn::width, width, WM_event_add_notifier_ex(), WM_event_add_timer_notifier(), WM_event_remove_timer_notifier(), rcti::xmin, rctf::xmin, rcti::ymax, rctf::ymax, and rcti::ymin.
Referenced by file_main_region_draw().
|
static |
Definition at line 297 of file file_draw.c.
References BLI_assert, BLI_rcti_pad(), BLI_rcti_size_x(), BLI_rcti_size_y(), BLI_strdup(), BLO_library_path_explode(), SpaceFile::browse_mode, col, ED_fileselect_get_asset_params(), file, FILE_ATTR_OFFLINE, FILE_BROWSE_MODE_ASSETS, FILE_MAX_LIBEXTRA, FILE_TYPE_ASSET, FILE_TYPE_BLENDER, FILE_TYPE_BLENDERLIB, FILE_TYPE_DIR, FILE_TYPE_FTFONT, FILE_TYPE_IMAGE, FILE_TYPE_MOVIE, filelist_file_get_id(), float(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_ALPHA_PREMULT, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_RGBA8, GPU_SHADER_2D_IMAGE_COLOR, GPU_SHADER_2D_UNIFORM_COLOR, GPU_vertformat_attr_add(), id, imm_draw_box_wire_2d(), immBindBuiltinProgram(), immDrawPixelsTexSetup(), immDrawPixelsTexTiled_scaling(), immUnbindProgram(), immUniformColor4fv(), immVertexFormat(), FileAssetSelectParams::import_type, NULL, pos, FileLayout::prv_border_x, FileLayout::prv_border_y, FileLayout::prv_h, FileLayout::prv_w, ImBuf::rect, rgb_to_grayscale(), state, TH_BACK, TH_ICON_FOLDER, TH_TEXT, FileLayout::tile_border_x, FileLayout::tile_border_y, UI_BTYPE_LABEL, UI_but_drag_attach_image(), UI_but_drag_set_asset(), UI_but_drag_set_id(), UI_but_drag_set_image(), UI_DPI_FAC, UI_GetThemeColor4fv(), UI_GetThemeColor4ubv(), UI_icon_draw_ex(), UI_UNIT_X, UI_UNIT_Y, uiDefBut(), ImBuf::x, rcti::xmin, ImBuf::y, rcti::ymax, and rcti::ymin.
Referenced by file_draw_list().
|
static |
Definition at line 189 of file file_draw.c.
References BLI_strncpy(), col, FILE_MAXFILE, height, round_fl_to_int(), sx, sy, UI_DPI_ICON_SIZE, UI_fontstyle_draw(), UI_style_get(), UI_text_clip_middle_ex(), uiStyle::widget, width, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by draw_columnheader_columns(), draw_details_columns(), file_draw_invalid_asset_library_hint(), file_draw_invalid_library_hint(), and file_draw_list().
|
static |
r_sx,r_sy | The lower right corner of the last line drawn, plus the height of the last line. This is the cursor position on completion to allow drawing more text behind that. |
Definition at line 233 of file file_draw.c.
References BLF_boundbox(), BLF_disable(), BLF_enable(), BLF_WORD_WRAP, BLF_wordwrap(), BLI_rcti_size_y(), len, NULL, result, sx, sy, UI_fontstyle_draw_ex(), UI_style_get(), uiFontStyle::uifont_id, uiStyle::widget, wrap_width(), rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by file_draw_invalid_asset_library_hint(), and file_draw_invalid_library_hint().
|
static |
Definition at line 113 of file file_draw.c.
References BLI_strdup().
Referenced by file_draw_icon().
|
static |
Updates the stat string stored in file->entry if necessary.
Definition at line 746 of file file_draw.c.
References BLI_filelist_entry_datetime_to_string(), BLI_filelist_entry_size_to_string(), BLI_snprintf(), BLI_strncpy(), COLUMN_DATETIME, COLUMN_SIZE, file, FILE_TYPE_BLENDER, FILE_TYPE_BLENDER_BACKUP, FILE_TYPE_BLENDERLIB, FILE_TYPE_DIR, FILELIST_DIRENTRY_DATE_LEN, FILELIST_DIRENTRY_TIME_LEN, FILENAME_IS_CURRPAR, N_, NULL, and time.
Referenced by draw_details_columns().
Definition at line 537 of file file_draw.c.
References BLI_exists(), BLI_filename_make_safe(), BLI_join_dirfile(), BLI_rename(), BLI_strncpy(), C, CTX_wm_manager(), CTX_wm_region(), CTX_wm_space_data(), CTX_wm_window(), ED_fileselect_clear(), ED_fileselect_get_active_params(), ED_region_tag_redraw(), FILE_MAX, file_params_invoke_rename_postscroll(), params, RPT_ERROR, STREQ, WM_report_banner_show(), and WM_reportf().
Referenced by file_draw_list().
|
static |
Definition at line 834 of file file_draw.c.
References ED_fileselect_layout_tilepos(), ELEM, FILE_HORIZONTALDISPLAY, FILE_VERTICALDISPLAY, FileLayout::tile_border_y, FileLayout::tile_h, FileLayout::tile_w, View2D::tot, rcti::xmax, rcti::xmin, rctf::xmin, rcti::ymax, rctf::ymax, and rcti::ymin.
Referenced by file_draw_list().