diff options
Diffstat (limited to 'source/blender/editors/include/ED_fileselect.h')
-rw-r--r-- | source/blender/editors/include/ED_fileselect.h | 56 |
1 files changed, 48 insertions, 8 deletions
diff --git a/source/blender/editors/include/ED_fileselect.h b/source/blender/editors/include/ED_fileselect.h index 7273f857a41..83890c1621c 100644 --- a/source/blender/editors/include/ED_fileselect.h +++ b/source/blender/editors/include/ED_fileselect.h @@ -29,22 +29,39 @@ struct FileSelectParams; struct ScrArea; struct SpaceFile; struct bContext; +struct bScreen; +struct uiBlock; struct wmWindowManager; #define FILE_LAYOUT_HOR 1 #define FILE_LAYOUT_VER 2 -#define MAX_FILE_COLUMN 4 - -typedef enum FileListColumns { +typedef enum FileAttributeColumnType { + COLUMN_NONE = -1, COLUMN_NAME = 0, - COLUMN_DATE, - COLUMN_TIME, + COLUMN_DATETIME, COLUMN_SIZE, -} FileListColumns; + + ATTRIBUTE_COLUMN_MAX +} FileAttributeColumnType; + +typedef struct FileAttributeColumn { + /** UI name for this column */ + const char *name; + + float width; + /* The sort type to use when sorting by this column. */ + int sort_type; /* eFileSortType */ + + /* Alignment of column texts, header text is always left aligned */ + int text_align; /* eFontStyle_Align */ +} FileAttributeColumn; typedef struct FileLayout { /* view settings - XXX - move into own struct */ + int offset_top; + /* Height of the header for the different FileAttributeColumn's. */ + int attribute_column_header_h; int prv_w; int prv_h; int tile_w; @@ -54,13 +71,17 @@ typedef struct FileLayout { int prv_border_x; int prv_border_y; int rows; - int columns; + /* Those are the major layout columns the files are distributed across, not to be confused with + * 'attribute_columns' array below. */ + int flow_columns; int width; int height; int flag; int dirty; int textheight; - float column_widths[MAX_FILE_COLUMN]; + /* The columns for each item (name, modification date/time, size). Not to be confused with the + * 'flow_columns' above. */ + FileAttributeColumn attribute_columns[ATTRIBUTE_COLUMN_MAX]; /* When we change display size, we may have to update static strings like size of files... */ short curr_size; @@ -71,11 +92,14 @@ typedef struct FileSelection { int last; } FileSelection; +struct View2D; struct rcti; struct FileSelectParams *ED_fileselect_get_params(struct SpaceFile *sfile); short ED_fileselect_set_params(struct SpaceFile *sfile); +void ED_fileselect_set_params_from_userdef(struct SpaceFile *sfile); +void ED_fileselect_params_to_userdef(struct SpaceFile *sfile, int temp_win_size[]); void ED_fileselect_reset_params(struct SpaceFile *sfile); @@ -87,6 +111,17 @@ int ED_fileselect_layout_numfiles(FileLayout *layout, struct ARegion *ar); int ED_fileselect_layout_offset(FileLayout *layout, int x, int y); FileSelection ED_fileselect_layout_offset_rect(FileLayout *layout, const struct rcti *rect); +void ED_fileselect_layout_maskrect(const FileLayout *layout, + const struct View2D *v2d, + struct rcti *r_rect); +bool ED_fileselect_layout_is_inside_pt(const FileLayout *layout, + const struct View2D *v2d, + int x, + int y); +bool ED_fileselect_layout_isect_rect(const FileLayout *layout, + const struct View2D *v2d, + const struct rcti *rect, + struct rcti *r_dst); void ED_fileselect_layout_tilepos(FileLayout *layout, int tile, int *x, int *y); void ED_operatormacros_file(void); @@ -102,6 +137,11 @@ void ED_file_read_bookmarks(void); void ED_file_change_dir(struct bContext *C); +void ED_file_path_button(struct bScreen *screen, + const struct SpaceFile *sfile, + struct FileSelectParams *params, + struct uiBlock *block); + /* File menu stuff */ /* FSMenuEntry's without paths indicate separators */ |