Blender  V3.3
Classes
interface_query.cc File Reference
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "DNA_screen_types.h"
#include "UI_interface.h"
#include "UI_view2d.h"
#include "RNA_access.h"
#include "interface_intern.h"
#include "WM_api.h"
#include "WM_types.h"

Go to the source code of this file.

Classes

struct  ListRowFindIndexData
 

Functions

Button (#uiBut) Spatial
void ui_but_pie_dir (RadialDirection dir, float vec[2])
 
static bool ui_but_isect_pie_seg (const uiBlock *block, const uiBut *but)
 
bool ui_but_contains_pt (const uiBut *but, float mx, float my)
 
bool ui_but_contains_rect (const uiBut *but, const rctf *rect)
 
bool ui_but_contains_point_px (const uiBut *but, const ARegion *region, const int xy[2])
 
bool ui_but_contains_point_px_icon (const uiBut *but, ARegion *region, const wmEvent *event)
 
static uiButui_but_find (const ARegion *region, const uiButFindPollFn find_poll, const void *find_custom_data)
 
uiButui_but_find_mouse_over_ex (const ARegion *region, const int xy[2], const bool labeledit, const bool for_tooltip, const uiButFindPollFn find_poll, const void *find_custom_data)
 
uiButui_but_find_mouse_over (const ARegion *region, const wmEvent *event)
 
uiButui_but_find_rect_over (const struct ARegion *region, const rcti *rect_px)
 
uiButui_list_find_mouse_over_ex (const ARegion *region, const int xy[2])
 
uiButui_list_find_mouse_over (const ARegion *region, const wmEvent *event)
 
uiListUI_list_find_mouse_over (const ARegion *region, const wmEvent *event)
 
static bool ui_list_contains_row (const uiBut *listbox_but, const uiBut *listrow_but)
 
static bool ui_but_is_listbox_with_row (const uiBut *but, const void *customdata)
 
uiButui_list_find_from_row (const ARegion *region, const uiBut *row_but)
 
static bool ui_but_is_listrow (const uiBut *but, const void *UNUSED(customdata))
 
uiButui_list_row_find_mouse_over (const ARegion *region, const int xy[2])
 
static bool ui_but_is_listrow_at_index (const uiBut *but, const void *customdata)
 
uiButui_list_row_find_from_index (const ARegion *region, const int index, uiBut *listbox)
 
static bool ui_but_is_view_item_fn (const uiBut *but, const void *UNUSED(customdata))
 
uiButui_view_item_find_mouse_over (const ARegion *region, const int xy[2])
 
static bool ui_but_is_active_view_item (const uiBut *but, const void *UNUSED(customdata))
 
uiButui_view_item_find_active (const ARegion *region)
 
Button (#uiBut) Relations
uiButui_but_prev (uiBut *but)
 
uiButui_but_next (uiBut *but)
 
uiButui_but_first (uiBlock *block)
 
uiButui_but_last (uiBlock *block)
 
bool ui_but_is_cursor_warp (const uiBut *but)
 
bool ui_but_contains_password (const uiBut *but)
 
Button (#uiBut) Text
size_t ui_but_drawstr_len_without_sep_char (const uiBut *but)
 
size_t ui_but_drawstr_without_sep_char (const uiBut *but, char *str, size_t str_maxlen)
 
size_t ui_but_tip_len_only_first_line (const uiBut *but)
 
Block (#uiBlock) State
uiButui_block_active_but_get (const uiBlock *block)
 
bool ui_block_is_menu (const uiBlock *block)
 
bool ui_block_is_popover (const uiBlock *block)
 
bool ui_block_is_pie_menu (const uiBlock *block)
 
bool ui_block_is_popup_any (const uiBlock *block)
 
static const uiButui_but_next_non_separator (const uiBut *but)
 
bool UI_block_is_empty_ex (const uiBlock *block, const bool skip_title)
 
bool UI_block_is_empty (const uiBlock *block)
 
bool UI_block_can_add_separator (const uiBlock *block)
 
Block (#uiBlock) Spatial
uiBlockui_block_find_mouse_over_ex (const ARegion *region, const int xy[2], bool only_clip)
 
uiBlockui_block_find_mouse_over (const ARegion *region, const wmEvent *event, bool only_clip)
 
Region (#ARegion) State
uiButui_region_find_active_but (ARegion *region)
 
uiButui_region_find_first_but_test_flag (ARegion *region, int flag_include, int flag_exclude)
 
Region (#ARegion) Spatial
bool ui_region_contains_point_px (const ARegion *region, const int xy[2])
 
bool ui_region_contains_rect_px (const ARegion *region, const rcti *rect_px)
 
Screen (#bScreen) Spatial
ARegionui_screen_region_find_mouse_over_ex (bScreen *screen, const int xy[2])
 
ARegionui_screen_region_find_mouse_over (bScreen *screen, const wmEvent *event)
 
Manage Internal State
void ui_interface_tag_script_reload_queries (void)
 

Button (#uiBut) State

static wmOperatorTypeg_ot_tool_set_by_id = nullptr
 
bool ui_but_is_editable (const uiBut *but)
 
bool ui_but_is_editable_as_text (const uiBut *but)
 
bool ui_but_is_toggle (const uiBut *but)
 
bool ui_but_is_interactive_ex (const uiBut *but, const bool labeledit, const bool for_tooltip)
 
bool ui_but_is_interactive (const uiBut *but, const bool labeledit)
 
bool UI_but_is_utf8 (const uiBut *but)
 
bool ui_but_is_popover_once_compat (const uiBut *but)
 
bool ui_but_has_array_value (const uiBut *but)
 
bool UI_but_is_tool (const uiBut *but)
 
bool UI_but_has_tooltip_label (const uiBut *but)
 
int ui_but_icon (const uiBut *but)
 

Detailed Description

Utilities to inspect the interface, extract information.

Definition in file interface_query.cc.

Function Documentation

◆ ui_block_active_but_get()

uiBut* ui_block_active_but_get ( const uiBlock block)

◆ UI_block_can_add_separator()

bool UI_block_can_add_separator ( const uiBlock block)

◆ ui_block_find_mouse_over()

uiBlock* ui_block_find_mouse_over ( const ARegion region,
const wmEvent event,
bool  only_clip 
)

Definition at line 696 of file interface_query.cc.

References ui_block_find_mouse_over_ex(), and wmEvent::xy.

◆ ui_block_find_mouse_over_ex()

uiBlock* ui_block_find_mouse_over_ex ( const ARegion region,
const int  xy[2],
bool  only_clip 
)

◆ UI_block_is_empty()

bool UI_block_is_empty ( const uiBlock block)

Definition at line 656 of file interface_query.cc.

References UI_block_is_empty_ex().

◆ UI_block_is_empty_ex()

bool UI_block_is_empty_ex ( const uiBlock block,
const bool  skip_title 
)

◆ ui_block_is_menu()

bool ui_block_is_menu ( const uiBlock block)

◆ ui_block_is_pie_menu()

bool ui_block_is_pie_menu ( const uiBlock block)

◆ ui_block_is_popover()

bool ui_block_is_popover ( const uiBlock block)

Definition at line 617 of file interface_query.cc.

References uiBlock::flag, and UI_BLOCK_POPOVER.

Referenced by ui_block_is_popup_any(), UI_but_has_tooltip_label(), and ui_def_but().

◆ ui_block_is_popup_any()

bool ui_block_is_popup_any ( const uiBlock block)

◆ ui_but_contains_password()

bool ui_but_contains_password ( const uiBut but)

Definition at line 552 of file interface_query.cc.

References PROP_PASSWORD, RNA_property_subtype(), and uiBut::rnaprop.

Referenced by ui_but_copy().

◆ ui_but_contains_point_px()

bool ui_but_contains_point_px ( const uiBut but,
const ARegion region,
const int  xy[2] 
)

◆ ui_but_contains_point_px_icon()

bool ui_but_contains_point_px_icon ( const uiBut but,
ARegion region,
const wmEvent event 
)

◆ ui_but_contains_pt()

bool ui_but_contains_pt ( const uiBut but,
float  mx,
float  my 
)

◆ ui_but_contains_rect()

bool ui_but_contains_rect ( const uiBut but,
const rctf rect 
)

Definition at line 214 of file interface_query.cc.

References BLI_rctf_isect(), and uiBut::rect.

Referenced by ui_but_find_rect_over().

◆ ui_but_drawstr_len_without_sep_char()

size_t ui_but_drawstr_len_without_sep_char ( const uiBut but)

◆ ui_but_drawstr_without_sep_char()

size_t ui_but_drawstr_without_sep_char ( const uiBut but,
char *  str,
size_t  str_maxlen 
)

◆ ui_but_find()

static uiBut* ui_but_find ( const ARegion region,
const uiButFindPollFn  find_poll,
const void find_custom_data 
)
static

◆ ui_but_find_mouse_over()

uiBut* ui_but_find_mouse_over ( const ARegion region,
const wmEvent event 
)

◆ ui_but_find_mouse_over_ex()

uiBut* ui_but_find_mouse_over_ex ( const ARegion region,
const int  xy[2],
const bool  labeledit,
const bool  for_tooltip,
const uiButFindPollFn  find_poll,
const void find_custom_data 
)

◆ ui_but_find_rect_over()

uiBut* ui_but_find_rect_over ( const struct ARegion region,
const rcti rect_px 
)

◆ ui_but_first()

uiBut* ui_but_first ( uiBlock block)

◆ ui_but_has_array_value()

bool ui_but_has_array_value ( const uiBut but)

◆ UI_but_has_tooltip_label()

bool UI_but_has_tooltip_label ( const uiBut but)

◆ ui_but_icon()

int ui_but_icon ( const uiBut but)

◆ ui_but_is_active_view_item()

static bool ui_but_is_active_view_item ( const uiBut but,
const void UNUSEDcustomdata 
)
static

◆ ui_but_is_cursor_warp()

bool ui_but_is_cursor_warp ( const uiBut but)

◆ ui_but_is_editable()

bool ui_but_is_editable ( const uiBut but)

◆ ui_but_is_editable_as_text()

bool ui_but_is_editable_as_text ( const uiBut but)

◆ ui_but_is_interactive()

bool ui_but_is_interactive ( const uiBut but,
const bool  labeledit 
)

◆ ui_but_is_interactive_ex()

bool ui_but_is_interactive_ex ( const uiBut but,
const bool  labeledit,
const bool  for_tooltip 
)

Can we mouse over the button or is it hidden/disabled/layout.

Note
ctrl is kind of a hack currently, so that non-embossed UI_BTYPE_TEXT button behaves as a label when ctrl is not pressed.

Definition at line 60 of file interface_query.cc.

References ELEM, uiBut::emboss, uiBut::flag, uiBut::tip_func, uiBut::type, UI_BTYPE_LABEL, UI_BTYPE_LISTBOX, UI_BTYPE_LISTROW, UI_BTYPE_ROUNDBOX, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_TEXT, ui_but_drag_is_draggable(), UI_EMBOSS_NONE, UI_EMBOSS_NONE_OR_STATUS, UI_HIDDEN, and UI_SCROLLED.

Referenced by ui_but_find_mouse_over_ex(), and ui_but_is_interactive().

◆ ui_but_is_listbox_with_row()

static bool ui_but_is_listbox_with_row ( const uiBut but,
const void customdata 
)
static

Definition at line 416 of file interface_query.cc.

References uiBut::type, UI_BTYPE_LISTBOX, and ui_list_contains_row().

Referenced by ui_list_find_from_row().

◆ ui_but_is_listrow()

static bool ui_but_is_listrow ( const uiBut but,
const void UNUSEDcustomdata 
)
static

Definition at line 427 of file interface_query.cc.

References uiBut::type, and UI_BTYPE_LISTROW.

Referenced by ui_but_is_listrow_at_index(), and ui_list_row_find_mouse_over().

◆ ui_but_is_listrow_at_index()

static bool ui_but_is_listrow_at_index ( const uiBut but,
const void customdata 
)
static

◆ ui_but_is_popover_once_compat()

bool ui_but_is_popover_once_compat ( const uiBut but)

◆ ui_but_is_toggle()

bool ui_but_is_toggle ( const uiBut but)

◆ UI_but_is_tool()

bool UI_but_is_tool ( const uiBut but)

◆ UI_but_is_utf8()

bool UI_but_is_utf8 ( const uiBut but)

◆ ui_but_is_view_item_fn()

static bool ui_but_is_view_item_fn ( const uiBut but,
const void UNUSEDcustomdata 
)
static

Definition at line 459 of file interface_query.cc.

References uiBut::type, and UI_BTYPE_VIEW_ITEM.

Referenced by ui_view_item_find_mouse_over().

◆ ui_but_isect_pie_seg()

static bool ui_but_isect_pie_seg ( const uiBlock block,
const uiBut but 
)
static

◆ ui_but_last()

uiBut* ui_but_last ( uiBlock block)

Definition at line 522 of file interface_query.cc.

References uiBlock::buttons, ListBase::last, uiBut::prev, and ui_but_is_editable().

Referenced by ui_handle_menu_event().

◆ ui_but_next()

uiBut* ui_but_next ( uiBut but)

Definition at line 501 of file interface_query.cc.

References uiBut::next, and ui_but_is_editable().

Referenced by ui_handle_menu_event().

◆ ui_but_next_non_separator()

static const uiBut* ui_but_next_non_separator ( const uiBut but)
static

Definition at line 632 of file interface_query.cc.

References ELEM, uiBut::next, uiBut::type, UI_BTYPE_SEPR, and UI_BTYPE_SEPR_LINE.

Referenced by UI_block_is_empty_ex().

◆ ui_but_pie_dir()

void ui_but_pie_dir ( RadialDirection  dir,
float  vec[2] 
)

◆ ui_but_prev()

uiBut* ui_but_prev ( uiBut but)

Definition at line 490 of file interface_query.cc.

References uiBut::prev, and ui_but_is_editable().

Referenced by ui_handle_menu_event().

◆ ui_but_tip_len_only_first_line()

size_t ui_but_tip_len_only_first_line ( const uiBut but)

Definition at line 580 of file interface_query.cc.

References uiBut::tip.

Referenced by ui_apply_but_undo().

◆ ui_interface_tag_script_reload_queries()

void ui_interface_tag_script_reload_queries ( void  )

Definition at line 818 of file interface_query.cc.

References g_ot_tool_set_by_id.

Referenced by UI_interface_tag_script_reload().

◆ ui_list_contains_row()

static bool ui_list_contains_row ( const uiBut listbox_but,
const uiBut listrow_but 
)
static

◆ ui_list_find_from_row()

uiBut* ui_list_find_from_row ( const ARegion region,
const uiBut row_but 
)

Definition at line 422 of file interface_query.cc.

References ui_but_find(), and ui_but_is_listbox_with_row().

◆ ui_list_find_mouse_over()

uiBut* ui_list_find_mouse_over ( const ARegion region,
const wmEvent event 
)

Definition at line 389 of file interface_query.cc.

References ui_list_find_mouse_over_ex(), and wmEvent::xy.

Referenced by UI_list_find_mouse_over().

◆ UI_list_find_mouse_over()

uiList* UI_list_find_mouse_over ( const ARegion region,
const wmEvent event 
)

Definition at line 398 of file interface_query.cc.

References uiBut::custom_data, and ui_list_find_mouse_over().

◆ ui_list_find_mouse_over_ex()

uiBut* ui_list_find_mouse_over_ex ( const ARegion region,
const int  xy[2] 
)

◆ ui_list_row_find_from_index()

uiBut* ui_list_row_find_from_index ( const ARegion region,
const int  index,
uiBut listbox 
)

◆ ui_list_row_find_mouse_over()

uiBut* ui_list_row_find_mouse_over ( const ARegion region,
const int  xy[2] 
)

Definition at line 432 of file interface_query.cc.

References ui_but_find_mouse_over_ex(), ui_but_is_listrow(), and xy.

◆ ui_region_contains_point_px()

bool ui_region_contains_point_px ( const ARegion region,
const int  xy[2] 
)

◆ ui_region_contains_rect_px()

bool ui_region_contains_rect_px ( const ARegion region,
const rcti rect_px 
)

◆ ui_region_find_active_but()

uiBut* ui_region_find_active_but ( ARegion region)

◆ ui_region_find_first_but_test_flag()

uiBut* ui_region_find_first_but_test_flag ( ARegion region,
int  flag_include,
int  flag_exclude 
)

Definition at line 719 of file interface_query.cc.

References uiBut::flag, LISTBASE_FOREACH, and ARegion::uiblocks.

Referenced by ui_handle_menu_event().

◆ ui_screen_region_find_mouse_over()

ARegion* ui_screen_region_find_mouse_over ( bScreen screen,
const wmEvent event 
)

Definition at line 807 of file interface_query.cc.

References ui_screen_region_find_mouse_over_ex(), and wmEvent::xy.

◆ ui_screen_region_find_mouse_over_ex()

ARegion* ui_screen_region_find_mouse_over_ex ( bScreen screen,
const int  xy[2] 
)

◆ ui_view_item_find_active()

uiBut* ui_view_item_find_active ( const ARegion region)

Definition at line 479 of file interface_query.cc.

References ui_but_find(), and ui_but_is_active_view_item().

◆ ui_view_item_find_mouse_over()

uiBut* ui_view_item_find_mouse_over ( const ARegion region,
const int  xy[2] 
)

Definition at line 464 of file interface_query.cc.

References ui_but_find_mouse_over_ex(), ui_but_is_view_item_fn(), and xy.

Variable Documentation

◆ g_ot_tool_set_by_id

wmOperatorType* g_ot_tool_set_by_id = nullptr
static

Definition at line 137 of file interface_query.cc.

Referenced by UI_but_is_tool(), and ui_interface_tag_script_reload_queries().