Blender V5.0
UI_interface_layout.hh File Reference
#include <functional>
#include <optional>
#include "BLI_math_vector_types.hh"
#include "BLI_string_ref.hh"
#include "BLI_utility_mixins.hh"
#include "BLI_vector.hh"
#include "UI_interface_icons.hh"
#include "UI_interface_types.hh"

Go to the source code of this file.

Classes

struct  PanelLayout
struct  uiItem
struct  uiLayout
struct  uiPropertySplitWrapper

Namespaces

namespace  blender
namespace  blender::ui
namespace  blender::wm

Macros

#define UI_ITEM_NONE   eUI_Item_Flag(0)

Enumerations

enum class  LayoutSeparatorType : int8_t { Auto , Space , Line }
enum class  NodeAssetMenuOperatorType : int8_t { Add , Swap }
enum class  blender::ui::LayoutDirection : int8_t { blender::ui::Horizontal = 0 , blender::ui::Vertical = 1 }
enum class  blender::ui::LayoutType : int8_t {
  blender::ui::Panel = 0 , blender::ui::Header = 1 , blender::ui::Menu = 2 , blender::ui::Toolbar = 3 ,
  blender::ui::PieMenu = 4 , blender::ui::VerticalBar = 5
}
enum class  blender::ui::LayoutAlign : int8_t { blender::ui::Expand = 0 , blender::ui::Left = 1 , blender::ui::Center = 2 , blender::ui::Right = 3 }
enum class  blender::ui::ButProgressType : int8_t { blender::ui::Bar = 0 , blender::ui::Ring = 1 }
enum  eUI_Item_Flag : uint16_t {
  UI_ITEM_R_EXPAND = 1 << 1 , UI_ITEM_R_SLIDER = 1 << 2 , UI_ITEM_R_TOGGLE = 1 << 3 , UI_ITEM_R_ICON_NEVER = 1 << 4 ,
  UI_ITEM_R_ICON_ONLY = 1 << 5 , UI_ITEM_R_EVENT = 1 << 6 , UI_ITEM_R_FULL_EVENT = 1 << 7 , UI_ITEM_R_NO_BG = 1 << 8 ,
  UI_ITEM_R_IMMEDIATE = 1 << 9 , UI_ITEM_O_DEPRESS = 1 << 10 , UI_ITEM_R_COMPACT = 1 << 11 , UI_ITEM_R_CHECKBOX_INVERT = 1 << 12 ,
  UI_ITEM_R_FORCE_BLANK_DECORATE = 1 << 13 , UI_ITEM_R_SPLIT_EMPTY_NAME = 1 << 14 , UI_ITEM_R_TEXT_BUT_FORCE_SEMI_MODAL_ACTIVE = 1 << 15
}

Functions

uiLayoutblender::ui::block_layout (uiBlock *block, LayoutDirection direction, LayoutType type, int x, int y, int size, int em, int padding, const uiStyle *style)
int2 blender::ui::block_layout_resolve (uiBlock *block)
void blender::ui::block_layout_set_current (uiBlock *block, uiLayout *layout)
bool blender::ui::block_layout_needs_resolving (const uiBlock *block)
void blender::ui::block_layout_free (uiBlock *block)
bool UI_block_apply_search_filter (uiBlock *block, const char *search_filter)
void uiLayoutSetFunc (uiLayout *layout, uiMenuHandleFunc handlefunc, void *argv)
void uiLayoutSetTooltipFunc (uiLayout *layout, uiButToolTipFunc func, void *arg, uiCopyArgFunc copy_arg, uiFreeArgFunc free_arg)
void uiLayoutSetTooltipCustomFunc (uiLayout *layout, uiButToolTipCustomFunc func, void *arg, uiCopyArgFunc copy_arg, uiFreeArgFunc free_arg)
void UI_menutype_draw (bContext *C, MenuType *mt, uiLayout *layout)
void UI_paneltype_draw (bContext *C, PanelType *pt, uiLayout *layout)
int uiLayoutListItemPaddingWidth ()
void uiLayoutListItemAddPadding (uiLayout *layout)
bool uiLayoutEndsWithPanelHeader (const uiLayout &layout)
uiPropertySplitWrapper uiItemPropertySplitWrapperCreate (uiLayout *parent_layout)
uiButuiItemL_ex (uiLayout *layout, blender::StringRef name, int icon, bool highlight, bool redalert)
uiLayoutuiItemL_respect_property_split (uiLayout *layout, blender::StringRef text, int icon)
void uiItemLDrag (uiLayout *layout, PointerRNA *ptr, blender::StringRef name, int icon)
const char * UI_layout_introspect (uiLayout *layout)
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)

Macro Definition Documentation

◆ UI_ITEM_NONE

#define UI_ITEM_NONE   eUI_Item_Flag(0)

Definition at line 904 of file UI_interface_layout.hh.

Referenced by blender::nodes::add_attribute_search_button(), blender::nodes::add_attribute_search_or_value_buttons(), blender::nodes::add_layer_name_search_button(), advanced_panel_draw(), advanced_panel_draw(), apply_armature_pose2bones_ui(), blender::ed::asset::shelf::asset_shelf_header_draw(), axis_mapping_panel_draw(), block_create_autorun_warning(), blur_panel_draw(), blur_panel_draw(), blender::seq::brightcontrast_panel_draw(), blender::ed::asset_browser::AssetCatalogTreeViewItem::build_context_menu(), caps_panel_draw(), blender::ed::geometry::catalog_assets_draw(), blender::ed::object::catalog_assets_draw(), blender::ed::geometry::catalog_assets_draw_unassigned(), blender::chaining_panel_draw(), clamp_panel_draw(), blender::nodes::node_composite_planetrackdeform_cc::cmp_node_planetrackdeform_declare(), blender::seq::colorBalance_panel_draw(), colorband_buttons_layout(), blender::composition_panel_draw(), constant_offset_draw(), constant_offset_header_draw(), constraint_ops_extra_draw(), CurveProfile_buttons_layout(), cycles_panel_draw(), data_panel_draw(), uiLayout::decorator(), blender::nodes::draw_bake_button_row(), blender::nodes::draw_bake_data_block_list_item(), blender::nodes::node_geo_bake_cc::draw_bake_items(), blender::nodes::draw_bake_panel(), blender::nodes::draw_common_bake_settings(), draw_constraint_header(), blender::ed::spreadsheet::draw_context_panel_content(), blender::modifier::greasepencil::draw_custom_curve_settings(), draw_export_properties(), draw_exporter_item(), draw_fill_tile(), blender::nodes::draw_geometry_nodes_modifier_ui(), blender::ed::space_node::draw_gizmo_pin_icon(), blender::nodes::socket_items::ui::draw_item_in_list(), blender::modifier::greasepencil::draw_layer_filter_settings(), blender::seq::draw_mask_input_type_settings(), blender::modifier::greasepencil::draw_material_filter_settings(), blender::ed::space_node::draw_node_socket_name_editable(), blender::nodes::draw_property_for_socket(), blender::nodes::node_geo_simulation_cc::draw_simulation_state(), 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_os_operations_menu_item(), 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(), blender::nodes::node_composite_file_output_cc::format_layout(), generate_panel_draw(), generator_panel_draw(), blender::ed::geometry::geometry_attribute_convert_ui(), blender::ed::geometry::geometry_color_attribute_add_ui(), geometry_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__transChan(), graph_panel_driverVar_fallback(), graph_panel_key_properties(), graph_panel_properties(), blender::ed::greasepencil::grease_pencil_convert_curve_type_ui(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_ui(), blender::ed::greasepencil::grease_pencil_reproject_ui(), blender::ed::greasepencil::grease_pencil_set_corner_type_ui(), blender::ed::greasepencil::grease_pencil_simplify_ui(), image_new_draw(), image_save_as_draw(), blender::intersection_panel_draw(), blender::nodes::node_composite_file_output_cc::item_layout(), 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_item_enum_opname_menu(), blender::ed::mesh::set_attribute::mesh_set_attribute_ui(), mix_mode_panel_draw(), modifier_grease_pencil_curve_header_draw(), modifier_ops_extra_draw(), blender::seq::modifier_panel_header(), 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_catalog_assets_draw(), blender::ed::space_node::node_composit_buts_cryptomatte(), blender::nodes::node_composite_render_layer_cc::node_composit_buts_viewlayers(), blender::nodes::node_fn_input_bool_cc::node_declare(), blender::nodes::node_fn_input_int_cc::node_declare(), blender::nodes::node_fn_input_rotation_cc::node_declare(), blender::nodes::node_fn_input_vector_cc::node_declare(), blender::nodes::node_composite_convert_to_display_cc::node_draw_buttons(), blender::nodes::node_composite_relative_to_pixel_cc::node_layout(), 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_bit_math_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_integer_math_cc::node_layout(), blender::nodes::node_fn_random_value_cc::node_layout(), blender::nodes::node_fn_separate_color_cc::node_layout(), blender::nodes::node_fn_string_to_value_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_blur_attribute_cc::node_layout(), blender::nodes::node_geo_boolean_cc::node_layout(), blender::nodes::node_geo_curve_handle_type_selection_cc::node_layout(), blender::nodes::node_geo_curve_primitive_quadrilateral_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_delete_geometry_cc::node_layout(), blender::nodes::node_geo_distribute_points_in_grid_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_enable_output_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_field_average_cc::node_layout(), blender::nodes::node_geo_field_min_and_max_cc::node_layout(), blender::nodes::node_geo_field_to_grid_cc::node_layout(), blender::nodes::node_geo_field_variance_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_grease_pencil_set_depth_mode::node_layout(), blender::nodes::node_geo_grid_advect_cc::node_layout(), blender::nodes::node_geo_grid_info_cc::node_layout(), blender::nodes::node_geo_grid_prune_cc::node_layout(), blender::nodes::node_geo_grid_voxelize_cc::node_layout(), blender::nodes::node_geo_index_switch_cc::node_layout(), blender::nodes::node_geo_input_named_attribute_cc::node_layout(), blender::nodes::node_geo_list_cc::node_layout(), blender::nodes::node_geo_list_get_item_cc::node_layout(), blender::nodes::node_geo_list_length_cc::node_layout(), blender::nodes::node_geo_menu_switch_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_proximity_cc::node_layout(), blender::nodes::node_geo_raycast_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_grease_pencil_color_cc::node_layout(), blender::nodes::node_geo_set_grid_background::node_layout(), blender::nodes::node_geo_set_grid_transform::node_layout(), blender::nodes::node_geo_set_mesh_normal_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_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_viewer_cc::node_layout(), blender::nodes::node_geo_warning_cc::node_layout(), blender::nodes::node_fn_format_string_cc::node_layout_ex(), blender::nodes::node_geo_attribute_capture_cc::node_layout_ex(), blender::nodes::node_geo_closure_cc::node_layout_ex(), blender::nodes::node_geo_combine_bundle_cc::node_layout_ex(), blender::nodes::node_geo_curve_resample_cc::node_layout_ex(), blender::nodes::node_geo_distribute_points_on_faces_cc::node_layout_ex(), blender::nodes::node_geo_evaluate_closure_cc::node_layout_ex(), blender::nodes::node_geo_field_to_grid_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_input_normal_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_separate_bundle_cc::node_layout_ex(), blender::nodes::node_geo_viewer_cc::node_layout_ex(), blender::nodes::node_shader_attribute_cc::node_shader_buts_attribute(), blender::ed::space_node::node_tree_interface_draw(), blender::ed::space_node::node_unassigned_assets_draw(), 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(), uiLayout::op(), uiLayout::op(), uiLayout::op_enum(), 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(), uiLayout::panel_prop_with_bool_header(), blender::ed::object::parent_set_invoke_menu(), path_panel_draw(), path_panel_draw_header(), position_panel_draw(), preferences_extension_repo_add_ui(), uiLayout::prop_enum(), uiLayout::prop_enum(), random_panel_draw(), random_panel_header_draw(), relative_offset_draw(), relative_offset_header_draw(), screen_area_menu_items(), screen_area_options_invoke(), screen_area_touch_menu_create(), screen_user_menu_draw(), blender::ed::sculpt_paint::color::sculpt_color_filter_ui(), blender::ed::sculpt_paint::filter::sculpt_mesh_ui_exec(), blender::ed::curves::select_ends_ui(), blender::ed::curves::select_random_ui(), blender::ed::pointcloud::select_random_ui(), blender::ed::sculpt_paint::select_random::select_random_ui(), blender::ed::vse::sequencer_add_catalog_assets_draw(), blender::ed::vse::sequencer_add_draw(), blender::ed::vse::sequencer_add_scene_draw(), blender::ed::vse::sequencer_add_unassigned_assets_draw(), blender::ed::vse::sequencer_split_ui(), blender::ed::curves::set_attribute_ui(), blender::ed::pointcloud::set_attribute_ui(), blender::nodes::node_sh_mix_cc::sh_node_mix_layout(), blender::nodes::node_shader_value_cc::sh_node_value_declare(), 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::space_node::std_node_socket_draw(), stepped_panel_draw(), subdivisions_panel_draw(), symmetry_panel_draw(), symmetry_panel_header_draw(), template_keymap_item_properties(), 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_remapping_panel_draw(), blender::seq::tonemapmodifier_panel_draw(), transform_panel_draw(), ui_but_menu_add_path_operators(), blender::ed::space_node::ui_node_draw_input(), blender::ed::space_node::ui_node_draw_recursive(), UI_popup_block_template_confirm_op(), ui_popup_context_menu_for_button(), ui_popup_context_menu_for_panel(), uiDefAutoButsRNA(), uilist_draw_filter_default(), uiTemplateAnyID(), uiTemplateCacheFile(), uiTemplateCacheFileTimeSettings(), uiTemplateCacheFileVelocity(), uiTemplateColormanagedViewSettings(), uiTemplateColorspaceSettings(), uiTemplateEditModeSelection(), uiTemplateImage(), uiTemplateImageFormatViews(), uiTemplateImageSettings(), uiTemplateImageStereo3d(), uiTemplateMovieClip(), uiTemplatePathBuilder(), uiTemplatePreview(), uiTemplateRecentFiles(), blender::ed::object::unassigned_assets_draw(), unpack_item_invoke(), unpack_menu(), blender::ed::object::bake_simulation::unpack_single_bake_invoke(), unwrap_draw(), uv_pack_islands_ui(), 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(), weight_sample_group_invoke(), weightvg_ui_common(), blender::seq::whiteBalance_panel_draw(), wm_block_splash_create(), wm_drop_import_file_invoke(), WM_menu_invoke_ex(), wm_open_mainfile_ui(), wm_stereo3d_set_draw(), and workspace_append_button().

Enumeration Type Documentation

◆ eUI_Item_Flag

enum eUI_Item_Flag : uint16_t
Enumerator
UI_ITEM_R_EXPAND 
UI_ITEM_R_SLIDER 
UI_ITEM_R_TOGGLE 

Use for booleans, causes the button to draw with an outline (emboss), instead of text with a checkbox. This is implied when toggle buttons have an icon unless UI_ITEM_R_ICON_NEVER flag is set.

UI_ITEM_R_ICON_NEVER 

Don't attempt to use an icon when the icon is set to #ICON_NONE.

Use for booleans, causes the buttons to always show as a checkbox even when there is an icon (which would normally show the button as a toggle).

UI_ITEM_R_ICON_ONLY 
UI_ITEM_R_EVENT 
UI_ITEM_R_FULL_EVENT 
UI_ITEM_R_NO_BG 
UI_ITEM_R_IMMEDIATE 
UI_ITEM_O_DEPRESS 
UI_ITEM_R_COMPACT 
UI_ITEM_R_CHECKBOX_INVERT 
UI_ITEM_R_FORCE_BLANK_DECORATE 

Don't add a real decorator item, just blank space.

UI_ITEM_R_SPLIT_EMPTY_NAME 
UI_ITEM_R_TEXT_BUT_FORCE_SEMI_MODAL_ACTIVE 

Only for text buttons (for now): Force the button as active in a semi-modal state (capturing text input while leaving the remaining UI interactive).

Definition at line 867 of file UI_interface_layout.hh.

◆ LayoutSeparatorType

enum class LayoutSeparatorType : int8_t
strong
Enumerator
Auto 
Space 
Line 

Definition at line 86 of file UI_interface_layout.hh.

◆ NodeAssetMenuOperatorType

enum class NodeAssetMenuOperatorType : int8_t
strong
Enumerator
Add 
Swap 

Definition at line 92 of file UI_interface_layout.hh.

Function Documentation

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

const char * UI_layout_introspect ( uiLayout * layout)

Evaluate layout items as a Python dictionary.

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

◆ UI_paneltype_draw()

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

Used for popup panels only.

Definition at line 5981 of file interface_layout.cc.

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

Referenced by ui_item_paneltype_func(), and UI_popover_panel_invoke().

◆ uiItemL_ex()

◆ uiItemL_respect_property_split()

uiLayout * uiItemL_respect_property_split ( uiLayout * layout,
blender::StringRef 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 3211 of file interface_layout.cc.

References uiLayout::block(), blender::ui::block_layout_set_current(), uiPropertySplitWrapper::decorate_column, uiPropertySplitWrapper::label_column, uiPropertySplitWrapper::property_row, ui_item_name_add_colon(), UI_MAX_NAME_STR, uiItem_simple(), uiItemPropertySplitWrapperCreate(), and uiLayout::use_property_split().

Referenced by draw_matrix_template(), 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,
blender::StringRef name,
int icon )

Label icon for dragging.

Definition at line 3231 of file interface_layout.cc.

References name, ptr, RNA_struct_is_ID(), UI_but_drag_set_id(), and uiItem_simple().

Referenced by buttons_panel_context_draw().

◆ uiItemPropertySplitWrapperCreate()

uiPropertySplitWrapper uiItemPropertySplitWrapperCreate ( uiLayout * parent_layout)

Normally, we handle the split layout in uiLayout::prop(), but there are other cases where the logic is needed. Ideally, uiLayout::prop() 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 3193 of file interface_layout.cc.

References uiLayout::alignment_set(), uiLayout::column(), uiPropertySplitWrapper::decorate_column, uiPropertySplitWrapper::label_column, uiPropertySplitWrapper::property_row, blender::ui::Right, uiLayout::row(), uiLayout::split(), UI_ITEM_PROP_SEP_DIVIDE, blender::ui::LayoutInternal::ui_item_prop_split_layout_hack(), and uiLayout::use_property_decorate().

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

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

◆ uiLayoutEndsWithPanelHeader()

bool uiLayoutEndsWithPanelHeader ( const uiLayout & layout)

Definition at line 4882 of file interface_layout.cc.

References uiLayout::items(), and uiItem::type().

Referenced by ed_panel_draw().

◆ uiLayoutListItemAddPadding()

◆ uiLayoutListItemPaddingWidth()

int uiLayoutListItemPaddingWidth ( )

Definition at line 5102 of file interface_layout.cc.

References UI_SCALE_FAC.

Referenced by uiLayoutListItemAddPadding().

◆ uiLayoutSetFunc()

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

◆ uiLayoutSetTooltipCustomFunc()

void uiLayoutSetTooltipCustomFunc ( uiLayout * layout,
uiButToolTipCustomFunc func,
void * arg,
uiCopyArgFunc copy_arg,
uiFreeArgFunc free_arg )

Same as above but should be used when building a fully custom tooltip instead of just generating a description.

Definition at line 5779 of file interface_layout.cc.

References uiButtonItem::but, Decorator, uiLayout::items(), uiBut::type, UI_but_func_tooltip_custom_set(), and uiLayoutSetTooltipCustomFunc().

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

◆ 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 5744 of file interface_layout.cc.

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

Referenced by blender::nodes::draw_interface_panel_as_panel(), and uiLayoutSetTooltipFunc().