As proposed in #98518, this moves all `View2D` files into a `source/blender/editors/inteface/view2d/` directory. This helps keeping the `interface/` directory clean. In general I think we should promote a more modular thinking, where coherent parts of the code form a module or sub-module. The directory structure and its files can reflect that nicely. Pull Request: https://projects.blender.org/blender/blender/pulls/132853
44 lines
1021 B
C++
44 lines
1021 B
C++
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup edinterface
|
|
*
|
|
* Share between view2d_*.cc files.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "DNA_vec_types.h"
|
|
|
|
struct bContext;
|
|
struct View2D;
|
|
|
|
struct View2DScrollers {
|
|
/* focus bubbles */
|
|
int vert_min, vert_max; /* vertical scroll-bar */
|
|
int hor_min, hor_max; /* horizontal scroll-bar */
|
|
|
|
/** Exact size of slider backdrop. */
|
|
rcti hor, vert;
|
|
};
|
|
|
|
/**
|
|
* Calculate relevant scroller properties.
|
|
*/
|
|
void view2d_scrollers_calc(View2D *v2d, const rcti *mask_custom, View2DScrollers *r_scrollers);
|
|
|
|
/**
|
|
* Change the size of the maximum viewable area (i.e. 'tot' rect).
|
|
*/
|
|
void view2d_totRect_set_resize(View2D *v2d, int width, int height, bool resize);
|
|
|
|
bool view2d_edge_pan_poll(bContext *C);
|
|
|
|
/**
|
|
* For paginated scrolling, get the page height to scroll. This may be a custom height
|
|
* (#View2D.page_size_y) but defaults to the #View2D.mask height.
|
|
*/
|
|
float view2d_page_size_y(const View2D &v2d);
|