Blender V4.3
interface_layout.cc File Reference
#include <algorithm>
#include <climits>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_armature_types.h"
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
#include "BLI_array.hh"
#include "BLI_dynstr.h"
#include "BLI_listbase.h"
#include "BLI_math_base.h"
#include "BLI_memory_utils.hh"
#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_string_ref.hh"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "BKE_context.hh"
#include "BKE_global.hh"
#include "BKE_idprop.hh"
#include "BKE_lib_id.hh"
#include "BKE_screen.hh"
#include "RNA_access.hh"
#include "RNA_prototypes.hh"
#include "UI_interface.hh"
#include "ED_id_management.hh"
#include "WM_api.hh"
#include "WM_types.hh"
#include "interface_intern.hh"

Go to the source code of this file.

Classes

struct  uiLayoutRoot
 
struct  uiItem
 
struct  uiButtonItem
 
struct  uiLayout
 
struct  uiLayoutItemFlow
 
struct  uiLayoutItemGridFlow
 
struct  uiLayoutItemBx
 
struct  uiLayoutItemPanelHeader
 
struct  uiLayoutItemPanelBody
 
struct  uiLayoutItemSplit
 
struct  uiLayoutItemRoot
 
struct  uiTextIconPadFactor
 
struct  MenuItemLevel
 
struct  UILayoutGridFlowInput
 
struct  UILayoutGridFlowOutput
 

Macros

#define UI_PROP_DECORATE
 
#define UI_PROP_SEP_ICON_WIDTH_EXCEPTION
 
#define CASE_ITEM(id)
 

Functions

Special RNA Items
int uiLayoutGetLocalDir (const uiLayout *layout)
 
static uiLayoutui_item_local_sublayout (uiLayout *test, uiLayout *layout, bool align)
 
static void ui_layer_but_cb (bContext *C, void *arg_but, void *arg_index)
 
static void ui_item_array (uiLayout *layout, uiBlock *block, const char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, const int len, int x, const int y, int w, const int, const bool expand, const bool slider, const int toggle, const bool icon_only, const bool compact, const bool show_text)
 
static void ui_item_enum_expand_handle (bContext *C, void *arg1, void *arg2)
 
static void ui_item_enum_expand_elem_exec (uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, const char *uiname, const int h, const eButType but_type, const bool icon_only, const EnumPropertyItem *item, const bool is_first)
 
static void ui_item_enum_expand_exec (uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, const char *uiname, const int h, const eButType but_type, const bool icon_only)
 
static void ui_item_enum_expand (uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, const char *uiname, const int h, const bool icon_only)
 
static void ui_item_enum_expand_tabs (uiLayout *layout, bContext *C, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, PointerRNA *ptr_highlight, PropertyRNA *prop_highlight, const char *uiname, const int h, const bool icon_only)
 
static void ui_keymap_but_cb (bContext *, void *but_v, void *)
 
static uiButui_item_with_label (uiLayout *layout, uiBlock *block, const char *name, const int icon, PointerRNA *ptr, PropertyRNA *prop, const int index, const int x, const int y, const int w_hint, const int h, const int flag)
 
void UI_context_active_but_prop_get_filebrowser (const bContext *C, PointerRNA *r_ptr, PropertyRNA **r_prop, bool *r_is_undo, bool *r_is_userdef)
 
Button Items
static void ui_but_tip_from_enum_item (uiBut *but, const EnumPropertyItem *item)
 
static void ui_item_disabled (uiLayout *layout, const char *name)
 
static uiButuiItemFullO_ptr_ex (uiLayout *layout, wmOperatorType *ot, const char *name, int icon, IDProperty *properties, const wmOperatorCallContext context, const eUI_Item_Flag flag, PointerRNA *r_opptr)
 
static void ui_item_menu_hold (bContext *C, ARegion *butregion, uiBut *but)
 
void uiItemFullO_ptr (uiLayout *layout, wmOperatorType *ot, const char *name, const int icon, IDProperty *properties, const wmOperatorCallContext context, const eUI_Item_Flag flag, PointerRNA *r_opptr)
 
void uiItemFullOMenuHold_ptr (uiLayout *layout, wmOperatorType *ot, const char *name, int icon, IDProperty *properties, const wmOperatorCallContext context, const eUI_Item_Flag flag, const char *menu_id, PointerRNA *r_opptr)
 
void uiItemFullO (uiLayout *layout, const char *opname, const char *name, int icon, IDProperty *properties, wmOperatorCallContext context, const eUI_Item_Flag flag, PointerRNA *r_opptr)
 
static const char * ui_menu_enumpropname (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int retval)
 
void uiItemEnumO_ptr (uiLayout *layout, wmOperatorType *ot, const char *name, int icon, const char *propname, int value)
 
void uiItemEnumO (uiLayout *layout, const char *opname, const char *name, int icon, const char *propname, int value)
 
BLI_INLINE bool ui_layout_is_radial (const uiLayout *layout)
 
void uiItemsFullEnumO_items (uiLayout *layout, wmOperatorType *ot, const PointerRNA &ptr, PropertyRNA *prop, IDProperty *properties, wmOperatorCallContext context, eUI_Item_Flag flag, const EnumPropertyItem *item_array, int totitem, int active)
 
void uiItemsFullEnumO (uiLayout *layout, const char *opname, const char *propname, IDProperty *properties, wmOperatorCallContext context, eUI_Item_Flag flag, const int active)
 
void uiItemsEnumO (uiLayout *layout, const char *opname, const char *propname)
 
void uiItemEnumO_value (uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value)
 
void uiItemEnumO_string (uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value_str)
 
void uiItemBooleanO (uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value)
 
void uiItemIntO (uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value)
 
void uiItemFloatO (uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, float value)
 
void uiItemStringO (uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value)
 
void uiItemO (uiLayout *layout, const char *name, int icon, const char *opname)
 
static void ui_item_rna_size (uiLayout *layout, const char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int index, bool icon_only, bool compact, int *r_w, int *r_h)
 
static bool ui_item_rna_is_expand (PropertyRNA *prop, int index, const eUI_Item_Flag item_flag)
 
static uiLayoutui_layout_heading_find (uiLayout *cur_layout)
 
static void ui_layout_heading_label_add (uiLayout *layout, uiLayout *heading_layout, bool right_align, bool respect_prop_split)
 
static uiLayoutui_item_prop_split_layout_hack (uiLayout *layout_parent, uiLayout *layout_split)
 
void uiItemFullR (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, const char *name, int icon, const char *placeholder)
 
void uiItemR (uiLayout *layout, PointerRNA *ptr, const char *propname, const eUI_Item_Flag flag, const char *name, int icon)
 
void uiItemFullR_with_popover (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index, int value, const eUI_Item_Flag flag, const char *name, int icon, const char *panel_type)
 
void uiItemFullR_with_menu (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index, int value, const eUI_Item_Flag flag, const char *name, int icon, const char *menu_type)
 
void uiItemEnumR_prop (uiLayout *layout, const char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int value)
 
void uiItemEnumR (uiLayout *layout, const char *name, int icon, PointerRNA *ptr, const char *propname, int value)
 
void uiItemEnumR_string_prop (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, const char *value, const char *name, int icon)
 
void uiItemEnumR_string (uiLayout *layout, PointerRNA *ptr, const char *propname, const char *value, const char *name, int icon)
 
void uiItemsEnumR (uiLayout *layout, PointerRNA *ptr, const char *propname)
 
static void search_id_collection (StructRNA *ptype, PointerRNA *r_ptr, PropertyRNA **r_prop)
 
static void ui_rna_collection_search_arg_free_fn (void *ptr)
 
uiButui_but_add_search (uiBut *but, PointerRNA *ptr, PropertyRNA *prop, PointerRNA *searchptr, PropertyRNA *searchprop, const bool results_are_suggestions)
 
void uiItemPointerR_prop (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, PointerRNA *searchptr, PropertyRNA *searchprop, const char *name, int icon, bool results_are_suggestions)
 
void uiItemPointerR (uiLayout *layout, PointerRNA *ptr, const char *propname, PointerRNA *searchptr, const char *searchpropname, const char *name, int icon)
 
void ui_item_menutype_func (bContext *C, uiLayout *layout, void *arg_mt)
 
void ui_item_paneltype_func (bContext *C, uiLayout *layout, void *arg_pt)
 
static uiButui_item_menu (uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *arg, void *argN, const char *tip, bool force_menu, uiButArgNFree func_argN_free_fn=MEM_freeN, uiButArgNCopy func_argN_copy_fn=MEM_dupallocN)
 
void uiItemM_ptr (uiLayout *layout, MenuType *mt, const char *name, int icon)
 
void uiItemM (uiLayout *layout, const char *menuname, const char *name, int icon)
 
void uiItemMContents (uiLayout *layout, const char *menuname)
 
void uiItemDecoratorR_prop (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index)
 
void uiItemDecoratorR (uiLayout *layout, PointerRNA *ptr, const char *propname, int index)
 
void uiItemPopoverPanel_ptr (uiLayout *layout, const bContext *C, PanelType *pt, const char *name, int icon)
 
void uiItemPopoverPanel (uiLayout *layout, const bContext *C, const char *panel_type, const char *name, int icon)
 
void uiItemPopoverPanelFromGroup (uiLayout *layout, bContext *C, int space_id, int region_id, const char *context, const char *category)
 
static uiButuiItemL_ (uiLayout *layout, const char *name, int icon)
 
uiButuiItemL_ex (uiLayout *layout, const char *name, int icon, const bool highlight, const bool redalert)
 
void uiItemL (uiLayout *layout, const char *name, int icon)
 
uiPropertySplitWrapper uiItemPropertySplitWrapperCreate (uiLayout *parent_layout)
 
uiLayoutuiItemL_respect_property_split (uiLayout *layout, const char *text, int icon)
 
void uiItemLDrag (uiLayout *layout, PointerRNA *ptr, const char *name, int icon)
 
void uiItemS_ex (uiLayout *layout, float factor, const LayoutSeparatorType type)
 
void uiItemS (uiLayout *layout)
 
void uiItemProgressIndicator (uiLayout *layout, const char *text, const float factor, const eButProgressType progress_type)
 
void uiItemSpacer (uiLayout *layout)
 
void uiItemMenuF (uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *arg)
 
void uiItemMenuFN (uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *argN)
 
static int menu_item_enum_opname_menu_active (bContext *C, uiBut *but, MenuItemLevel *lvl)
 
static void menu_item_enum_opname_menu (bContext *C, uiLayout *layout, void *arg)
 
void uiItemMenuEnumFullO_ptr (uiLayout *layout, const bContext *C, wmOperatorType *ot, const char *propname, const char *name, int icon, PointerRNA *r_opptr)
 
void uiItemMenuEnumFullO (uiLayout *layout, const bContext *C, const char *opname, const char *propname, const char *name, int icon, PointerRNA *r_opptr)
 
void uiItemMenuEnumO (uiLayout *layout, const bContext *C, const char *opname, const char *propname, const char *name, int icon)
 
static void menu_item_enum_rna_menu (bContext *, uiLayout *layout, void *arg)
 
void uiItemMenuEnumR_prop (uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, const char *name, int icon)
 
void uiItemMenuEnumR (uiLayout *layout, PointerRNA *ptr, const char *propname, const char *name, int icon)
 
void uiItemTabsEnumR_prop (uiLayout *layout, bContext *C, PointerRNA *ptr, PropertyRNA *prop, PointerRNA *ptr_highlight, PropertyRNA *prop_highlight, bool icon_only)
 
Layout Items
static void ui_litem_estimate_row (uiLayout *litem)
 
static int ui_litem_min_width (int itemw)
 
static void ui_litem_layout_row (uiLayout *litem)
 
static int spaces_after_column_item (const uiLayout *litem, const uiItem *item, const uiItem *next_item, const bool is_box)
 
static void ui_litem_estimate_column (uiLayout *litem, bool is_box)
 
static void ui_litem_layout_column (uiLayout *litem, bool is_box, bool is_menu)
 
static RadialDirection ui_get_radialbut_vec (float vec[2], short itemnum)
 
static bool ui_item_is_radial_displayable (uiItem *item)
 
static bool ui_item_is_radial_drawable (uiButtonItem *bitem)
 
static void ui_litem_layout_radial (uiLayout *litem)
 
static void ui_litem_estimate_root (uiLayout *)
 
static void ui_litem_layout_root_radial (uiLayout *litem)
 
static void ui_litem_layout_root (uiLayout *litem)
 
static void ui_litem_estimate_panel_header (uiLayout *litem)
 
static void ui_litem_layout_panel_header (uiLayout *litem)
 
static void ui_litem_estimate_panel_body (uiLayout *litem)
 
static void ui_litem_layout_panel_body (uiLayout *litem)
 
static void ui_litem_estimate_box (uiLayout *litem)
 
static void ui_litem_layout_box (uiLayout *litem)
 
static void ui_litem_estimate_column_flow (uiLayout *litem)
 
static void ui_litem_layout_column_flow (uiLayout *litem)
 
static void ui_litem_grid_flow_compute (blender::Span< uiItem * > items, const UILayoutGridFlowInput *parameters, UILayoutGridFlowOutput *results)
 
static void ui_litem_estimate_grid_flow (uiLayout *litem)
 
static void ui_litem_layout_grid_flow (uiLayout *litem)
 
static void ui_litem_estimate_absolute (uiLayout *litem)
 
static void ui_litem_layout_absolute (uiLayout *litem)
 
static void ui_litem_estimate_split (uiLayout *litem)
 
static void ui_litem_layout_split (uiLayout *litem)
 
static void ui_litem_estimate_overlap (uiLayout *litem)
 
static void ui_litem_layout_overlap (uiLayout *litem)
 
static void ui_litem_init_from_parent (uiLayout *litem, uiLayout *layout, int align)
 
static void ui_layout_heading_set (uiLayout *layout, const char *heading)
 
uiLayoutuiLayoutRow (uiLayout *layout, bool align)
 
PanelLayout uiLayoutPanelProp (const bContext *C, uiLayout *layout, PointerRNA *open_prop_owner, const char *open_prop_name)
 
uiLayoutuiLayoutPanelProp (const bContext *C, uiLayout *layout, PointerRNA *open_prop_owner, const char *open_prop_name, const char *label)
 
PanelLayout uiLayoutPanel (const bContext *C, uiLayout *layout, const char *idname, const bool default_closed)
 
uiLayoutuiLayoutPanel (const bContext *C, uiLayout *layout, const char *idname, const bool default_closed, const char *label)
 
bool uiLayoutEndsWithPanelHeader (const uiLayout &layout)
 
uiLayoutuiLayoutRowWithHeading (uiLayout *layout, bool align, const char *heading)
 
uiLayoutuiLayoutColumn (uiLayout *layout, bool align)
 
uiLayoutuiLayoutColumnWithHeading (uiLayout *layout, bool align, const char *heading)
 
uiLayoutuiLayoutColumnFlow (uiLayout *layout, int number, bool align)
 
uiLayoutuiLayoutGridFlow (uiLayout *layout, bool row_major, int columns_len, bool even_columns, bool even_rows, bool align)
 
static uiLayoutItemBxui_layout_box (uiLayout *layout, int type)
 
uiLayoutuiLayoutRadial (uiLayout *layout)
 
uiLayoutuiLayoutBox (uiLayout *layout)
 
void ui_layout_list_set_labels_active (uiLayout *layout)
 
uiLayoutuiLayoutListBox (uiLayout *layout, uiList *ui_list, PointerRNA *actptr, PropertyRNA *actprop)
 
uiLayoutuiLayoutAbsolute (uiLayout *layout, bool align)
 
uiBlockuiLayoutAbsoluteBlock (uiLayout *layout)
 
uiLayoutuiLayoutOverlap (uiLayout *layout)
 
uiLayoutuiLayoutSplit (uiLayout *layout, float percentage, bool align)
 
void uiLayoutSetActive (uiLayout *layout, bool active)
 
void uiLayoutSetActiveDefault (uiLayout *layout, bool active_default)
 
void uiLayoutSetActivateInit (uiLayout *layout, bool activate_init)
 
void uiLayoutSetEnabled (uiLayout *layout, bool enabled)
 
void uiLayoutSetRedAlert (uiLayout *layout, bool redalert)
 
void uiLayoutSetKeepAspect (uiLayout *layout, bool keepaspect)
 
void uiLayoutSetAlignment (uiLayout *layout, char alignment)
 
void uiLayoutSetScaleX (uiLayout *layout, float scale)
 
void uiLayoutSetScaleY (uiLayout *layout, float scale)
 
void uiLayoutSetUnitsX (uiLayout *layout, float unit)
 
void uiLayoutSetUnitsY (uiLayout *layout, float unit)
 
void uiLayoutSetEmboss (uiLayout *layout, eUIEmbossType emboss)
 
bool uiLayoutGetPropSep (uiLayout *layout)
 
void uiLayoutSetPropSep (uiLayout *layout, bool is_sep)
 
bool uiLayoutGetPropDecorate (uiLayout *layout)
 
void uiLayoutSetPropDecorate (uiLayout *layout, bool is_sep)
 
void uiLayoutSetSearchWeight (uiLayout *layout, const float weight)
 
float uiLayoutGetSearchWeight (uiLayout *layout)
 
PaneluiLayoutGetRootPanel (uiLayout *layout)
 
bool uiLayoutGetActive (uiLayout *layout)
 
bool uiLayoutGetActiveDefault (uiLayout *layout)
 
bool uiLayoutGetActivateInit (uiLayout *layout)
 
bool uiLayoutGetEnabled (uiLayout *layout)
 
bool uiLayoutGetRedAlert (uiLayout *layout)
 
bool uiLayoutGetKeepAspect (uiLayout *layout)
 
int uiLayoutGetAlignment (uiLayout *layout)
 
int uiLayoutGetWidth (uiLayout *layout)
 
float uiLayoutGetScaleX (uiLayout *layout)
 
float uiLayoutGetScaleY (uiLayout *layout)
 
float uiLayoutGetUnitsX (uiLayout *layout)
 
float uiLayoutGetUnitsY (uiLayout *layout)
 
eUIEmbossType uiLayoutGetEmboss (uiLayout *layout)
 
int uiLayoutListItemPaddingWidth ()
 
void uiLayoutListItemAddPadding (uiLayout *layout)
 
Block Layout Search Filtering
static bool block_search_panel_label_matches (const uiBlock *block, const char *search_string)
 
static bool button_matches_search_filter (uiBut *but, const char *search_filter)
 
static bool button_group_has_search_match (const uiButtonGroup &group, const char *search_filter)
 
static bool block_search_filter_tag_buttons (uiBlock *block, const char *search_filter)
 
bool UI_block_apply_search_filter (uiBlock *block, const char *search_filter)
 
Layout
static void ui_item_scale (uiLayout *litem, const float scale[2])
 
static void ui_item_estimate (uiItem *item)
 
static void ui_item_align (uiLayout *litem, short nr)
 
static void ui_item_flag (uiLayout *litem, int flag)
 
static void ui_item_layout (uiItem *item)
 
static void ui_layout_end (uiBlock *block, uiLayout *layout, int *r_x, int *r_y)
 
static void ui_layout_free (uiLayout *layout)
 
static void ui_layout_add_padding_button (uiLayoutRoot *root)
 
uiLayoutUI_block_layout (uiBlock *block, int dir, int type, int x, int y, int size, int em, int padding, const uiStyle *style)
 
uiBlockuiLayoutGetBlock (uiLayout *layout)
 
wmOperatorCallContext uiLayoutGetOperatorContext (uiLayout *layout)
 
void UI_block_layout_set_current (uiBlock *block, uiLayout *layout)
 
void ui_layout_add_but (uiLayout *layout, uiBut *but)
 
static uiButtonItemui_layout_find_button_item (const uiLayout *layout, const 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)
 
void uiLayoutSetFixedSize (uiLayout *layout, bool fixed_size)
 
bool uiLayoutGetFixedSize (uiLayout *layout)
 
void uiLayoutSetOperatorContext (uiLayout *layout, wmOperatorCallContext opcontext)
 
void uiLayoutSetFunc (uiLayout *layout, uiMenuHandleFunc handlefunc, void *argv)
 
void UI_block_layout_free (uiBlock *block)
 
void UI_block_layout_resolve (uiBlock *block, int *r_x, int *r_y)
 
bool UI_block_layout_needs_resolving (const uiBlock *block)
 
void uiLayoutSetContextPointer (uiLayout *layout, const char *name, PointerRNA *ptr)
 
void uiLayoutSetContextString (uiLayout *layout, const char *name, blender::StringRef value)
 
bContextStoreuiLayoutGetContextStore (uiLayout *layout)
 
void uiLayoutContextCopy (uiLayout *layout, const bContextStore *context)
 
void uiLayoutSetTooltipFunc (uiLayout *layout, uiButToolTipFunc func, void *arg, uiCopyArgFunc copy_arg, uiFreeArgFunc free_arg)
 
void uiLayoutSetContextFromBut (uiLayout *layout, uiBut *but)
 
wmOperatorTypeUI_but_operatortype_get_from_enum_menu (uiBut *but, PropertyRNA **r_prop)
 
MenuTypeUI_but_menutype_get (const uiBut *but)
 
PanelTypeUI_but_paneltype_get (const uiBut *but)
 
std::optional< blender::StringRefNullUI_but_asset_shelf_type_idname_get (const uiBut *but)
 
void UI_menutype_draw (bContext *C, MenuType *mt, uiLayout *layout)
 
static bool ui_layout_has_panel_label (const uiLayout *layout, const PanelType *pt)
 
static void ui_paneltype_draw_impl (bContext *C, PanelType *pt, uiLayout *layout, bool show_header)
 
void UI_paneltype_draw (bContext *C, PanelType *pt, uiLayout *layout)
 
Layout (Debugging/Introspection)

Serialize the layout as a Python compatible dictionary,

Note
Proper string escaping isn't used, triple quotes are used to prevent single quotes from interfering with Python syntax. If we want this to be fool-proof, we would need full Python compatible string escape support. As we don't use triple quotes in the UI it's good-enough in practice.
static void ui_layout_introspect_button (DynStr *ds, const uiButtonItem *bitem)
 
static void ui_layout_introspect_items (DynStr *ds, blender::Span< uiItem * > items)
 
const char * UI_layout_introspect (uiLayout *layout)
 
Alert Box with Big Icon
uiLayoutuiItemsAlertBox (uiBlock *block, const uiStyle *style, const int dialog_width, const eAlertIcon icon, const int icon_size)
 
uiLayoutuiItemsAlertBox (uiBlock *block, const int size, const eAlertIcon icon)
 

Structs and Defines

#define UI_OPERATOR_ERROR_RET(_ot, _opname, return_statement)
 
#define UI_ITEM_PROP_SEP_DIVIDE   0.4f
 
enum  uiItemType {
  ITEM_BUTTON , ITEM_LAYOUT_ROW , ITEM_LAYOUT_PANEL_HEADER , ITEM_LAYOUT_PANEL_BODY ,
  ITEM_LAYOUT_COLUMN , ITEM_LAYOUT_COLUMN_FLOW , ITEM_LAYOUT_ROW_FLOW , ITEM_LAYOUT_GRID_FLOW ,
  ITEM_LAYOUT_BOX , ITEM_LAYOUT_ABSOLUTE , ITEM_LAYOUT_SPLIT , ITEM_LAYOUT_OVERLAP ,
  ITEM_LAYOUT_RADIAL , ITEM_LAYOUT_ROOT
}
 
enum  uiItemInternalFlag {
  UI_ITEM_AUTO_FIXED_SIZE = 1 << 0 , UI_ITEM_FIXED_SIZE = 1 << 1 , UI_ITEM_BOX_ITEM = 1 << 2 , UI_ITEM_PROP_SEP = 1 << 3 ,
  UI_ITEM_INSIDE_PROP_SEP = 1 << 4 , UI_ITEM_PROP_DECORATE = 1 << 5 , UI_ITEM_PROP_DECORATE_NO_PAD = 1 << 6
}
 

Item

#define UI_ITEM_VARY_X   1
 
#define UI_ITEM_VARY_Y   2
 
constexpr uiTextIconPadFactor ui_text_pad_default = {1.50f, 0.25f, 0.0f}
 
constexpr uiTextIconPadFactor ui_text_pad_compact = {1.25f, 0.35f, 0.0f}
 
constexpr uiTextIconPadFactor ui_text_pad_none = {0.25f, 1.50f, 0.0f}
 
static const char * ui_item_name_add_colon (const char *name, char namestr[UI_MAX_NAME_STR])
 
static int ui_item_fit (const int item, const int pos, const int all, const int available, const bool is_last, const int alignment, float *extra_pixel)
 
static int ui_layout_vary_direction (uiLayout *layout)
 
static bool ui_layout_variable_size (uiLayout *layout)
 
static int ui_text_icon_width_ex (uiLayout *layout, const char *name, int icon, const uiTextIconPadFactor &pad_factor, const uiFontStyle *fstyle)
 
static int ui_text_icon_width (uiLayout *layout, const char *name, const int icon, const bool compact)
 
static void ui_item_size (const uiItem *item, int *r_w, int *r_h)
 
static void ui_item_offset (const uiItem *item, int *r_x, int *r_y)
 
static void ui_item_position (uiItem *item, const int x, const int y, const int w, const int h)
 
static void ui_item_move (uiItem *item, const int delta_xmin, const int delta_xmax)
 

Macro Definition Documentation

◆ CASE_ITEM

#define CASE_ITEM ( id)
Value:
case id: { \
const char *id_str = STRINGIFY(id); \
BLI_dynstr_append(ds, "'type': '"); \
/* Skip 'ITEM_'. */ \
BLI_dynstr_append(ds, id_str + 5); \
BLI_dynstr_append(ds, "', "); \
break; \
} \
((void)0)
#define STRINGIFY(x)

Referenced by ui_layout_introspect_items().

◆ UI_ITEM_PROP_SEP_DIVIDE

#define UI_ITEM_PROP_SEP_DIVIDE   0.4f

Definition at line 70 of file interface_layout.cc.

Referenced by uiItemFullR(), and uiItemPropertySplitWrapperCreate().

◆ UI_ITEM_VARY_X

#define UI_ITEM_VARY_X   1

Definition at line 275 of file interface_layout.cc.

Referenced by ui_layout_variable_size(), and ui_layout_vary_direction().

◆ UI_ITEM_VARY_Y

#define UI_ITEM_VARY_Y   2

Definition at line 276 of file interface_layout.cc.

Referenced by ui_layout_vary_direction().

◆ UI_OPERATOR_ERROR_RET

#define UI_OPERATOR_ERROR_RET ( _ot,
_opname,
return_statement )
Value:
if (ot == nullptr) { \
ui_item_disabled(layout, _opname); \
RNA_warning("'%s' unknown operator", _opname); \
return_statement; \
} \
(void)0
wmOperatorType * ot
Definition wm_files.cc:4125

Definition at line 62 of file interface_layout.cc.

Referenced by uiItemBooleanO(), uiItemEnumO_string(), uiItemEnumO_value(), uiItemFloatO(), uiItemFullO(), uiItemIntO(), uiItemMenuEnumFullO(), and uiItemStringO().

◆ UI_PROP_DECORATE

#define UI_PROP_DECORATE

Definition at line 53 of file interface_layout.cc.

Referenced by ui_item_with_label().

◆ UI_PROP_SEP_ICON_WIDTH_EXCEPTION

#define UI_PROP_SEP_ICON_WIDTH_EXCEPTION

Definition at line 56 of file interface_layout.cc.

Enumeration Type Documentation

◆ uiItemInternalFlag

Enumerator
UI_ITEM_AUTO_FIXED_SIZE 
UI_ITEM_FIXED_SIZE 
UI_ITEM_BOX_ITEM 
UI_ITEM_PROP_SEP 
UI_ITEM_INSIDE_PROP_SEP 
UI_ITEM_PROP_DECORATE 
UI_ITEM_PROP_DECORATE_NO_PAD 

Definition at line 120 of file interface_layout.cc.

◆ uiItemType

enum uiItemType
Enumerator
ITEM_BUTTON 
ITEM_LAYOUT_ROW 
ITEM_LAYOUT_PANEL_HEADER 
ITEM_LAYOUT_PANEL_BODY 
ITEM_LAYOUT_COLUMN 
ITEM_LAYOUT_COLUMN_FLOW 
ITEM_LAYOUT_ROW_FLOW 
ITEM_LAYOUT_GRID_FLOW 
ITEM_LAYOUT_BOX 
ITEM_LAYOUT_ABSOLUTE 
ITEM_LAYOUT_SPLIT 
ITEM_LAYOUT_OVERLAP 
ITEM_LAYOUT_RADIAL 
ITEM_LAYOUT_ROOT 

Definition at line 93 of file interface_layout.cc.

Function Documentation

◆ block_search_filter_tag_buttons()

static bool block_search_filter_tag_buttons ( uiBlock * block,
const char * search_filter )
static

Apply the search filter, tagging all buttons with whether they match or not. Tag every button in the group as a result if any button in the group matches.

Note
It would be great to return early here if we found a match, but because the results may be visible we have to continue searching the entire block.
Returns
True if the block has any search results.

Definition at line 5551 of file interface_layout.cc.

References button_group_has_search_match(), uiBlock::button_groups, and UI_SEARCH_FILTER_NO_MATCH.

Referenced by UI_block_apply_search_filter().

◆ block_search_panel_label_matches()

static bool block_search_panel_label_matches ( const uiBlock * block,
const char * search_string )
static

◆ button_group_has_search_match()

static bool button_group_has_search_match ( const uiButtonGroup & group,
const char * search_filter )
static

Test for a search result within a specific button group.

Definition at line 5531 of file interface_layout.cc.

References button_matches_search_filter().

Referenced by block_search_filter_tag_buttons().

◆ button_matches_search_filter()

static bool button_matches_search_filter ( uiBut * but,
const char * search_filter )
static

Returns true if a button or the data / operator it represents matches the search filter.

Definition at line 5468 of file interface_layout.cc.

References BLI_strcasestr(), free(), MEM_freeN(), wmOperatorType::name, uiBut::optype, ptr, RNA_property_description(), RNA_property_enum_items_gettexted(), RNA_property_ui_name(), uiBut::rnapoin, uiBut::rnaprop, uiBut::str, uiBut::type, and UI_BTYPE_MENU.

Referenced by button_group_has_search_match().

◆ menu_item_enum_opname_menu()

◆ menu_item_enum_opname_menu_active()

◆ menu_item_enum_rna_menu()

static void menu_item_enum_rna_menu ( bContext * ,
uiLayout * layout,
void * arg )
static

◆ search_id_collection()

static void search_id_collection ( StructRNA * ptype,
PointerRNA * r_ptr,
PropertyRNA ** r_prop )
static

◆ spaces_after_column_item()

static int spaces_after_column_item ( const uiLayout * litem,
const uiItem * item,
const uiItem * next_item,
const bool is_box )
static

◆ UI_block_apply_search_filter()

bool UI_block_apply_search_filter ( uiBlock * block,
const char * search_filter )

Apply property search behavior, setting panel flags and deactivating buttons that don't match.

Note
Must not be run after UI_block_layout_resolve.

Definition at line 5567 of file interface_layout.cc.

References block_search_filter_tag_buttons(), block_search_panel_label_matches(), PanelType::flag, uiBlock::panel, PANEL_TYPE_NO_SEARCH, Panel::type, and ui_panel_tag_search_filter_match().

Referenced by ed_panel_draw(), and panel_property_search().

◆ UI_block_layout()

uiLayout * UI_block_layout ( uiBlock * block,
int dir,
int type,
int x,
int y,
int size,
int em,
int padding,
const uiStyle * style )

Definition at line 5873 of file interface_layout.cc.

References uiLayout::active, BLI_addtail(), uiLayoutRoot::block, uiLayout::context, uiBlock::curlayout, ELEM, uiLayout::emboss, uiLayoutRoot::emh, uiLayoutRoot::emw, uiLayout::enabled, uiItem::flag, uiLayout::h, ITEM_LAYOUT_COLUMN, ITEM_LAYOUT_ROOT, uiLayoutRoot::layout, uiBlock::layouts, uiLayoutRoot::opcontext, padding(), uiLayoutRoot::padding, uiLayout::root, size(), uiLayout::space, uiLayoutRoot::style, uiStyle::templatespace, uiItem::type, uiLayoutRoot::type, UI_EMBOSS_UNDEFINED, UI_ITEM_PROP_DECORATE, ui_layout_add_padding_button(), UI_LAYOUT_HORIZONTAL, UI_LAYOUT_MENU, UI_LAYOUT_PIEMENU, UI_LAYOUT_VERT_BAR, UI_UNIT_X, UI_UNIT_Y, uiLayout::w, WM_OP_INVOKE_REGION_WIN, uiLayout::x, x, uiLayout::y, and y.

Referenced by blender::ed::space_node::add_panel_items_recursive(), colorband_tools_fn(), component_menu(), blender::ed::space_node::draw_tree_path(), ed_panel_draw(), ED_region_header_layout(), ED_time_scrub_channel_search_draw(), menu_add_shortcut(), menu_change_shortcut(), menu_items_from_ui_create(), blender::ed::space_node::node_update_basis_buttons(), blender::ed::space_node::node_update_basis_socket(), panel_property_search(), blender::ed::asset::shelf::region_layout(), blender::ed::spreadsheet::spreadsheet_footer_region_draw(), UI_pie_menu_begin(), ui_popover_create_block(), ui_popup_menu_create_block(), uiItemsAlertBox(), wm_block_about_create(), wm_block_create_redo(), wm_block_dialog_create(), wm_block_insert_unicode_create(), wm_block_splash_create(), and wm_operator_ui_create().

◆ UI_block_layout_free()

void UI_block_layout_free ( uiBlock * block)

Used for property search when the layout process needs to be cancelled in order to avoid computing the locations for buttons, but the layout items created while adding the buttons must still be freed.

Definition at line 6057 of file interface_layout.cc.

References uiBlock::layouts, LISTBASE_FOREACH_MUTABLE, MEM_freeN(), and ui_layout_free().

Referenced by panel_property_search().

◆ UI_block_layout_needs_resolving()

bool UI_block_layout_needs_resolving ( const uiBlock * block)

Definition at line 6090 of file interface_layout.cc.

References BLI_listbase_is_empty(), and uiBlock::layouts.

Referenced by ui_textedit_begin().

◆ UI_block_layout_resolve()

◆ UI_block_layout_set_current()

void UI_block_layout_set_current ( uiBlock * block,
uiLayout * layout )

Definition at line 5937 of file interface_layout.cc.

References uiBlock::curlayout.

Referenced by blender::ui::TreeViewLayoutBuilder::build_from_tree(), blender::ui::GridViewLayoutBuilder::build_from_view(), blender::ui::GridViewBuilder::build_grid_view(), blender::ed::asset::shelf::AssetCatalogSelectorTree::Item::build_row(), blender::ui::TreeViewLayoutBuilder::build_row(), blender::ui::TreeViewBuilder::build_tree_view(), colorband_tools_fn(), ED_time_scrub_channel_search_draw(), blender::ed::asset_browser::file_create_asset_catalog_tree_view_in_layout(), blender::ed::spreadsheet::spreadsheet_data_set_panel_draw(), ui_def_but_rna__menu(), ui_imageuser_layer_menu(), ui_imageuser_pass_menu(), ui_imageuser_view_menu_multiview(), ui_imageuser_view_menu_rr(), ui_item_array(), ui_item_disabled(), ui_item_enum_expand_exec(), ui_item_menu(), ui_item_with_label(), ui_layout_box(), blender::ed::space_node::ui_node_menu_column(), blender::ed::space_node::ui_template_node_link_menu(), uiItemDecoratorR_prop(), uiItemFullO_ptr_ex(), uiItemFullR(), uiItemL_(), uiItemL_respect_property_split(), uiItemProgressIndicator(), uiItemS_ex(), uiItemsFullEnumO_items(), uiItemSpacer(), uiItemTabsEnumR_prop(), uiLayoutAbsolute(), uiLayoutColumn(), uiLayoutColumnFlow(), uiLayoutGridFlow(), uiLayoutListItemAddPadding(), uiLayoutOverlap(), uiLayoutPanelProp(), uiLayoutRadial(), uiLayoutRow(), uiLayoutSplit(), uiTemplateMenuSearch(), uiTemplateNodeLink(), uiTemplateOperatorSearch(), and uiTemplateRunningJobs().

◆ ui_but_add_search()

◆ UI_but_asset_shelf_type_idname_get()

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

This is a bit of a hack but best keep it in one place at least.

Definition at line 6200 of file interface_layout.cc.

References UI_asset_shelf_idname_from_button_context().

Referenced by shortcut_get_operator_property().

◆ UI_but_menutype_get()

◆ UI_but_operatortype_get_from_enum_menu()

◆ UI_but_paneltype_get()

◆ ui_but_tip_from_enum_item()

static void ui_but_tip_from_enum_item ( uiBut * but,
const EnumPropertyItem * item )
static

Update a buttons tip with an enum's description if possible.

Definition at line 1179 of file interface_layout.cc.

References EnumPropertyItem::description, wmOperatorType::get_description, uiBut::optype, and uiBut::tip.

Referenced by uiItemsEnumR(), and uiItemsFullEnumO_items().

◆ UI_context_active_but_prop_get_filebrowser()

void UI_context_active_but_prop_get_filebrowser ( const bContext * C,
PointerRNA * r_ptr,
PropertyRNA ** r_prop,
bool * r_is_undo,
bool * r_is_userdef )

◆ ui_get_radialbut_vec()

static RadialDirection ui_get_radialbut_vec ( float vec[2],
short itemnum )
static

Definition at line 4036 of file interface_layout.cc.

References PIE_MAX_ITEMS, printf, ui_but_pie_dir(), and ui_radial_dir_order.

Referenced by ui_litem_layout_radial().

◆ ui_item_align()

◆ ui_item_array()

◆ ui_item_disabled()

◆ ui_item_enum_expand()

static void ui_item_enum_expand ( uiLayout * layout,
uiBlock * block,
PointerRNA * ptr,
PropertyRNA * prop,
const char * uiname,
const int h,
const bool icon_only )
static

Definition at line 914 of file interface_layout.cc.

References ptr, UI_BTYPE_ROW, and ui_item_enum_expand_exec().

Referenced by uiItemFullR().

◆ ui_item_enum_expand_elem_exec()

static void ui_item_enum_expand_elem_exec ( uiLayout * layout,
uiBlock * block,
PointerRNA * ptr,
PropertyRNA * prop,
const char * uiname,
const int h,
const eButType but_type,
const bool icon_only,
const EnumPropertyItem * item,
const bool is_first )
static

◆ ui_item_enum_expand_exec()

◆ ui_item_enum_expand_handle()

static void ui_item_enum_expand_handle ( bContext * C,
void * arg1,
void * arg2 )
static

◆ ui_item_enum_expand_tabs()

◆ ui_item_estimate()

◆ ui_item_fit()

static int ui_item_fit ( const int item,
const int pos,
const int all,
const int available,
const bool is_last,
const int alignment,
float * extra_pixel )
static

Definition at line 237 of file interface_layout.cc.

References ELEM, int, pos, and UI_LAYOUT_ALIGN_EXPAND.

Referenced by ui_litem_layout_row().

◆ ui_item_flag()

◆ ui_item_is_radial_displayable()

static bool ui_item_is_radial_displayable ( uiItem * item)
static

Definition at line 4050 of file interface_layout.cc.

References ITEM_BUTTON, uiItem::type, and UI_BTYPE_LABEL.

Referenced by ui_litem_layout_radial().

◆ ui_item_is_radial_drawable()

static bool ui_item_is_radial_drawable ( uiButtonItem * bitem)
static

◆ ui_item_layout()

◆ ui_item_local_sublayout()

static uiLayout * ui_item_local_sublayout ( uiLayout * test,
uiLayout * layout,
bool align )
static

◆ ui_item_menu()

◆ ui_item_menu_hold()

◆ ui_item_menutype_func()

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

◆ ui_item_move()

static void ui_item_move ( uiItem * item,
const int delta_xmin,
const int delta_xmax )
static

◆ ui_item_name_add_colon()

static const char * ui_item_name_add_colon ( const char * name,
char namestr[UI_MAX_NAME_STR] )
static

Definition at line 223 of file interface_layout.cc.

References len, and UI_MAX_NAME_STR.

Referenced by uiItemFullR(), uiItemL_respect_property_split(), and uiItemPointerR_prop().

◆ ui_item_offset()

static void ui_item_offset ( const uiItem * item,
int * r_x,
int * r_y )
static

◆ ui_item_paneltype_func()

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

◆ ui_item_position()

◆ ui_item_prop_split_layout_hack()

static uiLayout * ui_item_prop_split_layout_hack ( uiLayout * layout_parent,
uiLayout * layout_split )
static

Hack to add further items in a row into the second part of the split layout, so the label part keeps a fixed size.

Returns
The layout to place further items in for the split layout.

Definition at line 2057 of file interface_layout.cc.

References uiLayout::child_items_layout, uiItem::flag, ITEM_LAYOUT_ROW, uiItem::type, UI_ITEM_INSIDE_PROP_SEP, uiLayoutRow(), and uiLayoutSetPropSep().

Referenced by uiItemFullR(), and uiItemPropertySplitWrapperCreate().

◆ ui_item_rna_is_expand()

static bool ui_item_rna_is_expand ( PropertyRNA * prop,
int index,
const eUI_Item_Flag item_flag )
static

◆ ui_item_rna_size()

◆ ui_item_scale()

◆ ui_item_size()

◆ ui_item_with_label()

◆ ui_keymap_but_cb()

static void ui_keymap_but_cb ( bContext * ,
void * but_v,
void *  )
static

◆ ui_layer_but_cb()

◆ ui_layout_add_but()

◆ ui_layout_add_padding_button()

static void ui_layout_add_padding_button ( uiLayoutRoot * root)
static

◆ ui_layout_box()

◆ ui_layout_end()

static void ui_layout_end ( uiBlock * block,
uiLayout * layout,
int * r_x,
int * r_y )
static

◆ ui_layout_find_button_item()

static uiButtonItem * ui_layout_find_button_item ( const uiLayout * layout,
const uiBut * but )
static

◆ ui_layout_free()

static void ui_layout_free ( uiLayout * layout)
static

◆ ui_layout_has_panel_label()

static bool ui_layout_has_panel_label ( const uiLayout * layout,
const PanelType * pt )
static

◆ ui_layout_heading_find()

static uiLayout * ui_layout_heading_find ( uiLayout * cur_layout)
static

Find first layout ancestor (or self) with a heading set.

Returns
the layout to add the heading to as fallback (i.e. if it can't be placed in a split layout). Its uiLayout.heading member can be cleared to mark the heading as added (so it's not added multiple times). Returns a pointer to the heading

Definition at line 2017 of file interface_layout.cc.

References uiLayout::parent.

Referenced by ui_item_menu(), and uiItemFullR().

◆ ui_layout_heading_label_add()

static void ui_layout_heading_label_add ( uiLayout * layout,
uiLayout * heading_layout,
bool right_align,
bool respect_prop_split )
static

◆ ui_layout_heading_set()

static void ui_layout_heading_set ( uiLayout * layout,
const char * heading )
static

Definition at line 4960 of file interface_layout.cc.

References BLI_assert, uiLayout::heading, and STRNCPY.

Referenced by uiLayoutColumnWithHeading(), and uiLayoutRowWithHeading().

◆ UI_layout_introspect()

const char * UI_layout_introspect ( uiLayout * layout)

Evaluate layout items as a Python dictionary.

Definition at line 6440 of file interface_layout.cc.

References BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_new(), result, and ui_layout_introspect_items().

Referenced by bpy_rna_uilayout_introspect().

◆ ui_layout_introspect_button()

◆ ui_layout_introspect_items()

◆ ui_layout_is_radial()

BLI_INLINE bool ui_layout_is_radial ( const uiLayout * layout)

◆ ui_layout_list_set_labels_active()

void ui_layout_list_set_labels_active ( uiLayout * layout)

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

Definition at line 5183 of file interface_layout.cc.

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

Referenced by ui_layout_list_set_labels_active(), and ui_template_list_layout_draw().

◆ ui_layout_remove_but()

◆ ui_layout_replace_but_ptr()

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

Definition at line 6019 of file interface_layout.cc.

References uiButtonItem::but, and ui_layout_find_button_item().

Referenced by ui_but_change_type().

◆ ui_layout_variable_size()

static bool ui_layout_variable_size ( uiLayout * layout)
static

◆ ui_layout_vary_direction()

static int ui_layout_vary_direction ( uiLayout * layout)
static

◆ ui_litem_estimate_absolute()

static void ui_litem_estimate_absolute ( uiLayout * litem)
static

◆ ui_litem_estimate_box()

static void ui_litem_estimate_box ( uiLayout * litem)
static

◆ ui_litem_estimate_column()

◆ ui_litem_estimate_column_flow()

◆ ui_litem_estimate_grid_flow()

◆ ui_litem_estimate_overlap()

static void ui_litem_estimate_overlap ( uiLayout * litem)
static

Definition at line 4903 of file interface_layout.cc.

References uiLayout::h, uiLayout::items, ui_item_size(), and uiLayout::w.

Referenced by ui_item_estimate().

◆ ui_litem_estimate_panel_body()

static void ui_litem_estimate_panel_body ( uiLayout * litem)
static

Definition at line 4221 of file interface_layout.cc.

References ui_litem_estimate_column().

Referenced by ui_item_estimate().

◆ ui_litem_estimate_panel_header()

◆ ui_litem_estimate_root()

static void ui_litem_estimate_root ( uiLayout * )
static

Definition at line 4151 of file interface_layout.cc.

Referenced by ui_item_estimate().

◆ ui_litem_estimate_row()

◆ ui_litem_estimate_split()

static void ui_litem_estimate_split ( uiLayout * litem)
static

Definition at line 4852 of file interface_layout.cc.

References uiItem::flag, and ui_litem_estimate_row().

Referenced by ui_item_estimate().

◆ ui_litem_grid_flow_compute()

◆ ui_litem_init_from_parent()

◆ ui_litem_layout_absolute()

static void ui_litem_layout_absolute ( uiLayout * litem)
static

◆ ui_litem_layout_box()

◆ ui_litem_layout_column()

◆ ui_litem_layout_column_flow()

◆ ui_litem_layout_grid_flow()

◆ ui_litem_layout_overlap()

static void ui_litem_layout_overlap ( uiLayout * litem)
static

◆ ui_litem_layout_panel_body()

◆ ui_litem_layout_panel_header()

◆ ui_litem_layout_radial()

◆ ui_litem_layout_root()

◆ ui_litem_layout_root_radial()

◆ ui_litem_layout_row()

◆ ui_litem_layout_split()

◆ ui_litem_min_width()

static int ui_litem_min_width ( int itemw)
static

Definition at line 3784 of file interface_layout.cc.

References UI_UNIT_X.

Referenced by ui_litem_layout_row().

◆ ui_menu_enumpropname()

static const char * ui_menu_enumpropname ( uiLayout * layout,
PointerRNA * ptr,
PropertyRNA * prop,
int retval )
static

◆ UI_menutype_draw()

◆ UI_paneltype_draw()

void UI_paneltype_draw ( bContext * C,
PanelType * pt,
uiLayout * layout )

Used for popup panels only.

Definition at line 6317 of file interface_layout.cc.

References uiLayout::context, CTX_store_set(), and ui_paneltype_draw_impl().

Referenced by ui_item_paneltype_func(), and UI_popover_panel_invoke().

◆ ui_paneltype_draw_impl()

◆ ui_rna_collection_search_arg_free_fn()

static void ui_rna_collection_search_arg_free_fn ( void * ptr)
static

◆ ui_text_icon_width()

static int ui_text_icon_width ( uiLayout * layout,
const char * name,
const int icon,
const bool compact )
static

◆ ui_text_icon_width_ex()

◆ uiItemBooleanO()

◆ uiItemDecoratorR()

void uiItemDecoratorR ( uiLayout * layout,
PointerRNA * ptr,
const char * propname,
int index )

Insert a decorator item for a button with the same property as prop. To force inserting a blank dummy element, NULL can be passed for ptr and propname.

Definition at line 3175 of file interface_layout.cc.

References ptr, RNA_struct_find_property(), RNA_struct_identifier(), RNA_warning, PointerRNA::type, ui_item_disabled(), and uiItemDecoratorR_prop().

Referenced by blender::add_attribute_search_or_value_buttons(), data_panel_draw(), panel_draw(), panel_draw(), template_search_buttons(), blender::ed::space_node::ui_node_draw_input(), and uiTemplateCacheFileTimeSettings().

◆ uiItemDecoratorR_prop()

◆ uiItemEnumO()

◆ uiItemEnumO_ptr()

◆ uiItemEnumO_string()

◆ uiItemEnumO_value()

void uiItemEnumO_value ( uiLayout * layout,
const char * name,
int icon,
const char * opname,
const char * propname,
int value )

◆ uiItemEnumR()

void uiItemEnumR ( uiLayout * layout,
const char * name,
int icon,
PointerRNA * ptr,
const char * propname,
int value )

◆ uiItemEnumR_prop()

void uiItemEnumR_prop ( uiLayout * layout,
const char * name,
int icon,
PointerRNA * ptr,
PropertyRNA * prop,
int value )

◆ uiItemEnumR_string()

void uiItemEnumR_string ( uiLayout * layout,
PointerRNA * ptr,
const char * propname,
const char * value,
const char * name,
int icon )

◆ uiItemEnumR_string_prop()

◆ uiItemFloatO()

void uiItemFloatO ( uiLayout * layout,
const char * name,
int icon,
const char * opname,
const char * propname,
float value )

◆ uiItemFullO()

◆ uiItemFullO_ptr()

◆ uiItemFullO_ptr_ex()

◆ uiItemFullOMenuHold_ptr()

void uiItemFullOMenuHold_ptr ( uiLayout * layout,
wmOperatorType * ot,
const char * name,
int icon,
IDProperty * properties,
const wmOperatorCallContext context,
const eUI_Item_Flag flag,
const char * menu_id,
PointerRNA * r_opptr )

◆ uiItemFullR()

void uiItemFullR ( uiLayout * layout,
PointerRNA * ptr,
PropertyRNA * prop,
int index,
int value,
eUI_Item_Flag flag,
const char * name,
int icon,
const char * placeholder )

Definition at line 2073 of file interface_layout.cc.

References uiLayout::activate_init, BLI_assert, BLI_insertlinkafter(), BLI_remlink(), uiLayoutRoot::block, uiBlock::buttons, CTX_data_main(), PointerRNA::data, uiBut::drawflag, ED_id_rename(), ELEM, uiBut::emboss, uiLayout::emboss, uiBlock::evil_C, ListBase::first, flag, uiBlock::flag, uiItem::flag, uiBut::icon, ListBase::last, len, max_ii(), NA_RENAME, NC_ID, uiBut::next, PointerRNA::owner_id, uiButNumber::precision, uiButNumberSlider::precision, PROP_BOOLEAN, PROP_ENUM, PROP_ENUM_FLAG, PROP_FLOAT, PROP_ICONS_CONSECUTIVE, PROP_INT, PROP_POINTER, PROP_STRING, PROP_STRING_SEARCH_SUGGESTION, ptr, uiLayout::redalert, RNA_ENUM_VALUE, RNA_NO_INDEX, RNA_property_array_check(), RNA_property_array_item_char(), RNA_property_array_length(), RNA_property_boolean_get(), RNA_property_boolean_get_index(), RNA_property_enum_get(), RNA_property_flag(), RNA_property_string_search_flag(), RNA_property_type(), RNA_property_ui_icon(), RNA_property_ui_name(), RNA_struct_name_property(), uiBut::rnaindex, uiBut::rnapoin, uiBut::rnaprop, uiLayout::root, uiLayout::space, uiButNumber::step_size, uiButNumberSlider::step_size, str, uiBut::str, STRNCPY_RLEN, PointerRNA::type, uiBut::type, uiLayoutRoot::type, UI_block_layout_set_current(), UI_BLOCK_LIST_ITEM, ui_block_new_button_group(), UI_BTYPE_CHECKBOX, UI_BTYPE_CHECKBOX_N, UI_BTYPE_ICON_TOGGLE, UI_BTYPE_ICON_TOGGLE_N, UI_BTYPE_LABEL, UI_BTYPE_NUM, UI_BTYPE_NUM_SLIDER, UI_BTYPE_ROW, UI_BTYPE_TEXT, UI_BTYPE_TOGGLE, UI_BUT2_FORCE_SEMI_MODAL_ACTIVE, UI_BUT_ACTIVATE_ON_INIT, ui_but_add_search(), ui_but_change_type(), UI_BUT_CHECKBOX_INVERT, UI_but_flag2_enable(), UI_but_flag_enable(), UI_but_func_rename_full_set(), UI_BUT_LIST_ITEM, UI_but_placeholder_set(), UI_BUT_REDALERT, UI_BUT_TEXT_RIGHT, ui_def_but_icon_clear(), UI_EMBOSS_NONE, UI_EMBOSS_NONE_OR_STATUS, ui_item_array(), ui_item_enum_expand(), UI_ITEM_INSIDE_PROP_SEP, ui_item_name_add_colon(), UI_ITEM_PROP_DECORATE, UI_ITEM_PROP_DECORATE_NO_PAD, UI_ITEM_PROP_SEP, UI_ITEM_PROP_SEP_DIVIDE, ui_item_prop_split_layout_hack(), UI_ITEM_R_CHECKBOX_INVERT, UI_ITEM_R_COMPACT, UI_ITEM_R_EXPAND, UI_ITEM_R_FORCE_BLANK_DECORATE, UI_ITEM_R_ICON_NEVER, UI_ITEM_R_ICON_ONLY, UI_ITEM_R_NO_BG, UI_ITEM_R_SLIDER, UI_ITEM_R_SPLIT_EMPTY_NAME, UI_ITEM_R_TEXT_BUT_FORCE_SEMI_MODAL_ACTIVE, UI_ITEM_R_TOGGLE, ui_item_rna_is_expand(), ui_item_rna_size(), ui_item_with_label(), ui_layout_heading_find(), ui_layout_heading_label_add(), UI_LAYOUT_HORIZONTAL, UI_LAYOUT_MENU, UI_LAYOUT_PIEMENU, UI_MAX_DRAW_STR, UI_MAX_NAME_STR, UI_UNIT_Y, uiDefAutoButR(), uiDefBut(), uiDefButR_prop(), uiDefIconButR_prop(), uiDefIconTextButR_prop(), uiItemDecoratorR_prop(), uiLayoutColumn(), uiLayoutGetLocalDir(), uiLayoutRow(), uiLayoutSplit(), w(), and WM_main_add_notifier().

Referenced by blur_panel_draw(), blur_panel_draw(), CurveProfile_buttons_layout(), blender::nodes::draw_common_bake_settings(), draw_export_properties(), generator_panel_draw(), blender::intersection_panel_draw(), blender::material_mask_panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), screen_user_menu_draw(), blender::ed::space_node::std_node_socket_draw(), template_keymap_item_properties(), UI_pie_menu_invoke_from_rna_enum(), uiDefAutoButsRNA(), uiItemEnumR(), uiItemEnumR_prop(), uiItemEnumR_string_prop(), uiItemFullR_with_menu(), uiItemFullR_with_popover(), uiItemR(), uilist_draw_item_default(), uiTemplateAnyID(), and uiTemplateAssetView().

◆ uiItemFullR_with_menu()

◆ uiItemFullR_with_popover()

void uiItemFullR_with_popover ( uiLayout * layout,
PointerRNA * ptr,
PropertyRNA * prop,
int index,
int value,
eUI_Item_Flag flag,
const char * name,
int icon,
const char * panel_type )

◆ uiItemIntO()

◆ uiItemL()

void uiItemL ( uiLayout * layout,
const char * name,
int icon )

Definition at line 3339 of file interface_layout.cc.

References uiItemL_().

Referenced by blender::add_attribute_search_or_value_buttons(), blender::ed::geometry::add_attribute_search_or_value_buttons(), blender::ui::BasicTreeViewItem::add_label(), blender::ed::space_node::add_root_catalogs_draw(), blender::bake_panel_draw(), block_create__close_file_dialog(), block_create_autorun_warning(), block_create_gpu_backend_fallback(), block_create_opengl_usage_warning(), block_create_save_file_overwrite_dialog(), blender::ed::asset::shelf::AssetCatalogSelectorTree::Item::build_row(), blender::ed::spreadsheet::CurvesDomainViewItem::build_row(), blender::ed::spreadsheet::CurvesViewItem::build_row(), blender::ed::spreadsheet::GreasePencilLayerCurvesDomainViewItem::build_row(), blender::ed::spreadsheet::GreasePencilLayersViewItem::build_row(), blender::ed::spreadsheet::GreasePencilLayerViewItem::build_row(), blender::ed::spreadsheet::GreasePencilViewItem::build_row(), blender::ed::spreadsheet::InstanceReferenceViewItem::build_row(), blender::ed::spreadsheet::InstancesViewItem::build_row(), blender::ed::spreadsheet::MeshDomainViewItem::build_row(), blender::ed::spreadsheet::MeshViewItem::build_row(), blender::ed::spreadsheet::PointCloudViewItem::build_row(), blender::ed::spreadsheet::PointsViewItem::build_row(), blender::ed::spreadsheet::RootGeometryViewItem::build_row(), blender::ed::spreadsheet::VolumeGridsViewItem::build_row(), blender::ui::bonecollections::BoneCollectionItem::build_row(), buttons_panel_context_draw(), blender::ed::geometry::catalog_assets_draw_unassigned(), blender::chaining_panel_draw(), blender::ed::object::collection_exporter_menu_draw(), blender::composition_panel_draw(), draw_constraint_header(), draw_export_controls(), blender::draw_interface_panel_content(), blender::draw_named_attributes_panel(), blender::ed::space_node::draw_node_socket_name_editable(), blender::draw_property_for_output_socket(), blender::draw_property_for_socket(), blender::ed::geometry::draw_property_for_socket(), blender::draw_warnings(), driver_dvar_invalid_name_query_cb(), blender::ed::sculpt_paint::dyntopo::dyntopo_warning_popup(), blender::edge_types_panel_draw(), blender::face_mark_panel_draw(), blender::face_mark_panel_draw_header(), file_overwrite_detailed_info_show(), fmodifier_panel_header(), generator_panel_draw(), graph_draw_driven_property_panel(), graph_draw_driver_settings_panel(), graph_panel_drivers_popover(), graph_panel_key_properties(), graph_panel_properties(), image_new_draw(), menu_add_shortcut(), menu_change_shortcut(), metadata_panel_draw_field(), modifier_panel_end(), nla_panel_animdata(), nla_panel_stripname(), blender::ed::space_node::node_buts_image_user(), blender::nodes::node_composite_blur_cc::node_composit_buts_blur(), blender::nodes::node_composite_channel_matte_cc::node_composit_buts_channel_matte(), blender::nodes::node_composite_color_spill_cc::node_composit_buts_color_spill(), blender::nodes::node_composite_colorbalance_cc::node_composit_buts_colorbalance(), blender::nodes::node_composite_colorcorrection_cc::node_composit_buts_colorcorrection(), blender::nodes::node_composite_colorcorrection_cc::node_composit_buts_colorcorrection_ex(), blender::nodes::node_composite_convert_color_space_cc::node_composit_buts_convert_colorspace(), blender::ed::space_node::node_composit_buts_cryptomatte(), blender::ed::space_node::node_composit_buts_cryptomatte_legacy(), blender::nodes::node_composite_directionalblur_cc::node_composit_buts_dblur(), blender::nodes::node_composite_defocus_cc::node_composit_buts_defocus(), blender::nodes::node_composite_denoise_cc::node_composit_buts_denoise(), blender::nodes::node_composite_distance_matte_cc::node_composit_buts_distance_matte(), blender::nodes::node_composite_double_edge_mask_cc::node_composit_buts_double_edge_mask(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output_ex(), blender::nodes::node_composite_glare_cc::node_composit_buts_glare(), blender::ed::space_node::node_file_output_socket_draw(), blender::nodes::node_geo_bake_cc::node_layout_ex(), blender::nodes::node_geo_index_switch_cc::node_layout_ex(), blender::nodes::node_geo_simulation_cc::node_layout_ex(), blender::nodes::node_shader_tex_sky_cc::node_shader_buts_tex_sky(), blender::nodes::node_shader_vertex_color_cc::node_shader_buts_vertex_color(), blender::ed::space_node::node_socket_button_label(), blender::ed::space_node::node_socket_undefined_draw(), blender::ed::space_node::node_socket_undefined_interface_draw(), blender::occlusion_panel_draw(), blender::options_light_reference_draw(), blender::options_panel_draw(), blender::ed::outliner::outliner_orphans_purge_ui(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), recent_files_menu_draw(), blender::ed::object::root_catalogs_draw(), screen_user_menu_draw(), shaderfx_panel_end(), shaderfx_panel_header(), blender::ed::spreadsheet::spreadsheet_filter_panel_draw(), blender::ed::spreadsheet::spreadsheet_filter_panel_draw_header(), blender::ed::spreadsheet::spreadsheet_footer_region_draw(), blender::ed::space_node::std_node_socket_draw(), blender::ui::template_breadcrumbs(), template_keymap_item_properties(), template_operator_property_buts_draw_single(), template_texture_user_menu(), ui_def_but_rna__menu(), ui_def_but_rna__menu_type(), ui_def_but_rna__panel_type(), ui_item_enum_expand_exec(), ui_item_menu_hold(), ui_item_with_label(), ui_layout_heading_label_add(), blender::ed::space_node::ui_node_draw_input(), blender::ed::space_node::ui_node_menu_column(), ui_paneltype_draw_impl(), UI_popup_menu_reports(), ui_template_list_layout_draw(), blender::ed::space_node::ui_template_node_link_menu(), ui_template_palette_menu(), uiDefAutoButsRNA(), uiItemsEnumR(), uiItemsFullEnumO_items(), uiLayoutPanel(), uiLayoutPanelProp(), uilist_draw_item_default(), uiTemplateAnyID(), uiTemplateCacheFileProcedural(), uiTemplateEventFromKeymapItem(), uiTemplateImageInfo(), uiTemplateImageSettings(), uiTemplateInputStatus(), uiTemplateInputStatusAzone(), uiTemplateMovieclipInformation(), uiTemplateStatusBarModalItem(), uiTemplateStatusInfo(), uiTemplateTextureUser(), blender::ed::object::unassigned_assets_draw(), v3d_editarmature_buts(), v3d_editmetaball_buts(), v3d_posearmature_buts(), v3d_transform_butsR(), blender::vgroup_panel_draw(), wm_block_dialog_create(), wm_block_insert_unicode_create(), wm_block_splash_create(), and WM_window_modal_keymap_status_draw().

◆ uiItemL_()

◆ uiItemL_ex()

◆ uiItemL_respect_property_split()

uiLayout * uiItemL_respect_property_split ( uiLayout * layout,
const char * text,
int icon )

Helper to add a label using a property split layout if needed. After calling this the active layout will be the one to place the labeled items in. An additional layout may be returned to place decorator buttons in.

Returns
the layout to place decorators in, if UI_ITEM_PROP_SEP is enabled. Otherwise null.

Definition at line 3361 of file interface_layout.cc.

References uiPropertySplitWrapper::decorate_column, uiItem::flag, uiPropertySplitWrapper::label_column, uiPropertySplitWrapper::property_row, UI_block_layout_set_current(), ui_item_name_add_colon(), UI_ITEM_PROP_SEP, UI_MAX_NAME_STR, uiItemL_(), uiItemPropertySplitWrapperCreate(), and uiLayoutGetBlock().

Referenced by graph_panel_key_properties(), template_ID(), template_search_buttons(), ui_item_with_label(), and ui_layout_heading_label_add().

◆ uiItemLDrag()

void uiItemLDrag ( uiLayout * layout,
PointerRNA * ptr,
const char * name,
int icon )

Label icon for dragging.

Definition at line 3383 of file interface_layout.cc.

References PointerRNA::owner_id, ptr, RNA_struct_is_ID(), PointerRNA::type, UI_but_drag_set_id(), and uiItemL_().

Referenced by buttons_panel_context_draw().

◆ uiItemM()

◆ uiItemM_ptr()

◆ uiItemMContents()

◆ uiItemMenuEnumFullO()

void uiItemMenuEnumFullO ( uiLayout * layout,
const bContext * C,
const char * opname,
const char * propname,
const char * name,
int icon,
PointerRNA * r_opptr )

◆ uiItemMenuEnumFullO_ptr()

◆ uiItemMenuEnumO()

void uiItemMenuEnumO ( uiLayout * layout,
const bContext * C,
const char * opname,
const char * propname,
const char * name,
int icon )

◆ uiItemMenuEnumR()

void uiItemMenuEnumR ( uiLayout * layout,
PointerRNA * ptr,
const char * propname,
const char * name,
int icon )

◆ uiItemMenuEnumR_prop()

◆ uiItemMenuF()

◆ uiItemMenuFN()

void uiItemMenuFN ( uiLayout * layout,
const char * name,
int icon,
uiMenuCreateFunc func,
void * argN )

Version of uiItemMenuF that free's argN.

Definition at line 3528 of file interface_layout.cc.

References ui_item_menu().

Referenced by workspace_add_invoke().

◆ uiItemO()

void uiItemO ( uiLayout * layout,
const char * name,
int icon,
const char * opname )

Definition at line 1888 of file interface_layout.cc.

References uiLayoutRoot::opcontext, uiLayout::root, UI_ITEM_NONE, and uiItemFullO().

Referenced by blender::bake_panel_draw(), blender::ed::asset_browser::AssetCatalogTreeViewItem::build_context_menu(), buttons_panel_context_draw(), colorband_tools_fn(), constraint_ops_extra_draw(), blender::nodes::node_geo_bake_cc::draw_bake_items(), draw_constraint_header(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), ED_screens_header_tools_menu_create(), ED_screens_region_flip_menu_create(), file_panel_asset_catalog_buttons_draw(), file_panel_execution_cancel_button(), file_panel_execution_execute_button(), generate_panel_draw(), gpencil_shaderfx_ops_extra_draw(), graph_draw_driver_settings_panel(), graph_panel_cursor(), graph_panel_drivers_popover(), graph_panel_modifiers(), blender::ed::asset::shelf::library_selector_draw(), modifier_ops_extra_draw(), modifier_panel_header(), nla_panel_actclip(), nla_panel_modifiers(), blender::ed::space_node::node_composit_buts_cryptomatte_legacy_ex(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output_ex(), blender::nodes::node_geo_attribute_capture_cc::node_layout_ex(), blender::nodes::node_geo_foreach_geometry_element_cc::node_layout_ex(), blender::nodes::node_geo_index_switch_cc::node_layout_ex(), blender::nodes::node_geo_menu_switch_cc::node_layout_ex(), blender::nodes::node_geo_repeat_cc::node_layout_ex(), blender::nodes::node_shader_script_cc::node_shader_buts_script(), override_idtemplate_menu_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), blender::ed::object::parent_set_invoke_menu(), recent_files_menu_draw(), screen_area_menu_items(), shaderfx_panel_header(), shape_panel_draw(), blender::ed::spreadsheet::spreadsheet_row_filters_layout(), subdivisions_panel_draw(), ui_popup_context_menu_for_button(), uiTemplateAssetView(), uiTemplateCacheFile(), uiTemplateCacheFileLayers(), uiTemplateCollectionExporters(), uiTemplateImage(), uiTemplateMovieClip(), uiTemplateOperatorRedoProperties(), uiTemplateStatusInfo(), and workspace_add_invoke().

◆ uiItemPointerR()

void uiItemPointerR ( uiLayout * layout,
PointerRNA * ptr,
const char * propname,
PointerRNA * searchptr,
const char * searchpropname,
const char * name,
int icon )

Definition at line 2945 of file interface_layout.cc.

References ptr, RNA_struct_find_property(), RNA_struct_identifier(), RNA_warning, PointerRNA::type, and uiItemPointerR_prop().

Referenced by blender::modifier::greasepencil::draw_layer_filter_settings(), blender::modifier::greasepencil::draw_material_filter_settings(), blender::draw_property_for_socket(), blender::ed::geometry::draw_property_for_socket(), blender::modifier::greasepencil::draw_vertex_group_settings(), edbm_blend_from_shape_ui(), graph_panel_driverVar__locDiff(), graph_panel_driverVar__rotDiff(), graph_panel_driverVar__transChan(), layers_panel_draw(), modifier_vgroup_ui(), blender::nodes::node_composite_keyingscreen_cc::node_composit_buts_keyingscreen(), blender::nodes::node_composite_planetrackdeform_cc::node_composit_buts_planetrackdeform(), blender::nodes::node_composite_trackpos_cc::node_composit_buts_trackpos(), blender::nodes::node_shader_normal_map_cc::node_shader_buts_normal_map(), blender::nodes::node_shader_tangent_cc::node_shader_buts_tangent(), blender::nodes::node_shader_tex_pointdensity_cc::node_shader_buts_tex_pointdensity(), blender::nodes::node_shader_uvmap_cc::node_shader_buts_uvmap(), blender::nodes::node_shader_vertex_color_cc::node_shader_buts_vertex_color(), blender::panel_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), texture_panel_draw(), texture_panel_draw(), vertex_group_panel_draw(), blender::vgroup_panel_draw(), and weightvg_ui_common().

◆ uiItemPointerR_prop()

◆ uiItemPopoverPanel()

void uiItemPopoverPanel ( uiLayout * layout,
const bContext * C,
const char * panel_type,
const char * name,
int icon )

◆ uiItemPopoverPanel_ptr()

◆ uiItemPopoverPanelFromGroup()

void uiItemPopoverPanelFromGroup ( uiLayout * layout,
bContext * C,
int space_id,
int region_id,
const char * context,
const char * category )

◆ uiItemProgressIndicator()

◆ uiItemPropertySplitWrapperCreate()

uiPropertySplitWrapper uiItemPropertySplitWrapperCreate ( uiLayout * parent_layout)

Normally, we handle the split layout in uiItemFullR(), but there are other cases where the logic is needed. Ideally, uiItemFullR() could just call this, but it currently has too many special needs.

The returned #uiPropertySplitWrapper.decorator_column may be null when decorators are disabled (uiLayoutGetPropDecorate() returns false).

Definition at line 3344 of file interface_layout.cc.

References uiLayout::alignment, uiPropertySplitWrapper::decorate_column, uiPropertySplitWrapper::label_column, uiPropertySplitWrapper::property_row, UI_ITEM_PROP_SEP_DIVIDE, ui_item_prop_split_layout_hack(), UI_LAYOUT_ALIGN_RIGHT, uiLayoutColumn(), uiLayoutGetPropDecorate(), uiLayoutRow(), and uiLayoutSplit().

Referenced by blender::ed::space_node::ui_node_draw_input(), and uiItemL_respect_property_split().

◆ uiItemR()

void uiItemR ( uiLayout * layout,
PointerRNA * ptr,
const char * propname,
const eUI_Item_Flag flag,
const char * name,
int icon )

Definition at line 2536 of file interface_layout.cc.

References flag, ptr, RNA_NO_INDEX, RNA_struct_find_property(), RNA_struct_identifier(), RNA_warning, PointerRNA::type, ui_item_disabled(), and uiItemFullR().

Referenced by blender::add_attribute_search_button(), blender::add_attribute_search_or_value_buttons(), blender::ed::geometry::add_attribute_search_or_value_buttons(), advanced_panel_draw(), advanced_panel_draw(), advanced_panel_draw(), apply_armature_pose2bones_ui(), blender::ed::asset::shelf::asset_shelf_header_draw(), axis_mapping_panel_draw(), blender::bake_panel_draw(), block_create_autorun_warning(), blur_panel_draw(), blur_panel_draw(), blender::ui::bonecollections::BoneCollectionItem::build_row(), cache_file_layer_item(), caps_panel_draw(), blender::chaining_panel_draw(), clamp_panel_draw(), colorband_buttons_layout(), component_menu(), blender::composition_panel_draw(), constant_offset_draw(), constant_offset_header_draw(), curvemap_buttons_layout(), CurveProfile_buttons_layout(), cycles_panel_draw(), data_panel_draw(), blender::nodes::draw_bake_data_block_list_item(), blender::nodes::node_geo_bake_cc::draw_bake_item(), blender::nodes::node_geo_bake_cc::draw_bake_items(), blender::draw_bake_panel(), blender::nodes::draw_common_bake_settings(), draw_constraint_header(), blender::modifier::greasepencil::draw_custom_curve_settings(), draw_exporter_item(), draw_fill_tile(), blender::ed::space_node::draw_gizmo_pin_icon(), blender::nodes::node_geo_attribute_capture_cc::draw_item(), blender::nodes::node_geo_foreach_geometry_element_cc::draw_item(), blender::modifier::greasepencil::draw_layer_filter_settings(), blender::modifier::greasepencil::draw_material_filter_settings(), blender::nodes::node_geo_menu_switch_cc::draw_menu_switch_item(), blender::ed::space_node::draw_node_socket_name_editable(), blender::draw_property_for_socket(), blender::ed::geometry::draw_property_for_socket(), blender::nodes::node_geo_repeat_cc::draw_repeat_state_item(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), blender::nodes::node_geo_simulation_cc::draw_simulation_state_item(), blender::modifier::greasepencil::draw_vertex_group_settings(), ED_screens_footer_tools_menu_create(), ED_screens_header_tools_menu_create(), ed_screens_statusbar_menu_create(), ED_time_scrub_channel_search_draw(), edbm_bevel_ui(), edbm_blend_from_shape_ui(), edbm_decimate_ui(), edbm_intersect_boolean_ui(), edbm_intersect_ui(), edge_data_panel_draw(), edge_panel_draw(), edge_panel_draw_header(), blender::edge_types_panel_draw(), envelope_panel_draw(), face_corner_panel_draw(), face_corner_panel_draw_header(), face_corner_uv_panel_draw(), face_corner_vcol_panel_draw(), blender::face_mark_panel_draw(), blender::face_mark_panel_draw_header(), face_panel_draw(), face_panel_draw_header(), falloff_panel_draw(), falloff_panel_draw(), falloff_panel_draw(), falloff_panel_draw(), file_panel_asset_catalog_buttons_draw(), fmodifier_frame_range_draw(), fmodifier_frame_range_header_draw(), fmodifier_influence_draw(), fmodifier_panel_header(), fn_generator_panel_draw(), generate_panel_draw(), generator_panel_draw(), blender::ed::geometry::geometry_attribute_convert_ui(), blender::ed::geometry::geometry_color_attribute_add_ui(), blender::ed::geometry::geometry_color_attribute_convert_ui(), geometry_panel_draw(), graph_draw_driver_settings_panel(), graph_panel_cursor(), graph_panel_cursor_header(), graph_panel_driverVar__contextProp(), graph_panel_driverVar__locDiff(), graph_panel_driverVar__rotDiff(), graph_panel_driverVar__transChan(), graph_panel_driverVar_fallback(), graph_panel_key_properties(), graph_panel_properties(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_ui(), blender::ed::greasepencil::grease_pencil_reproject_ui(), image_new_draw(), image_save_as_draw(), blender::intersection_panel_draw(), blender::ed::asset::shelf::library_selector_draw(), limits_panel_draw(), blender::ed::sculpt_paint::mask::mask_from_boundary_ui(), blender::ed::sculpt_paint::mask::mask_from_cavity_ui(), blender::material_mask_panel_draw(), blender::material_mask_panel_draw_header(), materials_panel_draw(), menu_add_shortcut(), menu_change_shortcut(), blender::ed::mesh::set_attribute::mesh_set_attribute_ui(), mix_mode_panel_draw(), modifier_grease_pencil_curve_header_draw(), modifier_ops_extra_draw(), modifier_panel_header(), modifier_vgroup_ui(), nla_panel_actclip(), nla_panel_animated_influence_header(), nla_panel_animated_strip_time(), nla_panel_animated_strip_time_header(), nla_panel_animdata(), nla_panel_evaluation(), nla_panel_properties(), nla_panel_stripname(), blender::ed::space_node::node_buts_combsep_color(), blender::ed::space_node::node_buts_frame_ex(), blender::ed::space_node::node_buts_image_user(), blender::ed::space_node::node_buts_image_views(), blender::ed::space_node::node_buts_math(), blender::ed::space_node::node_buts_mix_rgb(), blender::ed::space_node::node_buts_normal(), blender::nodes::node_shader_output_linestyle_cc::node_buts_output_linestyle(), blender::ed::space_node::node_buts_output_shader(), blender::ed::space_node::node_buts_rgb(), blender::ed::space_node::node_buts_texture(), blender::ed::space_node::node_buts_time(), blender::ed::space_node::node_buts_value(), blender::nodes::node_composite_alpha_over_cc::node_composit_buts_alphaover(), blender::nodes::node_composite_antialiasing_cc::node_composit_buts_antialiasing(), blender::nodes::node_composite_bilateralblur_cc::node_composit_buts_bilateralblur(), blender::nodes::node_composite_blur_cc::node_composit_buts_blur(), blender::nodes::node_composite_bokehblur_cc::node_composit_buts_bokehblur(), blender::nodes::node_composite_bokehimage_cc::node_composit_buts_bokehimage(), blender::nodes::node_composite_boxmask_cc::node_composit_buts_boxmask(), blender::nodes::node_composite_brightness_cc::node_composit_buts_brightcontrast(), blender::nodes::node_composite_channel_matte_cc::node_composit_buts_channel_matte(), blender::nodes::node_composite_chroma_matte_cc::node_composit_buts_chroma_matte(), blender::nodes::node_composite_color_matte_cc::node_composit_buts_color_matte(), blender::nodes::node_composite_color_spill_cc::node_composit_buts_color_spill(), blender::nodes::node_composite_colorbalance_cc::node_composit_buts_colorbalance(), blender::nodes::node_composite_colorbalance_cc::node_composit_buts_colorbalance_ex(), blender::nodes::node_composite_colorcorrection_cc::node_composit_buts_colorcorrection(), blender::nodes::node_composite_colorcorrection_cc::node_composit_buts_colorcorrection_ex(), blender::ed::space_node::node_composit_buts_combsep_color(), blender::nodes::node_composite_composite_cc::node_composit_buts_composite(), blender::nodes::node_composite_convert_color_space_cc::node_composit_buts_convert_colorspace(), blender::nodes::node_composite_crop_cc::node_composit_buts_crop(), blender::ed::space_node::node_composit_buts_cryptomatte(), blender::ed::space_node::node_composit_buts_cryptomatte_legacy(), blender::nodes::node_composite_directionalblur_cc::node_composit_buts_dblur(), blender::nodes::node_composite_defocus_cc::node_composit_buts_defocus(), blender::nodes::node_composite_denoise_cc::node_composit_buts_denoise(), blender::nodes::node_composite_despeckle_cc::node_composit_buts_despeckle(), blender::nodes::node_composite_diff_matte_cc::node_composit_buts_diff_matte(), blender::nodes::node_composite_dilate_cc::node_composit_buts_dilateerode(), blender::nodes::node_composite_distance_matte_cc::node_composit_buts_distance_matte(), blender::nodes::node_composite_double_edge_mask_cc::node_composit_buts_double_edge_mask(), blender::nodes::node_composite_ellipsemask_cc::node_composit_buts_ellipsemask(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output_ex(), blender::nodes::node_composite_filter_cc::node_composit_buts_filter(), blender::nodes::node_composite_flip_cc::node_composit_buts_flip(), blender::nodes::node_composite_glare_cc::node_composit_buts_glare(), blender::nodes::node_composite_id_mask_cc::node_composit_buts_id_mask(), blender::nodes::node_composite_inpaint_cc::node_composit_buts_inpaint(), blender::nodes::node_composite_invert_cc::node_composit_buts_invert(), blender::nodes::node_composite_keying_cc::node_composit_buts_keying(), blender::nodes::node_composite_keyingscreen_cc::node_composit_buts_keyingscreen(), blender::nodes::node_composite_kuwahara_cc::node_composit_buts_kuwahara(), blender::nodes::node_composite_lensdist_cc::node_composit_buts_lensdist(), blender::nodes::node_composite_luma_matte_cc::node_composit_buts_luma_matte(), blender::nodes::node_composite_map_range_cc::node_composit_buts_map_range(), blender::nodes::node_composite_map_uv_cc::node_composit_buts_map_uv(), blender::nodes::node_composite_map_value_cc::node_composit_buts_map_value(), blender::nodes::node_composite_mask_cc::node_composit_buts_mask(), blender::nodes::node_composite_moviedistortion_cc::node_composit_buts_moviedistortion(), blender::nodes::node_composite_pixelate_cc::node_composit_buts_pixelate(), blender::nodes::node_composite_planetrackdeform_cc::node_composit_buts_planetrackdeform(), blender::nodes::node_composite_premulkey_cc::node_composit_buts_premulkey(), blender::nodes::node_composite_rotate_cc::node_composit_buts_rotate(), blender::nodes::node_composite_scale_cc::node_composit_buts_scale(), blender::nodes::node_composite_setalpha_cc::node_composit_buts_set_alpha(), blender::nodes::node_composite_split_cc::node_composit_buts_split(), blender::nodes::node_composite_stabilize2d_cc::node_composit_buts_stabilize2d(), blender::nodes::node_composite_sunbeams_cc::node_composit_buts_sunbeams(), blender::nodes::node_composite_switch_cc::node_composit_buts_switch(), blender::nodes::node_composite_tonemap_cc::node_composit_buts_tonemap(), blender::nodes::node_composite_trackpos_cc::node_composit_buts_trackpos(), blender::nodes::node_composite_transform_cc::node_composit_buts_transform(), blender::nodes::node_composite_translate_cc::node_composit_buts_translate(), blender::nodes::node_composite_vec_blur_cc::node_composit_buts_vecblur(), blender::nodes::node_composite_levels_cc::node_composit_buts_view_levels(), blender::nodes::node_composite_viewer_cc::node_composit_buts_viewer(), blender::nodes::node_composite_render_layer_cc::node_composit_buts_viewlayers(), blender::ed::space_node::node_composit_buts_ycc(), blender::nodes::node_composite_zcombine_cc::node_composit_buts_zcombine(), blender::nodes::node_shader_bsdf_principled_cc::node_declare(), blender::nodes::node_fn_align_euler_to_vector_cc::node_layout(), blender::nodes::node_fn_align_rotation_to_vector_cc::node_layout(), blender::nodes::node_fn_axes_to_rotation_cc::node_layout(), blender::nodes::node_fn_boolean_math_cc::node_layout(), blender::nodes::node_fn_combine_color_cc::node_layout(), blender::nodes::node_fn_compare_cc::node_layout(), blender::nodes::node_fn_float_to_int_cc::node_layout(), blender::nodes::node_fn_hash_value_cc::node_layout(), blender::nodes::node_fn_input_bool_cc::node_layout(), blender::nodes::node_fn_input_color_cc::node_layout(), blender::nodes::node_fn_input_int_cc::node_layout(), blender::nodes::node_fn_input_rotation_cc::node_layout(), blender::nodes::node_fn_input_string_cc::node_layout(), blender::nodes::node_fn_input_vector_cc::node_layout(), blender::nodes::node_fn_integer_math_cc::node_layout(), blender::nodes::node_fn_random_value_cc::node_layout(), blender::nodes::node_fn_rotate_euler_cc::node_layout(), blender::nodes::node_fn_rotate_rotation_cc::node_layout(), blender::nodes::node_fn_separate_color_cc::node_layout(), blender::nodes::node_fn_value_to_string_cc::node_layout(), blender::nodes::node_geo_accumulate_field_cc::node_layout(), blender::nodes::node_geo_attribute_capture_cc::node_layout(), blender::nodes::node_geo_attribute_domain_size_cc::node_layout(), blender::nodes::node_geo_attribute_statistic_cc::node_layout(), blender::nodes::node_geo_bake_cc::node_layout(), blender::nodes::node_geo_blur_attribute_cc::node_layout(), blender::nodes::node_geo_boolean_cc::node_layout(), blender::nodes::node_geo_collection_info_cc::node_layout(), blender::nodes::node_geo_curve_fill_cc::node_layout(), blender::nodes::node_geo_curve_fillet_cc::node_layout(), blender::nodes::node_geo_curve_handle_type_selection_cc::node_layout(), blender::nodes::node_geo_curve_primitive_arc_cc::node_layout(), blender::nodes::node_geo_curve_primitive_bezier_segment_cc::node_layout(), blender::nodes::node_geo_curve_primitive_circle_cc::node_layout(), blender::nodes::node_geo_curve_primitive_line_cc::node_layout(), blender::nodes::node_geo_curve_primitive_quadrilateral_cc::node_layout(), blender::nodes::node_geo_curve_resample_cc::node_layout(), blender::nodes::node_geo_curve_sample_cc::node_layout(), blender::nodes::node_geo_curve_set_handle_type_cc::node_layout(), blender::nodes::node_geo_curve_spline_type_cc::node_layout(), blender::nodes::node_geo_curve_to_points_cc::node_layout(), blender::nodes::node_geo_curve_trim_cc::node_layout(), blender::nodes::node_geo_delete_geometry_cc::node_layout(), blender::nodes::node_geo_distribute_points_in_grid_cc::node_layout(), blender::nodes::node_geo_distribute_points_in_volume_cc::node_layout(), blender::nodes::node_geo_distribute_points_on_faces_cc::node_layout(), blender::nodes::node_geo_duplicate_elements_cc::node_layout(), blender::nodes::node_geo_evaluate_at_index_cc::node_layout(), blender::nodes::node_geo_evaluate_on_domain_cc::node_layout(), blender::nodes::node_geo_extrude_mesh_cc::node_layout(), blender::nodes::node_geo_foreach_geometry_element_cc::input_node::node_layout(), blender::nodes::node_geo_get_named_grid_cc::node_layout(), blender::nodes::node_geo_gizmo_dial_cc::node_layout(), blender::nodes::node_geo_gizmo_linear_cc::node_layout(), blender::nodes::node_geo_image_texture_cc::node_layout(), blender::nodes::node_geo_index_switch_cc::node_layout(), blender::nodes::node_geo_input_material_cc::node_layout(), blender::nodes::node_geo_input_named_attribute_cc::node_layout(), blender::nodes::node_geo_menu_switch_cc::node_layout(), blender::nodes::node_geo_merge_by_distance_cc::node_layout(), blender::nodes::node_geo_merge_layers_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_circle_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_cylinder_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_line_cc::node_layout(), blender::nodes::node_geo_mesh_to_points_cc::node_layout(), blender::nodes::node_geo_mesh_to_volume_cc::node_layout(), blender::nodes::node_geo_object_info_cc::node_layout(), blender::nodes::node_geo_points_to_volume_cc::node_layout(), blender::nodes::node_geo_proximity_cc::node_layout(), blender::nodes::node_geo_raycast_cc::node_layout(), blender::nodes::node_geo_remove_attribute_cc::node_layout(), blender::nodes::node_geo_sample_grid_cc::node_layout(), blender::nodes::node_geo_sample_grid_index_cc::node_layout(), blender::nodes::node_geo_sample_index_cc::node_layout(), blender::nodes::node_geo_sample_nearest_cc::node_layout(), blender::nodes::node_geo_sample_nearest_surface_cc::node_layout(), blender::nodes::node_geo_sample_uv_surface_cc::node_layout(), blender::nodes::node_geo_scale_elements_cc::node_layout(), blender::nodes::node_geo_sdf_grid_boolean_cc::node_layout(), blender::nodes::node_geo_separate_geometry_cc::node_layout(), blender::nodes::node_geo_set_curve_handles_cc::node_layout(), blender::nodes::node_geo_set_curve_normal_cc::node_layout(), blender::nodes::node_geo_set_shade_smooth_cc::node_layout(), blender::nodes::node_geo_sort_elements_cc::node_layout(), blender::nodes::node_geo_split_to_instances_cc::node_layout(), blender::nodes::node_geo_store_named_attribute_cc::node_layout(), blender::nodes::node_geo_store_named_grid_cc::node_layout(), blender::nodes::node_geo_string_to_curves_cc::node_layout(), blender::nodes::node_geo_subdivision_surface_cc::node_layout(), blender::nodes::node_geo_switch_cc::node_layout(), blender::nodes::node_geo_tool_active_element_cc::node_layout(), blender::nodes::node_geo_tool_set_selection_cc::node_layout(), blender::nodes::node_geo_transform_geometry_cc::node_layout(), blender::nodes::node_geo_triangulate_cc::node_layout(), blender::nodes::node_geo_uv_unwrap_cc::node_layout(), blender::nodes::node_geo_viewer_cc::node_layout(), blender::nodes::node_geo_volume_to_mesh_cc::node_layout(), blender::nodes::node_geo_warning_cc::node_layout(), blender::nodes::node_geo_attribute_capture_cc::node_layout_ex(), blender::nodes::node_geo_bake_cc::node_layout_ex(), blender::nodes::node_geo_distribute_points_on_faces_cc::node_layout_ex(), blender::nodes::node_geo_foreach_geometry_element_cc::node_layout_ex(), blender::nodes::node_geo_gizmo_transform_cc::node_layout_ex(), blender::nodes::node_geo_menu_switch_cc::node_layout_ex(), blender::nodes::node_geo_repeat_cc::node_layout_ex(), blender::nodes::node_geo_viewer_cc::node_layout_ex(), blender::nodes::node_shader_ambient_occlusion_cc::node_shader_buts_ambient_occlusion(), blender::nodes::node_shader_attribute_cc::node_shader_buts_attribute(), blender::nodes::node_shader_bevel_cc::node_shader_buts_bevel(), blender::nodes::node_shader_bump_cc::node_shader_buts_bump(), blender::nodes::node_shader_clamp_cc::node_shader_buts_clamp(), blender::ed::space_node::node_shader_buts_displacement(), blender::ed::space_node::node_shader_buts_glossy(), blender::nodes::node_shader_bsdf_glossy_cc::node_shader_buts_glossy(), blender::nodes::node_shader_bsdf_hair_cc::node_shader_buts_hair(), blender::nodes::node_shader_ies_light_cc::node_shader_buts_ies(), blender::nodes::node_shader_map_range_cc::node_shader_buts_map_range(), blender::nodes::node_shader_mapping_cc::node_shader_buts_mapping(), blender::nodes::node_shader_bsdf_metallic_cc::node_shader_buts_metallic(), blender::nodes::node_shader_normal_map_cc::node_shader_buts_normal_map(), blender::nodes::node_shader_output_aov_cc::node_shader_buts_output_aov(), blender::nodes::node_shader_bsdf_hair_principled_cc::node_shader_buts_principled_hair(), blender::ed::space_node::node_shader_buts_scatter(), blender::nodes::node_shader_volume_scatter_cc::node_shader_buts_scatter(), blender::nodes::node_shader_script_cc::node_shader_buts_script(), blender::nodes::node_shader_script_cc::node_shader_buts_script_ex(), blender::nodes::node_shader_bsdf_sheen_cc::node_shader_buts_sheen(), blender::nodes::node_shader_subsurface_scattering_cc::node_shader_buts_subsurface(), blender::nodes::node_shader_tangent_cc::node_shader_buts_tangent(), blender::nodes::node_shader_tex_brick_cc::node_shader_buts_tex_brick(), blender::nodes::node_shader_tex_coord_cc::node_shader_buts_tex_coord(), blender::ed::space_node::node_shader_buts_tex_environment(), blender::ed::space_node::node_shader_buts_tex_environment_ex(), blender::nodes::node_shader_tex_gabor_cc::node_shader_buts_tex_gabor(), blender::nodes::node_shader_tex_gradient_cc::node_shader_buts_tex_gradient(), blender::ed::space_node::node_shader_buts_tex_image(), blender::nodes::node_shader_tex_magic_cc::node_shader_buts_tex_magic(), blender::nodes::node_shader_tex_noise_cc::node_shader_buts_tex_noise(), blender::nodes::node_shader_tex_pointdensity_cc::node_shader_buts_tex_pointdensity(), blender::nodes::node_shader_tex_sky_cc::node_shader_buts_tex_sky(), blender::nodes::node_shader_tex_voronoi_cc::node_shader_buts_tex_voronoi(), blender::nodes::node_shader_tex_wave_cc::node_shader_buts_tex_wave(), blender::nodes::node_shader_bsdf_toon_cc::node_shader_buts_toon(), blender::nodes::node_shader_uv_along_stroke_cc::node_shader_buts_uvalongstroke(), blender::nodes::node_shader_uvmap_cc::node_shader_buts_uvmap(), blender::nodes::node_shader_vector_math_cc::node_shader_buts_vect_math(), blender::nodes::node_shader_vector_transform_cc::node_shader_buts_vect_transform(), blender::nodes::node_shader_vector_rotate_cc::node_shader_buts_vector_rotate(), blender::nodes::node_shader_vertex_color_cc::node_shader_buts_vertex_color(), blender::nodes::node_shader_tex_white_noise_cc::node_shader_buts_white_noise(), blender::nodes::node_shader_wireframe_cc::node_shader_buts_wireframe(), blender::ed::space_node::node_texture_buts_bricks(), blender::ed::space_node::node_texture_buts_combsep_color(), blender::ed::space_node::node_texture_buts_output(), blender::ed::space_node::node_texture_buts_proc(), noise_panel_draw(), normals_panel_draw(), normals_panel_draw(), blender::ed::object::object_convert_ui(), object_offset_draw(), object_offset_header_draw(), blender::occlusion_panel_draw(), offset_panel_draw(), blender::options_light_reference_draw(), blender::options_panel_draw(), blender::ed::outliner::outliner_orphans_purge_ui(), blender::panel_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), path_panel_draw(), path_panel_draw_header(), blender::ed::asset::shelf::popover_panel_draw(), position_panel_draw(), preferences_extension_repo_add_ui(), profile_panel_draw(), random_panel_draw(), random_panel_header_draw(), relative_offset_draw(), relative_offset_header_draw(), restrictions_panel_draw(), blender::ed::sculpt_paint::color::sculpt_color_filter_ui(), blender::ed::sculpt_paint::filter::sculpt_mesh_ui_exec(), blender::segment_list_item_draw(), blender::ed::curves::select_ends_ui(), blender::ed::curves::select_random_ui(), blender::ed::sculpt_paint::select_random::select_random_ui(), sequencer_split_ui(), blender::ed::curves::set_attribute_ui(), blender::nodes::node_sh_mix_cc::sh_node_mix_layout(), blender::ed::object::shade_auto_smooth_ui(), shaderfx_panel_header(), shading_panel_draw(), solver_options_panel_draw(), blender::ed::spreadsheet::spreadsheet_filter_panel_draw(), blender::ed::spreadsheet::spreadsheet_filter_panel_draw_header(), blender::ed::space_node::std_node_socket_draw(), blender::ed::space_node::std_node_socket_interface_draw(), stepped_panel_draw(), symmetry_panel_draw(), symmetry_panel_header_draw(), texture_paint_add_texture_paint_slot_ui(), texture_panel_draw(), texture_panel_draw(), tile_add_draw(), time_panel_draw(), time_remapping_panel_draw(), transform_panel_draw(), blender::ed::space_node::ui_node_draw_input(), ui_popup_context_menu_for_panel(), uilist_draw_filter_default(), uiTemplateCacheFile(), uiTemplateCacheFileProcedural(), uiTemplateCacheFileTimeSettings(), uiTemplateCacheFileVelocity(), uiTemplateColormanagedViewSettings(), uiTemplateColorspaceSettings(), uiTemplateImage(), uiTemplateImageFormatViews(), uiTemplateImageSettings(), uiTemplateImageStereo3d(), uiTemplateMovieClip(), uiTemplatePaintModeSelection(), uiTemplatePathBuilder(), uiTemplatePreview(), uiTemplateViewsFormat(), unwrap_draw(), uv_pack_islands_ui(), uv_panel_draw(), v3d_editarmature_buts(), v3d_editmetaball_buts(), v3d_transform_butsR(), velocity_panel_draw(), vert_vcol_panel_draw(), vertex_group_panel_draw(), vertex_panel_draw(), vertex_panel_draw_header(), vertex_vgroup_panel_draw(), blender::vgroup_panel_draw(), view3d_panel_vgroup(), wave_header_draw(), wave_panel_draw(), weightvg_ui_common(), wm_clear_recent_files_ui(), wm_open_mainfile_ui(), and wm_stereo3d_set_draw().

◆ uiItemS()

void uiItemS ( uiLayout * layout)

Separator item

Definition at line 3441 of file interface_layout.cc.

References uiItemS_ex().

Referenced by blender::ed::asset::shelf::add_catalog_tabs(), blender::ed::space_node::add_root_catalogs_draw(), blender::ed::asset::shelf::asset_shelf_header_draw(), block_create__close_file_dialog(), block_create_autorun_warning(), block_create_gpu_backend_fallback(), block_create_opengl_usage_warning(), blender::ed::geometry::catalog_assets_draw(), blender::ed::object::catalog_assets_draw(), blender::ed::geometry::catalog_assets_draw_unassigned(), colorband_tools_fn(), constraint_ops_extra_draw(), create_title_button(), draw_constraint_header(), blender::ed::sculpt_paint::dyntopo::dyntopo_warning_popup(), ED_region_header_layout(), ED_screens_footer_tools_menu_create(), ED_screens_header_tools_menu_create(), edbm_bevel_ui(), edbm_intersect_boolean_ui(), edbm_intersect_ui(), file_panel_asset_catalog_buttons_draw(), fmodifier_influence_draw(), fmodifier_panel_header(), geometry_panel_draw(), gpencil_shaderfx_ops_extra_draw(), graph_draw_driver_settings_panel(), graph_panel_drivers_popover(), image_save_as_draw(), insert_key_menu_invoke(), modifier_ops_extra_draw(), modifier_panel_header(), blender::ed::object::move_to_collection_menu_create(), move_to_collection_menu_create(), nla_panel_animdata(), nla_panel_properties(), blender::ed::space_node::node_add_catalog_assets_draw(), blender::nodes::node_composite_directionalblur_cc::node_composit_buts_dblur(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output_ex(), blender::nodes::node_shader_script_cc::node_shader_buts_script_ex(), blender::ed::outliner::outliner_operator_menu(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), recent_files_menu_draw(), blender::ed::object::root_catalogs_draw(), screen_area_menu_items(), screen_area_options_invoke(), screen_user_menu_draw(), sequencer_split_ui(), shaderfx_panel_header(), subdivisions_panel_draw(), template_keymap_item_properties(), ui_def_but_rna__menu(), ui_imageuser_layer_menu(), ui_imageuser_pass_menu(), ui_imageuser_slot_menu(), ui_imageuser_view_menu_multiview(), ui_imageuser_view_menu_rr(), ui_item_enum_expand_exec(), blender::ed::space_node::ui_node_draw_input(), ui_paneltype_draw_impl(), ui_popup_context_menu_for_button(), UI_popup_menu_reports(), blender::ed::object::ui_template_modifier_asset_menu_items(), uiItemsEnumR(), uiItemsFullEnumO_items(), uiTemplateColorPicker(), uiTemplateImage(), uiTemplateImageSettings(), uiTemplatePreview(), blender::ed::object::unassigned_assets_draw(), unwrap_draw(), uv_pack_islands_ui(), wm_block_insert_unicode_create(), wm_block_splash_create(), wm_clear_recent_files_ui(), workspace_add_invoke(), and workspace_add_menu().

◆ uiItemS_ex()

◆ uiItemsAlertBox() [1/2]

uiLayout * uiItemsAlertBox ( uiBlock * block,
const int size,
const eAlertIcon icon )

◆ uiItemsAlertBox() [2/2]

uiLayout * uiItemsAlertBox ( uiBlock * block,
const uiStyle * style,
const int dialog_width,
const eAlertIcon icon,
const int icon_size )

◆ uiItemsEnumO()

◆ uiItemsEnumR()

◆ uiItemsFullEnumO()

◆ uiItemsFullEnumO_items()

◆ uiItemSpacer()

◆ uiItemStringO()

◆ uiItemTabsEnumR_prop()

void uiItemTabsEnumR_prop ( uiLayout * layout,
bContext * C,
PointerRNA * ptr,
PropertyRNA * prop,
PointerRNA * ptr_highlight,
PropertyRNA * prop_highlight,
bool icon_only )

◆ uiLayoutAbsolute()

◆ uiLayoutAbsoluteBlock()

◆ uiLayoutBox()

◆ uiLayoutColumn()

uiLayout * uiLayoutColumn ( uiLayout * layout,
bool align )

Definition at line 5081 of file interface_layout.cc.

References uiLayoutRoot::block, uiStyle::buttonspacey, ITEM_LAYOUT_COLUMN, uiLayout::root, uiLayout::space, uiLayoutRoot::style, uiItem::type, UI_block_layout_set_current(), and ui_litem_init_from_parent().

Referenced by advanced_panel_draw(), advanced_panel_draw(), axis_mapping_panel_draw(), blender::bake_panel_draw(), block_create__close_file_dialog(), block_create_autorun_warning(), block_create_gpu_backend_fallback(), block_create_opengl_usage_warning(), block_create_save_file_overwrite_dialog(), blur_panel_draw(), blur_panel_draw(), blender::ui::TreeViewLayoutBuilder::build_from_tree(), blender::ui::GridViewLayoutBuilder::build_from_view(), blender::ui::TreeViewLayoutBuilder::build_row(), caps_panel_draw(), clamp_panel_draw(), component_menu(), blender::composition_panel_draw(), constant_offset_draw(), constraint_ops_extra_draw(), curvemap_buttons_layout(), cycles_panel_draw(), data_panel_draw(), blender::nodes::draw_bake_button_row(), blender::nodes::node_geo_bake_cc::draw_bake_items(), blender::draw_bake_panel(), blender::nodes::draw_common_bake_settings(), draw_export_properties(), draw_fill_tile(), blender::modifier::greasepencil::draw_layer_filter_settings(), blender::modifier::greasepencil::draw_material_filter_settings(), blender::ed::asset::draw_menu_for_catalog(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), blender::modifier::greasepencil::draw_vertex_group_settings(), ED_screens_header_tools_menu_create(), edbm_bevel_ui(), edbm_decimate_ui(), edge_data_panel_draw(), blender::edge_types_panel_draw(), envelope_panel_draw(), file_overwrite_detailed_info_show(), file_panel_asset_catalog_buttons_draw(), fmodifier_frame_range_draw(), fn_generator_panel_draw(), generate_panel_draw(), generator_panel_draw(), gpencil_shaderfx_ops_extra_draw(), graph_draw_driver_settings_panel(), graph_panel_cursor(), graph_panel_cursor_header(), graph_panel_driverVar__contextProp(), graph_panel_driverVar__locDiff(), graph_panel_driverVar__rotDiff(), graph_panel_driverVar__singleProp(), graph_panel_driverVar__transChan(), graph_panel_key_properties(), graph_panel_properties(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_ui(), hud_panel_operator_redo_draw(), image_new_draw(), image_save_as_draw(), blender::intersection_panel_draw(), layers_panel_draw(), limits_panel_draw(), blender::material_mask_panel_draw(), materials_panel_draw(), blender::ed::mesh::set_attribute::mesh_set_attribute_ui(), nla_panel_actclip(), nla_panel_animated_influence_header(), nla_panel_animated_strip_time_header(), nla_panel_properties(), blender::ed::space_node::node_buts_image_user(), blender::ed::space_node::node_buts_image_views(), blender::ed::space_node::node_buts_mix_rgb(), blender::nodes::node_shader_output_linestyle_cc::node_buts_output_linestyle(), blender::ed::space_node::node_buts_rgb(), blender::ed::space_node::node_buts_time(), blender::nodes::node_composite_alpha_over_cc::node_composit_buts_alphaover(), blender::nodes::node_composite_antialiasing_cc::node_composit_buts_antialiasing(), blender::nodes::node_composite_bilateralblur_cc::node_composit_buts_bilateralblur(), blender::nodes::node_composite_blur_cc::node_composit_buts_blur(), blender::nodes::node_composite_channel_matte_cc::node_composit_buts_channel_matte(), blender::nodes::node_composite_chroma_matte_cc::node_composit_buts_chroma_matte(), blender::nodes::node_composite_color_matte_cc::node_composit_buts_color_matte(), blender::nodes::node_composite_color_spill_cc::node_composit_buts_color_spill(), blender::nodes::node_composite_colorbalance_cc::node_composit_buts_colorbalance(), blender::nodes::node_composite_crop_cc::node_composit_buts_crop(), blender::ed::space_node::node_composit_buts_cryptomatte(), blender::ed::space_node::node_composit_buts_cryptomatte_legacy(), blender::nodes::node_composite_directionalblur_cc::node_composit_buts_dblur(), blender::nodes::node_composite_defocus_cc::node_composit_buts_defocus(), blender::nodes::node_composite_despeckle_cc::node_composit_buts_despeckle(), blender::nodes::node_composite_diff_matte_cc::node_composit_buts_diff_matte(), blender::nodes::node_composite_distance_matte_cc::node_composit_buts_distance_matte(), blender::nodes::node_composite_double_edge_mask_cc::node_composit_buts_double_edge_mask(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output_ex(), blender::nodes::node_composite_invert_cc::node_composit_buts_invert(), blender::nodes::node_composite_keyingscreen_cc::node_composit_buts_keyingscreen(), blender::nodes::node_composite_kuwahara_cc::node_composit_buts_kuwahara(), blender::nodes::node_composite_lensdist_cc::node_composit_buts_lensdist(), blender::nodes::node_composite_luma_matte_cc::node_composit_buts_luma_matte(), blender::nodes::node_composite_map_range_cc::node_composit_buts_map_range(), blender::nodes::node_composite_map_value_cc::node_composit_buts_map_value(), blender::nodes::node_composite_planetrackdeform_cc::node_composit_buts_planetrackdeform(), blender::nodes::node_composite_split_cc::node_composit_buts_split(), blender::nodes::node_composite_tonemap_cc::node_composit_buts_tonemap(), blender::nodes::node_composite_trackpos_cc::node_composit_buts_trackpos(), blender::nodes::node_composite_vec_blur_cc::node_composit_buts_vecblur(), blender::nodes::node_composite_render_layer_cc::node_composit_buts_viewlayers(), blender::nodes::node_composite_zcombine_cc::node_composit_buts_zcombine(), blender::nodes::node_fn_input_bool_cc::node_layout(), blender::nodes::node_fn_input_int_cc::node_layout(), blender::nodes::node_fn_input_rotation_cc::node_layout(), blender::nodes::node_fn_input_vector_cc::node_layout(), blender::nodes::node_geo_bake_cc::node_layout(), blender::nodes::node_geo_attribute_capture_cc::node_layout_ex(), blender::nodes::node_geo_bake_cc::node_layout_ex(), blender::nodes::node_geo_foreach_geometry_element_cc::node_layout_ex(), blender::nodes::node_geo_index_switch_cc::node_layout_ex(), blender::nodes::node_geo_menu_switch_cc::node_layout_ex(), blender::nodes::node_geo_repeat_cc::node_layout_ex(), blender::nodes::node_geo_simulation_cc::node_layout_ex(), blender::nodes::node_shader_tex_brick_cc::node_shader_buts_tex_brick(), blender::nodes::node_shader_tex_sky_cc::node_shader_buts_tex_sky(), blender::ed::space_node::node_texture_buts_bricks(), blender::ed::space_node::node_texture_buts_proc(), noise_panel_draw(), normals_panel_draw(), normals_panel_draw(), object_offset_draw(), blender::occlusion_panel_draw(), blender::options_light_reference_draw(), blender::options_panel_draw(), blender::ed::outliner::outliner_orphans_purge_ui(), blender::panel_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), path_panel_draw(), blender::ed::asset::shelf::popover_panel_draw(), position_panel_draw(), profile_panel_draw(), relative_offset_draw(), blender::ed::curves::select_ends_ui(), blender::ed::curves::set_attribute_ui(), blender::ed::object::shade_auto_smooth_ui(), solver_options_panel_draw(), blender::ed::space_node::std_node_socket_draw(), blender::ed::space_node::std_node_socket_interface_draw(), stepped_panel_draw(), symmetry_panel_draw(), template_add_button_search_menu(), template_operator_property_buts_draw_single(), texture_paint_add_texture_paint_slot_ui(), texture_panel_draw(), texture_panel_draw(), tile_add_draw(), time_panel_draw(), ui_def_but_rna__menu(), ui_imageuser_layer_menu(), ui_imageuser_pass_menu(), ui_imageuser_view_menu_multiview(), ui_imageuser_view_menu_rr(), ui_item_local_sublayout(), blender::ed::space_node::ui_node_draw_input(), blender::ed::space_node::ui_node_menu_column(), ui_paneltype_draw_impl(), ui_popup_context_menu_for_button(), ui_template_list_layout_draw(), blender::ed::object::ui_template_modifier_asset_menu_items(), blender::ed::space_node::ui_template_node_asset_menu_items(), blender::ed::space_node::ui_template_node_link_menu(), blender::ed::geometry::ui_template_node_operator_asset_menu_items(), uiDefAutoButsRNA(), uiItemDecoratorR_prop(), uiItemFullR(), uiItemPropertySplitWrapperCreate(), uiItemsAlertBox(), uiItemsEnumR(), uiItemsFullEnumO_items(), uiLayoutColumnWithHeading(), uiTemplateAssetView(), uiTemplateCacheFileLayers(), uiTemplateCollectionExporters(), uiTemplateColormanagedViewSettings(), uiTemplateColorPicker(), uiTemplateHistogram(), uiTemplateImage(), uiTemplateImageInfo(), uiTemplateImageSettings(), uiTemplateImageStereo3d(), uiTemplateLayers(), uiTemplateMarker(), uiTemplateMovieClip(), uiTemplateMovieclipInformation(), uiTemplatePalette(), uiTemplatePreview(), uiTemplateTrack(), uiTemplateVectorscope(), uiTemplateViewsFormat(), uiTemplateWaveform(), undo_history_draw_menu(), unwrap_draw(), uv_panel_draw(), v3d_editarmature_buts(), v3d_editmetaball_buts(), v3d_posearmature_buts(), v3d_transform_butsR(), vertex_group_panel_draw(), blender::vgroup_panel_draw(), view3d_panel_transform(), view3d_panel_vgroup(), wm_block_about_create(), wm_block_create_redo(), wm_block_dialog_create(), wm_block_insert_unicode_create(), wm_open_mainfile_ui(), and wm_stereo3d_set_draw().

◆ uiLayoutColumnFlow()

◆ uiLayoutColumnWithHeading()

uiLayout * uiLayoutColumnWithHeading ( uiLayout * layout,
bool align,
const char * heading )

Variant of uiLayoutColumn() that sets a heading label for the layout if the first item is added through uiItemFullR(). If split layout is used and the item has no string to add to the first split-column, the heading is added there instead. Otherwise the heading inserted with a new row.

Definition at line 5094 of file interface_layout.cc.

References ui_layout_heading_set(), and uiLayoutColumn().

Referenced by blender::chaining_panel_draw(), edbm_bevel_ui(), nla_panel_properties(), blender::nodes::node_geo_gizmo_transform_cc::node_layout_ex(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), and shading_panel_draw().

◆ uiLayoutContextCopy()

◆ uiLayoutEndsWithPanelHeader()

◆ uiLayoutGetActivateInit()

bool uiLayoutGetActivateInit ( uiLayout * layout)

Definition at line 5370 of file interface_layout.cc.

References uiLayout::activate_init.

◆ uiLayoutGetActive()

bool uiLayoutGetActive ( uiLayout * layout)

Definition at line 5360 of file interface_layout.cc.

References uiLayout::active.

◆ uiLayoutGetActiveDefault()

bool uiLayoutGetActiveDefault ( uiLayout * layout)

Definition at line 5365 of file interface_layout.cc.

References uiLayout::active_default.

◆ uiLayoutGetAlignment()

int uiLayoutGetAlignment ( uiLayout * layout)

Definition at line 5390 of file interface_layout.cc.

References uiLayout::alignment.

Referenced by uiItemL_().

◆ uiLayoutGetBlock()

uiBlock * uiLayoutGetBlock ( uiLayout * layout)

Definition at line 5927 of file interface_layout.cc.

References uiLayoutRoot::block, and uiLayout::root.

Referenced by blender::add_attribute_search_button(), blender::ed::asset::shelf::add_catalog_tabs(), blender::ed::asset::shelf::asset_shelf_header_draw(), asset_view_draw_item(), blender::ed::asset::shelf::build_asset_view(), blender::ui::TreeViewLayoutBuilder::build_from_tree(), blender::ed::asset::shelf::AssetViewItem::build_grid_tile(), blender::ui::PreviewGridItem::build_grid_tile_button(), blender::ui::GridViewBuilder::build_grid_view(), blender::ed::asset::shelf::AssetCatalogSelectorTree::Item::build_row(), blender::ui::TreeViewBuilder::build_tree_view(), blender::ed::asset::shelf::catalog_selector_panel_draw(), blender::ed::asset::shelf::catalog_tree_draw(), create_title_button(), curvemap_buttons_layout(), CurveProfile_buttons_layout(), draw_constraint_header(), envelope_panel_draw(), blender::ed::asset_browser::file_create_asset_catalog_tree_view_in_layout(), file_panel_execution_buttons_draw(), file_panel_operator(), fmodifier_panel_header(), graph_draw_driven_property_enabled_btn(), graph_draw_driver_settings_panel(), graph_panel_key_properties(), graph_panel_modifiers(), modifier_panel_get_property_pointers(), modifier_panel_header(), nla_panel_actclip(), nla_panel_animated_influence_header(), nla_panel_animated_strip_time(), nla_panel_animated_strip_time_header(), nla_panel_animdata(), nla_panel_evaluation(), nla_panel_modifiers(), nla_panel_properties(), nla_panel_stripname(), blender::ed::space_node::node_file_output_socket_draw(), blender::ed::space_node::node_geometry_add_attribute_search_button(), panel_draw(), shaderfx_panel_header(), blender::ed::spreadsheet::spreadsheet_data_set_panel_draw(), blender::ui::template_asset_shelf_popover(), template_ID(), template_ID_tabs(), template_keymap_item_properties(), template_operator_property_buts_draw_single(), template_search_buttons(), template_texture_user_menu(), ui_but_change_type(), ui_def_but_rna__menu(), ui_imageuser_layer_menu(), ui_imageuser_pass_menu(), ui_imageuser_slot_menu(), ui_imageuser_view_menu_multiview(), ui_imageuser_view_menu_rr(), ui_layout_add_but(), UI_menutype_draw(), blender::ed::space_node::ui_node_draw_input(), blender::ed::space_node::ui_node_draw_panel(), blender::ed::space_node::ui_node_menu_column(), ui_paneltype_draw_impl(), UI_popup_block_template_confirm_op(), ui_popup_context_menu_for_button(), ui_popup_context_menu_for_panel(), ui_template_list_layout_draw(), blender::ed::space_node::ui_template_node_link_menu(), uiblock_layer_pass_buttons(), uiItemL_respect_property_split(), uiItemPointerR_prop(), uiLayoutAbsoluteBlock(), uiLayoutListItemAddPadding(), uiLayoutPanelProp(), uiTemplateBoneCollectionTree(), uiTemplateCollectionExporters(), uiTemplateColorPicker(), uiTemplateComponentMenu(), uiTemplateConstraintHeader(), uiTemplateCryptoPicker(), uiTemplateCurveMapping(), uiTemplateCurveProfile(), uiTemplateFileSelectPath(), uiTemplateGreasePencilLayerTree(), uiTemplateHistogram(), uiTemplateImage(), uiTemplateKeymapItemProperties(), uiTemplateLayers(), uiTemplateLightLinkingCollection(), uiTemplateMarker(), uiTemplateMenuSearch(), uiTemplateMovieClip(), uiTemplateNodeLink(), uiTemplateNodeSocket(), uiTemplateNodeTreeInterface(), uiTemplateOperatorRedoProperties(), uiTemplateOperatorSearch(), uiTemplatePalette(), uiTemplatePreview(), uiTemplateRecentFiles(), uiTemplateReportsBanner(), uiTemplateRunningJobs(), uiTemplateStatusInfo(), uiTemplateTextureShow(), uiTemplateTextureUser(), uiTemplateTrack(), uiTemplateVectorscope(), uiTemplateWaveform(), view3d_panel_transform(), and wm_block_dialog_create().

◆ uiLayoutGetContextStore()

bContextStore * uiLayoutGetContextStore ( uiLayout * layout)

◆ uiLayoutGetEmboss()

eUIEmbossType uiLayoutGetEmboss ( uiLayout * layout)

◆ uiLayoutGetEnabled()

bool uiLayoutGetEnabled ( uiLayout * layout)

Definition at line 5375 of file interface_layout.cc.

References uiLayout::enabled.

◆ uiLayoutGetFixedSize()

bool uiLayoutGetFixedSize ( uiLayout * layout)

Definition at line 6041 of file interface_layout.cc.

References uiItem::flag, and UI_ITEM_FIXED_SIZE.

◆ uiLayoutGetKeepAspect()

bool uiLayoutGetKeepAspect ( uiLayout * layout)

Definition at line 5385 of file interface_layout.cc.

References uiLayout::keepaspect.

◆ uiLayoutGetLocalDir()

◆ uiLayoutGetOperatorContext()

wmOperatorCallContext uiLayoutGetOperatorContext ( uiLayout * layout)

Definition at line 5932 of file interface_layout.cc.

References uiLayoutRoot::opcontext, and uiLayout::root.

Referenced by UI_popup_block_template_confirm_op().

◆ uiLayoutGetPropDecorate()

bool uiLayoutGetPropDecorate ( uiLayout * layout)

Definition at line 5335 of file interface_layout.cc.

References uiItem::flag, and UI_ITEM_PROP_DECORATE.

Referenced by uiItemPropertySplitWrapperCreate().

◆ uiLayoutGetPropSep()

bool uiLayoutGetPropSep ( uiLayout * layout)

Definition at line 5325 of file interface_layout.cc.

References uiItem::flag, and UI_ITEM_PROP_SEP.

◆ uiLayoutGetRedAlert()

bool uiLayoutGetRedAlert ( uiLayout * layout)

Definition at line 5380 of file interface_layout.cc.

References uiLayout::redalert.

◆ uiLayoutGetRootPanel()

Panel * uiLayoutGetRootPanel ( uiLayout * layout)

Definition at line 5355 of file interface_layout.cc.

References uiLayoutRoot::block, uiBlock::panel, and uiLayout::root.

Referenced by uiLayoutPanel(), and uiTemplateNodeInputs().

◆ uiLayoutGetScaleX()

float uiLayoutGetScaleX ( uiLayout * layout)

Definition at line 5400 of file interface_layout.cc.

References uiLayout::scale.

◆ uiLayoutGetScaleY()

float uiLayoutGetScaleY ( uiLayout * layout)

Definition at line 5405 of file interface_layout.cc.

References uiLayout::scale.

◆ uiLayoutGetSearchWeight()

float uiLayoutGetSearchWeight ( uiLayout * layout)

Definition at line 5350 of file interface_layout.cc.

References uiLayout::search_weight.

◆ uiLayoutGetUnitsX()

float uiLayoutGetUnitsX ( uiLayout * layout)

◆ uiLayoutGetUnitsY()

float uiLayoutGetUnitsY ( uiLayout * layout)

Definition at line 5415 of file interface_layout.cc.

References uiLayout::units.

◆ uiLayoutGetWidth()

◆ uiLayoutGridFlow()

◆ uiLayoutListBox()

◆ uiLayoutListItemAddPadding()

◆ uiLayoutListItemPaddingWidth()

int uiLayoutListItemPaddingWidth ( )

Definition at line 5428 of file interface_layout.cc.

References UI_SCALE_FAC.

Referenced by uiLayoutListItemAddPadding().

◆ uiLayoutOverlap()

◆ uiLayoutPanel() [1/2]

◆ uiLayoutPanel() [2/2]

uiLayout * uiLayoutPanel ( const bContext * C,
uiLayout * layout,
const char * idname,
bool default_closed,
const char * label )

Variant of uiLayoutPanel that automatically creates the header row with the given label and only returns the body layout.

Parameters
labelText that's shown in the panel header. It should already be translated.
Returns
NULL if the panel is closed and should not be drawn, otherwise the layout where the sub-panel should be inserted into.

Definition at line 5053 of file interface_layout.cc.

References PanelLayout::body, PanelLayout::header, label, uiItemL(), and uiLayoutPanel().

◆ uiLayoutPanelProp() [1/2]

PanelLayout uiLayoutPanelProp ( const bContext * C,
uiLayout * layout,
PointerRNA * open_prop_owner,
const char * open_prop_name )

Create a "layout panel" which is a panel that is defined as part of the uiLayout. This allows creating expandable sections which can also be nested.

The open-state of the panel is defined by an RNA property which is passed in as a pointer + property name pair. This gives the caller flexibility to decide who should own the open-state.

Parameters
CThe context is necessary because sometimes the panel may be forced to be open by the context even of the open-property is false. This can happen with e.g. property search.
layoutThe uiLayout that should contain the sub-panel. Only layouts that span the full width of the region are supported for now.
open_prop_ownerData that contains the open-property.
open_prop_nameName of the open-property in open_prop_owner.
Returns
A PanelLayout containing layouts for both the header row and the panel body. If the panel is closed and should not be drawn, the body layout will be NULL.

Definition at line 4981 of file interface_layout.cc.

References uiLayoutRoot::block, CTX_wm_region(), ITEM_LAYOUT_PANEL_BODY, ITEM_LAYOUT_PANEL_HEADER, uiLayoutItemPanelHeader::open_prop_name, uiLayoutItemPanelHeader::open_prop_owner, RGN_FLAG_SEARCH_FILTER_ACTIVE, RNA_boolean_get(), uiLayout::root, uiLayout::space, STRNCPY, uiLayoutRoot::style, uiStyle::templatespace, uiItem::type, UI_block_layout_set_current(), UI_BTYPE_LABEL, ui_litem_init_from_parent(), ui_text_icon_width(), UI_UNIT_Y, uiDefIconTextBut(), uiLayoutGetBlock(), uiLayoutRow(), and uiLayoutSetUnitsY().

Referenced by blender::draw_interface_panel_content(), blender::draw_manage_panel(), blender::draw_warnings(), blender::ui::nodes::handle_node_declaration_items(), blender::panel_draw(), uiLayoutPanel(), uiLayoutPanelProp(), and uiTemplateCollectionExporters().

◆ uiLayoutPanelProp() [2/2]

uiLayout * uiLayoutPanelProp ( const bContext * C,
uiLayout * layout,
PointerRNA * open_prop_owner,
const char * open_prop_name,
const char * label )

Variant of uiLayoutPanelProp that automatically creates the header row with the given label and only returns the body layout.

Parameters
labelText that's shown in the panel header. It should already be translated.
Returns
NULL if the panel is closed and should not be drawn, otherwise the layout where the sub-panel should be inserted into.

Definition at line 5027 of file interface_layout.cc.

References PanelLayout::body, PanelLayout::header, label, uiItemL(), and uiLayoutPanelProp().

◆ uiLayoutRadial()

◆ uiLayoutRow()

uiLayout * uiLayoutRow ( uiLayout * layout,
bool align )

Definition at line 4968 of file interface_layout.cc.

References uiLayoutRoot::block, uiStyle::buttonspacex, ITEM_LAYOUT_ROW, uiLayout::root, uiLayout::space, uiLayoutRoot::style, uiItem::type, UI_block_layout_set_current(), and ui_litem_init_from_parent().

Referenced by blender::add_attribute_search_or_value_buttons(), blender::ed::geometry::add_attribute_search_or_value_buttons(), advanced_panel_draw(), armature_parent_clear_invoke(), armature_parent_set_invoke(), blender::ed::asset::shelf::asset_shelf_header_draw(), blender::ui::TreeViewLayoutBuilder::build_from_tree(), blender::ui::GridViewLayoutBuilder::build_from_view(), blender::ed::asset::shelf::AssetCatalogSelectorTree::Item::build_row(), blender::ui::bonecollections::BoneCollectionItem::build_row(), blender::ui::greasepencil::LayerGroupViewItem::build_row(), blender::ui::greasepencil::LayerViewItem::build_row(), blender::ui::TreeViewLayoutBuilder::build_row(), buttons_panel_context_draw(), cache_file_layer_item(), clamp_panel_draw(), blender::ed::object::collection_hide_menu_draw(), colorband_buttons_layout(), curvemap_buttons_layout(), CurveProfile_buttons_layout(), data_panel_draw(), blender::nodes::draw_bake_button_row(), blender::nodes::draw_bake_data_block_list_item(), blender::nodes::node_geo_bake_cc::draw_bake_item(), blender::nodes::node_geo_bake_cc::draw_bake_items(), draw_constraint_header(), blender::modifier::greasepencil::draw_custom_curve_settings(), draw_export_controls(), draw_exporter_item(), blender::nodes::node_geo_attribute_capture_cc::draw_item(), blender::nodes::node_geo_foreach_geometry_element_cc::draw_item(), blender::modifier::greasepencil::draw_layer_filter_settings(), blender::modifier::greasepencil::draw_material_filter_settings(), blender::draw_named_attributes_panel(), blender::ui::nodes::draw_node_input(), blender::draw_property_for_output_socket(), blender::draw_property_for_socket(), blender::ed::geometry::draw_property_for_socket(), blender::nodes::node_geo_repeat_cc::draw_repeat_state_item(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), blender::nodes::node_geo_simulation_cc::draw_simulation_state_item(), blender::modifier::greasepencil::draw_vertex_group_settings(), ed_panel_draw(), edbm_bevel_ui(), edbm_decimate_ui(), edbm_intersect_boolean_ui(), edbm_intersect_ui(), blender::edge_types_panel_draw(), envelope_panel_draw(), falloff_panel_draw(), falloff_panel_draw(), falloff_panel_draw(), file_panel_asset_catalog_buttons_draw(), file_panel_execution_buttons_draw(), file_panel_execution_cancel_button(), file_panel_execution_execute_button(), fmodifier_influence_draw(), fmodifier_panel_header(), generate_panel_draw(), generator_panel_draw(), geometry_panel_draw(), graph_draw_driven_property_panel(), graph_draw_driver_settings_panel(), graph_panel_driverVar__contextProp(), graph_panel_driverVar__singleProp(), graph_panel_driverVar_fallback(), graph_panel_modifiers(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_ui(), blender::ed::greasepencil::grease_pencil_reproject_ui(), blender::intersection_panel_draw(), blender::ed::asset::shelf::library_selector_draw(), blender::material_mask_panel_draw(), metadata_panel_draw_field(), mix_mode_panel_draw(), modifier_panel_end(), modifier_panel_header(), modifier_vgroup_ui(), move_to_collection_menu_create(), nla_panel_animdata(), nla_panel_modifiers(), nla_panel_properties(), nla_panel_stripname(), blender::ed::space_node::node_buts_mix_rgb(), blender::nodes::node_shader_output_linestyle_cc::node_buts_output_linestyle(), blender::ed::space_node::node_buts_value(), blender::nodes::node_composite_blur_cc::node_composit_buts_blur(), blender::nodes::node_composite_boxmask_cc::node_composit_buts_boxmask(), blender::nodes::node_composite_channel_matte_cc::node_composit_buts_channel_matte(), blender::nodes::node_composite_color_spill_cc::node_composit_buts_color_spill(), blender::nodes::node_composite_colorbalance_cc::node_composit_buts_colorbalance(), blender::nodes::node_composite_colorcorrection_cc::node_composit_buts_colorcorrection(), blender::nodes::node_composite_colorcorrection_cc::node_composit_buts_colorcorrection_ex(), blender::ed::space_node::node_composit_buts_cryptomatte(), blender::ed::space_node::node_composit_buts_cryptomatte_legacy(), blender::nodes::node_composite_distance_matte_cc::node_composit_buts_distance_matte(), blender::nodes::node_composite_ellipsemask_cc::node_composit_buts_ellipsemask(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output_ex(), blender::nodes::node_composite_scale_cc::node_composit_buts_scale(), blender::nodes::node_composite_split_cc::node_composit_buts_split(), blender::nodes::node_composite_render_layer_cc::node_composit_buts_viewlayers(), blender::ed::space_node::node_file_output_socket_draw(), blender::nodes::node_geo_bake_cc::node_layout(), blender::nodes::node_geo_attribute_capture_cc::node_layout_ex(), blender::nodes::node_geo_bake_cc::node_layout_ex(), blender::nodes::node_geo_foreach_geometry_element_cc::node_layout_ex(), blender::nodes::node_geo_index_switch_cc::node_layout_ex(), blender::nodes::node_geo_menu_switch_cc::node_layout_ex(), blender::nodes::node_geo_repeat_cc::node_layout_ex(), blender::nodes::node_geo_simulation_cc::node_layout_ex(), blender::nodes::node_shader_ies_light_cc::node_shader_buts_ies(), blender::nodes::node_shader_script_cc::node_shader_buts_script(), blender::ed::space_node::node_texture_buts_proc(), blender::ed::space_node::node_update_basis_socket(), blender::options_panel_draw(), blender::ed::outliner::outliner_orphans_purge_ui(), blender::panel_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), blender::ed::asset::shelf::popover_panel_draw(), preferences_extension_repo_add_ui(), profile_panel_draw(), blender::ed::sculpt_paint::filter::sculpt_mesh_ui_exec(), blender::segment_list_item_draw(), sequencer_split_ui(), shaderfx_panel_end(), shaderfx_panel_header(), shape_panel_draw(), blender::ed::spreadsheet::spreadsheet_filter_panel_draw_header(), blender::ed::space_node::std_node_socket_draw(), subdivisions_panel_draw(), template_add_button_search_menu(), blender::ui::template_asset_shelf_popover(), blender::ui::template_breadcrumbs(), template_keymap_item_properties(), template_operator_property_buts_draw_single(), template_search_buttons(), ui_item_local_sublayout(), ui_item_prop_split_layout_hack(), ui_item_with_label(), blender::ed::space_node::ui_node_draw_input(), blender::ed::space_node::ui_node_draw_panel(), ui_paneltype_draw_impl(), ui_template_id(), ui_template_list_layout_draw(), ui_template_palette_menu(), uiblock_layer_pass_buttons(), uiItemFullR(), uiItemPopoverPanel_ptr(), uiItemPropertySplitWrapperCreate(), uiItemsAlertBox(), uiLayoutListItemAddPadding(), uiLayoutPanelProp(), uiLayoutRowWithHeading(), uilist_draw_filter_default(), uiTemplateAction(), uiTemplateAnyID(), uiTemplateAssetView(), uiTemplateCacheFile(), uiTemplateCacheFileLayers(), uiTemplateCacheFileProcedural(), uiTemplateCacheFileTimeSettings(), uiTemplateCollectionExporters(), uiTemplateColorPicker(), uiTemplateEditModeSelection(), uiTemplateImage(), uiTemplateImageSettings(), uiTemplateInputStatus(), uiTemplateLayers(), uiTemplateMovieClip(), uiTemplatePaintModeSelection(), uiTemplatePalette(), uiTemplatePathBuilder(), uiTemplatePreview(), uiTemplateRunningJobs(), uiTemplateStatusInfo(), undo_history_draw_menu(), uv_pack_islands_ui(), vertex_group_panel_draw(), blender::vgroup_panel_draw(), view3d_panel_vgroup(), wm_block_about_create(), wm_block_splash_create(), WM_window_modal_keymap_status_draw(), and workspace_add_menu().

◆ uiLayoutRowWithHeading()

◆ uiLayoutSetActivateInit()

void uiLayoutSetActivateInit ( uiLayout * layout,
bool activate_init )

Definition at line 5275 of file interface_layout.cc.

References uiLayout::activate_init.

Referenced by uiDefAutoButsRNA().

◆ uiLayoutSetActive()

void uiLayoutSetActive ( uiLayout * layout,
bool active )

Definition at line 5265 of file interface_layout.cc.

References uiLayout::active.

Referenced by advanced_panel_draw(), advanced_panel_draw(), advanced_panel_draw(), blender::ed::asset::shelf::AssetCatalogSelectorTree::Item::build_row(), blender::ui::bonecollections::BoneCollectionItem::build_row(), blender::ui::TreeViewLayoutBuilder::build_row(), clamp_panel_draw(), blender::composition_panel_draw(), constant_offset_draw(), data_panel_draw(), blender::nodes::draw_bake_button_row(), blender::nodes::draw_common_bake_settings(), blender::modifier::greasepencil::draw_layer_filter_settings(), blender::modifier::greasepencil::draw_material_filter_settings(), blender::draw_named_attributes_panel(), blender::modifier::greasepencil::draw_vertex_group_settings(), ED_screens_header_tools_menu_create(), edbm_bevel_ui(), edbm_decimate_ui(), edge_panel_draw(), blender::edge_types_panel_draw(), face_corner_panel_draw(), face_corner_uv_panel_draw(), face_corner_vcol_panel_draw(), blender::face_mark_panel_draw(), face_panel_draw(), falloff_panel_draw(), fmodifier_frame_range_draw(), fmodifier_get_pointers(), fmodifier_influence_draw(), geometry_panel_draw(), graph_panel_cursor(), blender::intersection_panel_draw(), limits_panel_draw(), blender::material_mask_panel_draw(), blender::material_mask_panel_draw_header(), materials_panel_draw(), modifier_panel_header(), modifier_vgroup_ui(), nla_panel_actclip(), nla_panel_properties(), blender::ed::space_node::node_buts_image_user(), blender::nodes::node_composite_defocus_cc::node_composit_buts_defocus(), blender::nodes::node_composite_lensdist_cc::node_composit_buts_lensdist(), blender::nodes::node_composite_map_value_cc::node_composit_buts_map_value(), blender::ed::space_node::node_texture_buts_proc(), blender::ed::space_node::node_update_basis_buttons(), blender::ed::space_node::node_update_basis_socket(), object_offset_draw(), blender::occlusion_panel_draw(), offset_panel_draw(), blender::options_light_reference_draw(), blender::options_panel_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), path_panel_draw(), preferences_extension_repo_add_ui(), profile_panel_draw(), random_panel_draw(), relative_offset_draw(), blender::ed::object::shade_auto_smooth_ui(), shaderfx_panel_header(), shading_panel_draw(), blender::ed::spreadsheet::spreadsheet_filter_panel_draw(), blender::ed::spreadsheet::spreadsheet_filter_panel_draw_header(), blender::ed::spreadsheet::spreadsheet_row_filters_layout(), blender::ed::space_node::std_node_socket_interface_draw(), stepped_panel_draw(), symmetry_panel_draw(), template_keymap_item_properties(), uiTemplateCacheFileProcedural(), uiTemplateCacheFileTimeSettings(), uiTemplateImage(), uiTemplateMarker(), uiTemplateRunningJobs(), uv_pack_islands_ui(), v3d_transform_butsR(), vert_vcol_panel_draw(), vertex_group_panel_draw(), vertex_panel_draw(), vertex_vgroup_panel_draw(), wave_panel_draw(), and wm_open_mainfile_ui().

◆ uiLayoutSetActiveDefault()

void uiLayoutSetActiveDefault ( uiLayout * layout,
bool active_default )

Definition at line 5270 of file interface_layout.cc.

References uiLayout::active_default.

Referenced by file_panel_execution_execute_button().

◆ uiLayoutSetAlignment()

◆ uiLayoutSetContextFromBut()

◆ uiLayoutSetContextPointer()

◆ uiLayoutSetContextString()

◆ uiLayoutSetEmboss()

◆ uiLayoutSetEnabled()

◆ uiLayoutSetFixedSize()

◆ uiLayoutSetFunc()

void uiLayoutSetFunc ( uiLayout * layout,
uiMenuHandleFunc handlefunc,
void * argv )

◆ uiLayoutSetKeepAspect()

void uiLayoutSetKeepAspect ( uiLayout * layout,
bool keepaspect )

Definition at line 5290 of file interface_layout.cc.

References uiLayout::keepaspect.

Referenced by uiTemplatePreview().

◆ uiLayoutSetOperatorContext()

◆ uiLayoutSetPropDecorate()

void uiLayoutSetPropDecorate ( uiLayout * layout,
bool is_sep )

Definition at line 5340 of file interface_layout.cc.

References uiItem::flag, SET_FLAG_FROM_TEST, and UI_ITEM_PROP_DECORATE.

Referenced by blender::add_attribute_search_or_value_buttons(), blender::ed::geometry::add_attribute_search_or_value_buttons(), blender::ui::greasepencil::LayerGroupViewItem::build_row(), blender::ui::greasepencil::LayerViewItem::build_row(), cycles_panel_draw(), data_panel_draw(), blender::nodes::node_geo_bake_cc::draw_bake_items(), blender::draw_bake_panel(), blender::nodes::draw_common_bake_settings(), blender::modifier::greasepencil::draw_custom_curve_settings(), draw_export_properties(), draw_fill_tile(), blender::modifier::greasepencil::draw_layer_filter_settings(), blender::modifier::greasepencil::draw_material_filter_settings(), blender::draw_property_for_socket(), blender::ed::geometry::draw_property_for_socket(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), blender::modifier::greasepencil::draw_vertex_group_settings(), edbm_bevel_ui(), edbm_blend_from_shape_ui(), edbm_intersect_boolean_ui(), edbm_intersect_ui(), envelope_panel_draw(), fmodifier_frame_range_draw(), fn_generator_panel_draw(), generator_panel_draw(), blender::ed::geometry::geometry_attribute_convert_ui(), blender::ed::geometry::geometry_color_attribute_add_ui(), blender::ed::geometry::geometry_color_attribute_convert_ui(), graph_panel_cursor(), graph_panel_key_properties(), graph_panel_properties(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_ui(), blender::ed::greasepencil::grease_pencil_reproject_ui(), image_new_draw(), image_save_as_draw(), limits_panel_draw(), blender::ed::sculpt_paint::mask::mask_from_boundary_ui(), blender::ed::sculpt_paint::mask::mask_from_cavity_ui(), blender::ed::mesh::set_attribute::mesh_set_attribute_ui(), modifier_vgroup_ui(), nla_panel_actclip(), nla_panel_animdata(), nla_panel_properties(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output_ex(), blender::nodes::node_fn_align_euler_to_vector_cc::node_layout(), blender::nodes::node_fn_align_rotation_to_vector_cc::node_layout(), blender::nodes::node_geo_attribute_capture_cc::node_layout(), blender::nodes::node_geo_extrude_mesh_cc::node_layout(), blender::nodes::node_geo_get_named_grid_cc::node_layout(), blender::nodes::node_geo_merge_by_distance_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_circle_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_cylinder_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_line_cc::node_layout(), blender::nodes::node_geo_mesh_to_volume_cc::node_layout(), blender::nodes::node_geo_points_to_volume_cc::node_layout(), blender::nodes::node_geo_split_to_instances_cc::node_layout(), blender::nodes::node_geo_store_named_attribute_cc::node_layout(), blender::nodes::node_geo_store_named_grid_cc::node_layout(), blender::nodes::node_geo_string_to_curves_cc::node_layout(), blender::nodes::node_geo_tool_active_element_cc::node_layout(), blender::nodes::node_geo_transform_geometry_cc::node_layout(), blender::nodes::node_geo_uv_unwrap_cc::node_layout(), blender::nodes::node_geo_volume_to_mesh_cc::node_layout(), blender::nodes::node_geo_warning_cc::node_layout(), blender::nodes::node_geo_attribute_capture_cc::node_layout_ex(), blender::nodes::node_geo_foreach_geometry_element_cc::node_layout_ex(), blender::nodes::node_geo_gizmo_transform_cc::node_layout_ex(), blender::nodes::node_geo_menu_switch_cc::node_layout_ex(), blender::nodes::node_geo_repeat_cc::node_layout_ex(), blender::nodes::node_geo_simulation_cc::node_layout_ex(), noise_panel_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), preferences_extension_repo_add_ui(), profile_panel_draw(), blender::ed::geometry::run_node_group_ui(), screenshot_draw(), blender::ed::curves::select_ends_ui(), sequencer_split_ui(), blender::ed::curves::set_attribute_ui(), blender::ed::object::shade_auto_smooth_ui(), blender::ed::spreadsheet::spreadsheet_filter_panel_draw(), stepped_panel_draw(), template_operator_property_buts_draw_single(), texture_paint_add_texture_paint_slot_ui(), tile_add_draw(), blender::ed::space_node::ui_node_draw_input(), blender::ed::space_node::ui_node_draw_panel(), uiTemplateCacheFileTimeSettings(), uiTemplateImage(), uiTemplateImageSettings(), uiTemplateViewsFormat(), unwrap_draw(), uv_pack_islands_ui(), wm_clear_recent_files_ui(), and wm_stereo3d_set_draw().

◆ uiLayoutSetPropSep()

void uiLayoutSetPropSep ( uiLayout * layout,
bool is_sep )

Definition at line 5330 of file interface_layout.cc.

References uiItem::flag, SET_FLAG_FROM_TEST, and UI_ITEM_PROP_SEP.

Referenced by blender::add_attribute_search_or_value_buttons(), blender::ed::geometry::add_attribute_search_or_value_buttons(), advanced_panel_draw(), advanced_panel_draw(), advanced_panel_draw(), axis_mapping_panel_draw(), blender::bake_panel_draw(), blur_panel_draw(), blur_panel_draw(), caps_panel_draw(), blender::chaining_panel_draw(), clamp_panel_draw(), blender::composition_panel_draw(), constant_offset_draw(), CurveProfile_buttons_layout(), cycles_panel_draw(), data_panel_draw(), blender::nodes::node_geo_bake_cc::draw_bake_items(), blender::draw_bake_panel(), blender::nodes::draw_common_bake_settings(), blender::modifier::greasepencil::draw_custom_curve_settings(), draw_export_properties(), draw_fill_tile(), blender::modifier::greasepencil::draw_layer_filter_settings(), blender::modifier::greasepencil::draw_material_filter_settings(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), blender::modifier::greasepencil::draw_vertex_group_settings(), edbm_average_normals_ui(), edbm_bevel_ui(), edbm_blend_from_shape_ui(), edbm_decimate_ui(), edbm_intersect_boolean_ui(), edbm_intersect_ui(), edbm_point_normals_ui(), edge_data_panel_draw(), edge_panel_draw(), blender::edge_types_panel_draw(), envelope_panel_draw(), face_corner_panel_draw(), face_corner_uv_panel_draw(), face_corner_vcol_panel_draw(), blender::face_mark_panel_draw(), face_panel_draw(), falloff_panel_draw(), falloff_panel_draw(), falloff_panel_draw(), falloff_panel_draw(), fmodifier_frame_range_draw(), fn_generator_panel_draw(), generate_panel_draw(), generator_panel_draw(), blender::ed::geometry::geometry_attribute_convert_ui(), blender::ed::geometry::geometry_color_attribute_add_ui(), blender::ed::geometry::geometry_color_attribute_convert_ui(), geometry_panel_draw(), graph_panel_cursor(), graph_panel_key_properties(), graph_panel_properties(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_ui(), blender::ed::greasepencil::grease_pencil_reproject_ui(), image_new_draw(), image_save_as_draw(), blender::intersection_panel_draw(), layers_panel_draw(), limits_panel_draw(), blender::ed::sculpt_paint::mask::mask_from_boundary_ui(), blender::ed::sculpt_paint::mask::mask_from_cavity_ui(), blender::material_mask_panel_draw(), materials_panel_draw(), blender::ed::mesh::set_attribute::mesh_set_attribute_ui(), mix_mode_panel_draw(), nla_panel_actclip(), nla_panel_animated_strip_time(), nla_panel_animdata(), nla_panel_evaluation(), nla_panel_properties(), blender::nodes::node_composite_file_output_cc::node_composit_buts_file_output_ex(), blender::nodes::node_fn_align_euler_to_vector_cc::node_layout(), blender::nodes::node_fn_align_rotation_to_vector_cc::node_layout(), blender::nodes::node_geo_attribute_capture_cc::node_layout(), blender::nodes::node_geo_extrude_mesh_cc::node_layout(), blender::nodes::node_geo_get_named_grid_cc::node_layout(), blender::nodes::node_geo_merge_by_distance_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_circle_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_cone_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_cylinder_cc::node_layout(), blender::nodes::node_geo_mesh_primitive_line_cc::node_layout(), blender::nodes::node_geo_mesh_to_volume_cc::node_layout(), blender::nodes::node_geo_points_to_volume_cc::node_layout(), blender::nodes::node_geo_split_to_instances_cc::node_layout(), blender::nodes::node_geo_store_named_attribute_cc::node_layout(), blender::nodes::node_geo_store_named_grid_cc::node_layout(), blender::nodes::node_geo_string_to_curves_cc::node_layout(), blender::nodes::node_geo_tool_active_element_cc::node_layout(), blender::nodes::node_geo_transform_geometry_cc::node_layout(), blender::nodes::node_geo_uv_unwrap_cc::node_layout(), blender::nodes::node_geo_volume_to_mesh_cc::node_layout(), blender::nodes::node_geo_warning_cc::node_layout(), blender::nodes::node_geo_attribute_capture_cc::node_layout_ex(), blender::nodes::node_geo_foreach_geometry_element_cc::node_layout_ex(), blender::nodes::node_geo_gizmo_transform_cc::node_layout_ex(), blender::nodes::node_geo_menu_switch_cc::node_layout_ex(), blender::nodes::node_geo_repeat_cc::node_layout_ex(), blender::nodes::node_geo_simulation_cc::node_layout_ex(), noise_panel_draw(), normals_panel_draw(), normals_panel_draw(), blender::ed::object::object_convert_ui(), object_offset_draw(), blender::occlusion_panel_draw(), offset_panel_draw(), blender::options_light_reference_draw(), blender::options_panel_draw(), override_layers_panel_draw(), blender::panel_draw(), blender::panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), panel_draw(), path_panel_draw(), position_panel_draw(), preferences_extension_repo_add_ui(), profile_panel_draw(), random_panel_draw(), relative_offset_draw(), render_procedural_panel_draw(), restrictions_panel_draw(), blender::ed::geometry::run_node_group_ui(), screenshot_draw(), blender::ed::curves::select_ends_ui(), sequencer_split_ui(), blender::ed::curves::set_attribute_ui(), blender::ed::object::shade_auto_smooth_ui(), shading_panel_draw(), solver_options_panel_draw(), blender::ed::spreadsheet::spreadsheet_filter_panel_draw(), stepped_panel_draw(), symmetry_panel_draw(), template_operator_property_buts_draw_single(), texture_paint_add_texture_paint_slot_ui(), texture_panel_draw(), texture_panel_draw(), tile_add_draw(), time_panel_draw(), time_panel_draw(), time_remapping_panel_draw(), transform_panel_draw(), ui_item_prop_split_layout_hack(), blender::ed::space_node::ui_node_draw_node(), blender::ed::space_node::ui_node_draw_panel(), uiDefAutoButsRNA(), uiTemplateCacheFile(), uiTemplateImage(), uiTemplateImageSettings(), uiTemplateViewsFormat(), unwrap_draw(), uv_pack_islands_ui(), uv_panel_draw(), velocity_panel_draw(), vert_vcol_panel_draw(), vertex_group_panel_draw(), vertex_group_panel_draw(), vertex_panel_draw(), vertex_vgroup_panel_draw(), blender::vgroup_panel_draw(), wave_panel_draw(), weightvg_ui_common(), wm_clear_recent_files_ui(), and wm_stereo3d_set_draw().

◆ uiLayoutSetRedAlert()

◆ uiLayoutSetScaleX()

◆ uiLayoutSetScaleY()

◆ uiLayoutSetSearchWeight()

void uiLayoutSetSearchWeight ( uiLayout * layout,
const float weight )

Definition at line 5345 of file interface_layout.cc.

References uiLayout::search_weight.

◆ uiLayoutSetTooltipFunc()

void uiLayoutSetTooltipFunc ( uiLayout * layout,
uiButToolTipFunc func,
void * arg,
uiCopyArgFunc copy_arg,
uiFreeArgFunc free_arg )

Set tooltip function for all buttons in the layout. func, arg and free_arg are passed on to UI_but_func_tooltip_set, so their meaning is the same.

Parameters
funcThe callback function that gets called to get tooltip content
argAn optional opaque pointer that gets passed to func
free_argAn optional callback for freeing arg (can be set to e.g. MEM_freeN)
copy_argAn optional callback for duplicating arg in case UI_but_func_tooltip_set is being called on multiple buttons (can be set to e.g. MEM_dupallocN). If set to NULL, arg will be passed as-is to all buttons.

Definition at line 6118 of file interface_layout.cc.

References uiButtonItem::but, ITEM_BUTTON, uiLayout::items, uiBut::type, UI_BTYPE_DECORATOR, UI_but_func_tooltip_set(), and uiLayoutSetTooltipFunc().

Referenced by blender::draw_interface_panel_content(), blender::ed::space_node::node_socket_add_tooltip(), blender::ed::space_node::node_socket_add_tooltip_in_node_editor(), and uiLayoutSetTooltipFunc().

◆ uiLayoutSetUnitsX()

◆ uiLayoutSetUnitsY()

void uiLayoutSetUnitsY ( uiLayout * layout,
float unit )

Definition at line 5315 of file interface_layout.cc.

References uiLayout::units.

Referenced by uiLayoutPanelProp().

◆ uiLayoutSplit()

Variable Documentation

◆ ui_text_pad_compact

uiTextIconPadFactor ui_text_pad_compact = {1.25f, 0.35f, 0.0f}
constexpr

ui_text_pad_default scaled down.

Definition at line 315 of file interface_layout.cc.

Referenced by ui_item_menu(), and ui_text_icon_width().

◆ ui_text_pad_default

uiTextIconPadFactor ui_text_pad_default = {1.50f, 0.25f, 0.0f}
constexpr

This adds over an icons width of padding even when no icon is used, this is done because most buttons need additional space (drop-down chevron for example). menus and labels use much smaller text values compared to this default.

Note
It may seem odd that the icon only adds 0.25, but taking margins into account it's fine, except for ui_text_pad_compact where a bit more margin is required.

Definition at line 312 of file interface_layout.cc.

Referenced by ui_text_icon_width().

◆ ui_text_pad_none

uiTextIconPadFactor ui_text_pad_none = {0.25f, 1.50f, 0.0f}
constexpr

Least amount of padding not to clip the text or icon.

Definition at line 318 of file interface_layout.cc.

Referenced by ui_item_with_label(), and uiItemL_().