Blender  V2.93
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  uiButHSVCube
 
struct  uiButColorBand
 
struct  uiButCurveProfile
 
struct  uiButCurveMapping
 
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.2) /* 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 uiButHSVCube uiButHSVCube
 
typedef struct uiButColorBand uiButColorBand
 
typedef struct uiButCurveProfile uiButCurveProfile
 
typedef struct uiButCurveMapping uiButCurveMapping
 
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 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 << 12)
}
 
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 (short *points, float aspect)
 
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_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_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, const float mx, const 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, const size_t maxlen, const int float_precision, const bool use_exp_float, bool *r_use_exp_float) ATTR_NONNULL(1
 
void void ui_but_string_get (uiBut *but, char *str, const 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()
 
uiButui_but_drag_multi_edit_get (uiBut *but)
 
void ui_def_but_icon (uiBut *but, const int icon, const 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)
 
void ui_but_update (uiBut *but)
 
void ui_but_update_edited (uiBut *but)
 
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, int x, int y)
 
int ui_searchbox_find_index (struct ARegion *region, const char *name)
 
void ui_searchbox_update (struct bContext *C, struct ARegion *region, uiBut *but, const 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, void(*arg_free)(void *arg))
 
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, int context, int 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, const bool show_pin, const bool show_background, const 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], const eButGradientType type, const 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)
 
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)
 
PointerRNAui_handle_afterfunc_add_operator (struct wmOperatorType *ot, int opcontext, bool create_props)
 
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)
 
int ui_but_menu_direction (uiBut *but)
 
void ui_but_text_password_hide (char password_str[UI_MAX_DRAW_STR], uiBut *but, const 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, const 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_anti_tria_rect (const rctf *rect, char dir, const float color[4])
 
void ui_draw_menu_back (struct uiStyle *style, uiBlock *block, rcti *rect)
 
void ui_draw_box_opaque (rcti *rect, int roundboxalign)
 
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 state, uiMenuItemSeparatorType separator_type, int *r_xmax)
 
void ui_draw_preview_item (const struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state)
 
void uiStyleInit (void)
 
void ui_icon_ensure_deferred (const struct bContext *C, const int icon_id, const bool big)
 
int ui_id_icon_get (const struct bContext *C, struct ID *id, const 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)
 
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)
 
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)
 
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 (const uiBut *but, const 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, int x, int y) ATTR_WARN_UNUSED_RESULT
 
uiButui_list_find_mouse_over (struct ARegion *region, const struct wmEvent *event) ATTR_WARN_UNUSED_RESULT
 
uiButui_but_find_mouse_over_ex (const struct ARegion *region, const int x, const int y, const bool labeledit) ATTR_WARN_UNUSED_RESULT
 
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 (struct ARegion *region, int x, int y) ATTR_WARN_UNUSED_RESULT
 
bool ui_but_contains_password (const uiBut *but) ATTR_WARN_UNUSED_RESULT
 
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
 
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 x, const int y, bool only_clip)
 
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, int x, int y) ATTR_WARN_UNUSED_RESULT
 
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, int x, int y)
 
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)
 
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)
 
void ui_rna_collection_search_update_fn (const struct bContext *C, void *arg, const char *str, uiSearchItems *items, const bool is_first)
 
bool ui_jump_to_target_button_poll (struct bContext *C)
 
void ui_interface_tag_script_reload_queries (void)
 

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]
 

Macro Definition Documentation

◆ PIE_CLICK_THRESHOLD_SQ

#define PIE_CLICK_THRESHOLD_SQ   50.0f

Definition at line 153 of file interface_intern.h.

◆ PIE_MAX_ITEMS

#define PIE_MAX_ITEMS   8

Definition at line 156 of file interface_intern.h.

◆ PNL_HEADER

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

Definition at line 116 of file interface_intern.h.

◆ RNA_ENUM_VALUE

#define RNA_ENUM_VALUE   -2

Definition at line 60 of file interface_intern.h.

◆ RNA_NO_INDEX

#define RNA_NO_INDEX   -1

Definition at line 59 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 126 of file interface_intern.h.

◆ UI_BITBUT_TEST

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

Definition at line 120 of file interface_intern.h.

◆ UI_BITBUT_VALUE_DISABLED

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

Definition at line 123 of file interface_intern.h.

◆ UI_BITBUT_VALUE_ENABLED

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

Definition at line 122 of file interface_intern.h.

◆ UI_BITBUT_VALUE_TOGGLED

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

Definition at line 121 of file interface_intern.h.

◆ UI_MENU_PADDING

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

Definition at line 62 of file interface_intern.h.

◆ UI_MENU_SCROLL_ARROW

#define UI_MENU_SCROLL_ARROW   (12 * UI_DPI_FAC)

Definition at line 69 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 70 of file interface_intern.h.

◆ UI_MENU_SCROLL_PAD

#define UI_MENU_SCROLL_PAD   (4 * UI_DPI_FAC)

Definition at line 71 of file interface_intern.h.

◆ UI_MENU_SUBMENU_PADDING

#define UI_MENU_SUBMENU_PADDING   (6 * UI_DPI_FAC)

Definition at line 66 of file interface_intern.h.

◆ UI_MENU_WIDTH_MIN

#define UI_MENU_WIDTH_MIN   (UI_UNIT_Y * 9)

Definition at line 64 of file interface_intern.h.

◆ UI_PANEL_MINX

#define UI_PANEL_MINX   100

Definition at line 74 of file interface_intern.h.

◆ UI_PANEL_MINY

#define UI_PANEL_MINY   70

Definition at line 75 of file interface_intern.h.

◆ UI_PIXEL_AA_JITTER

#define UI_PIXEL_AA_JITTER   8

Definition at line 1036 of file interface_intern.h.

◆ UI_POPOVER_WIDTH_UNITS

#define UI_POPOVER_WIDTH_UNITS   10

Definition at line 78 of file interface_intern.h.

◆ UI_POPUP_MARGIN

#define UI_POPUP_MARGIN   (UI_DPI_FAC * 12)

Definition at line 1031 of file interface_intern.h.

◆ UI_POPUP_MENU_TOP

#define UI_POPUP_MENU_TOP   (int)(10 * UI_DPI_FAC)

Definition at line 1034 of file interface_intern.h.

◆ UI_TEXT_MARGIN_X

#define UI_TEXT_MARGIN_X   0.4f

Definition at line 1030 of file interface_intern.h.

◆ USE_NUMBUTS_LR_ALIGN

#define USE_NUMBUTS_LR_ALIGN

Definition at line 130 of file interface_intern.h.

◆ USE_UIBUT_SPATIAL_ALIGN

#define USE_UIBUT_SPATIAL_ALIGN

Definition at line 133 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 680 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.

◆ 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

◆ uiRNACollectionSearch

◆ uiSafetyRct

typedef struct uiSafetyRct uiSafetyRct

◆ uiWidgetBaseParameters

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
UI_SELECT 
UI_SCROLLED 
UI_ACTIVE 
UI_HAS_ICON 
UI_HIDDEN 
UI_SELECT_DRAW 
UI_SEARCH_FILTER_NO_MATCH 

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

Definition at line 81 of file interface_intern.h.

◆ anonymous enum

anonymous enum
Enumerator
UI_BUT_DRAGPOIN_FREE 

Definition at line 94 of file interface_intern.h.

◆ anonymous enum

anonymous enum
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 136 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 972 of file interface_intern.h.

◆ eBlockContentHints

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

◆ RadialDirection

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 99 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 452 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 1011 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_align_calc()

void ui_block_align_calc ( uiBlock block,
const struct ARegion region 
)

◆ 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* 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  x,
const int  y,
bool  only_clip 
)

◆ ui_block_free_button_groups()

void ui_block_free_button_groups ( uiBlock block)

◆ 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 494 of file interface_query.c.

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

void ui_but_activate_event ( bContext C,
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 8607 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 ( 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 8630 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 
)

◆ ui_but_add_search()

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

◆ ui_but_add_shortcut()

void ui_but_add_shortcut ( uiBut but,
const char *  shortcut_str,
const 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 318 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 187 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().

◆ 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 324 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 3935 of file interface.c.

References BLI_assert, BLI_insertlinkafter(), BLI_remlink(), uiBut::block, uiBlock::buttons, uiBut::layout, MEM_recallocN_id, NULL, 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 446 of file interface_query.c.

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,
int  x,
int  y 
)

◆ 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 217 of file interface_query.c.

References BLI_rctf_isect(), NULL, 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 
)

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 1824 of file interface.c.

References C, uiBut::context, CTX_store_set(), NULL, uiBut::opcontext, ot, result, WM_OP_INVOKE_DEFAULT, and WM_operator_poll_context().

Referenced by UI_block_end_ex().

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

uiBut* ui_but_drag_multi_edit_get ( uiBut but)

◆ ui_but_drawstr_len_without_sep_char()

size_t ui_but_drawstr_len_without_sep_char ( const uiBut but)

Definition at line 457 of file interface_query.c.

References uiBut::drawstr, uiBut::flag, NULL, UI_BUT_HAS_SEP_CHAR, and UI_SEP_CHAR.

Referenced by ui_apply_but_undo().

◆ 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  x,
const int  y,
const bool  labeledit 
)

◆ ui_but_find_new()

uiBut* ui_but_find_new ( uiBlock block_new,
const uiBut but_old 
)

Definition at line 736 of file interface.c.

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

◆ 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 2385 of file interface.c.

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

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 78 of file interface_query.c.

References uiBut::dragpoin, ELEM, uiBut::emboss, uiBut::flag, NULL, 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_EMBOSS_NONE, UI_EMBOSS_NONE_OR_STATUS, UI_HIDDEN, and UI_SCROLLED.

Referenced by ui_but_find_mouse_over_ex(), ui_but_find_rect_over(), ui_drag_toggle_set_xy_xy(), and ui_multibut_states_tag().

◆ 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 2191 of file interface.c.

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 414 of file interface_query.c.

References uiBlock::buttons, ListBase::last, NULL, 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 4149 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 393 of file interface_query.c.

References uiBut::next, NULL, 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 382 of file interface_query.c.

References NULL, 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 
)

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

void ui_but_search_refresh ( uiButSearch but)

◆ 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,
const size_t  maxlen 
)

Definition at line 2847 of file interface.c.

References NULL, str, and ui_but_string_get_ex().

Referenced by ui_but_copy_text(), ui_but_update_ex(), and ui_tooltip_data_from_button().

◆ 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,
const size_t  maxlen,
const int  float_precision,
const bool  use_exp_float,
bool *  r_use_exp_float 
)

◆ 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 2423 of file interface.c.

References ELEM, uiBut::menu_step_func, NULL, 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[UI_MAX_DRAW_STR],
uiBut but,
const bool  restore 
)

◆ ui_but_tip_len_only_first_line()

size_t ui_but_tip_len_only_first_line ( const uiBut but)

Definition at line 468 of file interface_query.c.

References NULL, and 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_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,
const int  icon,
const 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 4169 of file interface.c.

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,
const bool  show_pin,
const bool  show_background,
const bool  region_search_filter_active 
)

Referenced by UI_block_draw().

◆ ui_draw_anti_tria_rect()

void ui_draw_anti_tria_rect ( const rctf rect,
char  dir,
const float  color[4] 
)

◆ ui_draw_box_opaque()

void ui_draw_box_opaque ( rcti rect,
int  roundboxalign 
)

Uses the widget base drawing and colors from from the box widget, but ensures an opaque inner color.

Definition at line 4895 of file interface_widgets.c.

References uiWidgetType::custom, uiWidgetColors::inner, NULL, rgba_float_to_uchar(), rgba_uchar_to_float(), uiWidgetType::state, TH_BACK, UI_EMBOSS_UNDEFINED, UI_GetThemeColor4fv(), UI_WTYPE_BOX, uiWidgetType::wcol, and widget_type().

Referenced by panel_draw_aligned_backdrop().

◆ ui_draw_but()

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

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 
)

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

◆ 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],
const eButGradientType  type,
const 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  state,
uiMenuItemSeparatorType  separator_type,
int *  r_xmax 
)

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

◆ 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 5198 of file interface_widgets.c.

References ui_draw_widget_back_color(), and UI_WTYPE_MENU_BACK.

◆ ui_fontscale()

void ui_fontscale ( short *  points,
float  aspect 
)

◆ ui_handle_afterfunc_add_operator()

PointerRNA* ui_handle_afterfunc_add_operator ( wmOperatorType ot,
int  opcontext,
bool  create_props 
)

For executing operators after the button is pressed. (some non operator buttons need to trigger operators), see: T37795.

Note
Can only call while handling buttons.

Definition at line 719 of file interface_handlers.c.

References MEM_callocN, NULL, uiAfterFunc::opcontext, uiAfterFunc::opptr, uiAfterFunc::optype, ot, ptr, ui_afterfunc_new(), and WM_operator_properties_create_ptr().

Referenced by panel_activate_state().

◆ ui_handler_panel_region()

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

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,
const float  mx,
const 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,
const int  icon_id,
const bool  big 
)

◆ ui_id_icon_get()

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

◆ ui_interface_tag_script_reload_queries()

void ui_interface_tag_script_reload_queries ( void  )

Definition at line 700 of file interface_query.c.

References g_ot_tool_set_by_id, and NULL.

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 1181 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 4785 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 uiTemplateList().

◆ ui_layout_replace_but_ptr()

bool ui_layout_replace_but_ptr ( uiLayout layout,
const void *  old_but_ptr,
uiBut new_but 
)

◆ ui_list_find_mouse_over()

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

◆ ui_list_find_mouse_over_ex()

uiBut* ui_list_find_mouse_over_ex ( struct ARegion region,
int  x,
int  y 
)

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

◆ ui_panel_tag_search_filter_match()

void ui_panel_tag_search_filter_match ( struct Panel panel)

Definition at line 909 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,
wmOperatorType ot,
const char *  propname,
IDProperty properties,
const EnumPropertyItem items,
int  totitem,
int  context,
int  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,
void(*)(void *arg)  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 ( bContext C,
uiPopupBlockHandle handle,
ARegion butregion,
uiBut but 
)

Called for creating new popups and refreshing existing ones.

Definition at line 560 of file interface_region_popup.c.

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, uiPopupBlockCreate::event_xy, wmWindow::eventstate, ListBase::first, uiBlock::flag, PieMenuData::flags, uiBlock::handle, uiPopupBlockCreate::handle_create_func, LISTBASE_FOREACH, MEM_callocN, MEM_freeN, NULL, 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 
)

Definition at line 497 of file interface_context_menu.c.

References ANIM_driver_can_paste(), ID::asset_data, BKE_addon_find(), uiBut::block, BLT_I18NCONTEXT_OPERATOR_DEFAULT, BUT_GET_LABEL, C, uiBut::context, CTX_data_main(), CTX_data_pointer_get_type(), CTX_IFACE_, CTX_store_get(), CTX_store_set(), CTX_wm_region(), PointerRNA::data, ED_asset_can_make_single_from_context(), ED_screen_user_menus_find(), ED_screens_footer_tools_menu_create(), ED_screens_header_tools_menu_create(), ED_screens_navigation_bar_tools_menu_create(), ELEM, EVT_TYPE_MASK_ALL, uiBut::flag, wmOperatorType::flag, id, IFACE_, is_disabled, ISKEYBOARD, label, MEM_freeN, uiButTab::menu, menu_change_shortcut(), NULL, uiBut::opcontext, uiBut::optype, ot, PointerRNA::owner_id, popup_add_shortcut_func(), popup_change_shortcut_func(), popup_user_menu_add_or_replace_func(), popup_user_menu_remove_func(), 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_ID, RNA_NlaStrip, RNA_OVERRIDE_STATUS_OVERRIDABLE, RNA_property_animateable(), RNA_property_array_length(), RNA_property_is_idprop(), RNA_property_override_library_status(), RNA_property_path_from_ID_check(), RNA_property_subtype(), RNA_property_type(), RNA_string_set(), uiBut::rnaindex, uiBut::rnapoin, uiBut::rnaprop, shortcut_free_operator_property(), shortcut_get_operator_property(), TIP_, uiBut::type, type, wmKeyMapItem::type, PointerRNA::type, ui_block_is_menu(), ui_block_is_popup_any(), UI_BTYPE_BUT, UI_BTYPE_IMAGE, UI_BTYPE_LABEL, UI_BTYPE_SEARCH_MENU, UI_BTYPE_TAB, UI_BUT_ANIMATED, UI_BUT_ANIMATED_KEY, 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_string_info_get(), ui_but_user_menu_find(), ui_jump_to_target_button_poll(), UI_menutype_draw(), UI_popup_menu_begin(), UI_popup_menu_end_or_cancel(), UI_popup_menu_layout(), ui_rna_collection_search_update_fn(), UI_UNIT_Y, uiDefBlockBut(), uiDefIconTextBut(), uiItemBooleanO(), uiItemFullO(), uiItemFullO_ptr(), uiItemMenuF(), uiItemO(), uiItemS(), uiLayoutColumn(), uiLayoutContextCopy(), uiLayoutGetBlock(), uiLayoutGetContextStore(), uiLayoutGetWidth(), uiLayoutSetContextFromBut(), uiLayoutSetEnabled(), uiLayoutSetOperatorContext(), USER_DEVELOPER_UI, w(), WM_key_event_operator(), WM_keymap_guess_opname(), WM_menutype_find(), WM_OP_EXEC_DEFAULT, WM_OP_INVOKE_DEFAULT, and WM_operatortype_find().

Referenced by ui_do_button(), and ui_search_menu_create_context_menu().

◆ ui_popup_context_menu_for_panel()

void ui_popup_context_menu_for_panel ( bContext C,
ARegion region,
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 142 of file interface_region_menu_popup.c.

References NULL, and 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 147 of file interface_region_menu_popup.c.

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

bool ui_region_contains_point_px ( const struct ARegion region,
int  x,
int  y 
)

◆ 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 600 of file interface_query.c.

References LISTBASE_FOREACH, NULL, 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 339 of file interface.c.

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 74 of file resources.c.

References UI_icons_free().

Referenced by UI_exit().

◆ ui_resources_init()

void ui_resources_init ( void  )

Definition at line 69 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,
const 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* 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 ( bScreen screen,
int  x,
int  y 
)

Check if the cursor is over any popups.

Definition at line 675 of file interface_query.c.

References BLI_rcti_isect_pt(), LISTBASE_FOREACH, NULL, bScreen::regionbase, ui_region_winrct_get_no_margin(), x, and y.

Referenced by ui_screen_region_find_mouse_over().

◆ ui_searchbox_apply()

bool ui_searchbox_apply ( uiBut but,
struct ARegion region 
)

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

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

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

Definition at line 286 of file interface_region_search.c.

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 1007 of file interface_region_search.c.

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,
int  x,
int  y 
)

◆ ui_searchbox_update()

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

◆ ui_textedit_undo()

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

Definition at line 85 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 ( 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 99 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 122 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 131 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_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 
)

◆ 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 217 of file interface.c.

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

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

◆ uiStyleInit()

void uiStyleInit ( void  )

Variable Documentation

◆ ui_pixel_jitter

const float ui_pixel_jitter[UI_PIXEL_AA_JITTER][2]
extern

Definition at line 292 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 1511 of file interface.c.

Referenced by ui_get_radialbut_vec().

◆ ui_radial_dir_to_angle

const short ui_radial_dir_to_angle[8]
extern

Definition at line 1523 of file interface.c.

Referenced by ui_but_pie_dir().

◆ ui_radial_dir_to_numpad

const char ui_radial_dir_to_numpad[8]
extern

Definition at line 1522 of file interface.c.

Referenced by ui_but_pie_direction_string().