Blender V4.3
interface_intern.hh File Reference
#include <functional>
#include "BLI_compiler_attrs.h"
#include "BLI_math_vector_types.hh"
#include "BLI_rect.h"
#include "BLI_string_ref.hh"
#include "BLI_vector.hh"
#include "BKE_fcurve.hh"
#include "DNA_listBase.h"
#include "RNA_types.hh"
#include "UI_interface.hh"
#include "UI_resources.hh"

Go to the source code of this file.

Classes

struct  uiBut
 
struct  uiButNumber
 
struct  uiButNumberSlider
 
struct  uiButColor
 
struct  uiButTab
 
struct  uiButSearch
 
struct  uiButDecorator
 
struct  uiButProgress
 
struct  uiButSeparatorLine
 
struct  uiButLabel
 
struct  uiButScrollBar
 
struct  uiButViewItem
 
struct  uiButHSVCube
 
struct  uiButColorBand
 
struct  uiButCurveProfile
 
struct  uiButCurveMapping
 
struct  uiButHotkeyEvent
 
struct  uiButExtraOpIcon
 
struct  ColorPicker
 
struct  ColorPickerData
 
struct  PieMenuData
 
struct  uiButtonGroup
 
struct  uiBlockDynamicListener
 
struct  uiBlock
 
struct  uiSafetyRct
 
struct  uiKeyNavLock
 
struct  uiPopupBlockCreate
 
struct  uiPopupBlockHandle
 
struct  uiWidgetBaseParameters
 
struct  uiRNACollectionSearch
 

Namespaces

namespace  blender
 
namespace  blender::gpu
 
namespace  blender::ui
 
namespace  blender::interface
 
namespace  blender::interface::internal
 

Macros

#define RNA_NO_INDEX   -1
 
#define RNA_ENUM_VALUE   -2
 
#define UI_MENU_PADDING   (int)(0.2f * UI_UNIT_Y)
 
#define UI_MENU_WIDTH_MIN   (UI_UNIT_Y * 9)
 
#define UI_MENU_SUBMENU_PADDING   (6 * UI_SCALE_FAC)
 
#define UI_MENU_SCROLL_ARROW   (12 * UI_SCALE_FAC)
 
#define UI_MENU_SCROLL_MOUSE   (UI_MENU_SCROLL_ARROW + 2 * UI_SCALE_FAC)
 
#define UI_MENU_SCROLL_PAD   (4 * UI_SCALE_FAC)
 
#define UI_POPOVER_WIDTH_UNITS   10
 
#define UI_RADIAL_DIRECTION_NEXT(dir)   RadialDirection((int(dir) + 1) % (int(UI_RADIAL_NW) + 1))
 
#define UI_RADIAL_DIRECTION_PREV(dir)    RadialDirection(((int(dir) + int(UI_RADIAL_NW))) % (int(UI_RADIAL_NW) + 1))
 
#define UI_RADIAL_MASK_ALL_DIAGONAL
 
#define UI_RADIAL_MASK_ALL_AXIS_ALIGNED
 
#define PNL_HEADER   (UI_UNIT_Y * 1.25) /* 24 default */
 
#define UI_BITBUT_TEST(a, b)   (((a) & (1 << (b))) != 0)
 
#define UI_BITBUT_VALUE_TOGGLED(a, b)   ((a) ^ (1 << (b)))
 
#define UI_BITBUT_VALUE_ENABLED(a, b)   ((a) | (1 << (b)))
 
#define UI_BITBUT_VALUE_DISABLED(a, b)   ((a) & ~(1 << (b)))
 
#define UI_BITBUT_ROW(min, max)    (((max) >= 31 ? 0xFFFFFFFF : (1 << ((max) + 1)) - 1) - ((min) ? ((1 << (min)) - 1) : 0))
 
#define USE_NUMBUTS_LR_ALIGN
 
#define USE_UIBUT_SPATIAL_ALIGN
 
#define PIE_CLICK_THRESHOLD_SQ   50.0f
 
#define PIE_MAX_ITEMS   8
 
#define UI_TEXT_MARGIN_X   0.4f
 
#define UI_POPUP_MARGIN   (UI_SCALE_FAC * 12)
 
#define UI_POPUP_MENU_TOP   (int)(10 * UI_SCALE_FAC)
 
#define UI_PIXEL_AA_JITTER   8
 

Typedefs

using uiBlockHandleCreateFunc = uiBlock *(*)(bContext *C, uiPopupBlockHandle *handle, void *arg1)
 
using uiPopoverCreateFunc = std::function<void(bContext *, uiLayout *, PanelType *)>
 
using uiButFindPollFn = bool (*)(const uiBut *but, const void *customdata)
 

Enumerations

enum  {
  UI_SELECT = (1 << 0) , UI_SCROLLED = (1 << 1) , UI_HOVER = (1 << 2) , UI_HAS_ICON = (1 << 3) ,
  UI_HIDDEN = (1 << 4) , UI_SELECT_DRAW = (1 << 5) , UI_SEARCH_FILTER_NO_MATCH = (1 << 6) , UI_BUT_ACTIVE_OVERRIDE = (1 << 7)
}
 
enum  RadialDirection {
  UI_RADIAL_NONE = -1 , UI_RADIAL_N = 0 , UI_RADIAL_NE = 1 , UI_RADIAL_E = 2 ,
  UI_RADIAL_SE = 3 , UI_RADIAL_S = 4 , UI_RADIAL_SW = 5 , UI_RADIAL_W = 6 ,
  UI_RADIAL_NW = 7
}
 
enum  {
  UI_PIE_INITIAL_DIRECTION = (1 << 1) , UI_PIE_DRAG_STYLE = (1 << 2) , UI_PIE_INVALID_DIR = (1 << 3) , UI_PIE_CLICK_STYLE = (1 << 4) ,
  UI_PIE_ANIMATION_FINISHED = (1 << 5) , UI_PIE_GESTURE_END_WAIT = (1 << 6)
}
 
enum  eBlockContentHints { UI_BLOCK_CONTAINS_SUBMENU_BUT = (1 << 0) }
 
enum  uiButtonGroupFlag { UI_BUTTON_GROUP_LOCK = (1 << 0) , UI_BUTTON_GROUP_PANEL_HEADER = (1 << 1) }
 
enum  {
  ROUNDBOX_TRIA_NONE = 0 , ROUNDBOX_TRIA_ARROWS , ROUNDBOX_TRIA_SCROLL , ROUNDBOX_TRIA_MENU ,
  ROUNDBOX_TRIA_CHECK , ROUNDBOX_TRIA_HOLD_ACTION_ARROW , ROUNDBOX_TRIA_DASH , ROUNDBOX_TRIA_MAX
}
 
enum  uiMenuItemSeparatorType { UI_MENU_ITEM_SEPARATOR_NONE , UI_MENU_ITEM_SEPARATOR_SHORTCUT , UI_MENU_ITEM_SEPARATOR_HINT }
 

Functions

 ENUM_OPERATORS (uiButtonGroupFlag, UI_BUTTON_GROUP_PANEL_HEADER)
 
void ui_fontscale (float *points, float aspect)
 
void ui_but_to_pixelrect (rcti *rect, const ARegion *region, const uiBlock *block, const uiBut *but)
 
rcti ui_to_pixelrect (const ARegion *region, const uiBlock *block, const rctf *src_rect)
 
void ui_block_to_region_fl (const ARegion *region, const uiBlock *block, float *x, float *y)
 
void ui_block_to_window_fl (const ARegion *region, const uiBlock *block, float *x, float *y)
 
void ui_block_to_window (const ARegion *region, const uiBlock *block, int *x, int *y)
 
void ui_block_to_region_rctf (const ARegion *region, const uiBlock *block, rctf *rct_dst, const rctf *rct_src)
 
void ui_block_to_window_rctf (const ARegion *region, const uiBlock *block, rctf *rct_dst, const rctf *rct_src)
 
float ui_block_to_window_scale (const ARegion *region, const uiBlock *block)
 
void ui_window_to_block_fl (const ARegion *region, const uiBlock *block, float *x, float *y)
 
void ui_window_to_block (const ARegion *region, const uiBlock *block, int *x, int *y)
 
void ui_window_to_block_rctf (const ARegion *region, const uiBlock *block, rctf *rct_dst, const rctf *rct_src)
 
void ui_window_to_region (const ARegion *region, int *x, int *y)
 
void ui_window_to_region_rcti (const ARegion *region, rcti *rect_dst, const rcti *rct_src)
 
void ui_window_to_region_rctf (const ARegion *region, rctf *rect_dst, const rctf *rct_src)
 
void ui_region_to_window (const ARegion *region, int *x, int *y)
 
void ui_region_winrct_get_no_margin (const ARegion *region, rcti *r_rect)
 
void ui_block_add_dynamic_listener (uiBlock *block, void(*listener_func)(const wmRegionListenerParams *params))
 
uiButui_but_change_type (uiBut *but, eButType new_type)
 
double ui_but_value_get (uiBut *but)
 
void ui_but_value_set (uiBut *but, double value)
 
void ui_but_hsv_set (uiBut *but)
 
void ui_but_v3_get (uiBut *but, float vec[3])
 
void ui_but_v3_set (uiBut *but, const float vec[3])
 
void ui_but_v4_get (uiBut *but, float vec[4])
 
void ui_but_v4_set (uiBut *but, const float vec[4])
 
void ui_hsvcircle_vals_from_pos (const rcti *rect, float mx, float my, float *r_val_rad, float *r_val_dist)
 
void ui_hsvcircle_pos_from_vals (const ColorPicker *cpicker, const rcti *rect, const float *hsv, float *r_xpos, float *r_ypos)
 
void ui_hsvcube_pos_from_vals (const uiButHSVCube *hsv_but, const rcti *rect, const float *hsv, float *r_xp, float *r_yp)
 
void ui_but_string_get_ex (uiBut *but, char *str, size_t str_maxncpy, int float_precision, bool use_exp_float, bool *r_use_exp_float) ATTR_NONNULL(1
 
void void ui_but_string_get (uiBut *but, char *str, size_t str_maxncpy) ATTR_NONNULL()
 
char * ui_but_string_get_dynamic (uiBut *but, int *r_str_size)
 
void ui_but_convert_to_unit_alt_name (uiBut *but, char *str, size_t str_maxncpy) ATTR_NONNULL()
 
bool ui_but_string_set (bContext *C, uiBut *but, const char *str) ATTR_NONNULL()
 
bool ui_but_string_eval_number (bContext *C, const uiBut *but, const char *str, double *r_value) ATTR_NONNULL()
 
int ui_but_string_get_maxncpy (uiBut *but)
 
void ui_but_active_string_clear_and_exit (bContext *C, uiBut *but) ATTR_NONNULL()
 
void ui_but_set_string_interactive (bContext *C, uiBut *but, const char *value)
 
uiButui_but_drag_multi_edit_get (uiBut *but)
 
const char * ui_but_placeholder_get (uiBut *but)
 
void ui_def_but_icon (uiBut *but, int icon, int flag)
 
void ui_def_but_icon_clear (uiBut *but)
 
void ui_but_extra_operator_icons_free (uiBut *but)
 
void ui_but_rna_menu_convert_to_panel_type (uiBut *but, const char *panel_type)
 
void ui_but_rna_menu_convert_to_menu_type (uiBut *but, const char *menu_type)
 
bool ui_but_menu_draw_as_popover (const uiBut *but)
 
void ui_but_range_set_hard (uiBut *but)
 
void ui_but_range_set_soft (uiBut *but)
 
bool ui_but_context_poll_operator (bContext *C, wmOperatorType *ot, const uiBut *but)
 
bool ui_but_context_poll_operator_ex (bContext *C, const uiBut *but, const wmOperatorCallParams *optype_params)
 
void ui_but_update (uiBut *but)
 
void ui_but_update_edited (uiBut *but)
 
PropertyScaleType ui_but_scale_type (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_is_float (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_is_bool (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_is_unit (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_is_compatible (const uiBut *but_a, const uiBut *but_b) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_is_rna_valid (uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_supports_cycling (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
int ui_but_is_pushed_ex (uiBut *but, double *value) ATTR_WARN_UNUSED_RESULT
 
int ui_but_is_pushed (uiBut *but) ATTR_WARN_UNUSED_RESULT
 
void ui_but_override_flag (Main *bmain, uiBut *but)
 
void ui_block_bounds_calc (uiBlock *block)
 
ColorManagedDisplayui_block_cm_display_get (uiBlock *block)
 
void ui_block_cm_to_display_space_v3 (uiBlock *block, float pixel[3])
 
void ui_color_picker_rgb_to_hsv_compat (const float rgb[3], float r_cp[3])
 
void ui_color_picker_rgb_to_hsv (const float rgb[3], float r_cp[3])
 
void ui_color_picker_hsv_to_rgb (const float r_cp[3], float rgb[3])
 
bool ui_but_is_color_gamma (uiBut *but)
 
bool ui_but_color_has_alpha (uiBut *but)
 
void ui_scene_linear_to_perceptual_space (uiBut *but, float rgb[3])
 
void ui_perceptual_to_scene_linear_space (uiBut *but, float rgb[3])
 
uiBlockui_block_func_COLOR (bContext *C, uiPopupBlockHandle *handle, void *arg_but)
 
ColorPickerui_block_colorpicker_create (uiBlock *block)
 
ARegionui_searchbox_create_generic (bContext *C, ARegion *butregion, uiButSearch *search_but)
 
ARegionui_searchbox_create_operator (bContext *C, ARegion *butregion, uiButSearch *search_but)
 
ARegionui_searchbox_create_menu (bContext *C, ARegion *butregion, uiButSearch *search_but)
 
bool ui_searchbox_inside (ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
bool int ui_searchbox_find_index (ARegion *region, const char *name)
 
void ui_searchbox_update (bContext *C, ARegion *region, uiBut *but, bool reset)
 
int ui_searchbox_autocomplete (bContext *C, ARegion *region, uiBut *but, char *str)
 
bool ui_searchbox_event (bContext *C, ARegion *region, uiBut *but, ARegion *butregion, const wmEvent *event)
 
bool ui_searchbox_apply (uiBut *but, ARegion *region)
 
void ui_searchbox_free (bContext *C, ARegion *region)
 
void ui_but_search_refresh (uiButSearch *but)
 
int ui_but_menu_step (uiBut *but, int direction)
 
bool ui_but_menu_step_poll (const uiBut *but)
 
uiButui_popup_menu_memory_get (uiBlock *block)
 
void ui_popup_menu_memory_set (uiBlock *block, uiBut *but)
 
uiBlockui_popup_block_refresh (bContext *C, uiPopupBlockHandle *handle, ARegion *butregion, uiBut *but)
 
uiPopupBlockHandleui_popup_block_create (bContext *C, ARegion *butregion, uiBut *but, uiBlockCreateFunc create_func, uiBlockHandleCreateFunc handle_create_func, void *arg, uiFreeArgFunc arg_free, bool can_refresh)
 
uiPopupBlockHandleui_popup_menu_create (bContext *C, ARegion *butregion, uiBut *but, uiMenuCreateFunc menu_func, void *arg)
 
uiPopupBlockHandleui_popover_panel_create (bContext *C, ARegion *butregion, uiBut *but, uiPopoverCreateFunc popover_func, const PanelType *panel_type)
 
void ui_pie_menu_level_create (uiBlock *block, wmOperatorType *ot, const char *propname, IDProperty *properties, const EnumPropertyItem *items, int totitem, wmOperatorCallContext context, eUI_Item_Flag flag)
 
void ui_popup_translate (ARegion *region, const int mdiff[2])
 
void ui_popup_block_free (bContext *C, uiPopupBlockHandle *handle)
 
void ui_popup_block_scrolltest (uiBlock *block)
 
int ui_handler_panel_region (bContext *C, const wmEvent *event, ARegion *region, const uiBut *active_but)
 
void ui_draw_aligned_panel (const ARegion *region, const uiStyle *style, const uiBlock *block, const rcti *rect, bool show_pin, bool show_background, bool region_search_filter_active)
 
void ui_draw_layout_panels_backdrop (const ARegion *region, const Panel *panel, const float radius, float subpanel_backcolor[4])
 
void ui_panel_drag_collapse_handler_add (const bContext *C, const bool was_open)
 
void ui_panel_tag_search_filter_match (Panel *panel)
 
bool ui_layout_panel_toggle_open (const bContext *C, LayoutPanelHeader *header)
 
LayoutPanelHeaderui_layout_panel_header_under_mouse (const Panel &panel, const int my)
 
void ui_layout_panel_popup_scroll_apply (Panel *panel, const float dy)
 
void ui_draw_gradient (const rcti *rect, const float hsv[3], eButGradientType type, float alpha)
 
void ui_draw_rounded_corners_inverted (const rcti &rect, const float rad, const blender::float4 color)
 
void ui_draw_but_TAB_outline (const rcti *rect, float rad, uchar highlight[3], uchar highlight_fade[3])
 
void ui_draw_but_HISTOGRAM (ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *recti)
 
void ui_draw_but_WAVEFORM (ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *recti)
 
void ui_draw_but_VECTORSCOPE (ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *recti)
 
void ui_draw_but_COLORBAND (uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_UNITVEC (uiBut *but, const uiWidgetColors *wcol, const rcti *rect, float radius)
 
void ui_draw_but_CURVE (ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_CURVEPROFILE (ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_IMAGE (ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_TRACKPREVIEW (ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *recti)
 
uiUndoStack_Textui_textedit_undo_stack_create ()
 
void ui_textedit_undo_stack_destroy (uiUndoStack_Text *stack)
 
void ui_textedit_undo_push (uiUndoStack_Text *stack, const char *text, int cursor_index)
 
const char * ui_textedit_undo (uiUndoStack_Text *stack, int direction, int *r_cursor_index)
 
void ui_handle_afterfunc_add_operator (wmOperatorType *ot, wmOperatorCallContext opcontext)
 
void ui_pan_to_scroll (const wmEvent *event, int *type, int *val)
 
void ui_but_activate_event (bContext *C, ARegion *region, uiBut *but)
 
void ui_but_activate_over (bContext *C, ARegion *region, uiBut *but)
 
void ui_but_execute_begin (bContext *C, ARegion *region, uiBut *but, void **active_back)
 
void ui_but_execute_end (bContext *C, ARegion *region, uiBut *but, void *active_back)
 
void ui_but_active_free (const bContext *C, uiBut *but)
 
void ui_but_semi_modal_state_free (const bContext *C, uiBut *but)
 
void ui_but_update_view_for_active (const bContext *C, const uiBlock *block)
 
int ui_but_menu_direction (uiBut *but)
 
void ui_but_text_password_hide (char password_str[128], uiBut *but, bool restore)
 
uiButui_but_find_select_in_enum (uiBut *but, int direction)
 
bool ui_but_is_editing (const uiBut *but)
 
float ui_block_calc_pie_segment (uiBlock *block, const float event_xy[2])
 
void ui_but_add_shortcut (uiBut *but, const char *shortcut_str, bool do_strip)
 
void ui_but_clipboard_free ()
 
bool ui_but_rna_equals (const uiBut *a, const uiBut *b)
 
bool ui_but_rna_equals_ex (const uiBut *but, const PointerRNA *ptr, const PropertyRNA *prop, int index)
 
uiButui_but_find_old (uiBlock *block_old, const uiBut *but_new)
 
uiButui_but_find_new (uiBlock *block_new, const uiBut *but_old)
 
blender::gpu::Batch * ui_batch_roundbox_widget_get ()
 
blender::gpu::Batch * ui_batch_roundbox_shadow_get ()
 
void ui_draw_menu_back (uiStyle *style, uiBlock *block, const rcti *rect)
 
void ui_draw_popover_back (ARegion *region, uiStyle *style, uiBlock *block, const rcti *rect)
 
void ui_draw_pie_center (uiBlock *block)
 
const uiWidgetColorsui_tooltip_get_theme ()
 
void ui_draw_widget_menu_back_color (const rcti *rect, bool use_shadow, const float color[4])
 
void ui_draw_widget_menu_back (const rcti *rect, bool use_shadow)
 
void ui_draw_tooltip_background (const uiStyle *style, uiBlock *block, const rcti *rect)
 
void ui_draw_but (const bContext *C, ARegion *region, uiStyle *style, uiBut *but, rcti *rect)
 
void ui_draw_menu_item (const uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int but_flag, uiMenuItemSeparatorType separator_type, int *r_xmax)
 
void ui_draw_preview_item (const uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int but_flag, eFontStyle_Align text_align)
 
void ui_draw_preview_item_stateless (const uiFontStyle *fstyle, rcti *rect, blender::StringRef name, int iconid, const uchar text_col[4], eFontStyle_Align text_align, bool draw_as_icon=false)
 
void uiStyleInit ()
 
void ui_icon_ensure_deferred (const bContext *C, int icon_id, bool big)
 
int ui_id_icon_get (const bContext *C, ID *id, bool big)
 
float ui_event_icon_offset (int icon_id)
 
void icon_draw_rect_input (float x, float y, int w, int h, int icon_id, float aspect, float alpha, bool inverted)
 
void ui_resources_init ()
 
void ui_resources_free ()
 
void ui_layout_add_but (uiLayout *layout, uiBut *but)
 
void ui_layout_remove_but (uiLayout *layout, const uiBut *but)
 
bool ui_layout_replace_but_ptr (uiLayout *layout, const void *old_but_ptr, uiBut *new_but)
 
uiButui_but_add_search (uiBut *but, PointerRNA *ptr, PropertyRNA *prop, PointerRNA *searchptr, PropertyRNA *searchprop, bool results_are_suggestions)
 
void ui_layout_list_set_labels_active (uiLayout *layout)
 
void ui_item_menutype_func (bContext *C, uiLayout *layout, void *arg_mt)
 
void ui_item_paneltype_func (bContext *C, uiLayout *layout, void *arg_pt)
 
void ui_block_new_button_group (uiBlock *block, uiButtonGroupFlag flag)
 
void ui_button_group_add_but (uiBlock *block, uiBut *but)
 
void ui_button_group_replace_but_ptr (uiBlock *block, const uiBut *old_but_ptr, uiBut *new_but)
 
void ui_but_drag_free (uiBut *but)
 
bool ui_but_drag_is_draggable (const uiBut *but)
 
void ui_but_drag_start (bContext *C, uiBut *but)
 
bool ui_but_can_align (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
int ui_but_align_opposite_to_area_align_get (const ARegion *region) ATTR_WARN_UNUSED_RESULT
 
void ui_block_align_calc (uiBlock *block, const ARegion *region)
 
void ui_but_anim_flag (uiBut *but, const AnimationEvalContext *anim_eval_context)
 
void ui_but_anim_copy_driver (bContext *C)
 
void ui_but_anim_paste_driver (bContext *C)
 
bool ui_but_anim_expression_get (uiBut *but, char *str, size_t str_maxncpy)
 
bool ui_but_anim_expression_set (uiBut *but, const char *str)
 
bool ui_but_anim_expression_create (uiBut *but, const char *str)
 
void ui_but_anim_autokey (bContext *C, uiBut *but, Scene *scene, float cfra)
 
void ui_but_anim_decorate_cb (bContext *C, void *arg_but, void *arg_dummy)
 
void ui_but_anim_decorate_update_from_flag (uiButDecorator *but)
 
bool ui_but_is_editable (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_is_editable_as_text (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_is_toggle (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_is_interactive_ex (const uiBut *but, const bool labeledit, const bool for_tooltip)
 
bool ui_but_is_interactive (const uiBut *but, bool labeledit) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_is_popover_once_compat (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_has_array_value (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
int ui_but_icon (const uiBut *but)
 
void ui_but_pie_dir (RadialDirection dir, float vec[2])
 
bool ui_but_is_cursor_warp (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_contains_pt (const uiBut *but, float mx, float my) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_contains_rect (const uiBut *but, const rctf *rect)
 
bool ui_but_contains_point_px_icon (const uiBut *but, ARegion *region, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_contains_point_px (const uiBut *but, const ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
uiButui_list_find_mouse_over (const ARegion *region, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
 
uiButui_list_find_from_row (const ARegion *region, const uiBut *row_but) ATTR_WARN_UNUSED_RESULT
 
uiButui_list_row_find_mouse_over (const ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
uiButui_list_row_find_index (const ARegion *region, int index, uiBut *listbox) ATTR_WARN_UNUSED_RESULT
 
uiButui_view_item_find_mouse_over (const ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
uiBut uiButui_view_item_find_active (const ARegion *region)
 
uiButui_view_item_find_search_highlight (const ARegion *region)
 
uiButui_but_find_mouse_over_ex (const ARegion *region, const int xy[2], bool labeledit, bool for_tooltip, const uiButFindPollFn find_poll, const void *find_custom_data) ATTR_NONNULL(1
 
uiButui_but_find_mouse_over (const ARegion *region, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
 
uiButui_but_find_rect_over (const ARegion *region, const rcti *rect_px) ATTR_WARN_UNUSED_RESULT
 
uiButui_list_find_mouse_over_ex (const ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
bool ui_but_contains_password (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
blender::StringRef ui_but_drawstr_without_sep_char (const uiBut *but) ATTR_NONNULL()
 
size_t ui_but_drawstr_len_without_sep_char (const uiBut *but)
 
size_t ui_but_tip_len_only_first_line (const uiBut *but)
 
uiButui_but_prev (uiBut *but) ATTR_WARN_UNUSED_RESULT
 
uiButui_but_next (uiBut *but) ATTR_WARN_UNUSED_RESULT
 
uiButui_but_first (uiBlock *block) ATTR_WARN_UNUSED_RESULT
 
uiButui_but_last (uiBlock *block) ATTR_WARN_UNUSED_RESULT
 
uiButui_block_active_but_get (const uiBlock *block)
 
bool ui_block_is_menu (const uiBlock *block) ATTR_WARN_UNUSED_RESULT
 
bool ui_block_is_popover (const uiBlock *block) ATTR_WARN_UNUSED_RESULT
 
bool ui_block_is_pie_menu (const uiBlock *block) ATTR_WARN_UNUSED_RESULT
 
bool ui_block_is_popup_any (const uiBlock *block) ATTR_WARN_UNUSED_RESULT
 
uiBlockui_block_find_mouse_over_ex (const ARegion *region, const int xy[2], bool only_clip) ATTR_NONNULL(1
 
uiBlock uiBlockui_block_find_mouse_over (const ARegion *region, const wmEvent *event, bool only_clip)
 
uiButui_region_find_first_but_test_flag (ARegion *region, int flag_include, int flag_exclude)
 
uiButui_region_find_active_but (ARegion *region) ATTR_WARN_UNUSED_RESULT
 
bool ui_region_contains_point_px (const ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
bool ui_region_contains_rect_px (const ARegion *region, const rcti *rect_px)
 
ARegionui_screen_region_find_mouse_over_ex (bScreen *screen, const int xy[2]) ATTR_NONNULL(1
 
ARegion ARegionui_screen_region_find_mouse_over (bScreen *screen, const wmEvent *event)
 
bool ui_popup_context_menu_for_button (bContext *C, uiBut *but, const wmEvent *event)
 
void ui_popup_context_menu_for_panel (bContext *C, ARegion *region, Panel *panel)
 
wmKeyMapeyedropper_modal_keymap (wmKeyConfig *keyconf)
 
wmKeyMapeyedropper_colorband_modal_keymap (wmKeyConfig *keyconf)
 
void UI_OT_eyedropper_color (wmOperatorType *ot)
 
void blender::ui::UI_OT_eyedropper_colorramp (wmOperatorType *ot)
 
void blender::ui::UI_OT_eyedropper_colorramp_point (wmOperatorType *ot)
 
void blender::ui::UI_OT_eyedropper_bone (wmOperatorType *ot)
 
void UI_OT_eyedropper_id (wmOperatorType *ot)
 
void UI_OT_eyedropper_depth (wmOperatorType *ot)
 
void UI_OT_eyedropper_driver (wmOperatorType *ot)
 
void UI_OT_eyedropper_grease_pencil_color (wmOperatorType *ot)
 
std::optional< blender::StringRefNullUI_asset_shelf_idname_from_button_context (const uiBut *but)
 
uiListTypeUI_UL_asset_view ()
 
void ui_rna_collection_search_update_fn (const bContext *C, void *arg, const char *str, uiSearchItems *items, bool is_first)
 
bool ui_jump_to_target_button_poll (bContext *C)
 
void ui_interface_tag_script_reload_queries ()
 
void ui_block_free_views (uiBlock *block)
 
void ui_block_views_bounds_calc (const uiBlock *block)
 
void ui_block_views_listen (const uiBlock *block, const wmRegionListenerParams *listener_params)
 
void ui_block_views_draw_overlays (const ARegion *region, const uiBlock *block)
 
blender::ui::AbstractViewui_block_view_find_matching_in_old_block (const uiBlock &new_block, const blender::ui::AbstractView &new_view)
 
uiButViewItemui_block_view_find_matching_view_item_but_in_old_block (const uiBlock &new_block, const blender::ui::AbstractViewItem &new_item)
 
void ui_view_item_swap_button_pointers (blender::ui::AbstractViewItem &a, blender::ui::AbstractViewItem &b)
 
uiListTypeUI_UL_cache_file_layers ()
 
IDui_template_id_liboverride_hierarchy_make (bContext *C, Main *bmain, ID *owner_id, ID *id, const char **r_undo_push_label)
 
blender::Vector< FCurve * > blender::interface::internal::get_property_drivers (PointerRNA *ptr, PropertyRNA *prop, bool get_all, int index, bool *r_is_array_prop)
 
int blender::interface::internal::paste_property_drivers (blender::Span< FCurve * > src_drivers, bool is_array_prop, PointerRNA *dst_ptr, PropertyRNA *dst_prop)
 

Variables

const char ui_radial_dir_order [8]
 
const char ui_radial_dir_to_numpad [8]
 
const short ui_radial_dir_to_angle [8]
 
const float ui_pixel_jitter [UI_PIXEL_AA_JITTER][2]
 
bool ATTR_WARN_UNUSED_RESULT
 

Macro Definition Documentation

◆ PIE_CLICK_THRESHOLD_SQ

#define PIE_CLICK_THRESHOLD_SQ   50.0f

Definition at line 169 of file interface_intern.hh.

Referenced by ui_pie_handler().

◆ PIE_MAX_ITEMS

#define PIE_MAX_ITEMS   8

The maximum number of items a radial menu (pie menu) can contain.

Definition at line 172 of file interface_intern.hh.

Referenced by ui_get_radialbut_vec(), ui_pie_menu_level_create(), and uiItemsFullEnumO_items().

◆ PNL_HEADER

#define PNL_HEADER   (UI_UNIT_Y * 1.25) /* 24 default */

◆ RNA_ENUM_VALUE

#define RNA_ENUM_VALUE   -2

◆ RNA_NO_INDEX

◆ UI_BITBUT_ROW

#define UI_BITBUT_ROW ( min,
max )    (((max) >= 31 ? 0xFFFFFFFF : (1 << ((max) + 1)) - 1) - ((min) ? ((1 << (min)) - 1) : 0))

Definition at line 144 of file interface_intern.hh.

◆ UI_BITBUT_TEST

#define UI_BITBUT_TEST ( a,
b )   (((a) & (1 << (b))) != 0)

Definition at line 138 of file interface_intern.hh.

Referenced by ui_but_is_pushed_ex().

◆ UI_BITBUT_VALUE_DISABLED

#define UI_BITBUT_VALUE_DISABLED ( a,
b )   ((a) & ~(1 << (b)))

Definition at line 141 of file interface_intern.hh.

◆ UI_BITBUT_VALUE_ENABLED

#define UI_BITBUT_VALUE_ENABLED ( a,
b )   ((a) | (1 << (b)))

Definition at line 140 of file interface_intern.hh.

◆ UI_BITBUT_VALUE_TOGGLED

#define UI_BITBUT_VALUE_TOGGLED ( a,
b )   ((a) ^ (1 << (b)))

Definition at line 139 of file interface_intern.hh.

Referenced by ui_apply_but_TOG().

◆ UI_MENU_PADDING

◆ UI_MENU_SCROLL_ARROW

#define UI_MENU_SCROLL_ARROW   (12 * UI_SCALE_FAC)

Definition at line 66 of file interface_intern.hh.

Referenced by ui_menu_scroll_to_but(), and ui_popup_block_scrolltest().

◆ UI_MENU_SCROLL_MOUSE

#define UI_MENU_SCROLL_MOUSE   (UI_MENU_SCROLL_ARROW + 2 * UI_SCALE_FAC)

Definition at line 67 of file interface_intern.hh.

Referenced by ui_menu_scroll_test().

◆ UI_MENU_SCROLL_PAD

#define UI_MENU_SCROLL_PAD   (4 * UI_SCALE_FAC)

Definition at line 68 of file interface_intern.hh.

Referenced by ui_menu_scroll_apply_offset_y(), and ui_popup_block_refresh().

◆ UI_MENU_SUBMENU_PADDING

#define UI_MENU_SUBMENU_PADDING   (6 * UI_SCALE_FAC)

Some extra padding added to menus containing sub-menu icons.

Definition at line 63 of file interface_intern.hh.

Referenced by ui_popup_block_position(), and widget_draw_text_icon().

◆ UI_MENU_WIDTH_MIN

#define UI_MENU_WIDTH_MIN   (UI_UNIT_Y * 9)

◆ UI_PIXEL_AA_JITTER

#define UI_PIXEL_AA_JITTER   8

Definition at line 1338 of file interface_intern.hh.

Referenced by widget_progress_type_ring().

◆ UI_POPOVER_WIDTH_UNITS

#define UI_POPOVER_WIDTH_UNITS   10

Popover width (multiplied by #U.widget_unit)

Definition at line 71 of file interface_intern.hh.

Referenced by UI_popover_begin(), and ui_popover_panel_create().

◆ UI_POPUP_MARGIN

◆ UI_POPUP_MENU_TOP

#define UI_POPUP_MENU_TOP   (int)(10 * UI_SCALE_FAC)

Margin at top of screen for popups. Note this value must be sufficient to draw a popover arrow to avoid cropping it.

Definition at line 1336 of file interface_intern.hh.

Referenced by ui_block_bounds_calc_popup(), ui_popup_block_clip(), ui_popup_block_position(), ui_popup_block_refresh(), ui_searchbox_butrect(), and UI_searchbox_size_y().

◆ UI_RADIAL_DIRECTION_NEXT

#define UI_RADIAL_DIRECTION_NEXT ( dir)    RadialDirection((int(dir) + 1) % (int(UI_RADIAL_NW) + 1))

Next direction (clockwise).

Definition at line 116 of file interface_intern.hh.

Referenced by ui_but_isect_pie_seg().

◆ UI_RADIAL_DIRECTION_PREV

#define UI_RADIAL_DIRECTION_PREV ( dir)     RadialDirection(((int(dir) + int(UI_RADIAL_NW))) % (int(UI_RADIAL_NW) + 1))

Previous direction (counter-clockwise).

Definition at line 118 of file interface_intern.hh.

Referenced by ui_but_isect_pie_seg().

◆ UI_RADIAL_MASK_ALL_AXIS_ALIGNED

#define UI_RADIAL_MASK_ALL_AXIS_ALIGNED
Value:
((1 << int(UI_RADIAL_N)) | (1 << int(UI_RADIAL_S)) | (1 << int(UI_RADIAL_E)) | \
(1 << int(UI_RADIAL_W)))
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
@ UI_RADIAL_W
@ UI_RADIAL_E
@ UI_RADIAL_N
@ UI_RADIAL_S

Definition at line 125 of file interface_intern.hh.

Referenced by ui_draw_pie_center().

◆ UI_RADIAL_MASK_ALL_DIAGONAL

#define UI_RADIAL_MASK_ALL_DIAGONAL
Value:
((1 << int(UI_RADIAL_NE)) | (1 << int(UI_RADIAL_SE)) | (1 << int(UI_RADIAL_SW)) | \
(1 << int(UI_RADIAL_NW)))
@ UI_RADIAL_SE
@ UI_RADIAL_SW
@ UI_RADIAL_NE
@ UI_RADIAL_NW

Store a mask for diagonal directions.

Definition at line 122 of file interface_intern.hh.

Referenced by ui_draw_pie_center().

◆ UI_TEXT_MARGIN_X

#define UI_TEXT_MARGIN_X   0.4f

Definition at line 1330 of file interface_intern.hh.

Referenced by ui_textedit_set_cursor_pos(), and widget_draw_text_icon().

◆ USE_NUMBUTS_LR_ALIGN

#define USE_NUMBUTS_LR_ALIGN

Split number-buttons by ':' and align left/right.

Definition at line 148 of file interface_intern.hh.

◆ USE_UIBUT_SPATIAL_ALIGN

#define USE_UIBUT_SPATIAL_ALIGN

Use new 'align' computation code.

Definition at line 151 of file interface_intern.hh.

Typedef Documentation

◆ uiBlockHandleCreateFunc

using uiBlockHandleCreateFunc = uiBlock *(*)(bContext *C, uiPopupBlockHandle *handle, void *arg1)

Definition at line 871 of file interface_intern.hh.

◆ uiButFindPollFn

using uiButFindPollFn = bool (*)(const uiBut *but, const void *customdata)

Definition at line 1482 of file interface_intern.hh.

◆ uiPopoverCreateFunc

using uiPopoverCreateFunc = std::function<void(bContext *, uiLayout *, PanelType *)>

Definition at line 1036 of file interface_intern.hh.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

uiBut.flag

Enumerator
UI_SELECT 

Use when the button is pressed.

UI_SCROLLED 

Temporarily hidden (scrolled out of the view).

UI_HOVER 

The button is hovered by the mouse and should be drawn with a hover highlight. Also set sometimes to highlight buttons without actually hovering it (e.g. for arrow navigation in menus). UI handling code manages this mostly and usually does this together with making the button active/focused (see uiBut::active). This means events will be forwarded to it and further handlers/shortcuts can be used while hovering it.

UI_HAS_ICON 
UI_HIDDEN 
UI_SELECT_DRAW 

Display selected, doesn't impact interaction.

UI_SEARCH_FILTER_NO_MATCH 

Property search filter is active and the button does not match.

UI_BUT_ACTIVE_OVERRIDE 

Temporarily override the active button for lookups in context, regions, etc. (everything using ui_context_button_active()). For example, so that operators normally acting on the active button can be polled on non-active buttons to (e.g. for disabling).

Definition at line 74 of file interface_intern.hh.

◆ anonymous enum

anonymous enum

PieMenuData.flags

Enumerator
UI_PIE_INITIAL_DIRECTION 

Use initial center of pie menu to calculate direction.

UI_PIE_DRAG_STYLE 

Pie menu is drag style.

UI_PIE_INVALID_DIR 

Mouse not far enough from center position.

UI_PIE_CLICK_STYLE 

Pie menu changed to click style, click to confirm.

UI_PIE_ANIMATION_FINISHED 

Pie animation finished, do not calculate any more motion.

UI_PIE_GESTURE_END_WAIT 

Pie gesture selection has been done, now wait for mouse motion to end.

Definition at line 154 of file interface_intern.hh.

◆ anonymous enum

anonymous enum
Enumerator
ROUNDBOX_TRIA_NONE 
ROUNDBOX_TRIA_ARROWS 
ROUNDBOX_TRIA_SCROLL 
ROUNDBOX_TRIA_MENU 
ROUNDBOX_TRIA_CHECK 
ROUNDBOX_TRIA_HOLD_ACTION_ARROW 
ROUNDBOX_TRIA_DASH 
ROUNDBOX_TRIA_MAX 

Definition at line 1249 of file interface_intern.hh.

◆ eBlockContentHints

uiBlock.content_hints

Enumerator
UI_BLOCK_CONTAINS_SUBMENU_BUT 

In a menu block, if there is a single sub-menu button, we add some padding to the right to put nicely aligned triangle icons there.

Definition at line 523 of file interface_intern.hh.

◆ RadialDirection

uiBut.pie_dir

Enumerator
UI_RADIAL_NONE 
UI_RADIAL_N 
UI_RADIAL_NE 
UI_RADIAL_E 
UI_RADIAL_SE 
UI_RADIAL_S 
UI_RADIAL_SW 
UI_RADIAL_W 
UI_RADIAL_NW 

Definition at line 103 of file interface_intern.hh.

◆ uiButtonGroupFlag

Enumerator
UI_BUTTON_GROUP_LOCK 

While this flag is set, don't create new button groups for layout item calls.

UI_BUTTON_GROUP_PANEL_HEADER 

The buttons in this group are inside a panel header.

Definition at line 530 of file interface_intern.hh.

◆ uiMenuItemSeparatorType

Info about what the separator character separates, used to decide between different drawing styles. E.g. we never want a shortcut string to be clipped, but other hint strings can be clipped.

Enumerator
UI_MENU_ITEM_SEPARATOR_NONE 
UI_MENU_ITEM_SEPARATOR_SHORTCUT 

Separator is used to indicate shortcut string of this item. Shortcut string will not get clipped.

UI_MENU_ITEM_SEPARATOR_HINT 

Separator is used to indicate some additional hint to display for this item. Hint string will get clipped before the normal text.

Definition at line 1283 of file interface_intern.hh.

Function Documentation

◆ ENUM_OPERATORS()

◆ eyedropper_colorband_modal_keymap()

◆ eyedropper_modal_keymap()

◆ icon_draw_rect_input()

◆ UI_asset_shelf_idname_from_button_context()

std::optional< blender::StringRefNull > UI_asset_shelf_idname_from_button_context ( const uiBut * but)

◆ ui_batch_roundbox_shadow_get()

◆ ui_batch_roundbox_widget_get()

◆ ui_block_active_but_get()

uiBut * ui_block_active_but_get ( const uiBlock * block)

◆ ui_block_add_dynamic_listener()

void ui_block_add_dynamic_listener ( uiBlock * block,
void(* listener_func )(const wmRegionListenerParams *params) )

Register a listener callback to this block to tag the area/region for redraw.

Definition at line 3834 of file interface.cc.

References BLI_addtail(), uiBlock::dynamic_listeners, uiBlockDynamicListener::listener_func, and MEM_mallocN.

Referenced by UI_menutype_draw(), and ui_paneltype_draw_impl().

◆ ui_block_align_calc()

void ui_block_align_calc ( uiBlock * block,
const ARegion * region )

Compute the alignment of all 'align groups' of buttons in given block.

This is using an order-independent algorithm, i.e. alignment of buttons should be OK regardless of order in which they are added to the block.

Definition at line 366 of file interface_align.cc.

References uiBut::alignnr, ARRAY_SIZE, BLI_assert, block_align_proximity_compute(), block_align_stitch_neighbors(), ButAlign::borders, ButAlign::but, uiBlock::buttons, copy_v4_fl(), ButAlign::dists, DOWN, uiBut::drawflag, fabsf, FLT_MAX, IS_EQF, LEFT, LISTBASE_FOREACH, MAX_DELTA, MEM_freeN(), MEM_mallocN, ButAlign::neighbors, OPPOSITE, RIGHT, SIDE1, SIDE2, SIDE_TO_UI_BUT_ALIGN, TOP, TOTSIDES, ui_block_align_but_to_region(), ui_block_align_butal_cmp(), and UI_BTYPE_TAB.

Referenced by UI_block_end_ex().

◆ ui_block_bounds_calc()

◆ ui_block_calc_pie_segment()

◆ ui_block_cm_display_get()

◆ ui_block_cm_to_display_space_v3()

void ui_block_cm_to_display_space_v3 ( uiBlock * block,
float pixel[3] )

◆ ui_block_colorpicker_create()

ColorPicker * ui_block_colorpicker_create ( uiBlock * block)

◆ ui_block_find_mouse_over()

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

Definition at line 748 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_free_views()

void ui_block_free_views ( uiBlock * block)

Definition at line 82 of file interface_view.cc.

References LISTBASE_FOREACH_MUTABLE, and uiBlock::views.

Referenced by UI_block_free().

◆ ui_block_func_COLOR()

◆ ui_block_is_menu()

◆ ui_block_is_pie_menu()

◆ ui_block_is_popover()

bool ui_block_is_popover ( const uiBlock * block)

Definition at line 659 of file interface_query.cc.

References uiBlock::flag, and UI_BLOCK_POPOVER.

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

◆ ui_block_is_popup_any()

◆ ui_block_new_button_group()

◆ ui_block_to_region_fl()

void ui_block_to_region_fl ( const ARegion * region,
const uiBlock * block,
float * x,
float * y )

◆ ui_block_to_region_rctf()

void ui_block_to_region_rctf ( const ARegion * region,
const uiBlock * block,
rctf * rct_dst,
const rctf * rct_src )

Definition at line 153 of file interface.cc.

References ui_block_to_region_fl(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by ui_but_rect_to_view().

◆ ui_block_to_window()

void ui_block_to_window ( const ARegion * region,
const uiBlock * block,
int * x,
int * y )

Definition at line 142 of file interface.cc.

References int, ui_block_to_window_fl(), x, and y.

◆ ui_block_to_window_fl()

◆ ui_block_to_window_rctf()

◆ ui_block_to_window_scale()

float ui_block_to_window_scale ( const ARegion * region,
const uiBlock * block )

Definition at line 173 of file interface.cc.

References ui_block_to_window_fl().

Referenced by ui_but_drag_init().

◆ ui_block_view_find_matching_in_old_block()

blender::ui::AbstractView * ui_block_view_find_matching_in_old_block ( const uiBlock & new_block,
const blender::ui::AbstractView & new_view )

◆ ui_block_view_find_matching_view_item_but_in_old_block()

◆ ui_block_views_bounds_calc()

void ui_block_views_bounds_calc ( const uiBlock * block)

Definition at line 129 of file interface_view.cc.

References ViewLink::views_bounds_calc().

Referenced by UI_block_end_ex(), and UI_panels_end().

◆ ui_block_views_draw_overlays()

void ui_block_views_draw_overlays ( const ARegion * region,
const uiBlock * block )

Definition at line 145 of file interface_view.cc.

References LISTBASE_FOREACH, and uiBlock::views.

Referenced by UI_block_draw().

◆ ui_block_views_listen()

void ui_block_views_listen ( const uiBlock * block,
const wmRegionListenerParams * listener_params )

◆ ui_but_activate_event()

void ui_but_activate_event ( bContext * C,
ARegion * region,
uiBut * but )

Exported to interface.cc: UI_but_active_only()

Note
The region is only for the button. The context needs to be set by the caller.

Definition at line 9289 of file interface_handlers.cc.

References uiBut::block, button_activate_init(), BUTTON_ACTIVATE_OVER, CTX_wm_window(), EVT_BUT_OPEN, KM_PRESS, ui_do_button(), and wm_event_init_from_window().

Referenced by UI_but_active_only_ex(), and with_but_active_as_semi_modal().

◆ ui_but_activate_over()

void ui_but_activate_over ( bContext * C,
ARegion * region,
uiBut * but )

Simulate moving the mouse over a button (or navigating to it with arrow keys).

exported so menus can start with a highlighted button, even if the mouse isn't over it

Definition at line 9306 of file interface_handlers.cc.

References button_activate_init(), and BUTTON_ACTIVATE_OVER.

Referenced by ui_block_func_POPUP().

◆ ui_but_active_free()

◆ ui_but_active_string_clear_and_exit()

void ui_but_active_string_clear_and_exit ( bContext * C,
uiBut * but )

◆ ui_but_add_search()

◆ ui_but_add_shortcut()

void ui_but_add_shortcut ( uiBut * but,
const char * shortcut_str,
bool do_strip )

◆ ui_but_align_opposite_to_area_align_get()

◆ ui_but_anim_autokey()

void ui_but_anim_autokey ( bContext * C,
uiBut * but,
Scene * scene,
float cfra )

◆ ui_but_anim_copy_driver()

void ui_but_anim_copy_driver ( bContext * C)

Definition at line 304 of file interface_anim.cc.

References WM_OP_INVOKE_DEFAULT, and WM_operator_name_call().

◆ ui_but_anim_decorate_cb()

◆ ui_but_anim_decorate_update_from_flag()

◆ ui_but_anim_expression_create()

◆ ui_but_anim_expression_get()

bool ui_but_anim_expression_get ( uiBut * but,
char * str,
size_t str_maxncpy )

str can be NULL to only perform check if but has an expression at all.

Returns
if button has an expression.

Definition at line 175 of file interface_anim.cc.

References BLI_strncpy(), FCurve::driver, DRIVER_TYPE_PYTHON, ChannelDriver::expression, str, ChannelDriver::type, and ui_but_get_fcurve().

Referenced by ui_but_string_get_ex(), ui_textedit_begin(), and ui_tooltip_data_from_button_or_extra_icon().

◆ ui_but_anim_expression_set()

◆ ui_but_anim_flag()

◆ ui_but_anim_paste_driver()

void ui_but_anim_paste_driver ( bContext * C)

Definition at line 310 of file interface_anim.cc.

References WM_OP_INVOKE_DEFAULT, and WM_operator_name_call().

◆ ui_but_can_align()

◆ ui_but_change_type()

uiBut * ui_but_change_type ( uiBut * but,
eButType new_type )

Reallocate the button (new address is returned) for a new button type. This should generally be avoided and instead the correct type be created right away.

Note
Only the uiBut data can be kept. If the old button used a derived type (e.g. uiButTab), the data that is not inside uiBut will be lost.

Definition at line 4204 of file interface.cc.

References BLI_assert, BLI_insertlinkafter(), BLI_remlink(), uiBut::block, uiBlock::buttons, uiBut::layout, uiBut::poin, uiBut::prev, uiBut::type, ui_but_mem_delete(), ui_but_new(), ui_button_group_replace_but_ptr(), UI_editsource_but_replace(), UI_editsource_enable_check(), ui_layout_replace_but_ptr(), uiLayoutGetBlock(), and UNUSED_VARS_NDEBUG.

Referenced by ui_but_add_search(), ui_item_array(), and uiItemFullR().

◆ ui_but_clipboard_free()

void ui_but_clipboard_free ( )

◆ ui_but_color_has_alpha()

bool ui_but_color_has_alpha ( uiBut * but)

Returns true if the button represents a color with an Alpha component.

Definition at line 108 of file interface_region_color_picker.cc.

References ELEM, PROP_COLOR, PROP_COLOR_GAMMA, RNA_property_array_length(), RNA_property_subtype(), uiBut::rnapoin, and uiBut::rnaprop.

Referenced by ui_block_colorpicker().

◆ ui_but_contains_password()

bool ui_but_contains_password ( const uiBut * but)

Definition at line 598 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()

◆ 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 244 of file interface_query.cc.

References BLI_rctf_isect(), and uiBut::rect.

Referenced by ui_but_find_rect_over(), and UI_key_event_operator_string().

◆ ui_but_context_poll_operator()

bool ui_but_context_poll_operator ( bContext * C,
wmOperatorType * ot,
const uiBut * but )

◆ ui_but_context_poll_operator_ex()

bool ui_but_context_poll_operator_ex ( bContext * C,
const uiBut * but,
const wmOperatorCallParams * optype_params )

Check if the operator ot poll is successful with the context given by but (optionally).

Parameters
butThe button that might store context. Can be NULL for convenience (e.g. if there is no button to take context from, but we still want to poll the operator).

Definition at line 1877 of file interface.cc.

References BLI_assert_msg, uiBut::context, CTX_store_set(), flag, uiBut::flag, wmOperatorCallParams::opcontext, wmOperatorCallParams::optype, result, UI_BUT_ACTIVE_OVERRIDE, and WM_operator_poll_context().

Referenced by UI_block_end_ex(), ui_but_context_poll_operator(), and ui_tooltip_data_from_button_or_extra_icon().

◆ ui_but_convert_to_unit_alt_name()

void ui_but_convert_to_unit_alt_name ( uiBut * but,
char * str,
size_t str_maxncpy )
Parameters
strwill be overwritten.

Definition at line 2811 of file interface.cc.

References BKE_unit_name_to_alt(), BLI_strdup(), uiBut::block, MEM_freeN(), RNA_SUBTYPE_UNIT_VALUE, str, ui_but_is_unit(), UI_but_unit_type_get(), and uiBlock::unit.

Referenced by ui_textedit_begin().

◆ ui_but_drag_free()

void ui_but_drag_free ( uiBut * but)

◆ ui_but_drag_is_draggable()

bool ui_but_drag_is_draggable ( const uiBut * but)

◆ ui_but_drag_multi_edit_get()

uiBut * ui_but_drag_multi_edit_get ( uiBut * but)

◆ ui_but_drag_start()

◆ 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()

◆ ui_but_execute_begin()

void ui_but_execute_begin ( bContext * C,
ARegion * region,
uiBut * but,
void ** active_back )

◆ ui_but_execute_end()

void ui_but_execute_end ( bContext * C,
ARegion * region,
uiBut * but,
void * active_back )

◆ ui_but_extra_operator_icons_free()

void ui_but_extra_operator_icons_free ( uiBut * but)

◆ ui_but_find_mouse_over()

◆ ui_but_find_mouse_over_ex()

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

◆ ui_but_find_new()

uiBut * ui_but_find_new ( uiBlock * block_new,
const uiBut * but_old )

Definition at line 804 of file interface.cc.

References uiBlock::buttons, LISTBASE_FOREACH, and ui_but_equals_old().

Referenced by UI_butstore_update().

◆ ui_but_find_old()

uiBut * ui_but_find_old ( uiBlock * block_old,
const uiBut * but_new )

◆ ui_but_find_rect_over()

◆ ui_but_find_select_in_enum()

uiBut * ui_but_find_select_in_enum ( uiBut * but,
int direction )

Finds the pressed button in an aligned row (typically an expanded enum).

Parameters
directionUse when there may be multiple buttons pressed.

Definition at line 614 of file interface_handlers.cc.

References BLI_assert, ELEM, uiBut::flag, uiBut::next, uiBut::prev, ui_but_find_select_in_enum__cmp(), and UI_SELECT.

Referenced by ui_do_but_TOG().

◆ 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_hsv_set()

void ui_but_hsv_set ( uiBut * but)

For picker, while editing HSV.

Definition at line 178 of file interface_region_color_picker.cc.

References uiBut::custom_data, ColorPicker::hsv_perceptual, ui_but_v3_set(), and ui_color_picker_hsv_to_rgb().

Referenced by ui_do_but_HSVCIRCLE().

◆ ui_but_icon()

◆ ui_but_is_bool()

◆ ui_but_is_color_gamma()

◆ ui_but_is_compatible()

bool ui_but_is_compatible ( const uiBut * but_a,
const uiBut * but_b )

Check if this button is similar enough to be grouped with another.

Definition at line 2570 of file interface.cc.

References uiBut::pointype, RNA_property_subtype(), RNA_property_type(), uiBut::rnapoin, uiBut::rnaprop, PointerRNA::type, and uiBut::type.

Referenced by ui_multibut_states_tag().

◆ ui_but_is_cursor_warp()

◆ ui_but_is_editable()

◆ ui_but_is_editable_as_text()

bool ui_but_is_editable_as_text ( const uiBut * but)

◆ ui_but_is_editing()

bool ui_but_is_editing ( const uiBut * but)

◆ ui_but_is_float()

◆ ui_but_is_interactive()

bool ui_but_is_interactive ( const uiBut * but,
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 65 of file interface_query.cc.

References ELEM, uiBut::emboss, uiBut::flag, blender::ui::AbstractViewItem::is_interactive(), uiBut::tip, uiBut::tip_func, uiBut::type, UI_BTYPE_LABEL, UI_BTYPE_LISTBOX, UI_BTYPE_LISTROW, UI_BTYPE_PREVIEW_TILE, UI_BTYPE_ROUNDBOX, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_TEXT, UI_BTYPE_VIEW_ITEM, ui_but_drag_is_draggable(), UI_EMBOSS_NONE, UI_EMBOSS_NONE_OR_STATUS, UI_HIDDEN, UI_SCROLLED, and uiButViewItem::view_item.

Referenced by ui_but_find_mouse_over_ex(), and ui_but_is_interactive().

◆ ui_but_is_popover_once_compat()

bool ui_but_is_popover_once_compat ( const uiBut * but)

◆ ui_but_is_pushed()

int ui_but_is_pushed ( uiBut * but)

Definition at line 2289 of file interface.cc.

References ui_but_is_pushed_ex(), and UI_BUT_VALUE_UNSET.

Referenced by ui_drag_toggle_but_pushed_state().

◆ ui_but_is_pushed_ex()

◆ ui_but_is_rna_valid()

bool ui_but_is_rna_valid ( uiBut * but)

◆ ui_but_is_toggle()

◆ ui_but_is_unit()

◆ ui_but_last()

uiBut * ui_but_last ( uiBlock * block)

◆ ui_but_menu_direction()

int ui_but_menu_direction ( uiBut * but)

◆ ui_but_menu_draw_as_popover()

bool ui_but_menu_draw_as_popover ( const uiBut * but)

◆ ui_but_menu_step()

◆ ui_but_menu_step_poll()

bool ui_but_menu_step_poll ( const uiBut * but)

◆ ui_but_next()

uiBut * ui_but_next ( uiBut * but)

Definition at line 546 of file interface_query.cc.

References uiBut::next, and ui_but_is_editable().

Referenced by ui_handle_menu_event().

◆ ui_but_override_flag()

◆ ui_but_pie_dir()

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

◆ ui_but_placeholder_get()

◆ ui_but_prev()

uiBut * ui_but_prev ( uiBut * but)

Definition at line 535 of file interface_query.cc.

References uiBut::prev, and ui_but_is_editable().

Referenced by ui_handle_menu_event().

◆ ui_but_range_set_hard()

◆ ui_but_range_set_soft()

◆ ui_but_rna_equals()

bool ui_but_rna_equals ( const uiBut * a,
const uiBut * b )

Definition at line 703 of file interface.cc.

References b, and ui_but_rna_equals_ex().

Referenced by ui_but_equals_old(), and ui_list_contains_row().

◆ ui_but_rna_equals_ex()

bool ui_but_rna_equals_ex ( const uiBut * but,
const PointerRNA * ptr,
const PropertyRNA * prop,
int index )

◆ ui_but_rna_menu_convert_to_menu_type()

◆ ui_but_rna_menu_convert_to_panel_type()

void ui_but_rna_menu_convert_to_panel_type ( uiBut * but,
const char * panel_type )

◆ ui_but_scale_type()

◆ ui_but_search_refresh()

◆ ui_but_semi_modal_state_free()

void ui_but_semi_modal_state_free ( const bContext * C,
uiBut * but )

◆ ui_but_set_string_interactive()

void ui_but_set_string_interactive ( bContext * C,
uiBut * but,
const char * value )

Use handling code to set a string for the button. Handles the case where the string is set for a search button while the search menu is open, so the results are updated accordingly. This is basically the same as pasting the string into the button.

Definition at line 3030 of file interface_handlers.cc.

References uiBut::active, BLI_assert, button_activate_state(), BUTTON_STATE_EXIT, BUTTON_STATE_TEXT_EDITING, uiBut::changed, uiBut::flag, uiHandleButtonData::searchbox, uiHandleButtonData::text_edit, uiBut::type, UI_BTYPE_SEARCH_MENU, UI_BUT_DISABLED, ui_searchbox_update(), and ui_textedit_string_set().

Referenced by drop_name_invoke(), and ui_but_paste_text().

◆ ui_but_string_eval_number()

◆ ui_but_string_get()

void void ui_but_string_get ( uiBut * but,
char * str,
size_t str_maxncpy )

◆ ui_but_string_get_dynamic()

char * ui_but_string_get_dynamic ( uiBut * but,
int * r_str_size )

◆ ui_but_string_get_ex()

void ui_but_string_get_ex ( uiBut * but,
char * str,
size_t str_maxncpy,
int float_precision,
bool use_exp_float,
bool * r_use_exp_float )
Parameters
float_precisionFor number buttons the precision to use or -1 to fallback to the button default.
use_exp_floatUse exponent representation of floats when out of reasonable range (outside of 1e3/1e-3).

◆ ui_but_string_get_maxncpy()

int ui_but_string_get_maxncpy ( uiBut * but)

◆ ui_but_string_set()

◆ ui_but_supports_cycling()

bool ui_but_supports_cycling ( const uiBut * but)

Checks if the button supports cycling next/previous menu items (ctrl+mouse-wheel).

Definition at line 2605 of file interface.cc.

References ELEM, uiBut::menu_step_func, uiBut::type, UI_BTYPE_COLOR, UI_BTYPE_LISTBOX, UI_BTYPE_MENU, UI_BTYPE_NUM, UI_BTYPE_NUM_SLIDER, UI_BTYPE_ROW, and ui_but_menu_step_poll().

Referenced by ui_do_but_BLOCK(), and ui_handle_panel_category_cycling().

◆ ui_but_text_password_hide()

void ui_but_text_password_hide ( char password_str[128],
uiBut * but,
bool restore )

◆ ui_but_tip_len_only_first_line()

size_t ui_but_tip_len_only_first_line ( const uiBut * but)

Definition at line 626 of file interface_query.cc.

References BLI_strchr_or_end(), and uiBut::tip.

Referenced by ui_apply_but_undo().

◆ ui_but_to_pixelrect()

void ui_but_to_pixelrect ( rcti * rect,
const ARegion * region,
const uiBlock * block,
const uiBut * but )

Project button or block (but==nullptr) to pixels in region-space.

Definition at line 2042 of file interface.cc.

References uiBlock::rect, uiBut::rect, and ui_to_pixelrect().

Referenced by button_section_bounds_calc(), UI_block_draw(), and ui_update_flexible_spacing().

◆ ui_but_update()

◆ ui_but_update_edited()

◆ ui_but_update_view_for_active()

void ui_but_update_view_for_active ( const bContext * C,
const uiBlock * block )

In some cases we may want to update the view (View2D) in-between layout definition and drawing. E.g. to make sure a button is visible while editing.

Definition at line 9220 of file interface_handlers.cc.

References uiBut::active, uiBut::block, uiBut::changed, uiHandleButtonData::region, ui_block_active_but_get(), and UI_but_ensure_in_view().

Referenced by UI_blocklist_update_view_for_buttons().

◆ ui_but_v3_get()

◆ ui_but_v3_set()

◆ ui_but_v4_get()

◆ ui_but_v4_set()

◆ ui_but_value_get()

◆ ui_but_value_set()

◆ ui_button_group_add_but()

◆ ui_button_group_replace_but_ptr()

void ui_button_group_replace_but_ptr ( uiBlock * block,
const uiBut * old_but_ptr,
uiBut * new_but )

Definition at line 41 of file interface_button_group.cc.

References uiBlock::button_groups, and ptr.

Referenced by ui_but_change_type(), and ui_but_update_from_old_block().

◆ ui_color_picker_hsv_to_rgb()

◆ ui_color_picker_rgb_to_hsv()

void ui_color_picker_rgb_to_hsv ( const float rgb[3],
float r_cp[3] )

◆ ui_color_picker_rgb_to_hsv_compat()

◆ ui_def_but_icon()

◆ ui_def_but_icon_clear()

void ui_def_but_icon_clear ( uiBut * but)

Avoid using this where possible since it's better not to ask for an icon in the first place.

Definition at line 4416 of file interface.cc.

References uiBut::drawflag, uiBut::flag, and uiBut::icon.

Referenced by uiItemFullR().

◆ ui_draw_aligned_panel()

void ui_draw_aligned_panel ( const ARegion * region,
const uiStyle * style,
const uiBlock * block,
const rcti * rect,
bool show_pin,
bool show_background,
bool region_search_filter_active )

◆ ui_draw_but()

void ui_draw_but ( const bContext * C,
ARegion * region,
uiStyle * style,
uiBut * but,
rcti * rect )

Conversion from old to new buttons, so still messy.

Definition at line 4801 of file interface_widgets.cc.

References uiBlock::aspect, BLI_assert, BLI_rcti_pad(), BLI_rcti_size_x(), BLI_rcti_size_y(), uiBut::block, uiWidgetStateInfo::but_flag, uiBut::col, copy_v4_v4_uchar(), uiWidgetType::custom, uiWidgetType::draw, uiBut::drawflag, uiBut::drawstr, uiBut::editstr, ELEM, uiBut::emboss, uiBlock::flag, uiBut::flag, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, uiButHSVCube::gradient_type, uiBut::hold_func, uiBut::icon, padding(), state, uiWidgetType::state, uiBut::str, uiWidgetColors::text, uiWidgetType::text, uiBlock::theme_style, bTheme::tui, uiBut::type, UI_BLOCK_NO_DRAW_OVERRIDDEN_STATE, UI_BLOCK_POPOVER_ONCE, UI_BLOCK_THEME_STYLE_POPUP, UI_BTYPE_BLOCK, UI_BTYPE_BUT, UI_BTYPE_BUT_MENU, UI_BTYPE_BUT_TOGGLE, UI_BTYPE_CHECKBOX, UI_BTYPE_CHECKBOX_N, UI_BTYPE_COLOR, UI_BTYPE_COLORBAND, UI_BTYPE_CURVE, UI_BTYPE_CURVEPROFILE, UI_BTYPE_DECORATOR, UI_BTYPE_EXTRA, UI_BTYPE_GRIP, UI_BTYPE_HISTOGRAM, UI_BTYPE_HSVCIRCLE, UI_BTYPE_HSVCUBE, UI_BTYPE_IMAGE, UI_BTYPE_LABEL, UI_BTYPE_LISTBOX, UI_BTYPE_LISTROW, UI_BTYPE_MENU, UI_BTYPE_NODE_SOCKET, UI_BTYPE_NUM, UI_BTYPE_NUM_SLIDER, UI_BTYPE_POPOVER, UI_BTYPE_PREVIEW_TILE, UI_BTYPE_PROGRESS, UI_BTYPE_PULLDOWN, UI_BTYPE_ROUNDBOX, UI_BTYPE_ROW, UI_BTYPE_SCROLL, UI_BTYPE_SEARCH_MENU, UI_BTYPE_SEPR, UI_BTYPE_SEPR_LINE, UI_BTYPE_SEPR_SPACER, UI_BTYPE_TAB, UI_BTYPE_TEXT, UI_BTYPE_TOGGLE, UI_BTYPE_TOGGLE_N, UI_BTYPE_TRACK_PREVIEW, UI_BTYPE_UNITVEC, UI_BTYPE_VECTORSCOPE, UI_BTYPE_VIEW_ITEM, UI_BTYPE_WAVEFORM, UI_BUT_ACTIVE_DEFAULT, UI_BUT_BOX_ITEM, UI_BUT_DISABLED, UI_BUT_DRAG_MULTI, ui_but_drag_multi_edit_get(), UI_BUT_ICON_PREVIEW, UI_BUT_INACTIVE, UI_BUT_INDETERMINATE, ui_but_is_popover_once_compat(), UI_but_is_tool(), UI_BUT_NO_TEXT_PADDING, UI_BUT_NODE_LINK, UI_BUT_TEXT_LEFT, UI_BUT_TEXT_RIGHT, ui_draw_but_COLORBAND(), ui_draw_but_CURVE(), ui_draw_but_CURVEPROFILE(), ui_draw_but_HISTOGRAM(), ui_draw_but_HSV_v(), ui_draw_but_HSVCIRCLE(), ui_draw_but_HSVCUBE(), ui_draw_but_IMAGE(), ui_draw_but_TRACKPREVIEW(), ui_draw_but_VECTORSCOPE(), ui_draw_but_WAVEFORM(), ui_draw_separator(), UI_EMBOSS, UI_EMBOSS_NONE, UI_EMBOSS_NONE_OR_STATUS, UI_EMBOSS_PIE_MENU, UI_EMBOSS_PULLDOWN, UI_GetTheme(), UI_GRAD_L_ALT, UI_GRAD_V_ALT, UI_HAS_ICON, UI_HOVER, UI_SCALE_FAC, UI_SEARCH_FILTER_NO_MATCH, UI_SELECT, UI_SELECT_DRAW, ui_widget_color_disabled(), UI_WTYPE_BOX, UI_WTYPE_CHECKBOX, UI_WTYPE_EXEC, UI_WTYPE_ICON, UI_WTYPE_ICON_LABEL, UI_WTYPE_LABEL, UI_WTYPE_LISTITEM, UI_WTYPE_MENU_ICON_RADIO, UI_WTYPE_MENU_ITEM, UI_WTYPE_MENU_ITEM_PIE, UI_WTYPE_MENU_ITEM_UNPADDED, UI_WTYPE_MENU_NODE_LINK, UI_WTYPE_MENU_RADIO, UI_WTYPE_NAME, UI_WTYPE_NODESOCKET, UI_WTYPE_NUMBER, UI_WTYPE_PREVIEW_TILE, UI_WTYPE_PROGRESS, UI_WTYPE_PULLDOWN, UI_WTYPE_RADIO, UI_WTYPE_REGULAR, UI_WTYPE_SCROLL, UI_WTYPE_SLIDER, UI_WTYPE_SWATCH, UI_WTYPE_TAB, UI_WTYPE_TOGGLE, UI_WTYPE_TOOLBAR_ITEM, UI_WTYPE_UNITVEC, UI_WTYPE_VIEW_ITEM, UNLIKELY, uiWidgetType::wcol, ThemeUI::wcol_box, ThemeUI::wcol_menu_back, ThemeUI::wcol_menu_item, ThemeUI::wcol_regular, uiWidgetType::wcol_theme, uiStyle::widget, widget_draw_extra_mask(), widget_draw_text_icon(), widget_roundbox_set(), widget_state(), widget_state_option_menu(), widget_type(), rcti::xmax, and rcti::xmin.

Referenced by UI_block_draw().

◆ ui_draw_but_COLORBAND()

◆ ui_draw_but_CURVE()

void ui_draw_but_CURVE ( ARegion * region,
uiBut * but,
const uiWidgetColors * wcol,
const rcti * rect )

Definition at line 1573 of file interface_draw.cc.

References ARRAY_SET_ITEMS, uiBlock::aspect, BKE_curvemapping_changed(), BLI_rctf_size_x(), BLI_rctf_size_y(), BLI_rcti_isect(), BLI_rcti_size_x(), BLI_rcti_size_y(), uiBut::block, CurveMapping::clipr, CurveMapping::cm, CM_TABLE, col, CUMA_DO_CLIP, CUMA_DRAW_CFRA, CUMA_DRAW_SAMPLE, CUMA_EXTEND_EXTRAPOLATE, CUMA_SELECT, CurveMapping::cur, CurveMapping::curr, CurveMap::curve, uiButCurveMapping::edit_cumap, CurveMap::ext_in, CurveMap::ext_out, CurveMapping::flag, flag, gl_shaded_color(), gl_shaded_color_get_fl(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_line_smooth(), GPU_line_width(), GPU_PRIM_LINE_STRIP, GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_PRIM_TRI_STRIP, GPU_program_point_size(), GPU_scissor(), GPU_scissor_get(), GPU_SHADER_3D_POINT_VARYING_SIZE_VARYING_COLOR, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), uiButCurveMapping::gradient_type, IMB_colormanagement_get_luminance(), imm_draw_box_wire_2d(), immAttr1f(), immAttr4fv(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniformColor3fv(), immUniformColor3ub(), immUniformColor3ubv(), immUniformColor3ubvAlpha(), immUniformColor4fv(), immVertex2f(), immVertexFormat(), uiWidgetColors::inner, interp_v3_v3v3(), uiWidgetColors::item, len_squared_v3(), len_squared_v3v3(), linearrgb_to_srgb_v3_v3(), max_ff(), min_ff(), uiWidgetColors::outline, uiBut::poin, pos, rgb_to_hsv_v(), rgb_uchar_to_float(), CurveMapping::sample, swap_v3_v3(), CurveMap::table, TH_TEXT, TH_TEXT_HI, CurveMap::totpoint, ui_draw_but_curve_grid(), ui_draw_gradient(), UI_GetThemeColor4fv(), UI_GRAD_H, UI_SCALE_FAC, CurveMapPoint::x, rctf::xmax, rcti::xmax, rctf::xmin, rcti::xmin, CurveMapPoint::y, rctf::ymax, rcti::ymax, rctf::ymin, and rcti::ymin.

Referenced by ui_draw_but().

◆ ui_draw_but_CURVEPROFILE()

void ui_draw_but_CURVEPROFILE ( ARegion * region,
uiBut * but,
const uiWidgetColors * wcol,
const rcti * rect )

Draws the curve profile widget. Somewhat similar to ui_draw_but_CURVE.

Definition at line 1851 of file interface_draw.cc.

References uiBlock::aspect, BKE_curveprofile_table_size(), BKE_curveprofile_update(), BLI_polyfill_calc(), BLI_rctf_size_x(), BLI_rctf_size_y(), BLI_rcti_isect(), BLI_rcti_size_x(), BLI_rcti_size_y(), uiBut::block, col, uiButCurveProfile::edit_profile, flag, float, gl_shaded_color(), gl_shaded_color_get_fl(), GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_line_smooth(), GPU_line_width(), GPU_point_size(), GPU_polygon_smooth(), GPU_PRIM_LINE_STRIP, GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_PRIM_TRIS, GPU_scissor(), GPU_scissor_get(), GPU_SHADER_3D_FLAT_COLOR, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), CurveProfilePoint::h1_loc, CurveProfilePoint::h2_loc, imm_draw_box_wire_2d(), immAttr4fv(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniformColor3fv(), immUniformColor3ubv(), immUniformColor3ubvAlpha(), immVertex2f(), immVertexFormat(), uiWidgetColors::inner, interp_v3_v3v3(), uiWidgetColors::item, len_squared_v3(), len_squared_v3v3(), max_ff(), MEM_freeN(), MEM_mallocN, MEM_SAFE_FREE, min_ff(), uiWidgetColors::outline, uiBut::poin, point_draw_handles(), pos, PROF_H1_SELECT, PROF_H2_SELECT, PROF_SELECT, PROF_UPDATE_NONE, PROF_USE_CLIP, rgb_uchar_to_float(), swap_v3_v3(), TH_TEXT, TH_TEXT_HI, ui_draw_but_curve_grid(), UI_GetThemeColor4fv(), UI_SCALE_FAC, CurveProfile::view_rect, CurveProfilePoint::x, rcti::xmax, rctf::xmin, rcti::xmin, CurveProfilePoint::y, rcti::ymax, and rcti::ymin.

Referenced by ui_draw_but().

◆ ui_draw_but_HISTOGRAM()

◆ ui_draw_but_IMAGE()

◆ ui_draw_but_TAB_outline()

◆ ui_draw_but_TRACKPREVIEW()

◆ ui_draw_but_UNITVEC()

◆ ui_draw_but_VECTORSCOPE()

◆ ui_draw_but_WAVEFORM()

◆ ui_draw_gradient()

◆ ui_draw_layout_panels_backdrop()

◆ ui_draw_menu_back()

◆ ui_draw_menu_item()

void ui_draw_menu_item ( const uiFontStyle * fstyle,
rcti * rect,
const char * name,
int iconid,
int but_flag,
uiMenuItemSeparatorType separator_type,
int * r_xmax )

◆ ui_draw_pie_center()

◆ ui_draw_popover_back()

◆ ui_draw_preview_item()

◆ ui_draw_preview_item_stateless()

void ui_draw_preview_item_stateless ( const uiFontStyle * fstyle,
rcti * rect,
blender::StringRef name,
int iconid,
const uchar text_col[4],
eFontStyle_Align text_align,
bool draw_as_icon = false )

Version of ui_draw_preview_item() that does not draw the menu background and item text based on state. It just draws the preview and text directly.

Parameters
draw_as_iconInstead of stretching the preview/icon to the available width/height, draw it at the standard icon size. Mono-icons will draw with text_col or the corresponding theme override for this type of icon.

Definition at line 5630 of file interface_widgets.cc.

References BLI_rcti_size_x(), float, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, params, PREVIEW_PAD, UI_fontstyle_draw(), UI_ICON_SIZE, UI_MAX_DRAW_STR, UI_text_clip_middle_ex(), UI_UNIT_Y, widget_draw_icon_centered(), widget_draw_preview(), rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by ui_draw_preview_item(), and widget_preview_tile().

◆ ui_draw_rounded_corners_inverted()

void ui_draw_rounded_corners_inverted ( const rcti & rect,
const float rad,
const blender::float4 color )

Draws rounded corner segments but inverted. Imagine each corner like a filled right triangle, just that the hypotenuse is nicely curved inwards (towards the right angle of the triangle).

Useful for connecting orthogonal shapes with a rounded corner, which can look quite nice.

Definition at line 150 of file interface_draw.cc.

References GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_PRIM_TRI_FAN, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniformColor4fv(), immVertex2f(), immVertexFormat(), mul_v2_fl(), pos, roundboxtype, UI_CNR_BOTTOM_LEFT, UI_CNR_BOTTOM_RIGHT, UI_CNR_TOP_LEFT, UI_CNR_TOP_RIGHT, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by ui_draw_button_sections_alignment_separator().

◆ ui_draw_tooltip_background()

void ui_draw_tooltip_background ( const uiStyle * style,
uiBlock * block,
const rcti * rect )

◆ ui_draw_widget_menu_back()

void ui_draw_widget_menu_back ( const rcti * rect,
bool use_shadow )

◆ ui_draw_widget_menu_back_color()

void ui_draw_widget_menu_back_color ( const rcti * rect,
bool use_shadow,
const float color[4] )

Definition at line 5477 of file interface_widgets.cc.

References ui_draw_widget_back_color(), and UI_WTYPE_MENU_BACK.

◆ ui_event_icon_offset()

float ui_event_icon_offset ( int icon_id)

◆ ui_fontscale()

void ui_fontscale ( float * points,
float aspect )

◆ ui_handle_afterfunc_add_operator()

void ui_handle_afterfunc_add_operator ( wmOperatorType * ot,
wmOperatorCallContext opcontext )

Definition at line 820 of file interface_handlers.cc.

References ot, and ui_handle_afterfunc_add_operator_ex().

Referenced by panel_activate_state().

◆ ui_handler_panel_region()

◆ ui_hsvcircle_pos_from_vals()

void ui_hsvcircle_pos_from_vals ( const ColorPicker * cpicker,
const rcti * rect,
const float * hsv,
float * r_xpos,
float * r_ypos )

Cursor in HSV circle, in float units -1 to 1, to map on radius.

Definition at line 2858 of file interface_widgets.cc.

References BLI_rcti_cent_x_fl(), BLI_rcti_cent_y_fl(), BLI_rcti_size_x(), BLI_rcti_size_y(), clamp_f(), cosf, float, M_PI, M_PI_2, min_ii(), pow3f(), sinf, ColorPicker::use_color_cubic, and USER_CP_CIRCLE_HSV.

Referenced by ui_draw_but_HSVCIRCLE(), and ui_numedit_but_HSVCIRCLE().

◆ ui_hsvcircle_vals_from_pos()

void ui_hsvcircle_vals_from_pos ( const rcti * rect,
float mx,
float my,
float * r_val_rad,
float * r_val_dist )

◆ ui_hsvcube_pos_from_vals()

◆ ui_icon_ensure_deferred()

◆ ui_id_icon_get()

◆ ui_interface_tag_script_reload_queries()

void ui_interface_tag_script_reload_queries ( )

Definition at line 872 of file interface_query.cc.

References g_ot_tool_set_by_id.

Referenced by UI_interface_tag_script_reload().

◆ ui_item_menutype_func()

void ui_item_menutype_func ( bContext * C,
uiLayout * layout,
void * arg_mt )

◆ ui_item_paneltype_func()

void ui_item_paneltype_func ( bContext * C,
uiLayout * layout,
void * arg_pt )

◆ ui_jump_to_target_button_poll()

bool ui_jump_to_target_button_poll ( bContext * C)

◆ ui_layout_add_but()

◆ ui_layout_list_set_labels_active()

void ui_layout_list_set_labels_active ( uiLayout * layout)

Check all buttons defined in this layout, and set any button flagged as UI_BUT_LIST_ITEM as active/selected. Needed to handle correctly text colors of active (selected) list item.

Definition at line 5183 of file interface_layout.cc.

References uiButtonItem::but, uiBut::flag, ITEM_BUTTON, uiLayout::items, UI_but_flag_enable(), UI_BUT_LIST_ITEM, ui_layout_list_set_labels_active(), and UI_SELECT.

Referenced by ui_layout_list_set_labels_active(), and ui_template_list_layout_draw().

◆ ui_layout_panel_header_under_mouse()

◆ ui_layout_panel_popup_scroll_apply()

void ui_layout_panel_popup_scroll_apply ( Panel * panel,
const float dy )

Apply scroll to layout panels when the main panel is used in popups.

Definition at line 596 of file interface_region_popup.cc.

References LayoutPanels::bodies, LayoutPanels::headers, Panel_Runtime::layout_panels, and Panel::runtime.

Referenced by ui_menu_scroll_apply_offset_y(), and ui_popup_block_refresh().

◆ ui_layout_panel_toggle_open()

bool ui_layout_panel_toggle_open ( const bContext * C,
LayoutPanelHeader * header )

◆ ui_layout_remove_but()

◆ ui_layout_replace_but_ptr()

bool ui_layout_replace_but_ptr ( uiLayout * layout,
const void * old_but_ptr,
uiBut * new_but )
Returns
true if the button was successfully replaced.

Definition at line 6019 of file interface_layout.cc.

References uiButtonItem::but, and ui_layout_find_button_item().

Referenced by ui_but_change_type().

◆ ui_list_find_from_row()

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

Definition at line 452 of file interface_query.cc.

References ui_but_find(), and ui_but_is_listbox_with_row().

Referenced by ui_apply_but_LISTROW().

◆ ui_list_find_mouse_over()

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

◆ ui_list_find_mouse_over_ex()

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

◆ ui_list_row_find_index()

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

◆ ui_list_row_find_mouse_over()

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

◆ UI_OT_eyedropper_color()

◆ UI_OT_eyedropper_depth()

◆ UI_OT_eyedropper_driver()

◆ UI_OT_eyedropper_grease_pencil_color()

◆ UI_OT_eyedropper_id()

◆ ui_pan_to_scroll()

void ui_pan_to_scroll ( const wmEvent * event,
int * type,
int * val )

◆ ui_panel_drag_collapse_handler_add()

◆ ui_panel_tag_search_filter_match()

void ui_panel_tag_search_filter_match ( Panel * panel)

Definition at line 877 of file interface_panel.cc.

References PANEL_SEARCH_FILTER_MATCH, and Panel::runtime_flag.

Referenced by UI_block_apply_search_filter().

◆ ui_perceptual_to_scene_linear_space()

◆ ui_pie_menu_level_create()

◆ ui_popover_panel_create()

◆ ui_popup_block_create()

◆ ui_popup_block_free()

◆ ui_popup_block_refresh()

uiBlock * ui_popup_block_refresh ( bContext * C,
uiPopupBlockHandle * handle,
ARegion * butregion,
uiBut * but )

Called for creating new popups and refreshing existing ones.

Definition at line 628 of file interface_region_popup.cc.

References uiBlock::aspect, BLI_addhead(), BLI_assert, BLI_rctf_recenter(), BLI_rctf_size_x(), BLI_rctf_size_y(), uiBut::block, uiBlock::bounds_type, uiBlock::buttons, copy_v2_v2(), create_func(), CTX_wm_window(), uiBlock::direction, ED_region_floating_init(), ED_region_tag_redraw(), ED_region_update_rect(), ELEM, uiBlock::endblock, wmWindow::event_last_handled, wmWindow::eventstate, uiBlock::flag, PieMenuData::flags, FLT_MAX, uiBlock::handle, LISTBASE_FOREACH, max_ff(), MEM_freeN(), min_ff(), uiBlock::oldblock, uiBlock::panel, PieMenuData::pie_center_init, PieMenuData::pie_center_spawned, uiBlock::pie_data, uiBlock::rect, uiBlock::saferct, uiBlock::safety, uiSafetyRct::safety, UI_BLOCK_BOUNDS_POPUP_CENTER, ui_block_calc_pie_segment(), UI_block_end_ex(), ui_block_is_menu(), UI_BLOCK_LOOP, UI_BLOCK_NO_ACCELERATOR_KEYS, UI_BLOCK_PIE_MENU, UI_BLOCK_POPOVER, UI_BLOCK_POPUP, UI_BLOCK_THEME_STYLE_POPUP, UI_block_theme_style_set(), UI_block_translate(), UI_block_update_from_old(), UI_blocklist_free_inactive(), UI_DIR_DOWN, UI_DIR_UP, ui_layout_panel_popup_scroll_apply(), UI_MENU_SCROLL_PAD, UI_PIE_INITIAL_DIRECTION, ui_popup_block_clip(), ui_popup_block_position(), ui_popup_block_scrolltest(), UI_POPUP_MARGIN, UI_POPUP_MENU_TOP, UI_RADIAL_NONE, UI_SCREEN_MARGIN, UI_UNIT_Y, UNPACK2, uiBlock::winmat, WM_window_native_pixel_size(), wmGetProjectionMatrix(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by ui_block_region_refresh(), and ui_popup_block_create().

◆ ui_popup_block_scrolltest()

◆ ui_popup_context_menu_for_button()

bool ui_popup_context_menu_for_button ( bContext * C,
uiBut * but,
const wmEvent * event )

Definition at line 528 of file interface_context_menu.cc.

References ANIM_driver_can_paste(), uiBut::apply_func, BLI_assert, BLI_exists(), BLI_path_split_dir_part(), uiBut::block, BLT_I18NCONTEXT_OPERATOR_DEFAULT, blender::ui::AbstractViewItem::build_context_menu(), uiBut::context, CTX_data_main(), CTX_data_pointer_get_type(), CTX_IFACE_, CTX_store_get(), CTX_store_set(), CTX_wm_region(), CTX_wm_region_popup(), PointerRNA::data, ED_screen_user_menu_ensure(), ED_screen_user_menu_item_remove(), ED_screen_user_menus_find(), ED_screens_footer_tools_menu_create(), ED_screens_header_tools_menu_create(), ED_screens_region_flip_menu_create(), ELEM, EVT_TYPE_MASK_ALL, FILE_MAX, FILE_MAXDIR, uiBut::flag, wmOperatorType::flag, IFACE_, is_disabled, ISKEYBOARD, ISNDOF_BUTTON, bUserMenu::items, MEM_freeN(), uiButTab::menu, menu_add_shortcut(), menu_add_shortcut_cancel(), menu_change_shortcut(), uiBut::menu_create_func, uiBut::opcontext, uiBut::opptr, uiBut::optype, ot, PointerRNA::owner_id, MenuType::poll, PROP_BOOLEAN, PROP_DIRPATH, PROP_ENUM, PROP_FILEPATH, PROP_FLOAT, PROP_INT, PROP_POINTER, PROP_STRING, ptr, remove_shortcut_func(), RGN_TYPE_FOOTER, RGN_TYPE_HEADER, RGN_TYPE_NAV_BAR, RGN_TYPE_TOOL_HEADER, RNA_boolean_set(), RNA_OVERRIDE_STATUS_OVERRIDABLE, RNA_property_anim_editable(), RNA_property_array_length(), RNA_property_is_idprop(), RNA_property_override_library_status(), RNA_property_path_from_ID_check(), RNA_property_string_get(), RNA_property_subtype(), RNA_property_type(), RNA_string_set(), RNA_struct_find_property(), RNA_struct_property_is_set(), uiBut::rnaindex, uiBut::rnapoin, uiBut::rnaprop, set_layout_context_from_button(), shortcut_free_operator_property(), shortcut_get_operator_property(), TIP_, PointerRNA::type, uiBut::type, wmKeyMapItem::type, ui_block_is_menu(), ui_block_is_popup_any(), UI_BTYPE_BUT, UI_BTYPE_IMAGE, UI_BTYPE_LABEL, UI_BTYPE_SEARCH_MENU, UI_BTYPE_TAB, UI_BTYPE_VIEW_ITEM, UI_BUT_ANIMATED, UI_BUT_ANIMATED_KEY, UI_but_context_menu_title_from_button(), UI_BUT_DISABLED, UI_BUT_DRIVEN, UI_but_flag_enable(), UI_but_func_set(), ui_but_is_user_menu_compatible(), ui_but_menu_add_path_operators(), UI_but_online_manual_id(), UI_BUT_OVERRIDDEN, ui_but_user_menu_add(), ui_but_user_menu_find(), UI_ITEM_NONE, ui_jump_to_target_button_poll(), ui_list_find_mouse_over(), ui_list_row_find_mouse_over(), UI_menutype_draw(), UI_popup_block_ex(), UI_popup_block_invoke(), UI_popup_menu_begin(), UI_popup_menu_end_or_cancel(), UI_popup_menu_layout(), ui_rna_collection_search_update_fn(), UI_UNIT_Y, ui_view_item_find_mouse_over(), uiDefBlockBut(), uiDefIconTextBut(), uiItemBooleanO(), uiItemFullO(), uiItemFullO_ptr(), uiItemM_ptr(), uiItemMenuF(), uiItemO(), uiItemS(), uiLayoutColumn(), uiLayoutGetBlock(), uiLayoutGetWidth(), uiLayoutSetContextFromBut(), uiLayoutSetEnabled(), uiLayoutSetOperatorContext(), USER_DEVELOPER_UI, uiButViewItem::view_item, w(), WM_key_event_operator(), WM_keymap_guess_opname(), WM_menutype_find(), WM_OP_EXEC_DEFAULT, WM_OP_INVOKE_DEFAULT, WM_operatortype_find(), and wmEvent::xy.

Referenced by ui_do_button(), and ui_search_menu_create_context_menu().

◆ ui_popup_context_menu_for_panel()

◆ ui_popup_menu_create()

uiPopupBlockHandle * ui_popup_menu_create ( bContext * C,
ARegion * butregion,
uiBut * but,
uiMenuCreateFunc menu_func,
void * arg )

Definition at line 431 of file interface_region_menu_popup.cc.

References ui_popup_menu_create_impl().

Referenced by ui_block_open_begin().

◆ ui_popup_menu_memory_get()

uiBut * ui_popup_menu_memory_get ( uiBlock * block)

Definition at line 145 of file interface_region_menu_popup.cc.

References ui_popup_menu_memory__internal().

Referenced by ui_block_func_POPUP().

◆ ui_popup_menu_memory_set()

void ui_popup_menu_memory_set ( uiBlock * block,
uiBut * but )

Definition at line 150 of file interface_region_menu_popup.cc.

References ui_popup_menu_memory__internal().

Referenced by button_activate_exit().

◆ ui_popup_translate()

void ui_popup_translate ( ARegion * region,
const int mdiff[2] )

Translate any popup regions (so we can drag them).

Definition at line 41 of file interface_region_popup.cc.

References BLI_rctf_init(), BLI_rctf_translate(), BLI_rcti_translate(), ED_region_tag_redraw(), ED_region_update_rect(), LISTBASE_FOREACH, and UNPACK2.

Referenced by ui_handle_menu_event().

◆ 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()

◆ 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 771 of file interface_query.cc.

References LISTBASE_FOREACH.

Referenced by ui_handle_menu_event().

◆ ui_region_to_window()

void ui_region_to_window ( const ARegion * region,
int * x,
int * y )

Definition at line 254 of file interface.cc.

◆ ui_region_winrct_get_no_margin()

void ui_region_winrct_get_no_margin ( const ARegion * region,
rcti * r_rect )

Popups will add a margin to ARegion.winrct for shadow, for interactivity (point-inside tests for eg), we want the winrct without the margin added.

Definition at line 334 of file interface.cc.

References BLI_rcti_rctf_copy_floor(), BLI_rcti_translate(), uiBlock::flag, uiBlock::rect, UI_BLOCK_LOOP, UI_BLOCK_PIE_MENU, and rcti::xmin.

Referenced by ui_region_contains_point_px(), ui_region_contains_rect_px(), and ui_screen_region_find_mouse_over_ex().

◆ ui_resources_free()

void ui_resources_free ( )

Definition at line 52 of file resources.cc.

References UI_icons_free().

Referenced by UI_exit().

◆ ui_resources_init()

void ui_resources_init ( )

Definition at line 47 of file resources.cc.

References UI_icons_init().

Referenced by UI_init().

◆ ui_rna_collection_search_update_fn()

◆ ui_scene_linear_to_perceptual_space()

◆ ui_screen_region_find_mouse_over()

ARegion ARegion * ui_screen_region_find_mouse_over ( bScreen * screen,
const wmEvent * event )

Definition at line 861 of file interface_query.cc.

References ui_screen_region_find_mouse_over_ex(), and wmEvent::xy.

Referenced by ui_handler_region_menu().

◆ ui_screen_region_find_mouse_over_ex()

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

Check if the cursor is over any popups.

References ot.

◆ ui_searchbox_apply()

bool ui_searchbox_apply ( uiBut * but,
ARegion * region )

◆ ui_searchbox_autocomplete()

◆ ui_searchbox_create_generic()

ARegion * ui_searchbox_create_generic ( bContext * C,
ARegion * butregion,
uiButSearch * search_but )

◆ ui_searchbox_create_menu()

ARegion * ui_searchbox_create_menu ( bContext * C,
ARegion * butregion,
uiButSearch * search_but )

◆ ui_searchbox_create_operator()

ARegion * ui_searchbox_create_operator ( bContext * C,
ARegion * butregion,
uiButSearch * search_but )

◆ ui_searchbox_event()

◆ ui_searchbox_find_index()

bool int ui_searchbox_find_index ( ARegion * region,
const char * name )

Definition at line 266 of file interface_region_search.cc.

References UI_search_items_find_index().

Referenced by ui_textedit_end().

◆ ui_searchbox_free()

void ui_searchbox_free ( bContext * C,
ARegion * region )

Definition at line 1062 of file interface_region_search.cc.

References CTX_wm_screen(), and ui_region_temp_remove().

Referenced by ui_textedit_end().

◆ ui_searchbox_inside()

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

x and y in screen-coords.

Referenced by ui_do_but_textedit().

◆ ui_searchbox_update()

◆ ui_template_id_liboverride_hierarchy_make()

ID * ui_template_id_liboverride_hierarchy_make ( bContext * C,
Main * bmain,
ID * owner_id,
ID * id,
const char ** r_undo_push_label )

◆ ui_textedit_undo()

const char * ui_textedit_undo ( uiUndoStack_Text * stack,
int direction,
int * r_cursor_index )

Definition at line 70 of file interface_undo.cc.

References BLI_assert, ELEM, ui_textedit_redo_impl(), and ui_textedit_undo_impl().

Referenced by ui_do_but_textedit().

◆ ui_textedit_undo_push()

void ui_textedit_undo_push ( uiUndoStack_Text * stack,
const char * text,
int cursor_index )

Push the information in the arguments to a new state in the undo stack.

Note
Currently the total length of the undo stack is not limited.

Definition at line 79 of file interface_undo.cc.

References BLI_addtail(), BLI_remlink(), uiUndoStack_Text::current, uiUndoStack_Text_State::cursor_index, MEM_freeN(), MEM_mallocN, uiUndoStack_Text_State::next, state, uiUndoStack_Text::states, and uiUndoStack_Text_State::text.

Referenced by ui_do_but_textedit(), and ui_textedit_begin().

◆ ui_textedit_undo_stack_create()

uiUndoStack_Text * ui_textedit_undo_stack_create ( )

Start the undo stack.

Note
The current state should be pushed immediately after calling this.

Definition at line 99 of file interface_undo.cc.

References BLI_listbase_clear(), uiUndoStack_Text::current, and uiUndoStack_Text::states.

Referenced by ui_textedit_begin().

◆ ui_textedit_undo_stack_destroy()

void ui_textedit_undo_stack_destroy ( uiUndoStack_Text * stack)

Definition at line 108 of file interface_undo.cc.

References BLI_freelistN(), MEM_freeN(), and uiUndoStack_Text::states.

Referenced by ui_textedit_end().

◆ ui_to_pixelrect()

rcti ui_to_pixelrect ( const ARegion * region,
const uiBlock * block,
const rctf * src_rect )

◆ ui_tooltip_get_theme()

const uiWidgetColors * ui_tooltip_get_theme ( )

◆ UI_UL_asset_view()

◆ UI_UL_cache_file_layers()

uiListType * UI_UL_cache_file_layers ( )

◆ ui_view_item_find_active()

uiBut uiBut * ui_view_item_find_active ( const ARegion * region)

◆ ui_view_item_find_mouse_over()

◆ ui_view_item_find_search_highlight()

uiBut * ui_view_item_find_search_highlight ( const ARegion * region)

◆ ui_view_item_swap_button_pointers()

void ui_view_item_swap_button_pointers ( blender::ui::AbstractViewItem & a,
blender::ui::AbstractViewItem & b )

◆ ui_window_to_block()

◆ ui_window_to_block_fl()

◆ ui_window_to_block_rctf()

void ui_window_to_block_rctf ( const ARegion * region,
const uiBlock * block,
rctf * rct_dst,
const rctf * rct_src )

Definition at line 211 of file interface.cc.

References ui_window_to_block_fl(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by ui_but_find_rect_over().

◆ ui_window_to_region()

void ui_window_to_region ( const ARegion * region,
int * x,
int * y )

Definition at line 232 of file interface.cc.

Referenced by ui_region_contains_point_px().

◆ ui_window_to_region_rctf()

void ui_window_to_region_rctf ( const ARegion * region,
rctf * rect_dst,
const rctf * rct_src )

Definition at line 246 of file interface.cc.

References rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

◆ ui_window_to_region_rcti()

void ui_window_to_region_rcti ( const ARegion * region,
rcti * rect_dst,
const rcti * rct_src )

Definition at line 238 of file interface.cc.

References rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by ui_region_contains_rect_px().

◆ uiStyleInit()

Variable Documentation

◆ ATTR_WARN_UNUSED_RESULT

bool ATTR_WARN_UNUSED_RESULT

Definition at line 1468 of file interface_intern.hh.

◆ ui_pixel_jitter

const float ui_pixel_jitter[UI_PIXEL_AA_JITTER][2]
extern

Definition at line 289 of file interface_widgets.cc.

Referenced by widget_progress_type_ring().

◆ ui_radial_dir_order

const char ui_radial_dir_order[8]
extern

Definition at line 1522 of file interface.cc.

Referenced by ui_get_radialbut_vec().

◆ ui_radial_dir_to_angle

const short ui_radial_dir_to_angle[8]
extern

Definition at line 1534 of file interface.cc.

Referenced by ui_but_pie_dir().

◆ ui_radial_dir_to_numpad

const char ui_radial_dir_to_numpad[8]
extern

Definition at line 1533 of file interface.cc.

Referenced by ui_but_pie_direction_string().