|
Blender V5.0
|
#include <memory>#include "DNA_screen_types.h"#include "BKE_screen.hh"#include "BLI_listbase.h"#include "BLI_map.hh"#include "BLI_rect.h"#include "ED_screen.hh"#include "interface_intern.hh"#include "UI_abstract_view.hh"#include "UI_grid_view.hh"#include "UI_tree_view.hh"Go to the source code of this file.
Classes | |
| struct | ViewLink |
Namespaces | |
| namespace | blender |
| namespace | blender::ui |
Code to manage views as part of the regular screen hierarchy. E.g. managing ownership of views inside blocks (uiBlock.views), looking up items in the region, passing WM notifiers to views, etc.
Blocks and their contained views are reconstructed on every redraw. This file also contains functions related to this recreation of views inside blocks. For example to query state information before the view is done reconstructing (AbstractView.is_reconstructed() returns false), it may be enough to query the previous version of the block/view/view-item. Since such queries rely on the details of the UI reconstruction process, they should remain internal to interface/ code.
Definition in file interface_view.cc.
|
static |
Definition at line 153 of file interface_view.cc.
References BLI_addhead(), uiViewStateLink::idname, ViewLink::idname, LISTBASE_FOREACH, MEM_callocN(), and ARegion::view_states.
Referenced by ui_block_views_end().
| AbstractGridView * UI_block_add_view | ( | uiBlock & | block, |
| blender::StringRef | idname, | ||
| std::unique_ptr< blender::ui::AbstractGridView > | grid_view ) |
Override this for all available view types.
| idname | Used for restoring persistent state of this view, potentially written to files. Must not be longer than BKE_ST_MAXNAME (including 0 terminator). |
Definition at line 67 of file interface_view.cc.
References ui_block_add_view_impl().
Referenced by blender::ed::asset::shelf::build_asset_view(), blender::ed::asset::shelf::catalog_selector_panel_draw(), blender::ed::asset::shelf::catalog_tree_draw(), blender::ed::spreadsheet::draw_viewer_data_panel(), blender::ed::spreadsheet::draw_viewer_path_panel(), blender::ed::asset_browser::file_create_asset_catalog_tree_view_in_layout(), blender::ed::spreadsheet::spreadsheet_data_set_panel_draw(), blender::ed::object::shapekey::template_tree(), uiTemplateBoneCollectionTree(), uiTemplateGreasePencilLayerTree(), uiTemplateLightLinkingCollection(), and uiTemplateNodeTreeInterface().
| AbstractTreeView * UI_block_add_view | ( | uiBlock & | block, |
| StringRef | idname, | ||
| std::unique_ptr< AbstractTreeView > | tree_view ) |
Definition at line 74 of file interface_view.cc.
References ui_block_add_view_impl().
|
static |
Definition at line 52 of file interface_view.cc.
References BLI_addtail(), BLI_assert, uiViewStateLink::idname, ViewLink::idname, blender::StringRefBase::size(), T, view, ViewLink::view, and uiBlock::views.
Referenced by UI_block_add_view(), and UI_block_add_view().
| void ui_block_free_views | ( | uiBlock * | block | ) |
Definition at line 81 of file interface_view.cc.
References LISTBASE_FOREACH_MUTABLE, and uiBlock::views.
Referenced by UI_block_free().
|
static |
Definition at line 308 of file interface_view.cc.
References LISTBASE_FOREACH, view, and uiBlock::views.
Referenced by ui_block_view_find_matching_in_old_block_impl().
| blender::ui::AbstractView * ui_block_view_find_matching_in_old_block | ( | const uiBlock & | new_block, |
| const blender::ui::AbstractView & | new_view ) |
Definition at line 343 of file interface_view.cc.
References ui_block_view_find_matching_in_old_block_impl().
Referenced by blender::ui::AbstractView::update_from_old().
|
static |
Definition at line 321 of file interface_view.cc.
References blender::StringRefBase::is_empty(), LISTBASE_FOREACH, uiBlock::oldblock, T, ui_block_view_find_idname(), and uiBlock::views.
Referenced by ui_block_view_find_matching_in_old_block(), and ui_block_view_find_matching_view_item_but_in_old_block().
| uiButViewItem * ui_block_view_find_matching_view_item_but_in_old_block | ( | const uiBlock & | new_block, |
| const ui::AbstractViewItem & | new_item ) |
Definition at line 349 of file interface_view.cc.
References uiBlock::buttons, blender::ui::AbstractViewItem::get_view(), uiBlock::oldblock, ui_block_view_find_matching_in_old_block_impl(), UI_view_item_matches(), uiButViewItem::view_item, and ViewItem.
Referenced by blender::ui::AbstractTreeViewItem::is_hovered().
| void ui_block_view_persistent_state_restore | ( | const ARegion & | region, |
| const uiBlock & | block, | ||
| ui::AbstractView & | view ) |
Definition at line 128 of file interface_view.cc.
References BLI_assert_unreachable, blender::StringRefBase::is_empty(), LISTBASE_FOREACH, view, ARegion::view_states, and uiBlock::views.
Referenced by blender::ui::GridViewBuilder::build_grid_view(), and blender::ui::TreeViewBuilder::build_tree_view().
Definition at line 193 of file interface_view.cc.
References LISTBASE_FOREACH, and uiBlock::views.
Referenced by UI_block_draw().
Definition at line 167 of file interface_view.cc.
References ensure_view_state(), LISTBASE_FOREACH, ARegion::regiontype, RGN_TYPE_TEMPORARY, uiViewStateLink::state, uiBlock::views, and ViewLink::views_bounds_calc().
Referenced by UI_block_end_ex(), and UI_panels_end().
| void ui_block_views_listen | ( | const uiBlock * | block, |
| const wmRegionListenerParams * | listener_params ) |
Definition at line 182 of file interface_view.cc.
References ED_region_tag_redraw(), LISTBASE_FOREACH, wmRegionListenerParams::notifier, wmRegionListenerParams::region, and uiBlock::views.
Referenced by UI_block_listen().
| blender::ui::AbstractView * UI_region_view_find_at | ( | const ARegion * | region, |
| const int | xy[2], | ||
| int | pad ) |
| xy | Coordinate to find a view item at, in window space. |
| pad | Extra padding added to the bounding box of the view. |
Definition at line 200 of file interface_view.cc.
References BLI_rcti_isect_pt(), BLI_rcti_pad(), LISTBASE_FOREACH, pad, ARegion::runtime, ui_region_contains_point_px(), ui_window_to_block_fl(), and xy.
Referenced by get_view_focused(), blender::ui::region_views_find_drop_target_at(), select_operator_view_and_item_find_xy(), and ui_view_start_filter_invoke().
| void UI_region_views_clear_search_highlight | ( | const ARegion * | region | ) |
Definition at line 257 of file interface_view.cc.
References LISTBASE_FOREACH, and ARegion::runtime.
Referenced by ui_handle_view_item_event().
| ui::AbstractViewItem * UI_region_views_find_active_item | ( | const ARegion * | region | ) |
Definition at line 242 of file interface_view.cc.
References ui_view_item_find_active(), and uiButViewItem::view_item.
Referenced by ui_view_item_rename_exec(), and ui_view_item_rename_poll().
Definition at line 252 of file interface_view.cc.
References ui_view_item_find_active().
Referenced by blender::ed::asset::shelf::context().
| ui::AbstractViewItem * UI_region_views_find_item_at | ( | const ARegion & | region, |
| const int | xy[2] ) |
| xy | Coordinate to find a view item at, in window space. |
Definition at line 232 of file interface_view.cc.
References ui_view_item_find_mouse_over(), uiButViewItem::view_item, and xy.
Referenced by blender::ui::region_views_find_drop_target_at(), select_operator_view_and_item_find_xy(), and ui_view_item_select_invoke().