Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions | Variables
interface_intern.h File Reference
#include "BLI_compiler_attrs.h"
#include "BLI_rect.h"
#include "DNA_listBase.h"
#include "RNA_types.h"
#include "UI_interface.h"
#include "UI_resources.h"

Go to the source code of this file.

Classes

struct  uiBut
 
struct  uiButNumber
 
struct  uiButColor
 
struct  uiButTab
 
struct  uiButSearch
 
struct  uiButDecorator
 
struct  uiButProgressbar
 
struct  uiButViewItem
 
struct  uiButHSVCube
 
struct  uiButColorBand
 
struct  uiButCurveProfile
 
struct  uiButCurveMapping
 
struct  uiButHotkeyEvent
 
struct  uiButExtraOpIcon
 
struct  ColorPicker
 
struct  ColorPickerData
 
struct  PieMenuData
 
struct  uiButtonGroup
 
struct  uiBlock
 
struct  uiSafetyRct
 
struct  uiKeyNavLock
 
struct  uiPopupBlockCreate
 
struct  uiPopupBlockHandle
 
struct  uiWidgetBaseParameters
 
struct  uiRNACollectionSearch
 

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_DPI_FAC)
 
#define UI_MENU_SCROLL_ARROW   (12 * UI_DPI_FAC)
 
#define UI_MENU_SCROLL_MOUSE   (UI_MENU_SCROLL_ARROW + 2 * UI_DPI_FAC)
 
#define UI_MENU_SCROLL_PAD   (4 * UI_DPI_FAC)
 
#define UI_PANEL_MINX   100
 
#define UI_PANEL_MINY   70
 
#define UI_POPOVER_WIDTH_UNITS   10
 
#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_DPI_FAC * 12)
 
#define UI_POPUP_MENU_TOP   (int)(10 * UI_DPI_FAC)
 
#define UI_PIXEL_AA_JITTER   8
 

Typedefs

typedef enum RadialDirection RadialDirection
 
typedef struct uiButNumber uiButNumber
 
typedef struct uiButColor uiButColor
 
typedef struct uiButTab uiButTab
 
typedef struct uiButSearch uiButSearch
 
typedef struct uiButDecorator uiButDecorator
 
typedef struct uiButProgressbar uiButProgressbar
 
typedef struct uiButViewItem uiButViewItem
 
typedef struct uiButHSVCube uiButHSVCube
 
typedef struct uiButColorBand uiButColorBand
 
typedef struct uiButCurveProfile uiButCurveProfile
 
typedef struct uiButCurveMapping uiButCurveMapping
 
typedef struct uiButHotkeyEvent uiButHotkeyEvent
 
typedef struct uiButExtraOpIcon uiButExtraOpIcon
 
typedef struct ColorPicker ColorPicker
 
typedef struct ColorPickerData ColorPickerData
 
typedef struct uiButtonGroup uiButtonGroup
 
typedef enum uiButtonGroupFlag uiButtonGroupFlag
 
typedef struct uiSafetyRct uiSafetyRct
 
typedef uiBlock *(* uiBlockHandleCreateFunc) (struct bContext *C, struct uiPopupBlockHandle *handle, void *arg1)
 
typedef struct uiWidgetBaseParameters uiWidgetBaseParameters
 
typedef bool(* uiButFindPollFn) (const uiBut *but, const void *customdata)
 
typedef struct uiRNACollectionSearch uiRNACollectionSearch
 

Enumerations

enum  {
  UI_SELECT = (1 << 0) , UI_SCROLLED = (1 << 1) , UI_ACTIVE = (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  { UI_BUT_DRAGPOIN_FREE = (1 << 0) }
 
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_DEGREES_RANGE_LARGE = (1 << 0) , 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_MAX
}
 
enum  uiMenuItemSeparatorType { UI_MENU_ITEM_SEPARATOR_NONE , UI_MENU_ITEM_SEPARATOR_SHORTCUT , UI_MENU_ITEM_SEPARATOR_HINT }
 

Functions

void ui_fontscale (float *points, float aspect)
 
void ui_block_to_region_fl (const struct ARegion *region, uiBlock *block, float *r_x, float *r_y)
 
void ui_block_to_window_fl (const struct ARegion *region, uiBlock *block, float *x, float *y)
 
void ui_block_to_window (const struct ARegion *region, uiBlock *block, int *x, int *y)
 
void ui_block_to_region_rctf (const struct ARegion *region, uiBlock *block, rctf *rct_dst, const rctf *rct_src)
 
void ui_block_to_window_rctf (const struct ARegion *region, uiBlock *block, rctf *rct_dst, const rctf *rct_src)
 
float ui_block_to_window_scale (const struct ARegion *region, uiBlock *block)
 
void ui_window_to_block_fl (const struct ARegion *region, uiBlock *block, float *x, float *y)
 
void ui_window_to_block (const struct ARegion *region, uiBlock *block, int *x, int *y)
 
void ui_window_to_block_rctf (const struct ARegion *region, uiBlock *block, rctf *rct_dst, const rctf *rct_src)
 
void ui_window_to_region (const struct ARegion *region, int *x, int *y)
 
void ui_window_to_region_rcti (const struct ARegion *region, rcti *rect_dst, const rcti *rct_src)
 
void ui_window_to_region_rctf (const struct ARegion *region, rctf *rect_dst, const rctf *rct_src)
 
void ui_region_to_window (const struct ARegion *region, int *x, int *y)
 
void ui_region_winrct_get_no_margin (const struct ARegion *region, struct rcti *r_rect)
 
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_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 *xpos, float *ypos)
 
void ui_hsvcube_pos_from_vals (const struct uiButHSVCube *hsv_but, const rcti *rect, const float *hsv, float *xp, float *yp)
 
void ui_but_string_get_ex (uiBut *but, char *str, size_t maxlen, 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 maxlen) 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 maxlen) ATTR_NONNULL()
 
bool ui_but_string_set (struct bContext *C, uiBut *but, const char *str) ATTR_NONNULL()
 
bool ui_but_string_eval_number (struct bContext *C, const uiBut *but, const char *str, double *value) ATTR_NONNULL()
 
int ui_but_string_get_max_length (uiBut *but)
 
void ui_but_active_string_clear_and_exit (struct bContext *C, uiBut *but) ATTR_NONNULL()
 
void ui_but_set_string_interactive (struct bContext *C, uiBut *but, const char *value)
 
uiButui_but_drag_multi_edit_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 (struct uiBut *but, const char *panel_type)
 
void ui_but_rna_menu_convert_to_menu_type (struct 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 (struct bContext *C, struct wmOperatorType *ot, const uiBut *but)
 
bool ui_but_context_poll_operator_ex (struct bContext *C, const uiBut *but, const struct 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 (struct Main *bmain, uiBut *but)
 
void ui_block_bounds_calc (uiBlock *block)
 
struct 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)
 
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 (struct bContext *C, uiPopupBlockHandle *handle, void *arg_but)
 
ColorPickerui_block_colorpicker_create (struct uiBlock *block)
 
struct ARegionui_searchbox_create_generic (struct bContext *C, struct ARegion *butregion, uiButSearch *search_but)
 
struct ARegionui_searchbox_create_operator (struct bContext *C, struct ARegion *butregion, uiButSearch *search_but)
 
struct ARegionui_searchbox_create_menu (struct bContext *C, struct ARegion *butregion, uiButSearch *search_but)
 
bool ui_searchbox_inside (struct ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
bool int ui_searchbox_find_index (struct ARegion *region, const char *name)
 
void ui_searchbox_update (struct bContext *C, struct ARegion *region, uiBut *but, bool reset)
 
int ui_searchbox_autocomplete (struct bContext *C, struct ARegion *region, uiBut *but, char *str)
 
bool ui_searchbox_event (struct bContext *C, struct ARegion *region, uiBut *but, struct ARegion *butregion, const struct wmEvent *event)
 
bool ui_searchbox_apply (uiBut *but, struct ARegion *region)
 
void ui_searchbox_free (struct bContext *C, struct 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 (struct uiBlock *block)
 
void ui_popup_menu_memory_set (uiBlock *block, struct uiBut *but)
 
uiBlockui_popup_block_refresh (struct bContext *C, uiPopupBlockHandle *handle, struct ARegion *butregion, uiBut *but)
 
uiPopupBlockHandleui_popup_block_create (struct bContext *C, struct ARegion *butregion, uiBut *but, uiBlockCreateFunc create_func, uiBlockHandleCreateFunc handle_create_func, void *arg, uiFreeArgFunc arg_free)
 
uiPopupBlockHandleui_popup_menu_create (struct bContext *C, struct ARegion *butregion, uiBut *but, uiMenuCreateFunc menu_func, void *arg)
 
uiPopupBlockHandleui_popover_panel_create (struct bContext *C, struct ARegion *butregion, uiBut *but, uiMenuCreateFunc menu_func, void *arg)
 
void ui_pie_menu_level_create (uiBlock *block, struct wmOperatorType *ot, const char *propname, struct IDProperty *properties, const EnumPropertyItem *items, int totitem, wmOperatorCallContext context, wmOperatorCallContext flag)
 
void ui_popup_translate (struct ARegion *region, const int mdiff[2])
 
void ui_popup_block_free (struct bContext *C, uiPopupBlockHandle *handle)
 
void ui_popup_block_scrolltest (struct uiBlock *block)
 
int ui_handler_panel_region (struct bContext *C, const struct wmEvent *event, struct ARegion *region, const uiBut *active_but)
 
void ui_draw_aligned_panel (const struct uiStyle *style, const uiBlock *block, const rcti *rect, bool show_pin, bool show_background, bool region_search_filter_active)
 
void ui_panel_tag_search_filter_match (struct Panel *panel)
 
void ui_draw_dropshadow (const rctf *rct, float radius, float aspect, float alpha, int select)
 
void ui_draw_gradient (const rcti *rect, const float hsv[3], eButGradientType type, float alpha)
 
void ui_draw_but_TAB_outline (const rcti *rect, float rad, uchar highlight[3], uchar highlight_fade[3])
 
void ui_draw_but_HISTOGRAM (struct ARegion *region, uiBut *but, const struct uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_WAVEFORM (struct ARegion *region, uiBut *but, const struct uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_VECTORSCOPE (struct ARegion *region, uiBut *but, const struct uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_COLORBAND (uiBut *but, const struct uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_UNITVEC (uiBut *but, const struct uiWidgetColors *wcol, const rcti *rect, float radius)
 
void ui_draw_but_CURVE (struct ARegion *region, uiBut *but, const struct uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_CURVEPROFILE (struct ARegion *region, uiBut *but, const struct uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_IMAGE (struct ARegion *region, uiBut *but, const struct uiWidgetColors *wcol, const rcti *rect)
 
void ui_draw_but_TRACKPREVIEW (struct ARegion *region, uiBut *but, const struct uiWidgetColors *wcol, const rcti *rect)
 
struct uiUndoStack_Textui_textedit_undo_stack_create (void)
 
void ui_textedit_undo_stack_destroy (struct uiUndoStack_Text *undo_stack)
 
void ui_textedit_undo_push (struct uiUndoStack_Text *undo_stack, const char *text, int cursor_index)
 
const char * ui_textedit_undo (struct uiUndoStack_Text *undo_stack, int direction, int *r_cursor_index)
 
void ui_handle_afterfunc_add_operator (struct wmOperatorType *ot, wmOperatorCallContext opcontext)
 
void ui_pan_to_scroll (const struct wmEvent *event, int *type, int *val)
 
void ui_but_activate_event (struct bContext *C, struct ARegion *region, uiBut *but)
 
void ui_but_activate_over (struct bContext *C, struct ARegion *region, uiBut *but)
 
void ui_but_execute_begin (struct bContext *C, struct ARegion *region, uiBut *but, void **active_back)
 
void ui_but_execute_end (struct bContext *C, struct ARegion *region, uiBut *but, void *active_back)
 
void ui_but_active_free (const struct bContext *C, uiBut *but)
 
void ui_but_update_view_for_active (const struct 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 (struct 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 (void)
 
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)
 
struct GPUBatchui_batch_roundbox_widget_get (void)
 
struct GPUBatchui_batch_roundbox_shadow_get (void)
 
void ui_draw_menu_back (struct uiStyle *style, uiBlock *block, rcti *rect)
 
void ui_draw_popover_back (struct ARegion *region, struct uiStyle *style, uiBlock *block, rcti *rect)
 
void ui_draw_pie_center (uiBlock *block)
 
const struct uiWidgetColorsui_tooltip_get_theme (void)
 
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 struct uiStyle *style, uiBlock *block, rcti *rect)
 
void ui_draw_but (const struct bContext *C, struct ARegion *region, struct uiStyle *style, uiBut *but, rcti *rect)
 
void ui_draw_menu_item (const struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int but_flag, uiMenuItemSeparatorType separator_type, int *r_xmax)
 
void ui_draw_preview_item (const struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int but_flag, eFontStyle_Align text_align)
 
void ui_draw_preview_item_stateless (const struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, const uchar text_col[4], eFontStyle_Align text_align)
 
void uiStyleInit (void)
 
void ui_icon_ensure_deferred (const struct bContext *C, int icon_id, bool big)
 
int ui_id_icon_get (const struct bContext *C, struct ID *id, bool big)
 
void icon_draw_rect_input (float x, float y, int w, int h, float alpha, short event_type, short event_value)
 
void ui_resources_init (void)
 
void ui_resources_free (void)
 
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 (struct bContext *C, struct uiLayout *layout, void *arg_mt)
 
void ui_item_paneltype_func (struct bContext *C, struct 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 void *old_but_ptr, uiBut *new_but)
 
void ui_block_free_button_groups (uiBlock *block)
 
void ui_but_drag_free (uiBut *but)
 
bool ui_but_drag_is_draggable (const uiBut *but)
 
void ui_but_drag_start (struct 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 struct ARegion *region) ATTR_WARN_UNUSED_RESULT
 
void ui_block_align_calc (uiBlock *block, const struct ARegion *region)
 
void ui_but_anim_flag (uiBut *but, const struct AnimationEvalContext *anim_eval_context)
 
void ui_but_anim_copy_driver (struct bContext *C)
 
void ui_but_anim_paste_driver (struct bContext *C)
 
bool ui_but_anim_expression_get (uiBut *but, char *str, size_t maxlen)
 
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 (struct bContext *C, uiBut *but, struct Scene *scene, float cfra)
 
void ui_but_anim_decorate_cb (struct 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, struct ARegion *region, const struct wmEvent *event) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_contains_point_px (const uiBut *but, const struct ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
uiButui_list_find_mouse_over (const struct ARegion *region, const struct wmEvent *event) ATTR_WARN_UNUSED_RESULT
 
uiButui_list_find_from_row (const struct ARegion *region, const uiBut *row_but) ATTR_WARN_UNUSED_RESULT
 
uiButui_list_row_find_mouse_over (const struct ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
uiButui_list_row_find_from_index (const struct ARegion *region, int index, uiBut *listbox) ATTR_WARN_UNUSED_RESULT
 
uiButui_view_item_find_mouse_over (const struct ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
uiBut uiButui_view_item_find_active (const struct ARegion *region)
 
uiButui_but_find_mouse_over_ex (const struct 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 struct ARegion *region, const struct wmEvent *event) ATTR_WARN_UNUSED_RESULT
 
uiButui_but_find_rect_over (const struct ARegion *region, const rcti *rect_px) ATTR_WARN_UNUSED_RESULT
 
uiButui_list_find_mouse_over_ex (const struct ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
bool ui_but_contains_password (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
size_t ui_but_drawstr_without_sep_char (const uiBut *but, char *str, size_t str_maxlen) ATTR_NONNULL(1
 
size_t 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 struct ARegion *region, const int xy[2], bool only_clip) ATTR_NONNULL(1
 
uiBlock uiBlockui_block_find_mouse_over (const struct ARegion *region, const struct wmEvent *event, bool only_clip)
 
uiButui_region_find_first_but_test_flag (struct ARegion *region, int flag_include, int flag_exclude)
 
uiButui_region_find_active_but (struct ARegion *region) ATTR_WARN_UNUSED_RESULT
 
bool ui_region_contains_point_px (const struct ARegion *region, const int xy[2]) ATTR_NONNULL(1
 
bool ui_region_contains_rect_px (const struct ARegion *region, const rcti *rect_px)
 
struct ARegionui_screen_region_find_mouse_over_ex (struct bScreen *screen, const int xy[2]) ATTR_NONNULL(1
 
struct ARegion struct ARegionui_screen_region_find_mouse_over (struct bScreen *screen, const struct wmEvent *event)
 
bool ui_popup_context_menu_for_button (struct bContext *C, uiBut *but, const struct wmEvent *event)
 
void ui_popup_context_menu_for_panel (struct bContext *C, struct ARegion *region, struct Panel *panel)
 
struct wmKeyMapeyedropper_modal_keymap (struct wmKeyConfig *keyconf)
 
struct wmKeyMapeyedropper_colorband_modal_keymap (struct wmKeyConfig *keyconf)
 
void UI_OT_eyedropper_color (struct wmOperatorType *ot)
 
void UI_OT_eyedropper_colorramp (struct wmOperatorType *ot)
 
void UI_OT_eyedropper_colorramp_point (struct wmOperatorType *ot)
 
void UI_OT_eyedropper_id (struct wmOperatorType *ot)
 
void UI_OT_eyedropper_depth (struct wmOperatorType *ot)
 
void UI_OT_eyedropper_driver (struct wmOperatorType *ot)
 
void UI_OT_eyedropper_gpencil_color (struct wmOperatorType *ot)
 
struct uiListTypeUI_UL_asset_view (void)
 
void ui_rna_collection_search_update_fn (const struct bContext *C, void *arg, const char *str, uiSearchItems *items, bool is_first)
 
bool ui_jump_to_target_button_poll (struct bContext *C)
 
void ui_interface_tag_script_reload_queries (void)
 
void ui_block_free_views (struct uiBlock *block)
 
uiViewHandleui_block_view_find_matching_in_old_block (const uiBlock *new_block, const uiViewHandle *new_view)
 
uiButViewItemui_block_view_find_matching_view_item_but_in_old_block (const uiBlock *new_block, const uiViewItemHandle *new_item_handle)
 
struct uiListTypeUI_UL_cache_file_layers (void)
 
struct IDui_template_id_liboverride_hierarchy_make (struct bContext *C, struct Main *bmain, struct ID *owner_id, struct ID *id, const char **r_undo_push_label)
 

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 147 of file interface_intern.h.

◆ PIE_MAX_ITEMS

#define PIE_MAX_ITEMS   8

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

Definition at line 150 of file interface_intern.h.

◆ PNL_HEADER

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

Definition at line 110 of file interface_intern.h.

◆ RNA_ENUM_VALUE

#define RNA_ENUM_VALUE   -2

Definition at line 45 of file interface_intern.h.

◆ RNA_NO_INDEX

#define RNA_NO_INDEX   -1

Definition at line 44 of file interface_intern.h.

◆ UI_BITBUT_ROW

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

Definition at line 120 of file interface_intern.h.

◆ UI_BITBUT_TEST

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

Definition at line 114 of file interface_intern.h.

◆ UI_BITBUT_VALUE_DISABLED

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

Definition at line 117 of file interface_intern.h.

◆ UI_BITBUT_VALUE_ENABLED

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

Definition at line 116 of file interface_intern.h.

◆ UI_BITBUT_VALUE_TOGGLED

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

Definition at line 115 of file interface_intern.h.

◆ UI_MENU_PADDING

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

Definition at line 47 of file interface_intern.h.

◆ UI_MENU_SCROLL_ARROW

#define UI_MENU_SCROLL_ARROW   (12 * UI_DPI_FAC)

Definition at line 54 of file interface_intern.h.

◆ UI_MENU_SCROLL_MOUSE

#define UI_MENU_SCROLL_MOUSE   (UI_MENU_SCROLL_ARROW + 2 * UI_DPI_FAC)

Definition at line 55 of file interface_intern.h.

◆ UI_MENU_SCROLL_PAD

#define UI_MENU_SCROLL_PAD   (4 * UI_DPI_FAC)

Definition at line 56 of file interface_intern.h.

◆ UI_MENU_SUBMENU_PADDING

#define UI_MENU_SUBMENU_PADDING   (6 * UI_DPI_FAC)

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

Definition at line 51 of file interface_intern.h.

◆ UI_MENU_WIDTH_MIN

#define UI_MENU_WIDTH_MIN   (UI_UNIT_Y * 9)

Definition at line 49 of file interface_intern.h.

◆ UI_PANEL_MINX

#define UI_PANEL_MINX   100

Definition at line 59 of file interface_intern.h.

◆ UI_PANEL_MINY

#define UI_PANEL_MINY   70

Definition at line 60 of file interface_intern.h.

◆ UI_PIXEL_AA_JITTER

#define UI_PIXEL_AA_JITTER   8

Definition at line 1259 of file interface_intern.h.

◆ UI_POPOVER_WIDTH_UNITS

#define UI_POPOVER_WIDTH_UNITS   10

Popover width (multiplied by #U.widget_unit)

Definition at line 63 of file interface_intern.h.

◆ UI_POPUP_MARGIN

#define UI_POPUP_MARGIN   (UI_DPI_FAC * 12)

Definition at line 1252 of file interface_intern.h.

◆ UI_POPUP_MENU_TOP

#define UI_POPUP_MENU_TOP   (int)(10 * UI_DPI_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 1257 of file interface_intern.h.

◆ UI_TEXT_MARGIN_X

#define UI_TEXT_MARGIN_X   0.4f

Definition at line 1251 of file interface_intern.h.

◆ USE_NUMBUTS_LR_ALIGN

#define USE_NUMBUTS_LR_ALIGN

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

Definition at line 124 of file interface_intern.h.

◆ USE_UIBUT_SPATIAL_ALIGN

#define USE_UIBUT_SPATIAL_ALIGN

Use new 'align' computation code.

Definition at line 127 of file interface_intern.h.

Typedef Documentation

◆ ColorPicker

typedef struct ColorPicker ColorPicker

◆ ColorPickerData

◆ RadialDirection

◆ uiBlockHandleCreateFunc

typedef uiBlock*(* uiBlockHandleCreateFunc) (struct bContext *C, struct uiPopupBlockHandle *handle, void *arg1)

Definition at line 789 of file interface_intern.h.

◆ uiButColor

typedef struct uiButColor uiButColor

Derived struct for UI_BTYPE_COLOR

◆ uiButColorBand

Derived struct for UI_BTYPE_COLORBAND.

◆ uiButCurveMapping

Derived struct for UI_BTYPE_CURVE.

◆ uiButCurveProfile

Derived struct for UI_BTYPE_CURVEPROFILE.

◆ uiButDecorator

Derived struct for UI_BTYPE_DECORATOR

◆ uiButExtraOpIcon

Additional, superimposed icon for a button, invoking an operator.

◆ uiButFindPollFn

typedef bool(* uiButFindPollFn) (const uiBut *but, const void *customdata)

Definition at line 1403 of file interface_intern.h.

◆ uiButHotkeyEvent

Derived struct for UI_BTYPE_HOTKEY_EVENT.

◆ uiButHSVCube

typedef struct uiButHSVCube uiButHSVCube

Derived struct for UI_BTYPE_HSVCUBE.

◆ uiButNumber

typedef struct uiButNumber uiButNumber

Derived struct for UI_BTYPE_NUM

◆ uiButProgressbar

Derived struct for UI_BTYPE_PROGRESS_BAR.

◆ uiButSearch

typedef struct uiButSearch uiButSearch

Derived struct for UI_BTYPE_SEARCH_MENU

◆ uiButTab

typedef struct uiButTab uiButTab

Derived struct for UI_BTYPE_TAB

◆ uiButtonGroup

typedef struct uiButtonGroup uiButtonGroup

A group of button references, used by property search to keep track of sets of buttons that should be searched together. For example, in property split layouts number buttons and their labels (and even their decorators) are separate buttons, but they must be searched and highlighted together.

◆ uiButtonGroupFlag

◆ uiButViewItem

typedef struct uiButViewItem uiButViewItem

◆ uiRNACollectionSearch

◆ uiSafetyRct

typedef struct uiSafetyRct uiSafetyRct

◆ uiWidgetBaseParameters

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_ACTIVE 
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 66 of file interface_intern.h.

◆ anonymous enum

anonymous enum

uiBut.dragflag

Enumerator
UI_BUT_DRAGPOIN_FREE 

Definition at line 88 of file interface_intern.h.

◆ anonymous enum

anonymous enum

PieMenuData.flags

Enumerator
UI_PIE_DEGREES_RANGE_LARGE 

Pie menu item collision is detected at 90 degrees.

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 130 of file interface_intern.h.

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

Definition at line 1169 of file interface_intern.h.

◆ 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 447 of file interface_intern.h.

◆ 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 93 of file interface_intern.h.

◆ 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 466 of file interface_intern.h.

◆ 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 1209 of file interface_intern.h.

Function Documentation

◆ eyedropper_colorband_modal_keymap()

struct wmKeyMap* eyedropper_colorband_modal_keymap ( struct wmKeyConfig keyconf)

◆ eyedropper_modal_keymap()

struct wmKeyMap* eyedropper_modal_keymap ( struct wmKeyConfig keyconf)

◆ icon_draw_rect_input()

void icon_draw_rect_input ( float  x,
float  y,
int  w,
int  h,
float  alpha,
short  event_type,
short  event_value 
)

◆ ui_batch_roundbox_shadow_get()

struct GPUBatch* ui_batch_roundbox_shadow_get ( void  )

◆ ui_batch_roundbox_widget_get()

struct GPUBatch* ui_batch_roundbox_widget_get ( void  )

◆ ui_block_active_but_get()

uiBut* ui_block_active_but_get ( const uiBlock block)

◆ ui_block_align_calc()

void ui_block_align_calc ( uiBlock block,
const struct 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.

◆ ui_block_bounds_calc()

void ui_block_bounds_calc ( uiBlock block)

◆ ui_block_calc_pie_segment()

float ui_block_calc_pie_segment ( struct uiBlock block,
const float  event_xy[2] 
)

◆ ui_block_cm_display_get()

struct ColorManagedDisplay* ui_block_cm_display_get ( uiBlock block)

◆ 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 ( struct uiBlock block)

◆ ui_block_find_mouse_over()

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

◆ ui_block_find_mouse_over_ex()

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

◆ ui_block_free_button_groups()

void ui_block_free_button_groups ( uiBlock block)

◆ ui_block_free_views()

void ui_block_free_views ( struct uiBlock block)

Definition at line 77 of file interface_view.cc.

References LISTBASE_FOREACH_MUTABLE, and uiBlock::views.

Referenced by UI_block_free().

◆ ui_block_func_COLOR()

uiBlock* ui_block_func_COLOR ( struct bContext C,
uiPopupBlockHandle handle,
void arg_but 
)

◆ ui_block_is_menu()

bool ui_block_is_menu ( const uiBlock block)

◆ ui_block_is_pie_menu()

bool ui_block_is_pie_menu ( const uiBlock block)

◆ ui_block_is_popover()

bool ui_block_is_popover ( const uiBlock block)

Definition at line 617 of file interface_query.cc.

References uiBlock::flag, and UI_BLOCK_POPOVER.

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

◆ ui_block_is_popup_any()

bool ui_block_is_popup_any ( const uiBlock block)

◆ ui_block_new_button_group()

void ui_block_new_button_group ( uiBlock block,
uiButtonGroupFlag  flag 
)

◆ ui_block_to_region_fl()

void ui_block_to_region_fl ( const struct ARegion region,
uiBlock block,
float r_x,
float r_y 
)

◆ ui_block_to_region_rctf()

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

◆ ui_block_to_window()

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

◆ ui_block_to_window_fl()

void ui_block_to_window_fl ( const struct ARegion region,
uiBlock block,
float x,
float y 
)

◆ ui_block_to_window_rctf()

void ui_block_to_window_rctf ( const struct ARegion region,
uiBlock block,
rctf rct_dst,
const rctf rct_src 
)

◆ ui_block_to_window_scale()

float ui_block_to_window_scale ( const struct ARegion region,
uiBlock block 
)

◆ ui_block_view_find_matching_in_old_block()

uiViewHandle* ui_block_view_find_matching_in_old_block ( const uiBlock new_block,
const uiViewHandle new_view 
)

◆ ui_block_view_find_matching_view_item_but_in_old_block()

uiButViewItem* ui_block_view_find_matching_view_item_but_in_old_block ( const uiBlock new_block,
const uiViewItemHandle new_item_handle 
)

◆ ui_but_activate_event()

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

Exported to interface.c: UI_but_active_only()

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

Definition at line 8996 of file interface_handlers.c.

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

◆ ui_but_activate_over()

void ui_but_activate_over ( struct bContext C,
struct 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 9013 of file interface_handlers.c.

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 struct bContext C,
uiBut but 
)

◆ ui_but_active_string_clear_and_exit()

void ui_but_active_string_clear_and_exit ( struct bContext C,
uiBut but 
)

Clear & exit the active button's string..

Definition at line 2965 of file interface_handlers.c.

References uiBut::active, button_activate_state(), BUTTON_STATE_EXIT, C, MEM_callocN, uiHandleButtonData::str, and ui_apply_but_TEX().

Referenced by button_string_clear_exec().

◆ ui_but_add_search()

uiBut* ui_but_add_search ( uiBut but,
PointerRNA ptr,
PropertyRNA prop,
PointerRNA searchptr,
PropertyRNA searchprop,
bool  results_are_suggestions 
)

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

int ui_but_align_opposite_to_area_align_get ( const struct ARegion region)

◆ ui_but_anim_autokey()

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

◆ ui_but_anim_copy_driver()

void ui_but_anim_copy_driver ( struct bContext C)

Definition at line 300 of file interface_anim.c.

References C, NULL, WM_OP_INVOKE_DEFAULT, and WM_operator_name_call().

◆ ui_but_anim_decorate_cb()

void ui_but_anim_decorate_cb ( struct bContext C,
void arg_but,
void arg_dummy 
)

◆ ui_but_anim_decorate_update_from_flag()

void ui_but_anim_decorate_update_from_flag ( uiButDecorator but)

◆ ui_but_anim_expression_create()

bool ui_but_anim_expression_create ( uiBut but,
const char *  str 
)

◆ ui_but_anim_expression_get()

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

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

Returns
if button has an expression.

Definition at line 170 of file interface_anim.c.

References BLI_strncpy(), FCurve::driver, DRIVER_TYPE_PYTHON, ChannelDriver::expression, NULL, 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()

bool ui_but_anim_expression_set ( uiBut but,
const char *  str 
)

◆ ui_but_anim_flag()

void ui_but_anim_flag ( uiBut but,
const struct AnimationEvalContext anim_eval_context 
)

◆ ui_but_anim_paste_driver()

void ui_but_anim_paste_driver ( struct bContext C)

Definition at line 306 of file interface_anim.c.

References C, NULL, WM_OP_INVOKE_DEFAULT, 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,
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 4025 of file interface.cc.

References BLI_assert, BLI_insertlinkafter(), BLI_remlink(), uiBut::block, uiBlock::buttons, uiBut::layout, MEM_recallocN_id, uiBut::poin, uiBut::prev, uiBut::str, uiBut::strdata, uiBut::type, ui_but_alloc_info(), 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 ( void  )

◆ ui_but_contains_password()

bool ui_but_contains_password ( const uiBut but)

Definition at line 552 of file interface_query.cc.

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

Referenced by ui_but_copy().

◆ ui_but_contains_point_px()

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

◆ ui_but_contains_point_px_icon()

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

◆ ui_but_contains_pt()

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

◆ ui_but_contains_rect()

bool ui_but_contains_rect ( const uiBut but,
const rctf rect 
)

Definition at line 214 of file interface_query.cc.

References BLI_rctf_isect(), and uiBut::rect.

Referenced by ui_but_find_rect_over().

◆ ui_but_context_poll_operator()

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

◆ ui_but_context_poll_operator_ex()

bool ui_but_context_poll_operator_ex ( struct bContext C,
const uiBut but,
const struct 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).

◆ ui_but_convert_to_unit_alt_name()

void ui_but_convert_to_unit_alt_name ( uiBut but,
char *  str,
size_t  maxlen 
)

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

void ui_but_drag_start ( struct bContext C,
uiBut but 
)

◆ ui_but_drawstr_len_without_sep_char()

size_t size_t ui_but_drawstr_len_without_sep_char ( const uiBut but)

◆ ui_but_drawstr_without_sep_char()

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

◆ ui_but_execute_begin()

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

◆ ui_but_execute_end()

void ui_but_execute_end ( struct bContext C,
struct 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()

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

◆ ui_but_find_mouse_over_ex()

uiBut* ui_but_find_mouse_over_ex ( const struct 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 794 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()

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

◆ 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 587 of file interface_handlers.c.

References BLI_assert, ELEM, uiBut::flag, uiBut::next, NULL, 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 168 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()

int ui_but_icon ( const uiBut but)

◆ ui_but_is_bool()

bool ui_but_is_bool ( const uiBut but)

◆ ui_but_is_color_gamma()

bool ui_but_is_color_gamma ( uiBut but)

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

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

Referenced by ui_multibut_states_tag().

◆ ui_but_is_cursor_warp()

bool ui_but_is_cursor_warp ( const uiBut but)

◆ ui_but_is_editable()

bool ui_but_is_editable ( const uiBut but)

◆ ui_but_is_editable_as_text()

bool ui_but_is_editable_as_text ( const uiBut but)

◆ ui_but_is_editing()

bool ui_but_is_editing ( const uiBut but)

◆ ui_but_is_float()

bool ui_but_is_float ( const uiBut but)

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

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

Referenced by ui_but_find_mouse_over_ex(), and ui_but_is_interactive().

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

int ui_but_is_pushed_ex ( uiBut but,
double value 
)

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

bool ui_but_is_unit ( const uiBut but)

◆ ui_but_last()

uiBut* ui_but_last ( uiBlock block)

Definition at line 522 of file interface_query.cc.

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

Referenced by ui_handle_menu_event().

◆ ui_but_menu_direction()

int ui_but_menu_direction ( uiBut but)

Definition at line 4300 of file interface_handlers.c.

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

int ui_but_menu_step ( uiBut but,
int  direction 
)

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

References uiBut::next, and ui_but_is_editable().

Referenced by ui_handle_menu_event().

◆ ui_but_override_flag()

void ui_but_override_flag ( struct Main bmain,
uiBut but 
)

◆ ui_but_pie_dir()

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

◆ ui_but_prev()

uiBut* ui_but_prev ( uiBut but)

Definition at line 490 of file interface_query.cc.

References uiBut::prev, and ui_but_is_editable().

Referenced by ui_handle_menu_event().

◆ ui_but_range_set_hard()

void ui_but_range_set_hard ( uiBut but)

◆ ui_but_range_set_soft()

void ui_but_range_set_soft ( uiBut but)

◆ ui_but_rna_equals()

bool ui_but_rna_equals ( const uiBut a,
const uiBut b 
)

Definition at line 705 of file interface.cc.

References Freestyle::a, usdtokens::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()

void ui_but_rna_menu_convert_to_menu_type ( struct uiBut but,
const char *  menu_type 
)

◆ ui_but_rna_menu_convert_to_panel_type()

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

◆ ui_but_scale_type()

PropertyScaleType ui_but_scale_type ( const uiBut but)

◆ ui_but_search_refresh()

void ui_but_search_refresh ( uiButSearch but)

◆ ui_but_set_string_interactive()

void ui_but_set_string_interactive ( struct 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 2949 of file interface_handlers.c.

References uiBut::active, BLI_assert, button_activate_state(), BUTTON_STATE_EXIT, BUTTON_STATE_TEXT_EDITING, C, uiBut::changed, uiBut::flag, uiHandleButtonData::searchbox, 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()

bool ui_but_string_eval_number ( struct bContext C,
const uiBut but,
const char *  str,
double value 
)

◆ ui_but_string_get()

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

◆ 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  maxlen,
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_max_length()

int ui_but_string_get_max_length ( uiBut but)

◆ ui_but_string_set()

bool ui_but_string_set ( struct bContext C,
uiBut but,
const char *  str 
)

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

References uiBut::tip.

Referenced by ui_apply_but_undo().

◆ ui_but_update()

void ui_but_update ( uiBut but)

◆ ui_but_update_edited()

void ui_but_update_edited ( uiBut but)

◆ ui_but_update_view_for_active()

void ui_but_update_view_for_active ( const struct 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.

◆ ui_but_v3_get()

void ui_but_v3_get ( uiBut but,
float  vec[3] 
)

◆ ui_but_v3_set()

void ui_but_v3_set ( uiBut but,
const float  vec[3] 
)

◆ ui_but_value_get()

double ui_but_value_get ( uiBut but)

◆ ui_but_value_set()

void ui_but_value_set ( uiBut but,
double  value 
)

◆ ui_button_group_add_but()

void ui_button_group_add_but ( uiBlock block,
uiBut but 
)

◆ ui_button_group_replace_but_ptr()

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

◆ ui_color_picker_hsv_to_rgb()

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

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

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

◆ ui_def_but_icon()

void ui_def_but_icon ( uiBut but,
int  icon,
int  flag 
)

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

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

Referenced by uiItemFullR().

◆ ui_draw_aligned_panel()

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

Draw a panel integrated in buttons-window, tool/property lists etc.

Referenced by UI_block_draw().

◆ ui_draw_but()

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

Conversion from old to new buttons, so still messy.

Referenced by UI_block_draw().

◆ ui_draw_but_COLORBAND()

void ui_draw_but_COLORBAND ( uiBut but,
const struct uiWidgetColors wcol,
const rcti rect 
)

◆ ui_draw_but_CURVE()

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

◆ ui_draw_but_CURVEPROFILE()

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

Draws the curve profile widget. Somewhat similar to ui_draw_but_CURVE.

◆ ui_draw_but_HISTOGRAM()

void ui_draw_but_HISTOGRAM ( struct ARegion region,
uiBut but,
const struct uiWidgetColors wcol,
const rcti rect 
)

◆ ui_draw_but_IMAGE()

void ui_draw_but_IMAGE ( struct ARegion region,
uiBut but,
const struct uiWidgetColors wcol,
const rcti rect 
)

◆ ui_draw_but_TAB_outline()

void ui_draw_but_TAB_outline ( const rcti rect,
float  rad,
uchar  highlight[3],
uchar  highlight_fade[3] 
)

◆ ui_draw_but_TRACKPREVIEW()

void ui_draw_but_TRACKPREVIEW ( struct ARegion region,
uiBut but,
const struct uiWidgetColors wcol,
const rcti rect 
)

◆ ui_draw_but_UNITVEC()

void ui_draw_but_UNITVEC ( uiBut but,
const struct uiWidgetColors wcol,
const rcti rect,
float  radius 
)

◆ ui_draw_but_VECTORSCOPE()

void ui_draw_but_VECTORSCOPE ( struct ARegion region,
uiBut but,
const struct uiWidgetColors wcol,
const rcti rect 
)

◆ ui_draw_but_WAVEFORM()

void ui_draw_but_WAVEFORM ( struct ARegion region,
uiBut but,
const struct uiWidgetColors wcol,
const rcti rect 
)

◆ ui_draw_dropshadow()

void ui_draw_dropshadow ( const rctf rct,
float  radius,
float  aspect,
float  alpha,
int  select 
)

◆ ui_draw_gradient()

void ui_draw_gradient ( const rcti rect,
const float  hsv[3],
eButGradientType  type,
float  alpha 
)

◆ ui_draw_menu_back()

void ui_draw_menu_back ( struct uiStyle style,
uiBlock block,
rcti rect 
)

Referenced by hud_region_draw(), and UI_block_draw().

◆ ui_draw_menu_item()

void ui_draw_menu_item ( const struct uiFontStyle fstyle,
rcti rect,
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
but_flagButton flags (uiBut.flag) indicating the state of the item, typically UI_ACTIVE, 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.

Referenced by ui_searchbox_region_draw_cb__operator(), and ui_searchbox_region_draw_fn().

◆ ui_draw_pie_center()

void ui_draw_pie_center ( uiBlock block)

◆ ui_draw_popover_back()

void ui_draw_popover_back ( struct ARegion region,
struct uiStyle style,
uiBlock block,
rcti rect 
)

Referenced by UI_block_draw().

◆ ui_draw_preview_item()

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

◆ ui_draw_preview_item_stateless()

void ui_draw_preview_item_stateless ( const struct uiFontStyle fstyle,
rcti rect,
const char *  name,
int  iconid,
const uchar  text_col[4],
eFontStyle_Align  text_align 
)

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.

◆ ui_draw_tooltip_background()

void ui_draw_tooltip_background ( const struct uiStyle style,
uiBlock block,
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 5344 of file interface_widgets.c.

References color, ui_draw_widget_back_color(), and UI_WTYPE_MENU_BACK.

◆ ui_fontscale()

void ui_fontscale ( float points,
float  aspect 
)

◆ ui_handle_afterfunc_add_operator()

void ui_handle_afterfunc_add_operator ( struct wmOperatorType ot,
wmOperatorCallContext  opcontext 
)

◆ ui_handler_panel_region()

int ui_handler_panel_region ( struct bContext C,
const struct wmEvent event,
struct 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.

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 xpos,
float ypos 
)

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

void ui_hsvcube_pos_from_vals ( const struct uiButHSVCube hsv_but,
const rcti rect,
const float hsv,
float xp,
float yp 
)

Referenced by ui_numedit_but_HSVCUBE().

◆ ui_icon_ensure_deferred()

void ui_icon_ensure_deferred ( const struct bContext C,
int  icon_id,
bool  big 
)

◆ ui_id_icon_get()

int ui_id_icon_get ( const struct bContext C,
struct ID id,
bool  big 
)

◆ ui_interface_tag_script_reload_queries()

void ui_interface_tag_script_reload_queries ( void  )

Definition at line 818 of file interface_query.cc.

References g_ot_tool_set_by_id.

Referenced by UI_interface_tag_script_reload().

◆ ui_item_menutype_func()

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

◆ ui_item_paneltype_func()

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

◆ ui_jump_to_target_button_poll()

bool ui_jump_to_target_button_poll ( struct bContext C)

Definition at line 1591 of file interface_ops.c.

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 
)

◆ 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 4854 of file interface_layout.c.

References ITEM_BUTTON, uiLayout::items, LISTBASE_FOREACH, 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_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 5628 of file interface_layout.c.

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 struct ARegion region,
const uiBut row_but 
)

Referenced by ui_apply_but_LISTROW().

◆ ui_list_find_mouse_over()

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

◆ ui_list_find_mouse_over_ex()

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

◆ ui_list_row_find_from_index()

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

◆ ui_list_row_find_mouse_over()

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

◆ UI_OT_eyedropper_color()

void UI_OT_eyedropper_color ( struct wmOperatorType ot)

◆ UI_OT_eyedropper_colorramp()

void UI_OT_eyedropper_colorramp ( struct wmOperatorType ot)

◆ UI_OT_eyedropper_colorramp_point()

void UI_OT_eyedropper_colorramp_point ( struct wmOperatorType ot)

◆ UI_OT_eyedropper_depth()

void UI_OT_eyedropper_depth ( struct wmOperatorType ot)

◆ UI_OT_eyedropper_driver()

void UI_OT_eyedropper_driver ( struct wmOperatorType ot)

◆ UI_OT_eyedropper_gpencil_color()

void UI_OT_eyedropper_gpencil_color ( struct wmOperatorType ot)

◆ UI_OT_eyedropper_id()

void UI_OT_eyedropper_id ( struct wmOperatorType ot)

◆ ui_pan_to_scroll()

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

Assumes event type is MOUSEPAN.

◆ ui_panel_tag_search_filter_match()

void ui_panel_tag_search_filter_match ( struct Panel panel)

Definition at line 863 of file interface_panel.c.

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

void ui_pie_menu_level_create ( uiBlock block,
struct wmOperatorType ot,
const char *  propname,
struct IDProperty properties,
const EnumPropertyItem items,
int  totitem,
wmOperatorCallContext  context,
wmOperatorCallContext  flag 
)

◆ ui_popover_panel_create()

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

◆ ui_popup_block_create()

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

◆ ui_popup_block_free()

void ui_popup_block_free ( struct bContext C,
uiPopupBlockHandle handle 
)

◆ ui_popup_block_refresh()

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

Called for creating new popups and refreshing existing ones.

Definition at line 538 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_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, ListBase::first, uiBlock::flag, PieMenuData::flags, uiBlock::handle, uiPopupBlockCreate::handle_create_func, LISTBASE_FOREACH, MEM_freeN, offset, uiBlock::oldblock, 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, uiBlock::saferct, uiBlock::safety, uiSafetyRct::safety, uiPopupBlockHandle::scrolloffset, UI_BLOCK_BOUNDS_POPUP_CENTER, ui_block_calc_pie_segment(), UI_block_end_ex(), UI_BLOCK_LOOP, UI_BLOCK_POPOVER, UI_BLOCK_POPUP, UI_BLOCK_RADIAL, 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_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, ARegion::uiblocks, UNPACK2, uiBlock::winmat, ARegion::winrct, WM_window_pixels_x(), WM_window_pixels_y(), wmGetProjectionMatrix(), rcti::xmax, rctf::xmax, rcti::xmin, rctf::xmin, rcti::ymax, rctf::ymax, rcti::ymin, and rctf::ymin.

Referenced by ui_block_region_refresh(), and ui_popup_block_create().

◆ ui_popup_block_scrolltest()

void ui_popup_block_scrolltest ( struct uiBlock block)

◆ ui_popup_context_menu_for_button()

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

◆ ui_popup_context_menu_for_panel()

void ui_popup_context_menu_for_panel ( struct bContext C,
struct ARegion region,
struct Panel panel 
)

◆ ui_popup_menu_create()

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

◆ ui_popup_menu_memory_get()

uiBut* ui_popup_menu_memory_get ( struct uiBlock block)

Definition at line 147 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,
struct uiBut but 
)

Definition at line 152 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 ( struct ARegion region,
const int  mdiff[2] 
)

◆ ui_region_contains_point_px()

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

◆ ui_region_contains_rect_px()

bool ui_region_contains_rect_px ( const struct ARegion region,
const rcti rect_px 
)

◆ ui_region_find_active_but()

uiBut* ui_region_find_active_but ( struct ARegion region)

◆ ui_region_find_first_but_test_flag()

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

Definition at line 719 of file interface_query.cc.

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

Referenced by ui_handle_menu_event().

◆ ui_region_to_window()

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

◆ ui_region_winrct_get_no_margin()

void ui_region_winrct_get_no_margin ( const struct ARegion region,
struct 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 342 of file interface.cc.

References BLI_rcti_rctf_copy_floor(), BLI_rcti_translate(), ListBase::first, uiBlock::flag, uiBlock::rect, UI_BLOCK_LOOP, UI_BLOCK_RADIAL, ARegion::uiblocks, 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 ( void  )

Definition at line 58 of file resources.c.

References UI_icons_free().

Referenced by UI_exit().

◆ ui_resources_init()

void ui_resources_init ( void  )

Definition at line 53 of file resources.c.

References UI_icons_init().

Referenced by UI_init().

◆ ui_rna_collection_search_update_fn()

void ui_rna_collection_search_update_fn ( const struct bContext C,
void arg,
const char *  str,
uiSearchItems items,
bool  is_first 
)

◆ ui_scene_linear_to_perceptual_space()

void ui_scene_linear_to_perceptual_space ( uiBut but,
float  rgb[3] 
)

◆ ui_screen_region_find_mouse_over()

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

Referenced by ui_handler_region_menu().

◆ ui_screen_region_find_mouse_over_ex()

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

Check if the cursor is over any popups.

◆ ui_searchbox_apply()

bool ui_searchbox_apply ( uiBut but,
struct ARegion region 
)

String validated to be of correct length (but->hardmax).

Definition at line 272 of file interface_region_search.cc.

References BLI_assert, BLI_strncpy(), data, uiBut::editstr, uiBut::hardmax, uiButSearch::item_active, ARegion::regiondata, uiBut::type, UI_BTYPE_SEARCH_MENU, and UI_SEP_CHAR.

Referenced by ui_textedit_end().

◆ ui_searchbox_autocomplete()

int ui_searchbox_autocomplete ( struct bContext C,
struct ARegion region,
uiBut but,
char *  str 
)

◆ ui_searchbox_create_generic()

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

Search-box for string button.

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

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

◆ ui_searchbox_create_operator()

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

◆ ui_searchbox_event()

bool ui_searchbox_event ( struct bContext C,
struct ARegion region,
uiBut but,
struct ARegion butregion,
const struct wmEvent event 
)

Referenced by ui_do_but_textedit().

◆ ui_searchbox_find_index()

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

Definition at line 259 of file interface_region_search.cc.

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

Referenced by ui_textedit_end().

◆ ui_searchbox_free()

void ui_searchbox_free ( struct bContext C,
struct ARegion region 
)

Definition at line 979 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 ( struct ARegion region,
const int  xy[2] 
)

x and y in screen-coords.

Referenced by ui_do_but_textedit().

◆ ui_searchbox_update()

void ui_searchbox_update ( struct bContext C,
struct ARegion region,
uiBut but,
bool  reset 
)

◆ ui_template_id_liboverride_hierarchy_make()

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

◆ ui_textedit_undo()

const char* ui_textedit_undo ( struct uiUndoStack_Text undo_stack,
int  direction,
int *  r_cursor_index 
)

Definition at line 69 of file interface_undo.c.

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 ( struct uiUndoStack_Text undo_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 78 of file interface_undo.c.

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

Referenced by ui_do_but_textedit(), and ui_textedit_begin().

◆ ui_textedit_undo_stack_create()

struct uiUndoStack_Text* ui_textedit_undo_stack_create ( void  )

Start the undo stack.

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

Definition at line 97 of file interface_undo.c.

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

Referenced by ui_textedit_begin().

◆ ui_textedit_undo_stack_destroy()

void ui_textedit_undo_stack_destroy ( struct uiUndoStack_Text undo_stack)

Definition at line 106 of file interface_undo.c.

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

Referenced by ui_textedit_end().

◆ ui_tooltip_get_theme()

const struct uiWidgetColors* ui_tooltip_get_theme ( void  )

◆ UI_UL_asset_view()

struct uiListType* UI_UL_asset_view ( void  )

◆ UI_UL_cache_file_layers()

struct uiListType* UI_UL_cache_file_layers ( void  )

◆ ui_view_item_find_active()

uiBut uiBut* ui_view_item_find_active ( const struct ARegion region)

◆ ui_view_item_find_mouse_over()

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

◆ ui_window_to_block()

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

◆ ui_window_to_block_fl()

void ui_window_to_block_fl ( const struct ARegion region,
uiBlock block,
float x,
float y 
)

For mouse cursor.

◆ ui_window_to_block_rctf()

void ui_window_to_block_rctf ( const struct ARegion region,
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 struct ARegion region,
int *  x,
int *  y 
)

◆ ui_window_to_region_rctf()

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

◆ ui_window_to_region_rcti()

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

◆ uiStyleInit()

void uiStyleInit ( void  )

Variable Documentation

◆ ATTR_WARN_UNUSED_RESULT

bool ATTR_WARN_UNUSED_RESULT

Definition at line 1388 of file interface_intern.h.

◆ ui_pixel_jitter

const float ui_pixel_jitter[UI_PIXEL_AA_JITTER][2]
extern

Definition at line 296 of file interface_widgets.c.

◆ ui_radial_dir_order

const char ui_radial_dir_order[8]
extern

This goes in a seemingly weird pattern:

    4
 5     6
1       2
 7     8
    3

but it's actually quite logical. It's designed to be 'upwards compatible' for muscle memory so that the menu item locations are fixed and don't move as new items are added to the menu later on. It also optimizes efficiency - a radial menu is best kept symmetrical, with as large an angle between items as possible, so that the gestural mouse movements can be fast and inexact.

It starts off with two opposite sides for the first two items then joined by the one below for the third (this way, even with three items, the menu seems to still be 'in order' reading left to right). Then the fourth is added to complete the compass directions. From here, it's just a matter of subdividing the rest of the angles for the last 4 items.

–Matt 07/2006

Definition at line 1544 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 1556 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 1555 of file interface.cc.

Referenced by ui_but_pie_direction_string().