Blender  V3.3
Macros | Typedefs | Enumerations | Functions | Variables
screen_intern.h File Reference

Go to the source code of this file.

Macros

#define SCREEN_DIR_IS_VERTICAL(dir)   (ELEM(dir, SCREEN_DIR_N, SCREEN_DIR_S))
 
#define SCREEN_DIR_IS_HORIZONTAL(dir)   (ELEM(dir, SCREEN_DIR_W, SCREEN_DIR_E))
 
#define AZONESPOTW   UI_HEADER_OFFSET /* width of corner #AZone - max */
 
#define AZONESPOTH   (0.6f * U.widget_unit) /* height of corner #AZone */
 
#define AZONEFADEIN   (5.0f * U.widget_unit) /* when #AZone is totally visible */
 
#define AZONEFADEOUT   (6.5f * U.widget_unit) /* when we start seeing the #AZone */
 
#define AREAJOINTOLERANCEX   (AREAMINX * U.dpi_fac)
 
#define AREAJOINTOLERANCEY   (HEADERY * U.dpi_fac)
 
#define BORDERPADDING   ((2.0f * U.dpi_fac) + U.pixelsize)
 

Typedefs

typedef enum eScreenDir eScreenDir
 
typedef enum eScreenAxis eScreenAxis
 

Enumerations

enum  eScreenDir {
  SCREEN_DIR_NONE = -1 , SCREEN_DIR_W = 0 , SCREEN_DIR_N = 1 , SCREEN_DIR_E = 2 ,
  SCREEN_DIR_S = 3
}
 
enum  eScreenAxis { SCREEN_AXIS_H = 'h' , SCREEN_AXIS_V = 'v' }
 

Functions

void ED_area_data_copy (ScrArea *area_dst, ScrArea *area_src, bool do_free)
 
void ED_area_data_swap (ScrArea *area_dst, ScrArea *area_src)
 
void region_toggle_hidden (struct bContext *C, ARegion *region, bool do_fade)
 
void screen_draw_join_highlight (struct ScrArea *sa1, struct ScrArea *sa2)
 
void screen_draw_split_preview (struct ScrArea *area, eScreenAxis dir_axis, float fac)
 
bScreenscreen_add (struct Main *bmain, const char *name, const rcti *rect)
 
void screen_data_copy (bScreen *to, bScreen *from)
 
void screen_new_activate_prepare (const wmWindow *win, bScreen *screen_new)
 
void screen_change_update (struct bContext *C, wmWindow *win, bScreen *screen)
 
void screen_change_prepare (bScreen *screen_old, bScreen *screen_new, struct Main *bmain, struct bContext *C, wmWindow *win)
 
ScrAreaarea_split (const wmWindow *win, bScreen *screen, ScrArea *area, eScreenAxis dir_axis, float fac, bool merge)
 
int screen_area_join (struct bContext *C, bScreen *screen, ScrArea *sa1, ScrArea *sa2)
 
eScreenDir area_getorientation (ScrArea *sa_a, ScrArea *sa_b)
 
void area_getoffsets (ScrArea *sa_a, ScrArea *sa_b, eScreenDir dir, int *r_offset1, int *r_offset2)
 
bool screen_area_close (struct bContext *C, bScreen *screen, ScrArea *area)
 
void screen_area_spacelink_add (struct Scene *scene, ScrArea *area, eSpace_Type space_type)
 
struct AZoneED_area_actionzone_find_xy (ScrArea *area, const int xy[2])
 
int screen_geom_area_height (const ScrArea *area)
 
int screen_geom_area_width (const ScrArea *area)
 
ScrVertscreen_geom_vertex_add_ex (ScrAreaMap *area_map, short x, short y)
 
ScrVertscreen_geom_vertex_add (bScreen *screen, short x, short y)
 
ScrEdgescreen_geom_edge_add_ex (ScrAreaMap *area_map, ScrVert *v1, ScrVert *v2)
 
ScrEdgescreen_geom_edge_add (bScreen *screen, ScrVert *v1, ScrVert *v2)
 
bool screen_geom_edge_is_horizontal (ScrEdge *se)
 
ScrEdgescreen_geom_area_map_find_active_scredge (const struct ScrAreaMap *area_map, const rcti *bounds_rect, int mx, int my)
 
ScrEdgescreen_geom_find_active_scredge (const wmWindow *win, const bScreen *screen, int mx, int my)
 
void screen_geom_vertices_scale (const wmWindow *win, bScreen *screen)
 Main screen-layout calculation function. More...
 
short screen_geom_find_area_split_point (const ScrArea *area, const rcti *window_rect, eScreenAxis dir_axis, float fac)
 
void screen_geom_select_connected_edge (const wmWindow *win, ScrEdge *edge)
 
int ed_screen_context (const struct bContext *C, const char *member, struct bContextDataResult *result)
 
void SCREEN_OT_screenshot (struct wmOperatorType *ot)
 
void SCREEN_OT_screenshot_area (struct wmOperatorType *ot)
 
bool workspace_layout_set_poll (const struct WorkSpaceLayout *layout)
 

Variables

const char * screen_context_dir []
 

Macro Definition Documentation

◆ AREAJOINTOLERANCEX

#define AREAJOINTOLERANCEX   (AREAMINX * U.dpi_fac)

Definition at line 45 of file screen_intern.h.

◆ AREAJOINTOLERANCEY

#define AREAJOINTOLERANCEY   (HEADERY * U.dpi_fac)

Definition at line 46 of file screen_intern.h.

◆ AZONEFADEIN

#define AZONEFADEIN   (5.0f * U.widget_unit) /* when #AZone is totally visible */

Definition at line 41 of file screen_intern.h.

◆ AZONEFADEOUT

#define AZONEFADEOUT   (6.5f * U.widget_unit) /* when we start seeing the #AZone */

Definition at line 42 of file screen_intern.h.

◆ AZONESPOTH

#define AZONESPOTH   (0.6f * U.widget_unit) /* height of corner #AZone */

Definition at line 40 of file screen_intern.h.

◆ AZONESPOTW

#define AZONESPOTW   UI_HEADER_OFFSET /* width of corner #AZone - max */

Definition at line 39 of file screen_intern.h.

◆ BORDERPADDING

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

Expanded interaction influence of area borders.

Definition at line 51 of file screen_intern.h.

◆ SCREEN_DIR_IS_HORIZONTAL

#define SCREEN_DIR_IS_HORIZONTAL (   dir)    (ELEM(dir, SCREEN_DIR_W, SCREEN_DIR_E))

Definition at line 30 of file screen_intern.h.

◆ SCREEN_DIR_IS_VERTICAL

#define SCREEN_DIR_IS_VERTICAL (   dir)    (ELEM(dir, SCREEN_DIR_N, SCREEN_DIR_S))

Definition at line 29 of file screen_intern.h.

Typedef Documentation

◆ eScreenAxis

typedef enum eScreenAxis eScreenAxis

◆ eScreenDir

typedef enum eScreenDir eScreenDir

Enumeration Type Documentation

◆ eScreenAxis

Enumerator
SCREEN_AXIS_H 

Horizontal.

SCREEN_AXIS_V 

Vertical.

Definition at line 32 of file screen_intern.h.

◆ eScreenDir

enum eScreenDir
Enumerator
SCREEN_DIR_NONE 

This can mean unset, unknown or invalid.

SCREEN_DIR_W 

West/Left.

SCREEN_DIR_N 

North/Up.

SCREEN_DIR_E 

East/Right.

SCREEN_DIR_S 

South/Down.

Definition at line 16 of file screen_intern.h.

Function Documentation

◆ area_getoffsets()

void area_getoffsets ( ScrArea sa_a,
ScrArea sa_b,
eScreenDir  dir,
int *  r_offset1,
int *  r_offset2 
)

◆ area_getorientation()

eScreenDir area_getorientation ( ScrArea sa_a,
ScrArea sa_b 
)

◆ area_split()

ScrArea* area_split ( const wmWindow win,
bScreen screen,
ScrArea area,
eScreenAxis  dir_axis,
float  fac,
bool  merge 
)

◆ ED_area_actionzone_find_xy()

struct AZone* ED_area_actionzone_find_xy ( ScrArea area,
const int  xy[2] 
)

◆ ED_area_data_copy()

void ED_area_data_copy ( ScrArea area_dst,
ScrArea area_src,
bool  do_free 
)

◆ ED_area_data_swap()

void ED_area_data_swap ( ScrArea area_dst,
ScrArea area_src 
)

◆ ed_screen_context()

int ed_screen_context ( const struct bContext C,
const char *  member,
struct bContextDataResult result 
)

Entry point for the screen context.

◆ region_toggle_hidden()

void region_toggle_hidden ( struct bContext C,
ARegion region,
bool  do_fade 
)

◆ screen_add()

bScreen* screen_add ( struct Main bmain,
const char *  name,
const rcti rect 
)

◆ screen_area_close()

bool screen_area_close ( struct bContext C,
bScreen screen,
ScrArea area 
)

Close a screen area, allowing most-aligned neighbor to take its place.

Definition at line 514 of file screen_edit.c.

References blender::compositor::area(), area_getorientation(), bScreen::areabase, C, float(), LISTBASE_FOREACH, MAX2, MIN2, NULL, screen_area_join_ex(), SCREEN_DIR_IS_VERTICAL, and SCREEN_DIR_NONE.

Referenced by area_close_exec(), and screen_area_join_ex().

◆ screen_area_join()

int screen_area_join ( struct bContext C,
bScreen screen,
ScrArea sa1,
ScrArea sa2 
)

Join any two neighboring areas. Might involve complex changes.

Definition at line 509 of file screen_edit.c.

References C, and screen_area_join_ex().

Referenced by area_join_apply(), and area_split_cancel().

◆ screen_area_spacelink_add()

void screen_area_spacelink_add ( struct Scene scene,
ScrArea area,
eSpace_Type  space_type 
)

◆ screen_change_prepare()

void screen_change_prepare ( bScreen screen_old,
bScreen screen_new,
struct Main bmain,
struct bContext C,
wmWindow win 
)

◆ screen_change_update()

void screen_change_update ( struct bContext C,
wmWindow win,
bScreen screen 
)

◆ screen_data_copy()

void screen_data_copy ( bScreen to,
bScreen from 
)

◆ screen_draw_join_highlight()

void screen_draw_join_highlight ( struct ScrArea sa1,
struct ScrArea sa2 
)

◆ screen_draw_split_preview()

void screen_draw_split_preview ( struct ScrArea area,
eScreenAxis  dir_axis,
float  fac 
)

◆ screen_geom_area_height()

int screen_geom_area_height ( const ScrArea area)

◆ screen_geom_area_map_find_active_scredge()

ScrEdge* screen_geom_area_map_find_active_scredge ( const struct ScrAreaMap area_map,
const rcti bounds_rect,
int  mx,
int  my 
)
Parameters
bounds_rectEither window or screen bounds. Used to exclude edges along window/screen edges.

◆ screen_geom_area_width()

int screen_geom_area_width ( const ScrArea area)

◆ screen_geom_edge_add()

ScrEdge* screen_geom_edge_add ( bScreen screen,
ScrVert v1,
ScrVert v2 
)

Definition at line 62 of file screen_geometry.c.

References AREAMAP_FROM_SCREEN, screen_geom_edge_add_ex(), v1, and v2.

Referenced by area_split(), screen_add(), and screen_area_join_aligned().

◆ screen_geom_edge_add_ex()

ScrEdge* screen_geom_edge_add_ex ( ScrAreaMap area_map,
ScrVert v1,
ScrVert v2 
)

◆ screen_geom_edge_is_horizontal()

bool screen_geom_edge_is_horizontal ( ScrEdge se)

◆ screen_geom_find_active_scredge()

ScrEdge* screen_geom_find_active_scredge ( const wmWindow win,
const bScreen screen,
int  mx,
int  my 
)

Need win size to make sure not to include edges along screen edge.

Definition at line 109 of file screen_geometry.c.

References AREAMAP_FROM_SCREEN, wmWindow::global_areas, NULL, screen_geom_area_map_find_active_scredge(), USER_APP_LOCK_EDGE_RESIZE, WM_window_rect_calc(), and WM_window_screen_rect_calc().

Referenced by area_move_init(), and screen_cursor_set().

◆ screen_geom_find_area_split_point()

short screen_geom_find_area_split_point ( const ScrArea area,
const rcti window_rect,
eScreenAxis  dir_axis,
float  fac 
)
Returns
0 if no split is possible, otherwise the screen-coordinate at which to split.

Definition at line 280 of file screen_geometry.c.

References blender::compositor::area(), AREAMINX, CLAMP, ED_area_headersize(), round_fl_to_short(), SCREEN_AXIS_H, SCREEN_AXIS_V, screen_geom_area_height(), screen_geom_area_width(), x, rcti::xmax, rcti::xmin, y, rcti::ymax, and rcti::ymin.

Referenced by area_split().

◆ screen_geom_select_connected_edge()

void screen_geom_select_connected_edge ( const wmWindow win,
ScrEdge edge 
)

Select all edges that are directly or indirectly connected to edge.

Definition at line 348 of file screen_geometry.c.

References ED_screen_verts_iter, bScreen::edgebase, LISTBASE_FOREACH, SCREEN_AXIS_H, SCREEN_AXIS_V, and WM_window_get_active_screen().

Referenced by area_move_init(), and screen_geom_vertices_scale_pass().

◆ screen_geom_vertex_add()

ScrVert* screen_geom_vertex_add ( bScreen screen,
short  x,
short  y 
)

Definition at line 46 of file screen_geometry.c.

References AREAMAP_FROM_SCREEN, screen_geom_vertex_add_ex(), x, and y.

Referenced by area_split(), and screen_add().

◆ screen_geom_vertex_add_ex()

ScrVert* screen_geom_vertex_add_ex ( ScrAreaMap area_map,
short  x,
short  y 
)

◆ screen_geom_vertices_scale()

void screen_geom_vertices_scale ( const wmWindow win,
bScreen screen 
)

Main screen-layout calculation function.

  • Scale areas nicely on window size and DPI changes.
  • Ensure areas have a minimum height.
  • Correctly set global areas to their fixed height.

Definition at line 233 of file screen_geometry.c.

References blender::compositor::area(), ScrAreaMap::areabase, ED_area_global_size_y(), GLOBAL_AREA_ALIGN_BOTTOM, GLOBAL_AREA_ALIGN_TOP, GLOBAL_AREA_IS_HIDDEN, wmWindow::global_areas, height, LISTBASE_FOREACH, screen_geom_vertices_scale_pass(), WM_window_rect_calc(), WM_window_screen_rect_calc(), rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by ED_screen_refresh().

◆ screen_new_activate_prepare()

void screen_new_activate_prepare ( const wmWindow win,
bScreen screen_new 
)

Prepare a newly created screen for initializing it as active screen.

Definition at line 258 of file screen_edit.c.

References bScreen::do_draw, bScreen::do_refresh, bScreen::winid, and wmWindow::winid.

◆ SCREEN_OT_screenshot()

void SCREEN_OT_screenshot ( struct wmOperatorType ot)

◆ SCREEN_OT_screenshot_area()

void SCREEN_OT_screenshot_area ( struct wmOperatorType ot)

◆ workspace_layout_set_poll()

bool workspace_layout_set_poll ( const struct WorkSpaceLayout layout)

Variable Documentation

◆ screen_context_dir

const char* screen_context_dir[]
extern

Definition at line 56 of file screen_context.c.

Referenced by bpy_context_members(), and ed_screen_context().