Blender  V3.3
Functions
file_draw.c File Reference
#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)
 

Function Documentation

◆ draw_background()

static void draw_background ( FileLayout *  layout,
View2D *  v2d 
)
static

◆ draw_columnheader_background()

static void draw_columnheader_background ( const FileLayout *  layout,
const View2D *  v2d 
)
static

◆ draw_columnheader_columns()

static void draw_columnheader_columns ( const FileSelectParams *  params,
FileLayout *  layout,
const View2D *  v2d,
const uchar  text_col[4] 
)
static

◆ draw_details_columns()

static void draw_details_columns ( const FileSelectParams *  params,
const FileLayout *  layout,
FileDirEntry *  file,
const rcti *  tile_draw_rect,
const uchar  text_col[4] 
)
static

◆ draw_dividers()

static void draw_dividers ( FileLayout *  layout,
View2D *  v2d 
)
static

◆ draw_tile_background()

static void draw_tile_background ( const rcti *  draw_rect,
int  colorid,
int  shade 
)
static

◆ ED_file_path_button()

void ED_file_path_button ( bScreen *  screen,
const SpaceFile *  sfile,
FileSelectParams *  params,
uiBlock *  block 
)

◆ file_calc_previews()

void file_calc_previews ( const bContext *  C,
ARegion *  region 
)

◆ file_draw_hint_if_invalid()

bool file_draw_hint_if_invalid ( const bContext *  C,
const SpaceFile *  sfile,
ARegion *  region 
)

◆ file_draw_icon()

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

◆ file_draw_invalid_asset_library_hint()

static void file_draw_invalid_asset_library_hint ( const bContext *  C,
const SpaceFile *  sfile,
ARegion *  region,
FileAssetSelectParams *  asset_params 
)
static

◆ file_draw_invalid_library_hint()

static void file_draw_invalid_library_hint ( const bContext *  UNUSEDC,
const SpaceFile *  sfile,
ARegion *  region,
const char *  blendfile_path,
ReportList *  reports 
)
static

◆ file_draw_list()

void file_draw_list ( const bContext *  C,
ARegion *  region 
)

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().

◆ file_draw_preview()

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

◆ file_draw_string()

static void file_draw_string ( int  sx,
int  sy,
const char *  string,
float  width,
int  height,
eFontStyle_Align  align,
const uchar  col[4] 
)
static

◆ file_draw_string_multiline()

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 
)
static
Parameters
r_sx,r_syThe 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().

◆ file_draw_tooltip_func()

static char* file_draw_tooltip_func ( bContext *  UNUSEDC,
void *  argN,
const char *  UNUSEDtip 
)
static

Definition at line 113 of file file_draw.c.

References BLI_strdup().

Referenced by file_draw_icon().

◆ filelist_get_details_column_string()

static const char* filelist_get_details_column_string ( FileAttributeColumnType  column,
FileDirEntry *  file,
const bool  small_size,
const bool  update_stat_strings 
)
static

◆ renamebutton_cb()

static void renamebutton_cb ( bContext *  C,
void *  UNUSEDarg1,
char *  oldname 
)
static

◆ tile_draw_rect_get()

static rcti tile_draw_rect_get ( const View2D *  v2d,
const FileLayout *  layout,
const enum eFileDisplayType  display,
const int  file_idx,
const int  padx 
)
static