Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
UI_view2d.h File Reference
#include "BLI_compiler_attrs.h"
#include "BLI_rect.h"

Go to the source code of this file.

Classes

struct  View2DEdgePanData
 

Macros

#define V2D_IS_CLIPPED   12000
 
#define V2D_SCROLL_HEIGHT   ((0.45f * U.widget_unit) + (2.0f * U.pixelsize))
 
#define V2D_SCROLL_WIDTH   ((0.45f * U.widget_unit) + (2.0f * U.pixelsize))
 
#define V2D_SCROLL_MIN_ALPHA   (0.4f)
 
#define V2D_SCROLL_MIN_WIDTH   ((5.0f * U.dpi_fac) + (2.0f * U.pixelsize))
 
#define V2D_SCROLL_HIDE_WIDTH   (AREAMINX * U.dpi_fac)
 
#define V2D_SCROLL_HIDE_HEIGHT   (HEADERY * U.dpi_fac)
 
#define V2D_SCROLL_HANDLE_HEIGHT   (0.6f * U.widget_unit)
 
#define V2D_SCROLL_HANDLE_WIDTH   (0.6f * U.widget_unit)
 
#define V2D_SCROLL_HANDLE_SIZE_HOTSPOT   (0.6f * U.widget_unit)
 
#define V2D_SCROLL_THUMB_SIZE_MIN   (30.0 * UI_DPI_FAC)
 
#define V2D_LOCK_SET   0
 
#define V2D_LOCK_COPY   1
 
#define IN_2D_VERT_SCROLL(v2d, co)   (BLI_rcti_isect_pt_v(&v2d->vert, co))
 
#define IN_2D_HORIZ_SCROLL(v2d, co)   (BLI_rcti_isect_pt_v(&v2d->hor, co))
 
#define IN_2D_VERT_SCROLL_RECT(v2d, rct)   (BLI_rcti_isect(&v2d->vert, rct, NULL))
 
#define IN_2D_HORIZ_SCROLL_RECT(v2d, rct)   (BLI_rcti_isect(&v2d->hor, rct, NULL))
 
#define UI_MARKER_MARGIN_Y   (42 * UI_DPI_FAC)
 
#define UI_TIME_SCRUB_MARGIN_Y   (23 * UI_DPI_FAC)
 

Typedefs

typedef struct View2DScrollers View2DScrollers
 
typedef struct View2DEdgePanData View2DEdgePanData
 

Enumerations

enum  eView2D_CommonViewTypes {
  V2D_COMMONVIEW_CUSTOM = -1 , V2D_COMMONVIEW_STANDARD , V2D_COMMONVIEW_LIST , V2D_COMMONVIEW_STACK ,
  V2D_COMMONVIEW_HEADER , V2D_COMMONVIEW_PANELS_UI
}
 

Functions

void UI_view2d_region_reinit (struct View2D *v2d, short type, int winx, int winy)
 
void UI_view2d_curRect_validate (struct View2D *v2d)
 
void UI_view2d_curRect_reset (struct View2D *v2d)
 
bool UI_view2d_area_supports_sync (struct ScrArea *area)
 
void UI_view2d_sync (struct bScreen *screen, struct ScrArea *area, struct View2D *v2dcur, int flag)
 
void UI_view2d_curRect_changed (const struct bContext *C, struct View2D *v2d)
 
void UI_view2d_totRect_set (struct View2D *v2d, int width, int height)
 
void UI_view2d_totRect_set_resize (struct View2D *v2d, int width, int height, bool resize)
 
void UI_view2d_mask_from_win (const struct View2D *v2d, struct rcti *r_mask)
 
void UI_view2d_zoom_cache_reset (void)
 
void UI_view2d_view_ortho (const struct View2D *v2d)
 
void UI_view2d_view_orthoSpecial (struct ARegion *region, struct View2D *v2d, bool xaxis)
 
void UI_view2d_view_restore (const struct bContext *C)
 
void UI_view2d_multi_grid_draw (const struct View2D *v2d, int colorid, float step, int level_size, int totlevels)
 
void UI_view2d_dot_grid_draw (const struct View2D *v2d, int grid_color_id, float min_step, int grid_subdivisions)
 
void UI_view2d_draw_lines_y__values (const struct View2D *v2d)
 
void UI_view2d_draw_lines_x__values (const struct View2D *v2d)
 
void UI_view2d_draw_lines_x__discrete_values (const struct View2D *v2d, bool display_minor_lines)
 
void UI_view2d_draw_lines_x__discrete_time (const struct View2D *v2d, const struct Scene *scene, bool display_minor_lines)
 
void UI_view2d_draw_lines_x__discrete_frames_or_seconds (const struct View2D *v2d, const struct Scene *scene, bool display_seconds, bool display_minor_lines)
 
void UI_view2d_draw_lines_x__frames_or_seconds (const struct View2D *v2d, const struct Scene *scene, bool display_seconds)
 
float UI_view2d_grid_resolution_x__frames_or_seconds (const struct View2D *v2d, const struct Scene *scene, bool display_seconds)
 
float UI_view2d_grid_resolution_y__values (const struct View2D *v2d)
 
void UI_view2d_draw_scale_y__values (const struct ARegion *region, const struct View2D *v2d, const struct rcti *rect, int colorid)
 
void UI_view2d_draw_scale_y__block (const struct ARegion *region, const struct View2D *v2d, const struct rcti *rect, int colorid)
 
void UI_view2d_draw_scale_x__discrete_frames_or_seconds (const struct ARegion *region, const struct View2D *v2d, const struct rcti *rect, const struct Scene *scene, bool display_seconds, int colorid)
 
void UI_view2d_draw_scale_x__frames_or_seconds (const struct ARegion *region, const struct View2D *v2d, const struct rcti *rect, const struct Scene *scene, bool display_seconds, int colorid)
 
void UI_view2d_scrollers_calc (struct View2D *v2d, const struct rcti *mask_custom, struct View2DScrollers *r_scrollers)
 
void UI_view2d_scrollers_draw_ex (struct View2D *v2d, const struct rcti *mask_custom, bool use_full_hide)
 
void UI_view2d_scrollers_draw (struct View2D *v2d, const struct rcti *mask_custom)
 
void UI_view2d_listview_view_to_cell (float columnwidth, float rowheight, float startx, float starty, float viewx, float viewy, int *r_column, int *r_row)
 
float UI_view2d_region_to_view_x (const struct View2D *v2d, float x)
 
float UI_view2d_region_to_view_y (const struct View2D *v2d, float y)
 
void UI_view2d_region_to_view (const struct View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL()
 
void UI_view2d_region_to_view_rctf (const struct View2D *v2d, const struct rctf *rect_src, struct rctf *rect_dst) ATTR_NONNULL()
 
float UI_view2d_view_to_region_x (const struct View2D *v2d, float x)
 
float UI_view2d_view_to_region_y (const struct View2D *v2d, float y)
 
bool UI_view2d_view_to_region_clip (const struct View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL()
 
bool UI_view2d_view_to_region_segment_clip (const View2D *v2d, const float xy_a[2], const float xy_b[2], int r_region_a[2], int r_region_b[2]) ATTR_NONNULL()
 
void UI_view2d_view_to_region (const struct View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL()
 
void UI_view2d_view_to_region_fl (const struct View2D *v2d, float x, float y, float *r_region_x, float *r_region_y) ATTR_NONNULL()
 
void UI_view2d_view_to_region_m4 (const struct View2D *v2d, float matrix[4][4]) ATTR_NONNULL()
 
void UI_view2d_view_to_region_rcti (const struct View2D *v2d, const struct rctf *rect_src, struct rcti *rect_dst) ATTR_NONNULL()
 
bool UI_view2d_view_to_region_rcti_clip (const struct View2D *v2d, const struct rctf *rect_src, struct rcti *rect_dst) ATTR_NONNULL()
 
struct View2DUI_view2d_fromcontext (const struct bContext *C)
 
struct View2DUI_view2d_fromcontext_rwin (const struct bContext *C)
 
void UI_view2d_scroller_size_get (const struct View2D *v2d, bool mapped, float *r_x, float *r_y)
 
void UI_view2d_scale_get (const struct View2D *v2d, float *r_x, float *r_y)
 
float UI_view2d_scale_get_x (const struct View2D *v2d)
 
float UI_view2d_scale_get_y (const struct View2D *v2d)
 
void UI_view2d_scale_get_inverse (const struct View2D *v2d, float *r_x, float *r_y)
 
void UI_view2d_center_get (const struct View2D *v2d, float *r_x, float *r_y)
 
void UI_view2d_center_set (struct View2D *v2d, float x, float y)
 
void UI_view2d_offset (struct View2D *v2d, float xfac, float yfac)
 
char UI_view2d_mouse_in_scrollers_ex (const struct ARegion *region, const struct View2D *v2d, const int xy[2], int *r_scroll) ATTR_NONNULL(1
 
char char UI_view2d_mouse_in_scrollers (const struct ARegion *region, const struct View2D *v2d, const int xy[2]) ATTR_NONNULL(1
 
char char char UI_view2d_rect_in_scrollers_ex (const struct ARegion *region, const struct View2D *v2d, const struct rcti *rect, int *r_scroll) ATTR_NONNULL(1
 
char char char char UI_view2d_rect_in_scrollers (const struct ARegion *region, const struct View2D *v2d, const struct rcti *rect) ATTR_NONNULL(1
 
char char char char void UI_view2d_text_cache_add (struct View2D *v2d, float x, float y, const char *str, size_t str_len, const unsigned char col[4])
 
void UI_view2d_text_cache_add_rectf (struct View2D *v2d, const struct rctf *rect_view, const char *str, size_t str_len, const unsigned char col[4])
 
void UI_view2d_text_cache_draw (struct ARegion *region)
 
void ED_operatortypes_view2d (void)
 
void ED_keymap_view2d (struct wmKeyConfig *keyconf)
 
void UI_view2d_smooth_view (const struct bContext *C, struct ARegion *region, const struct rctf *cur, int smooth_viewtx)
 
void VIEW2D_GGT_navigate_impl (struct wmGizmoGroupType *gzgt, const char *idname)
 
bool UI_view2d_edge_pan_poll (struct bContext *C)
 
void UI_view2d_edge_pan_init (struct bContext *C, struct View2DEdgePanData *vpd, float inside_pad, float outside_pad, float speed_ramp, float max_speed, float delay, float zoom_influence)
 
void UI_view2d_edge_pan_set_limits (struct View2DEdgePanData *vpd, float xmin, float xmax, float ymin, float ymax)
 
void UI_view2d_edge_pan_reset (struct View2DEdgePanData *vpd)
 
void UI_view2d_edge_pan_apply (struct bContext *C, struct View2DEdgePanData *vpd, const int xy[2]) ATTR_NONNULL(1
 
void void UI_view2d_edge_pan_apply_event (struct bContext *C, struct View2DEdgePanData *vpd, const struct wmEvent *event)
 
void UI_view2d_edge_pan_cancel (struct bContext *C, struct View2DEdgePanData *vpd)
 
void UI_view2d_edge_pan_operator_properties (struct wmOperatorType *ot)
 
void UI_view2d_edge_pan_operator_properties_ex (struct wmOperatorType *ot, float inside_pad, float outside_pad, float speed_ramp, float max_speed, float delay, float zoom_influence)
 
void UI_view2d_edge_pan_operator_init (struct bContext *C, struct View2DEdgePanData *vpd, struct wmOperator *op)
 

Detailed Description

Generic 2D view with should allow drawing grids, panning, zooming, scrolling, .. etc.

Definition in file UI_view2d.h.

Macro Definition Documentation

◆ IN_2D_HORIZ_SCROLL

#define IN_2D_HORIZ_SCROLL (   v2d,
  co 
)    (BLI_rcti_isect_pt_v(&v2d->hor, co))

Definition at line 89 of file UI_view2d.h.

◆ IN_2D_HORIZ_SCROLL_RECT

#define IN_2D_HORIZ_SCROLL_RECT (   v2d,
  rct 
)    (BLI_rcti_isect(&v2d->hor, rct, NULL))

Definition at line 92 of file UI_view2d.h.

◆ IN_2D_VERT_SCROLL

#define IN_2D_VERT_SCROLL (   v2d,
  co 
)    (BLI_rcti_isect_pt_v(&v2d->vert, co))

Definition at line 88 of file UI_view2d.h.

◆ IN_2D_VERT_SCROLL_RECT

#define IN_2D_VERT_SCROLL_RECT (   v2d,
  rct 
)    (BLI_rcti_isect(&v2d->vert, rct, NULL))

Definition at line 91 of file UI_view2d.h.

◆ UI_MARKER_MARGIN_Y

#define UI_MARKER_MARGIN_Y   (42 * UI_DPI_FAC)

Definition at line 449 of file UI_view2d.h.

◆ UI_TIME_SCRUB_MARGIN_Y

#define UI_TIME_SCRUB_MARGIN_Y   (23 * UI_DPI_FAC)

Definition at line 450 of file UI_view2d.h.

◆ V2D_IS_CLIPPED

#define V2D_IS_CLIPPED   12000

Definition at line 25 of file UI_view2d.h.

◆ V2D_LOCK_COPY

#define V2D_LOCK_COPY   1

Definition at line 82 of file UI_view2d.h.

◆ V2D_LOCK_SET

#define V2D_LOCK_SET   0

Definition at line 80 of file UI_view2d.h.

◆ V2D_SCROLL_HANDLE_HEIGHT

#define V2D_SCROLL_HANDLE_HEIGHT   (0.6f * U.widget_unit)

Scroll bars with 'handles' used for scale (zoom).

Definition at line 68 of file UI_view2d.h.

◆ V2D_SCROLL_HANDLE_SIZE_HOTSPOT

#define V2D_SCROLL_HANDLE_SIZE_HOTSPOT   (0.6f * U.widget_unit)

Scroll bar with 'handles' hot-spot radius for cursor proximity.

Definition at line 72 of file UI_view2d.h.

◆ V2D_SCROLL_HANDLE_WIDTH

#define V2D_SCROLL_HANDLE_WIDTH   (0.6f * U.widget_unit)

Definition at line 69 of file UI_view2d.h.

◆ V2D_SCROLL_HEIGHT

#define V2D_SCROLL_HEIGHT   ((0.45f * U.widget_unit) + (2.0f * U.pixelsize))

Scroll bar area.

Definition at line 54 of file UI_view2d.h.

◆ V2D_SCROLL_HIDE_HEIGHT

#define V2D_SCROLL_HIDE_HEIGHT   (HEADERY * U.dpi_fac)

Definition at line 65 of file UI_view2d.h.

◆ V2D_SCROLL_HIDE_WIDTH

#define V2D_SCROLL_HIDE_WIDTH   (AREAMINX * U.dpi_fac)

Definition at line 64 of file UI_view2d.h.

◆ V2D_SCROLL_MIN_ALPHA

#define V2D_SCROLL_MIN_ALPHA   (0.4f)

Definition at line 58 of file UI_view2d.h.

◆ V2D_SCROLL_MIN_WIDTH

#define V2D_SCROLL_MIN_WIDTH   ((5.0f * U.dpi_fac) + (2.0f * U.pixelsize))

Definition at line 61 of file UI_view2d.h.

◆ V2D_SCROLL_THUMB_SIZE_MIN

#define V2D_SCROLL_THUMB_SIZE_MIN   (30.0 * UI_DPI_FAC)

Don't allow scroll thumb to show below this size (so it's never too small to click on).

Definition at line 75 of file UI_view2d.h.

◆ V2D_SCROLL_WIDTH

#define V2D_SCROLL_WIDTH   ((0.45f * U.widget_unit) + (2.0f * U.pixelsize))

Definition at line 55 of file UI_view2d.h.

Typedef Documentation

◆ View2DEdgePanData

Custom-data for view panning operators.

◆ View2DScrollers

Definition at line 1 of file UI_view2d.h.

Enumeration Type Documentation

◆ eView2D_CommonViewTypes

Enumerator
V2D_COMMONVIEW_CUSTOM 
V2D_COMMONVIEW_STANDARD 
V2D_COMMONVIEW_LIST 
V2D_COMMONVIEW_STACK 
V2D_COMMONVIEW_HEADER 
V2D_COMMONVIEW_PANELS_UI 

Definition at line 32 of file UI_view2d.h.

Function Documentation

◆ ED_keymap_view2d()

void ED_keymap_view2d ( struct wmKeyConfig keyconf)

Definition at line 2277 of file view2d_ops.cc.

References WM_keymap_ensure().

Referenced by ED_spacetypes_keymap().

◆ ED_operatortypes_view2d()

void ED_operatortypes_view2d ( void  )

◆ UI_view2d_area_supports_sync()

bool UI_view2d_area_supports_sync ( struct ScrArea area)

Definition at line 846 of file view2d.cc.

References blender::compositor::area(), ELEM, SPACE_ACTION, SPACE_CLIP, SPACE_GRAPH, SPACE_NLA, and SPACE_SEQ.

Referenced by UI_view2d_sync().

◆ UI_view2d_center_get()

void UI_view2d_center_get ( const struct View2D v2d,
float r_x,
float r_y 
)

Simple functions for consistent center offset access. Used by node editor to shift view center for each individual node tree.

Definition at line 1936 of file view2d.cc.

References BLI_rctf_cent_x(), BLI_rctf_cent_y(), and View2D::cur.

Referenced by actkeys_viewall(), nlaedit_viewall(), and blender::ed::space_node::node_draw_space().

◆ UI_view2d_center_set()

void UI_view2d_center_set ( struct View2D v2d,
float  x,
float  y 
)

◆ UI_view2d_curRect_changed()

void UI_view2d_curRect_changed ( const struct bContext C,
struct View2D v2d 
)

Perform all required updates after v2d->cur as been modified. This includes like validation view validation (UI_view2d_curRect_validate).

Current intent is to use it from user code, such as view navigation and zoom operations.

Referenced by edge_pan_apply_delta(), reset_exec(), scroller_activate_apply(), sequencer_view_all_preview_exec(), sequencer_view_zoom_ratio_exec(), UI_but_ensure_in_view(), UI_view2d_edge_pan_cancel(), UI_view2d_smooth_view(), view2d_smoothview_invoke(), view_pan_apply_ex(), view_zoomdrag_apply(), and view_zoomstep_apply_ex().

◆ UI_view2d_curRect_reset()

void UI_view2d_curRect_reset ( struct View2D v2d)

Restore 'cur' rect to standard orientation (i.e. optimal maximum view of tot). This does not take into account if zooming the view on an axis will improve the view (if allowed).

Definition at line 914 of file view2d.cc.

References View2D::align, BLI_rcti_size_x(), BLI_rcti_size_y(), View2D::cur, float(), height, View2D::mask, V2D_ALIGN_NO_NEG_X, V2D_ALIGN_NO_NEG_Y, V2D_ALIGN_NO_POS_X, V2D_ALIGN_NO_POS_Y, width, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

◆ UI_view2d_curRect_validate()

void UI_view2d_curRect_validate ( struct View2D v2d)

◆ UI_view2d_dot_grid_draw()

void UI_view2d_dot_grid_draw ( const struct View2D v2d,
int  grid_color_id,
float  min_step,
int  grid_subdivisions 
)

Draw a multi-level grid of dots, with a dynamic number of levels based on the fading.

Parameters
grid_color_idThe theme color used for the points. Faded dynamically based on zoom.
min_stepThe base size of the grid. At different zoom levels, the visible grid may have a larger step size.
grid_subdivisionsThe maximum number of sub-levels drawn at once.

Referenced by blender::ed::space_node::node_draw_space().

◆ UI_view2d_draw_lines_x__discrete_frames_or_seconds()

void UI_view2d_draw_lines_x__discrete_frames_or_seconds ( const struct View2D v2d,
const struct Scene scene,
bool  display_seconds,
bool  display_minor_lines 
)

◆ UI_view2d_draw_lines_x__discrete_time()

void UI_view2d_draw_lines_x__discrete_time ( const struct View2D v2d,
const struct Scene scene,
bool  display_minor_lines 
)

◆ UI_view2d_draw_lines_x__discrete_values()

void UI_view2d_draw_lines_x__discrete_values ( const struct View2D v2d,
bool  display_minor_lines 
)

◆ UI_view2d_draw_lines_x__frames_or_seconds()

void UI_view2d_draw_lines_x__frames_or_seconds ( const struct View2D v2d,
const struct Scene scene,
bool  display_seconds 
)

Referenced by graph_main_region_draw().

◆ UI_view2d_draw_lines_x__values()

void UI_view2d_draw_lines_x__values ( const struct View2D v2d)

Referenced by clip_draw_graph().

◆ UI_view2d_draw_lines_y__values()

void UI_view2d_draw_lines_y__values ( const struct View2D v2d)

◆ UI_view2d_draw_scale_x__discrete_frames_or_seconds()

void UI_view2d_draw_scale_x__discrete_frames_or_seconds ( const struct ARegion region,
const struct View2D v2d,
const struct rcti rect,
const struct Scene scene,
bool  display_seconds,
int  colorid 
)

◆ UI_view2d_draw_scale_x__frames_or_seconds()

void UI_view2d_draw_scale_x__frames_or_seconds ( const struct ARegion region,
const struct View2D v2d,
const struct rcti rect,
const struct Scene scene,
bool  display_seconds,
int  colorid 
)

◆ UI_view2d_draw_scale_y__block()

void UI_view2d_draw_scale_y__block ( const struct ARegion region,
const struct View2D v2d,
const struct rcti rect,
int  colorid 
)

◆ UI_view2d_draw_scale_y__values()

void UI_view2d_draw_scale_y__values ( const struct ARegion region,
const struct View2D v2d,
const struct rcti rect,
int  colorid 
)

Scale indicator text drawing.

Referenced by graph_main_region_draw_overlay(), and graph_region_draw().

◆ UI_view2d_edge_pan_apply()

void UI_view2d_edge_pan_apply ( struct bContext C,
struct View2DEdgePanData vpd,
const int  xy[2] 
)

Apply transform to view (i.e. adjust 'cur' rect).

Referenced by flushTransNodes(), and view2d_edge_pan_loc_compensate().

◆ UI_view2d_edge_pan_apply_event()

void void UI_view2d_edge_pan_apply_event ( struct bContext C,
struct View2DEdgePanData vpd,
const struct wmEvent event 
)

Apply transform to view using mouse events.

Referenced by blender::ed::space_node::node_link_modal(), and view_edge_pan_modal().

◆ UI_view2d_edge_pan_cancel()

void UI_view2d_edge_pan_cancel ( struct bContext C,
struct View2DEdgePanData vpd 
)

◆ UI_view2d_edge_pan_init()

void UI_view2d_edge_pan_init ( struct bContext C,
struct View2DEdgePanData vpd,
float  inside_pad,
float  outside_pad,
float  speed_ramp,
float  max_speed,
float  delay,
float  zoom_influence 
)

◆ UI_view2d_edge_pan_operator_init()

void UI_view2d_edge_pan_operator_init ( struct bContext C,
struct View2DEdgePanData vpd,
struct wmOperator op 
)

Initialize panning data with operator settings.

Definition at line 382 of file view2d_edge_pan.cc.

References C, wmOperator::ptr, RNA_float_get(), and UI_view2d_edge_pan_init().

Referenced by blender::ed::space_node::node_link_invoke(), and view_edge_pan_invoke().

◆ UI_view2d_edge_pan_operator_properties()

void UI_view2d_edge_pan_operator_properties ( struct wmOperatorType ot)

Definition at line 304 of file view2d_edge_pan.cc.

References ot, and UI_view2d_edge_pan_operator_properties_ex().

Referenced by VIEW2D_OT_edge_pan().

◆ UI_view2d_edge_pan_operator_properties_ex()

void UI_view2d_edge_pan_operator_properties_ex ( struct wmOperatorType ot,
float  inside_pad,
float  outside_pad,
float  speed_ramp,
float  max_speed,
float  delay,
float  zoom_influence 
)

◆ UI_view2d_edge_pan_poll()

bool UI_view2d_edge_pan_poll ( struct bContext C)

◆ UI_view2d_edge_pan_reset()

void UI_view2d_edge_pan_reset ( struct View2DEdgePanData vpd)

◆ UI_view2d_edge_pan_set_limits()

void UI_view2d_edge_pan_set_limits ( struct View2DEdgePanData vpd,
float  xmin,
float  xmax,
float  ymin,
float  ymax 
)

Set area which can be panned

Definition at line 91 of file view2d_edge_pan.cc.

References BLI_rctf_init(), and View2DEdgePanData::limit.

Referenced by createTransSeqData().

◆ UI_view2d_fromcontext()

struct View2D* UI_view2d_fromcontext ( const struct bContext C)

◆ UI_view2d_fromcontext_rwin()

struct View2D* UI_view2d_fromcontext_rwin ( const struct bContext C)

Same as above, but it returns region-window. Utility for pull-downs or buttons.

◆ UI_view2d_grid_resolution_x__frames_or_seconds()

float UI_view2d_grid_resolution_x__frames_or_seconds ( const struct View2D v2d,
const struct Scene scene,
bool  display_seconds 
)

◆ UI_view2d_grid_resolution_y__values()

float UI_view2d_grid_resolution_y__values ( const struct View2D v2d)

Definition at line 460 of file view2d_draw.cc.

References view2d_major_step_y__continuous().

Referenced by snap_increment_apply().

◆ UI_view2d_listview_view_to_cell()

void UI_view2d_listview_view_to_cell ( float  columnwidth,
float  rowheight,
float  startx,
float  starty,
float  viewx,
float  viewy,
int *  r_column,
int *  r_row 
)

Get the 'cell' (row, column) that the given 2D-view coordinates (i.e. in 'tot' rect space) lie in.

Parameters
columnwidth,rowheightsize of each 'cell'
startx,startycoordinates (in 'tot' rect space) that the list starts from. This should be (0,0) for most views. However, for those where the starting row was offsetted (like for Animation Editor channel lists, to make the first entry more visible), these will be the min-coordinates of the first item.
viewx,viewy2D-coordinates (in 2D-view / 'tot' rect space) to get the cell for
r_column,r_rowThe 'coordinates' of the relevant 'cell'.

Definition at line 1619 of file view2d.cc.

References floorf.

Referenced by actkeys_find_list_element_at_position(), animchannels_channel_get(), animchannels_mouseclick_invoke(), nlachannels_mouseclick_invoke(), and nlaedit_strip_at_region_position().

◆ UI_view2d_mask_from_win()

void UI_view2d_mask_from_win ( const struct View2D v2d,
struct rcti r_mask 
)

Referenced by ED_region_panels_draw().

◆ UI_view2d_mouse_in_scrollers()

char char UI_view2d_mouse_in_scrollers ( const struct ARegion region,
const struct View2D v2d,
const int  xy[2] 
)

◆ UI_view2d_mouse_in_scrollers_ex()

char UI_view2d_mouse_in_scrollers_ex ( const struct ARegion region,
const struct View2D v2d,
const int  xy[2],
int *  r_scroll 
)

Check if mouse is within scrollers

Parameters
xyMouse coordinates in screen (not region) space.
r_scrollReturn argument for the mapped view2d scroll flag.
Returns
appropriate code for match.
  • 'h' = in horizontal scroller.
  • 'v' = in vertical scroller.
  • 0 = not in scroller.

Referenced by area_actionzone_refresh_xy().

◆ UI_view2d_multi_grid_draw()

void UI_view2d_multi_grid_draw ( const struct View2D v2d,
int  colorid,
float  step,
int  level_size,
int  totlevels 
)

Draw a multi-level grid in given 2d-region.

◆ UI_view2d_offset()

void UI_view2d_offset ( struct View2D v2d,
float  xfac,
float  yfac 
)

Simple pan function (0.0, 0.0) bottom left (0.5, 0.5) center (1.0, 1.0) top right.

Definition at line 1954 of file view2d.cc.

References BLI_rctf_size_x(), BLI_rctf_size_y(), View2D::cur, View2D::tot, UI_view2d_curRect_validate(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by ui_handle_panel_header(), and ui_handler_panel_region().

◆ UI_view2d_rect_in_scrollers()

char char char char UI_view2d_rect_in_scrollers ( const struct ARegion region,
const struct View2D v2d,
const struct rcti rect 
)

◆ UI_view2d_rect_in_scrollers_ex()

char char char UI_view2d_rect_in_scrollers_ex ( const struct ARegion region,
const struct View2D v2d,
const struct rcti rect,
int *  r_scroll 
)

◆ UI_view2d_region_reinit()

void UI_view2d_region_reinit ( struct View2D v2d,
short  type,
int  winx,
int  winy 
)

Refresh and validation (of view rects).

Initialize all relevant View2D data (including view rects if first time) and/or refresh mask sizes after view resize.

  • For some of these presets, it is expected that the region will have defined some additional settings necessary for the customization of the 2D viewport to its requirements
  • This function should only be called from region init() callbacks, where it is expected that this is called before #UI_view2d_size_update(), as this one checks that the rects are properly initialized.

Definition at line 217 of file view2d.cc.

References View2D::align, View2D::alpha_hor, View2D::alpha_vert, View2D::cur, View2D::flag, float(), View2D::keepofs, View2D::keeptot, View2D::keepzoom, View2D::max, View2D::maxzoom, View2D::min, View2D::minzoom, uiStyle::panelzoom, View2D::scroll, View2D::tot, type, UI_style_get(), ui_view2d_curRect_validate_resize(), UI_view2d_totRect_set_resize(), V2D_ALIGN_NO_NEG_X, V2D_ALIGN_NO_NEG_Y, V2D_ALIGN_NO_POS_Y, V2D_COMMONVIEW_HEADER, V2D_COMMONVIEW_LIST, V2D_COMMONVIEW_PANELS_UI, V2D_COMMONVIEW_STACK, V2D_COMMONVIEW_STANDARD, V2D_IS_INIT, V2D_KEEPASPECT, V2D_KEEPTOT_BOUNDS, V2D_KEEPTOT_STRICT, V2D_KEEPZOOM, V2D_LIMITZOOM, V2D_LOCKOFS_Y, V2D_LOCKZOOM_X, V2D_LOCKZOOM_Y, V2D_SCROLL_HORIZONTAL_HIDE, V2D_SCROLL_VERTICAL_HIDE, view2d_masks(), View2D::winx, View2D::winy, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by action_channel_region_init(), action_main_region_init(), clip_channels_region_init(), clip_preview_region_init(), console_main_region_init(), ED_region_header_init(), ED_region_panels_init(), file_main_region_draw(), file_main_region_init(), graph_channel_region_init(), graph_main_region_init(), hud_region_layout(), info_main_region_init(), nla_channel_region_init(), nla_main_region_init(), blender::ed::space_node::node_main_region_init(), outliner_main_region_init(), script_main_region_init(), sequencer_channel_region_init(), sequencer_main_region_init(), sequencer_preview_region_init(), spreadsheet_main_region_init(), text_main_region_init(), and topbar_main_region_init().

◆ UI_view2d_region_to_view()

void UI_view2d_region_to_view ( const struct View2D v2d,
float  x,
float  y,
float r_view_x,
float r_view_y 
)

Convert from screen/region space to 2d-View space

Parameters
x,ycoordinates to convert
r_view_x,r_view_yresultant coordinates

Referenced by actkeys_find_list_element_at_position(), blender::ed::space_node::add_reroute_exec(), animchannels_channel_get(), animchannels_mouseclick_invoke(), annotation_stroke_convertcoords(), applyTimeSlide(), applyTimeTranslate(), box_select_action(), box_select_anim_channels(), box_select_nla_strips(), blender::ed::space_node::cut_links_exec(), dopesheet_select_channel_invoke(), ED_mask_mouse_pos(), ED_outliner_give_base_under_cursor(), ED_space_image_color_sample(), ED_space_image_get_position(), file_attribute_column_type_find_isect(), file_box_select_find_last_selected(), file_highlight_set(), find_nearest_seq(), frame_from_event(), gpencil_brush_twist_apply(), grab_clone_modal(), graphkeys_click_insert_invoke(), graphview_cursor_setprops(), image_sample_apply(), image_sample_line_exec(), image_view_zoom_in_invoke(), image_view_zoom_init(), image_view_zoom_invoke(), image_view_zoom_out_invoke(), blender::ed::space_node::is_event_over_node_or_socket(), mouse_frame_side(), blender::ed::space_node::mute_links_exec(), nlachannels_mouseclick_invoke(), nlaedit_strip_at_region_position(), blender::ed::space_node::node_add_collection_invoke(), blender::ed::space_node::node_add_file_invoke(), blender::ed::space_node::node_add_group_invoke(), blender::ed::space_node::node_add_object_invoke(), blender::ed::space_node::node_circleselect_exec(), blender::ed::space_node::node_cursor(), blender::ed::space_node::node_draw_space(), blender::ed::space_node::node_find_frame_to_attach(), blender::ed::space_node::node_link_invoke(), blender::ed::space_node::node_link_modal(), blender::ed::space_node::node_mouse_select(), blender::ed::space_node::node_resize_invoke(), blender::ed::space_node::node_resize_modal(), outliner_box_select_invoke(), outliner_drop_find(), outliner_drop_insert_find(), outliner_highlight_update(), outliner_id_delete_invoke(), outliner_id_remap_invoke(), outliner_item_do_activate_from_cursor(), outliner_item_drag_drop_invoke(), outliner_item_openclose_invoke(), outliner_item_openclose_modal(), outliner_item_rename_find_hovered(), outliner_lib_reload_invoke(), outliner_lib_relocate_invoke(), outliner_operation(), paint_2d_stroke(), paint_2d_transform_mouse(), paintcurve_cursor_invoke(), select_invoke(), seq_select_seq_from_preview(), sequencer_sample_apply(), sequencer_set_2d_cursor_invoke(), sequencer_slip_invoke(), sequencer_slip_modal(), sequencer_split_invoke(), snapNode(), stitch_select(), transform_convert_frame_side_dir_get(), update_overlay_strip_position_data(), uv_circle_select_exec(), uv_rip_invoke(), uv_sculpt_stroke_apply(), uv_sculpt_stroke_init(), uv_select_edge_ring_invoke(), uv_select_invoke(), uv_select_linked_internal(), uv_select_loop_invoke(), uv_set_2d_cursor_invoke(), uv_shortest_path_pick_invoke(), view_zoomdrag_invoke(), view_zoomin_invoke(), and view_zoomout_invoke().

◆ UI_view2d_region_to_view_rctf()

void UI_view2d_region_to_view_rctf ( const struct View2D v2d,
const struct rctf rect_src,
struct rctf rect_dst 
)

◆ UI_view2d_region_to_view_x()

float UI_view2d_region_to_view_x ( const struct View2D v2d,
float  x 
)

◆ UI_view2d_region_to_view_y()

float UI_view2d_region_to_view_y ( const struct View2D v2d,
float  y 
)

◆ UI_view2d_scale_get()

void UI_view2d_scale_get ( const struct View2D v2d,
float r_x,
float r_y 
)

Calculate the scale per-axis of the drawing-area

Is used to inverse correct drawing of icons, etc. that need to follow view but not be affected by scale

Parameters
r_x,r_yscale on each axis

Referenced by draw_fcurve_samples(), draw_tracks_motion_and_error_curves(), drawPropCircle(), ED_markers_draw(), ED_mask_pixelspace_factor(), ED_uvedit_nearest_uv_multi(), blender::ed::space_node::node_draw_basis(), blender::ed::space_node::node_draw_hidden(), and blender::ed::space_node::node_draw_sockets().

◆ UI_view2d_scale_get_inverse()

void UI_view2d_scale_get_inverse ( const struct View2D v2d,
float r_x,
float r_y 
)

Same as UI_view2d_scale_get() - 1.0f / x, y.

Referenced by ED_image_draw_cursor().

◆ UI_view2d_scale_get_x()

float UI_view2d_scale_get_x ( const struct View2D v2d)

◆ UI_view2d_scale_get_y()

float UI_view2d_scale_get_y ( const struct View2D v2d)

◆ UI_view2d_scroller_size_get()

void UI_view2d_scroller_size_get ( const struct View2D v2d,
bool  mapped,
float r_x,
float r_y 
)

Get scrollbar sizes of the current 2D view. The size will be zero if the view has its scrollbars disabled.

Parameters
mappedwhether to use view2d_scroll_mapped which changes flags

Referenced by hud_region_add().

◆ UI_view2d_scrollers_calc()

void UI_view2d_scrollers_calc ( struct View2D v2d,
const struct rcti mask_custom,
struct View2DScrollers r_scrollers 
)

Calculate relevant scroller properties.

Referenced by scroller_activate_init().

◆ UI_view2d_scrollers_draw()

void UI_view2d_scrollers_draw ( struct View2D v2d,
const struct rcti mask_custom 
)

◆ UI_view2d_scrollers_draw_ex()

void UI_view2d_scrollers_draw_ex ( struct View2D v2d,
const struct rcti mask_custom,
bool  use_full_hide 
)

Draw scroll-bars in the given 2D-region.

Referenced by ED_region_panels_draw().

◆ UI_view2d_smooth_view()

void UI_view2d_smooth_view ( const struct bContext C,
struct ARegion region,
const struct rctf cur,
int  smooth_viewtx 
)

Will start timer if appropriate. the arguments are the desired situation.

Referenced by ANIM_center_frame(), graphkeys_viewall(), sequencer_view_all_exec(), sequencer_view_selected_exec(), and blender::ed::space_node::space_node_view_flag().

◆ UI_view2d_sync()

void UI_view2d_sync ( struct bScreen screen,
struct ScrArea area,
struct View2D v2dcur,
int  flag 
)

◆ UI_view2d_text_cache_add()

char char char char void UI_view2d_text_cache_add ( struct View2D v2d,
float  x,
float  y,
const char *  str,
size_t  str_len,
const unsigned char  col[4] 
)

◆ UI_view2d_text_cache_add_rectf()

void UI_view2d_text_cache_add_rectf ( struct View2D v2d,
const struct rctf rect_view,
const char *  str,
size_t  str_len,
const unsigned char  col[4] 
)

◆ UI_view2d_text_cache_draw()

void UI_view2d_text_cache_draw ( struct ARegion region)

◆ UI_view2d_totRect_set()

void UI_view2d_totRect_set ( struct View2D v2d,
int  width,
int  height 
)

◆ UI_view2d_totRect_set_resize()

void UI_view2d_totRect_set_resize ( struct View2D v2d,
int  width,
int  height,
bool  resize 
)

◆ UI_view2d_view_ortho()

void UI_view2d_view_ortho ( const struct View2D v2d)

◆ UI_view2d_view_orthoSpecial()

void UI_view2d_view_orthoSpecial ( struct ARegion region,
struct View2D v2d,
bool  xaxis 
)

Set view matrices to only use one axis of 'cur' only

Parameters
xaxisif non-zero, only use cur x-axis, otherwise use cur-yaxis (mostly this will be used for x).

Definition at line 1122 of file view2d.cc.

References view2d_map_cur_using_mask(), ARegion::winx, ARegion::winy, wmOrtho2(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by action_main_region_draw(), draw_timeline_seq(), graph_main_region_draw(), and nla_main_region_draw().

◆ UI_view2d_view_restore()

void UI_view2d_view_restore ( const struct bContext C)

◆ UI_view2d_view_to_region()

void UI_view2d_view_to_region ( const struct View2D v2d,
float  x,
float  y,
int *  r_region_x,
int *  r_region_y 
)

Convert from 2d-view space to screen/region space

Note
Coordinates are NOT clamped to lie within bounds of region.
Parameters
x,yCoordinates to convert.
r_region_x,r_region_yResultant coordinates.

Referenced by draw_movieclip_buffer(), draw_movieclip_muted(), draw_render_info(), draw_stabilization_border(), DRW_draw_cursor_2d_ex(), ED_clip_point_stable_pos(), ED_clip_point_stable_pos__reverse(), ED_image_mouse_pos(), ED_image_point_pos(), ED_image_point_pos__reverse(), ED_mask_draw_region(), ED_region_grid_draw(), image_main_region_draw(), and projectIntViewEx().

◆ UI_view2d_view_to_region_clip()

bool UI_view2d_view_to_region_clip ( const struct View2D v2d,
float  x,
float  y,
int *  r_region_x,
int *  r_region_y 
)

Convert from 2d-View space to screen/region space

Note
Coordinates are clamped to lie within bounds of region
Parameters
x,yCoordinates to convert.
r_region_x,r_region_yResultant coordinates.

Referenced by do_lasso_select_mesh_uv_is_point_inside(), blender::ed::space_node::do_lasso_select_node(), gpencil_point_3d_to_xy(), gpencil_point_to_xy(), gpencil_point_to_xy_fl(), mouse_select_knot(), and nearest_fcurve_vert_store().

◆ UI_view2d_view_to_region_fl()

void UI_view2d_view_to_region_fl ( const struct View2D v2d,
float  x,
float  y,
float r_region_x,
float r_region_y 
)

◆ UI_view2d_view_to_region_m4()

void UI_view2d_view_to_region_m4 ( const struct View2D v2d,
float  matrix[4][4] 
)

◆ UI_view2d_view_to_region_rcti()

void UI_view2d_view_to_region_rcti ( const struct View2D v2d,
const struct rctf rect_src,
struct rcti rect_dst 
)

◆ UI_view2d_view_to_region_rcti_clip()

bool UI_view2d_view_to_region_rcti_clip ( const struct View2D v2d,
const struct rctf rect_src,
struct rcti rect_dst 
)

◆ UI_view2d_view_to_region_segment_clip()

bool UI_view2d_view_to_region_segment_clip ( const View2D v2d,
const float  xy_a[2],
const float  xy_b[2],
int  r_region_a[2],
int  r_region_b[2] 
)

◆ UI_view2d_view_to_region_x()

float UI_view2d_view_to_region_x ( const struct View2D v2d,
float  x 
)

◆ UI_view2d_view_to_region_y()

float UI_view2d_view_to_region_y ( const struct View2D v2d,
float  y 
)

◆ UI_view2d_zoom_cache_reset()

void UI_view2d_zoom_cache_reset ( void  )

◆ VIEW2D_GGT_navigate_impl()

void VIEW2D_GGT_navigate_impl ( struct wmGizmoGroupType gzgt,
const char *  idname 
)