Blender V5.0
file_utils.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#include "BLI_path_utils.hh"
10#include "BLI_rect.h"
11#include "BLI_string.h"
12
13#include "BKE_blendfile.hh"
14
15#include "DNA_screen_types.h"
16
17#include "ED_fileselect.hh"
18
19#include "file_intern.hh"
20
21void file_tile_boundbox(const ARegion *region, FileLayout *layout, const int file, rcti *r_bounds)
22{
23 int xmin, ymax;
24
25 ED_fileselect_layout_tilepos(layout, file, &xmin, &ymax);
26 ymax = int(region->v2d.tot.ymax) - ymax; /* real, view space ymax */
27 BLI_rcti_init(r_bounds,
28 xmin,
29 xmin + layout->tile_w + layout->tile_border_x,
30 ymax - layout->tile_h - layout->tile_border_y,
31 ymax);
32}
33
34void file_path_to_ui_path(const char *path, char *r_path, int r_path_maxncpy)
35{
36 char tmp_path[FILE_MAX_LIBEXTRA];
37 STRNCPY(tmp_path, path);
38 BLI_path_slash_rstrip(tmp_path);
39 BLI_strncpy(r_path, BKE_blendfile_extension_check(tmp_path) ? tmp_path : path, r_path_maxncpy);
40}
bool BKE_blendfile_extension_check(const char *str)
Definition blendfile.cc:86
void BLI_path_slash_rstrip(char *path) ATTR_NONNULL(1)
void BLI_rcti_init(struct rcti *rect, int xmin, int xmax, int ymin, int ymax)
Definition rct.cc:414
char * STRNCPY(char(&dst)[N], const char *src)
Definition BLI_string.h:693
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
#define FILE_MAX_LIBEXTRA
void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y)
Definition filesel.cc:873
void file_tile_boundbox(const ARegion *region, FileLayout *layout, const int file, rcti *r_bounds)
Definition file_utils.cc:21
void file_path_to_ui_path(const char *path, char *r_path, int r_path_maxncpy)
Definition file_utils.cc:34
float ymax