Blender V5.0
interface_intern.hh File Reference
#include <functional>
#include "BLI_compiler_attrs.h"
#include "BLI_math_vector_types.hh"
#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_interface_layout.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)
#define UI_RADIAL_DIRECTION_PREV(dir)
#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)
#define UI_BITBUT_VALUE_TOGGLED(a, b)
#define UI_BITBUT_VALUE_ENABLED(a, b)
#define UI_BITBUT_VALUE_DISABLED(a, b)
#define UI_BITBUT_ROW(min, max)
#define USE_NUMBUTS_LR_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 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 : int8_t {
  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 class  uiBlockAlertLevel : int8_t {
  None , Info , Success , Warning ,
  Error
}
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_to_window (const ARegion *region, int region_x, int region_y, int *r_window_x, int *r_window_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, ButType 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)
const ColorManagedDisplayui_block_cm_display_get (uiBlock *block)
void ui_block_cm_to_display_space_v3 (uiBlock *block, float pixel[3])
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, const ColorManagedDisplay *display)
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_but_handle_data_free (uiHandleButtonData **data)
void ui_handle_afterfunc_add_operator (wmOperatorType *ot, blender::wm::OpCallContext 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, rcti *back_rect, float zoom, bool use_unpadded, const char *name, int iconid, int but_flag, uiMenuItemSeparatorType separator_type, int *r_xmax)
void ui_draw_preview_item (const uiFontStyle *fstyle, rcti *rect, float zoom, 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, const bool add_padding)
void uiStyleInit ()
void ui_icon_ensure_deferred (const bContext *C, int icon_id, bool big)
bool ui_icon_is_preview_deferred_loading (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, PropertyRNA *item_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_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_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)
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_end (ARegion *region, const uiBlock *block)
void ui_block_view_persistent_state_restore (const ARegion &region, const uiBlock &block, blender::ui::AbstractView &view)
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

Interface Region Functions

interface_region_*.cc sources.

using uiPopoverCreateFunc = std::function<void(bContext *, uiLayout *, PanelType *)>
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, blender::StringRefNull propname, IDProperty *properties, const EnumPropertyItem *items, int totitem, blender::wm::OpCallContext 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)

Macro Definition Documentation

◆ PIE_CLICK_THRESHOLD_SQ

#define PIE_CLICK_THRESHOLD_SQ   50.0f

Definition at line 167 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 170 of file interface_intern.hh.

Referenced by uiLayout::op_enum_items(), ui_get_radialbut_vec(), and ui_pie_menu_level_create().

◆ 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 )
Value:
(((max) >= 31 ? 0xFFFFFFFF : (1 << ((max) + 1)) - 1) - ((min) ? ((1 << (min)) - 1) : 0))
#define min(a, b)
Definition sort.cc:36
max
Definition text_draw.cc:251

Definition at line 145 of file interface_intern.hh.

◆ UI_BITBUT_TEST

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

Definition at line 139 of file interface_intern.hh.

Referenced by ui_but_is_pushed_ex().

◆ UI_BITBUT_VALUE_DISABLED

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

Definition at line 142 of file interface_intern.hh.

◆ UI_BITBUT_VALUE_ENABLED

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

Definition at line 141 of file interface_intern.hh.

◆ UI_BITBUT_VALUE_TOGGLED

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

Definition at line 140 of file interface_intern.hh.

Referenced by ui_apply_but_TOG().

◆ UI_MENU_PADDING

#define UI_MENU_PADDING   (int)(0.2f * UI_UNIT_Y)

◆ UI_MENU_SCROLL_ARROW

#define UI_MENU_SCROLL_ARROW   (12 * UI_SCALE_FAC)

Definition at line 67 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 68 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 69 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 64 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 1396 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 72 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 1394 of file interface_intern.hh.

Referenced by ui_block_bounds_calc_popup(), ui_popup_block_clip(), ui_popup_block_position(), ui_popup_block_refresh(), and ui_searchbox_region_layout_fn().

◆ UI_RADIAL_DIRECTION_NEXT

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

Next direction (clockwise).

Definition at line 117 of file interface_intern.hh.

Referenced by ui_but_isect_pie_seg().

◆ UI_RADIAL_DIRECTION_PREV

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

Previous direction (counter-clockwise).

Definition at line 119 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)))
@ UI_RADIAL_W
@ UI_RADIAL_E
@ UI_RADIAL_N
@ UI_RADIAL_S

Definition at line 126 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

Store a mask for diagonal directions.

Definition at line 123 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 1388 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 149 of file interface_intern.hh.

Typedef Documentation

◆ uiBlockHandleCreateFunc

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

Definition at line 914 of file interface_intern.hh.

◆ uiButFindPollFn

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

Definition at line 1542 of file interface_intern.hh.

◆ uiPopoverCreateFunc

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

Definition at line 1084 of file interface_intern.hh.

Enumeration Type Documentation

◆ 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 1301 of file interface_intern.hh.

◆ 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 75 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 152 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 554 of file interface_intern.hh.

◆ RadialDirection

enum RadialDirection : int8_t

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 104 of file interface_intern.hh.

◆ uiBlockAlertLevel

enum class uiBlockAlertLevel : int8_t
strong
Enumerator
None 
Info 
Success 
Warning 
Error 

Definition at line 586 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 561 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 1335 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 3910 of file interface.cc.

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

Referenced by UI_menutype_draw(), and ui_paneltype_draw_impl().

◆ ui_block_align_calc()

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

References ui_block_find_mouse_over_ex(), and wmEvent::xy.

Referenced by ui_block_find_mouse_over_ex().

◆ ui_block_find_mouse_over_ex()

◆ ui_block_free_views()

void ui_block_free_views ( uiBlock * block)

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

◆ 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 160 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 149 of file interface.cc.

References 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 180 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_view_persistent_state_restore()

◆ ui_block_views_draw_overlays()

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

Definition at line 193 of file interface_view.cc.

References LISTBASE_FOREACH, and uiBlock::views.

Referenced by UI_block_draw().

◆ ui_block_views_end()

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

◆ 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 9487 of file interface_handlers.cc.

References uiBut::block, button_activate_init(), BUTTON_ACTIVATE_OVER, C, 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 9504 of file interface_handlers.cc.

References button_activate_init(), BUTTON_ACTIVATE_OVER, and C.

Referenced by ui_block_func_POPUP().

◆ ui_but_active_free()

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

◆ 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 322 of file interface_anim.cc.

References C, blender::wm::InvokeDefault, 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 193 of file interface_anim.cc.

References BLI_strncpy_utf8(), 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 332 of file interface_anim.cc.

References C, blender::wm::InvokeDefault, and WM_operator_name_call().

◆ ui_but_can_align()

bool ui_but_can_align ( const uiBut * but)

◆ ui_but_change_type()

uiBut * ui_but_change_type ( uiBut * but,
ButType 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 4279 of file interface.cc.

References BLI_assert, uiBut::block, uiLayout::block(), uiBlock::but_index(), uiBlock::buttons, uiBut::layout, uiBut::poin, uiBut::type, ui_but_new(), ui_button_group_replace_but_ptr(), UI_editsource_but_replace(), UI_editsource_enable_check(), ui_layout_replace_but_ptr(), and UNUSED_VARS_NDEBUG.

Referenced by uiLayout::prop(), ui_but_add_search(), and ui_item_array().

◆ 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 118 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(), and ui_but_drag_init().

◆ ui_but_contains_password()

bool ui_but_contains_password ( const uiBut * but)

Definition at line 602 of file interface_query.cc.

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

Referenced by ui_but_copy(), and ui_list_find_mouse_over_ex().

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

References BLI_rctf_isect(), and uiBut::rect.

Referenced by ui_but_find_rect_over().

◆ 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 2021 of file interface.cc.

References BLI_assert_msg, C, uiBut::context, CTX_store_get(), 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 )

◆ 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_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 893 of file interface.cc.

References uiBlock::buttons, 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 )

Definition at line 873 of file interface.cc.

References ui_but_find_old().

◆ 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 641 of file interface_handlers.cc.

References BLI_assert, uiBut::block, uiBlock::but_index(), uiBlock::buttons, ELEM, i, 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_handle_data_free()

void ui_but_handle_data_free ( uiHandleButtonData ** data)

Definition at line 585 of file interface_handlers.cc.

References data.

Referenced by button_activate_exit(), and ui_but_free().

◆ 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 227 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 2694 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 ButType::Text button behaves as a label when ctrl is not pressed.

Definition at line 68 of file interface_query.cc.

References ELEM, uiBut::emboss, uiBut::flag, blender::ui::AbstractViewItem::is_interactive(), Label, ListBox, ListRow, blender::ui::None, blender::ui::NoneOrStatus, PreviewTile, Roundbox, Sepr, SeprLine, Text, uiBut::tip, uiBut::tip_custom_func, uiBut::tip_func, uiBut::tip_quick_func, uiBut::type, ui_but_drag_is_draggable(), UI_HIDDEN, UI_SCROLLED, uiButViewItem::view_item, and ViewItem.

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)

Definition at line 129 of file interface_query.cc.

References But, Decorator, ELEM, uiBut::type, and ui_but_is_toggle().

Referenced by ui_draw_but(), and ui_handle_button_event().

◆ ui_but_is_pushed()

int ui_but_is_pushed ( uiBut * but)

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

bool ui_but_is_toggle ( const uiBut * but)

◆ ui_but_is_unit()

◆ ui_but_last()

◆ ui_but_menu_direction()

int ui_but_menu_direction ( uiBut * but)

Definition at line 4545 of file interface_handlers.cc.

References uiBut::active, and data.

Referenced by widget_roundbox_set().

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

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

◆ 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 766 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 3052 of file interface_handlers.cc.

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

Referenced by drop_name_invoke(), ui_but_paste_text(), and ui_do_but_text_value_cycle().

◆ 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 fall back to the button default.
use_exp_floatUse exponent representation of floats when out of reasonable range (outside of 1e3/1e-3).

References ATTR_WARN_UNUSED_RESULT, C, flag, ot, and str.

◆ 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 2729 of file interface.cc.

References Color, ELEM, ListBox, Menu, uiBut::menu_step_func, Num, NumSlider, Row, uiBut::type, 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 )

References b, ptr, x, and y.

◆ ui_but_tip_len_only_first_line()

size_t ui_but_tip_len_only_first_line ( const uiBut * but)

◆ 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 2204 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 9418 of file interface_handlers.cc.

References uiBut::active, uiBut::block, C, uiBut::changed, data, 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()

◆ 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 4487 of file interface.cc.

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

Referenced by uiLayout::prop().

◆ 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 5052 of file interface_widgets.cc.

References uiBlock::aspect, BLI_assert, BLI_rcti_pad(), BLI_rcti_size_y(), Block, uiBut::block, But, ButMenu, ButToggle, C, Checkbox, CheckboxN, uiBut::col, Color, ColorBand, copy_v4_v4_uchar(), Curve, CurveProfile, uiWidgetType::custom, Decorator, uiWidgetType::draw, uiBut::drawflag, uiBut::drawstr, uiBut::editstr, ELEM, blender::ui::Emboss, uiBut::emboss, Extra, uiBlock::flag, uiBut::flag, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, uiButHSVCube::gradient_type, Grip, Histogram, uiBut::hold_func, HsvCircle, HsvCube, uiBut::icon, Image, Label, ListBox, ListRow, Menu, NodeSocket, blender::ui::None, blender::ui::NoneOrStatus, Num, NumSlider, padding(), blender::ui::PieMenu, Popover, popover_widget_type(), PreviewTile, Progress, blender::ui::Pulldown, Pulldown, Roundbox, Row, Scroll, SearchMenu, Sepr, SeprLine, SeprSpacer, state, uiWidgetType::state, Tab, Text, uiWidgetColors::text, uiWidgetType::text, uiBlock::theme_style, Toggle, ToggleN, TrackPreview, bTheme::tui, uiBut::type, UI_BLOCK_NO_DRAW_OVERRIDDEN_STATE, UI_BLOCK_POPOVER_ONCE, UI_BLOCK_THEME_STYLE_POPUP, 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_OVERRIDDEN, 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_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_ITEM, UI_WTYPE_MENU_ITEM_PIE, UI_WTYPE_MENU_ITEM_UNPADDED, UI_WTYPE_MENU_NODE_LINK, 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, Unitvec, UNLIKELY, Vectorscope, ViewItem, Waveform, uiWidgetType::wcol, ThemeUI::wcol_box, ThemeUI::wcol_curve, 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 1598 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, uiBut::flag, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, 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_2D_POINT_UNIFORM_SIZE_UNIFORM_COLOR_AA, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), uiButCurveMapping::gradient_type, i, IMB_colormanagement_get_luminance(), imm_draw_box_wire_2d(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniform1f(), immUniform4fv(), immUniformColor3ub(), immUniformColor3ubv(), immUniformColor3ubvAlpha(), immUniformColor4fv(), immVertex2f(), immVertexFormat(), uiWidgetColors::inner, uiWidgetColors::inner_sel, uiWidgetColors::item, linearrgb_to_srgb_v3_v3(), max_ff(), min_ff(), uiWidgetColors::outline, uiWidgetColors::outline_sel, uiBut::poin, pos, rgb_to_hsv_v(), rgba_uchar_to_float(), CurveMapping::sample, CurveMap::table, uiWidgetColors::text, uiWidgetColors::text_sel, TH_AXIS_X, TH_AXIS_Y, CurveMap::totpoint, U, ui_block_cm_display_get(), UI_BUT_INACTIVE, ui_draw_but_curve_grid(), ui_draw_gradient(), UI_GetThemeColor3ubv(), UI_GRAD_H, UI_SCALE_FAC, ARegion::winx, ARegion::winy, 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 1953 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, CurveProfile::clip_rect, uiButCurveProfile::edit_profile, CurveProfile::flag, flag, float, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_line_smooth(), GPU_line_width(), GPU_polygon_smooth(), GPU_PRIM_LINE_STRIP, GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_PRIM_TRIS, GPU_program_point_size(), GPU_scissor(), GPU_scissor_get(), GPU_SHADER_2D_POINT_UNIFORM_SIZE_UNIFORM_COLOR_AA, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), CurveProfilePoint::h1_loc, CurveProfilePoint::h2_loc, i, imm_draw_box_wire_2d(), immBegin(), immBindBuiltinProgram(), immEnd(), immRectf(), immUnbindProgram(), immUniform1f(), immUniform4fv(), immUniformColor3ubv(), immUniformColor3ubvAlpha(), immUniformColor4ubv(), immVertex2f(), immVertexFormat(), uiWidgetColors::inner, uiWidgetColors::inner_sel, uiWidgetColors::item, max_ff(), MEM_freeN(), MEM_mallocN(), MEM_SAFE_FREE, min_ff(), uiWidgetColors::outline, uiWidgetColors::outline_sel, CurveProfile::path, CurveProfile::path_len, uiBut::poin, point_draw_handles(), pos, PROF_H1_SELECT, PROF_H2_SELECT, PROF_SELECT, PROF_UPDATE_NONE, PROF_USE_CLIP, rgba_uchar_to_float(), CurveProfile::segments, CurveProfile::segments_len, CurveProfile::table, uiWidgetColors::text, uiWidgetColors::text_sel, U, ui_draw_but_curve_grid(), UI_SCALE_FAC, CurveProfile::view_rect, ARegion::winx, ARegion::winy, CurveProfilePoint::x, rctf::xmax, rcti::xmax, rctf::xmin, rcti::xmin, CurveProfilePoint::y, rctf::ymax, rcti::ymax, rctf::ymin, 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,
rcti * back_rect,
float zoom,
bool use_unpadded,
const char * name,
int iconid,
int but_flag,
uiMenuItemSeparatorType separator_type,
int * r_xmax )

Helper call to draw a menu item without a button.

Parameters
back_rectUsed to draw/leave out the backdrop of the menu item. Useful when layering multiple items with different formatting like in search menus.
but_flagButton flags (uiBut.flag) indicating the state of the item, typically UI_HOVER, UI_BUT_DISABLED, UI_BUT_INACTIVE.
separator_typeThe kind of separator which controls if and how the string is clipped.
r_xmaxThe right hand position of the text, this takes into the icon, padding and text clipping when there is not enough room to display the full text.

Definition at line 5794 of file interface_widgets.cc.

References BLF_width(), BLI_assert_msg, BLI_rcti_size_x(), BLI_rcti_size_y(), uiWidgetStateInfo::but_flag, uiWidgetType::draw, float, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, name, padding(), params, state, uiWidgetType::state, STATE_INFO_NULL, STRNCPY_UTF8, uiWidgetColors::text, U, UI_BUT_INACTIVE, UI_fontstyle_draw(), UI_fontstyle_draw_ex(), UI_fontstyle_set(), UI_icon_draw_ex(), UI_ICON_SIZE, UI_MAX_DRAW_STR, UI_MENU_ITEM_SEPARATOR_HINT, UI_MENU_ITEM_SEPARATOR_NONE, UI_MENU_ITEM_SEPARATOR_SHORTCUT, UI_NO_ICON_OVERLAY_TEXT, UI_SEP_CHAR, UI_STYLE_TEXT_LEFT, UI_STYLE_TEXT_RIGHT, UI_text_clip_middle_ex(), UI_UNIT_X, UI_WTYPE_MENU_ITEM, UI_WTYPE_MENU_ITEM_UNPADDED, uiFontStyle::uifont_id, blender::ui::Undefined, uiWidgetType::wcol, widget_type(), ResultBLF::width, rcti::xmax, rcti::xmin, and rcti::ymin.

Referenced by ui_searchbox_region_draw_cb__operator(), and ui_searchbox_region_draw_fn().

◆ ui_draw_pie_center()

◆ ui_draw_popover_back()

◆ ui_draw_preview_item()

void ui_draw_preview_item ( const uiFontStyle * fstyle,
rcti * rect,
float zoom,
const char * name,
int iconid,
int but_flag,
eFontStyle_Align text_align )

◆ 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,
const bool add_padding )

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 5932 of file interface_widgets.cc.

References BLI_rcti_size_x(), float, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, name, params, PREVIEW_PAD, UI_fontstyle_draw(), UI_ICON_SIZE, UI_MAX_DRAW_STR, UI_text_clip_middle_ex(), UI_UNIT_Y, widget_draw_preview_icon(), 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 149 of file interface_draw.cc.

References 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 5776 of file interface_widgets.cc.

References ui_draw_widget_back_color(), and UI_WTYPE_MENU_BACK.

◆ ui_event_icon_offset()

◆ ui_fontscale()

void ui_fontscale ( float * points,
float aspect )

◆ ui_handle_afterfunc_add_operator()

void ui_handle_afterfunc_add_operator ( wmOperatorType * ot,
blender::wm::OpCallContext opcontext )

Definition at line 890 of file interface_handlers.cc.

References ot, and ui_handle_afterfunc_add_operator_ex().

Referenced by panel_activate_state().

◆ ui_handler_panel_region()

int ui_handler_panel_region ( bContext * C,
const wmEvent * event,
ARegion * region,
const uiBut * active_but )

Handle region panel events like opening and closing panels, changing categories, etc.

Note
Could become a modal key-map.

Definition at line 2600 of file interface_panel.cc.

References BLI_rctf_size_y(), BLI_rcti_size_x(), BLI_rcti_size_y(), C, View2D::cur, ED_region_tag_redraw(), ELEM, EVT_AKEY, EVT_PADENTER, EVT_PADPERIOD, EVT_RETKEY, EVT_TABKEY, Panel::flag, PanelType::flag, PanelCategoryDyn::idname, ISMOUSE_MOTION, KM_CTRL, KM_PRESS, KM_SHIFT, Label, LEFTMOUSE, LISTBASE_FOREACH, View2D::mask, wmEvent::modifier, NA_EDITED, NC_SCREEN, panel_categories_find_mouse_over(), PANEL_MOUSE_INSIDE_HEADER, PANEL_MOUSE_INSIDE_LAYOUT_PANEL_HEADER, PANEL_MOUSE_OUTSIDE, PANEL_TYPE_NO_HEADER, PANEL_USE_CLOSED_FROM_SEARCH, PNL_CLOSED, RIGHTMOUSE, ARegion::runtime, Panel::runtime_flag, SET_FLAG_FROM_TEST, STREQ, Panel::type, uiBut::type, wmEvent::type, ui_handle_layout_panel_header(), ui_handle_panel_category_cycling(), ui_handle_panel_header(), UI_panel_category_active_get(), UI_panel_category_active_set(), UI_panel_category_is_visible(), UI_PANEL_CATEGORY_MIN_WIDTH, ui_panel_category_show_active_tab(), UI_panel_is_closed(), ui_panel_mouse_state_get(), ui_panel_region_width_set(), ui_popup_context_menu_for_panel(), ui_region_find_active_but(), UI_SCALE_FAC, UI_view2d_mouse_in_scrollers(), UI_view2d_offset(), ui_window_to_block(), ARegion::v2d, wmEvent::val, WHEELDOWNMOUSE, WHEELUPMOUSE, ARegion::winrct, WM_event_add_notifier(), WM_UI_HANDLER_BREAK, WM_UI_HANDLER_CONTINUE, and wmEvent::xy.

Referenced by ui_region_handler().

◆ 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 3045 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, U, 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_icon_is_preview_deferred_loading()

bool ui_icon_is_preview_deferred_loading ( int icon_id,
bool big )

Is icon_id a preview icon that is being loaded/rendered?

Definition at line 1254 of file interface_icons.cc.

References BKE_icon_get(), BKE_previewimg_id_get(), Icon::drawinfo, PreviewImage::flag, ICON_SIZE_ICON, ICON_SIZE_PREVIEW, ICON_TYPE_PREVIEW, Icon::id_type, Icon::obj, PRV_RENDERING, size(), and DrawInfo::type.

Referenced by ui_but_icon().

◆ ui_id_icon_get()

◆ ui_interface_tag_script_reload_queries()

void ui_interface_tag_script_reload_queries ( )

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

Definition at line 1980 of file interface_ops.cc.

References C, and jump_to_target_button().

Referenced by UI_OT_jump_to_target_button(), and ui_popup_context_menu_for_button().

◆ ui_layout_add_but()

void ui_layout_add_but ( uiLayout * layout,
uiBut * but )

Definition at line 5568 of file interface_layout.cc.

References blender::ui::LayoutInternal::layout_add_but().

Referenced by ui_def_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 4990 of file interface_layout.cc.

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

Referenced by blender::ui::TreeViewLayoutBuilder::build_row(), 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 )

◆ ui_layout_panel_toggle_open()

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

◆ ui_layout_remove_but()

void ui_layout_remove_but ( uiLayout * layout,
const uiBut * 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 5621 of file interface_layout.cc.

References uiButtonItem::but, and blender::ui::LayoutInternal::ui_layout_find_button_item().

Referenced by ui_but_change_type().

◆ ui_list_find_mouse_over()

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

◆ ui_list_find_mouse_over_ex()

◆ ui_list_row_find_index()

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

◆ ui_list_row_find_mouse_over()

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

void ui_perceptual_to_scene_linear_space ( uiBut * but,
float rgb[3] )

◆ ui_pie_menu_level_create()

◆ ui_popover_panel_create()

◆ ui_popup_block_create()

uiPopupBlockHandle * ui_popup_block_create ( bContext * C,
ARegion * butregion,
uiBut * but,
uiBlockCreateFunc create_func,
uiBlockHandleCreateFunc handle_create_func,
void * arg,
uiFreeArgFunc arg_free,
bool can_refresh )

◆ 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 627 of file interface_region_popup.cc.

References uiPopupBlockCreate::arg, uiBlock::aspect, BLI_addhead(), BLI_assert, BLI_rctf_recenter(), BLI_rctf_size_x(), BLI_rctf_size_y(), uiBut::block, uiBlock::bounds_type, uiBlock::buttons, C, uiPopupBlockHandle::can_refresh, copy_v2_v2(), create_func(), uiPopupBlockCreate::create_func, CTX_data_depsgraph_pointer(), CTX_data_main(), CTX_data_scene(), CTX_wm_window(), uiBlock::direction, uiPopupBlockHandle::direction, ED_region_floating_init(), ED_region_tag_redraw(), ED_region_update_rect(), ELEM, uiBlock::endblock, wmWindow::event_last_handled, uiPopupBlockCreate::event_xy, wmWindow::eventstate, uiBlock::flag, PieMenuData::flags, FLT_MAX, uiBlock::handle, uiPopupBlockCreate::handle_create_func, max_ff(), MEM_callocN(), min_ff(), uiBlock::oldblock, uiBlock::panel, PieMenuData::pie_center_init, PieMenuData::pie_center_spawned, uiBlock::pie_data, uiPopupBlockHandle::popup_create_vars, uiPopupBlockHandle::prev_block_rect, uiBlock::rect, uiPopupBlockHandle::refresh, uiPopupBlockHandle::region, ARegion::regiondata, ARegion::runtime, uiBlock::saferct, uiBlock::safety, uiSafetyRct::safety, uiPopupBlockHandle::scrolloffset, U, 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, ARegion::winrct, WM_window_native_pixel_size(), wmGetProjectionMatrix(), rctf::xmax, rcti::xmax, rctf::xmin, rcti::xmin, rctf::ymax, rcti::ymax, rctf::ymin, and rcti::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 521 of file interface_context_menu.cc.

References ANIM_driver_can_paste(), uiBut::apply_func, ID::asset_data, BLI_assert, BLI_exists(), BLI_path_split_dir_part(), uiBut::block, uiLayout::block(), BLT_I18NCONTEXT_OPERATOR_DEFAULT, blender::ui::AbstractViewItem::build_context_menu(), But, C, blender::ed::asset::can_mark_single_from_context(), uiLayout::column(), uiBut::context, uiLayout::context_set_from_but(), CTX_data_main(), CTX_data_pointer_get_type(), CTX_IFACE_, CTX_store_get(), CTX_store_set(), CTX_wm_area(), CTX_wm_region(), CTX_wm_region_popup(), PointerRNA::data, ED_buttons_navbar_menu(), ED_buttons_visible_tabs_menu(), 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(), ELEM, uiLayout::enabled_set(), EVT_TYPE_MASK_ALL, blender::wm::ExecDefault, FILE_MAX, FILE_MAXDIR, uiBut::flag, IFACE_, Image, blender::wm::InvokeDefault, is_disabled, ISKEYBOARD, ISNDOF_BUTTON, bUserMenu::items, Label, MEM_freeN(), uiButTab::menu, uiLayout::menu(), menu_add_shortcut(), menu_add_shortcut_cancel(), menu_change_shortcut(), uiBut::menu_create_func, uiLayout::menu_fn(), nullptr, uiLayout::op(), uiBut::opcontext, uiLayout::operator_context_set(), uiBut::opptr, uiBut::optype, ot, MenuType::poll, PROP_BOOLEAN, PROP_DIRPATH, PROP_ENUM, PROP_FILEPATH, PROP_FLOAT, PROP_INT, PROP_POINTER, PROP_STRING, ptr, ARegion::regiontype, 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, SearchMenu, uiLayout::separator(), set_layout_context_from_button(), shortcut_free_operator_property(), shortcut_get_operator_property(), SPACE_PROPERTIES, ScrArea::spacetype, Tab, TIP_, PointerRNA::type, uiBut::type, wmKeyMapItem::type, U, ui_block_is_menu(), ui_block_is_popup_any(), 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(), USER_DEVELOPER_UI, uiButViewItem::view_item, ViewItem, w(), uiLayout::width(), WM_key_event_operator(), WM_keymap_guess_opname(), WM_menutype_find(), WM_operatortype_find(), and wmEvent::xy.

Referenced by ui_do_button(), ui_screen_region_find_mouse_over_ex(), 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 439 of file interface_region_menu_popup.cc.

References C, and 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 146 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 151 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] )

◆ ui_region_contains_point_px()

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

References LISTBASE_FOREACH, and ARegion::runtime.

Referenced by ui_block_find_mouse_over_ex(), and ui_handle_menu_event().

◆ ui_region_to_window() [1/2]

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

Definition at line 261 of file interface.cc.

References ARegion::winrct, x, rcti::xmin, y, and rcti::ymin.

Referenced by select_operator_view_and_item_find_xy().

◆ ui_region_to_window() [2/2]

void ui_region_to_window ( const ARegion * region,
int region_x,
int region_y,
int * r_window_x,
int * r_window_y )

Definition at line 267 of file interface.cc.

References ARegion::winrct, rcti::xmin, and rcti::ymin.

◆ 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 388 of file interface.cc.

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

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 54 of file resources.cc.

References UI_icons_free().

Referenced by UI_exit().

◆ ui_resources_init()

void ui_resources_init ( )

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

◆ ui_screen_region_find_mouse_over_ex()

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

Search-box for string button.

Definition at line 1052 of file interface_region_search.cc.

References C, and ui_searchbox_create_generic_ex().

Referenced by template_common_search_menu(), ui_but_add_search(), UI_but_func_search_set(), and uiDefSearchButO_ptr().

◆ 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 328 of file interface_region_search.cc.

References data, name, ARegion::regiondata, and UI_search_items_find_index().

Referenced by ui_textedit_end().

◆ ui_searchbox_free()

void ui_searchbox_free ( bContext * C,
ARegion * region )

Definition at line 1185 of file interface_region_search.cc.

References C, 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.

References C, create_func(), name, reset(), str, and xy.

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, MEM_callocN(), 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_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()

◆ 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 218 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 239 of file interface.cc.

References ARegion::winrct, x, rcti::xmin, y, and rcti::ymin.

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 253 of file interface.cc.

References ARegion::winrct, rctf::xmax, rctf::xmin, rcti::xmin, rctf::ymax, rctf::ymin, and rcti::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 245 of file interface.cc.

References ARegion::winrct, 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 1529 of file interface_intern.hh.

◆ ui_pixel_jitter

const float ui_pixel_jitter[UI_PIXEL_AA_JITTER][2]
extern

Definition at line 298 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 1659 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 1671 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 1670 of file interface.cc.

Referenced by ui_but_pie_direction_string().