#include "ui/views/view.h"
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cstdlib>
#include <iomanip>
#include <iterator>
#include <memory>
#include <optional>
#include <sstream>
#include <string_view>
#include <utility>
#include "base/auto_reset.h"
#include "base/check_op.h"
#include "base/command_line.h"
#include "base/containers/adapters.h"
#include "base/containers/contains.h"
#include "base/containers/flat_set.h"
#include "base/debug/crash_logging.h"
#include "base/debug/dump_without_crashing.h"
#include "base/debug/stack_trace.h"
#include "base/feature_list.h"
#include "base/functional/callback_helpers.h"
#include "base/i18n/rtl.h"
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/metrics/histogram_macros.h"
#include "base/not_fatal_until.h"
#include "base/notreached.h"
#include "base/numerics/safe_conversions.h"
#include "base/ranges/algorithm.h"
#include "base/scoped_observation.h"
#include "base/strings/utf_string_conversions.h"
#include "base/trace_event/common/trace_event_common.h"
#include "base/trace_event/trace_event.h"
#include "base/tracing/protos/chrome_track_event.pbzero.h"
#include "build/build_config.h"
#include "cc/paint/paint_flags.h"
#include "third_party/perfetto/include/perfetto/tracing/event_context.h"
#include "third_party/perfetto/include/perfetto/tracing/track_event.h"
#include "third_party/skia/include/core/SkPath.h"
#include "third_party/skia/include/core/SkScalar.h"
#include "ui/accessibility/ax_action_data.h"
#include "ui/actions/actions.h"
#include "ui/base/accelerators/accelerator_manager.h"
#include "ui/base/cursor/cursor.h"
#include "ui/base/dragdrop/drag_drop_types.h"
#include "ui/base/dragdrop/mojom/drag_drop_types.mojom.h"
#include "ui/base/dragdrop/os_exchange_data.h"
#include "ui/base/interaction/element_identifier.h"
#include "ui/base/metadata/base_type_conversion.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/color/color_provider.h"
#include "ui/compositor/clip_recorder.h"
#include "ui/compositor/compositor.h"
#include "ui/compositor/layer.h"
#include "ui/compositor/paint_context.h"
#include "ui/compositor/paint_recorder.h"
#include "ui/compositor/transform_recorder.h"
#include "ui/display/screen.h"
#include "ui/events/base_event_utils.h"
#include "ui/events/event.h"
#include "ui/events/event_constants.h"
#include "ui/events/event_target_iterator.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/geometry/point_conversions.h"
#include "ui/gfx/geometry/rect_conversions.h"
#include "ui/gfx/geometry/rect_f.h"
#include "ui/gfx/geometry/skia_conversions.h"
#include "ui/gfx/geometry/transform.h"
#include "ui/gfx/scoped_canvas.h"
#include "ui/native_theme/native_theme.h"
#include "ui/views/accessibility/accessibility_paint_checks.h"
#include "ui/views/accessibility/ax_event_manager.h"
#include "ui/views/accessibility/ax_virtual_view.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/actions/action_view_interface.h"
#include "ui/views/background.h"
#include "ui/views/border.h"
#include "ui/views/buildflags.h"
#include "ui/views/context_menu_controller.h"
#include "ui/views/controls/scroll_view.h"
#include "ui/views/drag_controller.h"
#include "ui/views/focus/focus_manager.h"
#include "ui/views/interaction/element_tracker_views.h"
#include "ui/views/layout/fill_layout.h"
#include "ui/views/layout/layout_provider.h"
#include "ui/views/view_class_properties.h"
#include "ui/views/view_observer.h"
#include "ui/views/view_tracker.h"
#include "ui/views/view_utils.h"
#include "ui/views/views_features.h"
#include "ui/views/views_switches.h"
#include "ui/views/widget/tooltip_manager.h"
#include "ui/views/widget/widget.h"
#if BUILDFLAG(IS_WIN)
#include "base/win/scoped_gdi_object.h"
#include "ui/native_theme/native_theme_win.h"
#endif
namespace ui {
class ClipboardFormatType;
enum class PropertyChangeReason;
}
namespace views {
namespace {
#if BUILDFLAG(IS_WIN)
constexpr bool kContextMenuOnMousePress = false;
#else
constexpr bool kContextMenuOnMousePress = …;
#endif
constexpr int kDefaultHorizontalDragThreshold = …;
constexpr int kDefaultVerticalDragThreshold = …;
constexpr int kXChangedKey = …;
constexpr int kYChangedKey = …;
constexpr int kWidthChangedKey = …;
constexpr int kHeightChangedKey = …;
const View* GetHierarchyRoot(const View* view) { … }
}
namespace internal {
#if DCHECK_IS_ON()
ScopedChildrenLock::ScopedChildrenLock(const View* view)
: … { … }
ScopedChildrenLock::~ScopedChildrenLock() = default;
#else
ScopedChildrenLock::ScopedChildrenLock(const View* view) {}
ScopedChildrenLock::~ScopedChildrenLock() {}
#endif
}
class VIEWS_EXPORT ViewMaskLayer : public ui::LayerDelegate,
public ViewObserver { … };
ViewMaskLayer::ViewMaskLayer(const SkPath& path, View* observed_view)
: … { … }
ViewMaskLayer::~ViewMaskLayer() { … }
void ViewMaskLayer::OnDeviceScaleFactorChanged(float old_device_scale_factor,
float new_device_scale_factor) { … }
void ViewMaskLayer::OnPaintLayer(const ui::PaintContext& context) { … }
void ViewMaskLayer::OnViewBoundsChanged(View* observed_view) { … }
View::View() { … }
View::~View() { … }
const Widget* View::GetWidget() const { … }
Widget* View::GetWidget() { … }
void View::ReorderChildView(View* view, size_t index) { … }
void View::RemoveChildView(View* view) { … }
void View::RemoveAllChildViews() { … }
void View::RemoveAllChildViewsWithoutDeleting() { … }
bool View::Contains(const View* view) const { … }
View::Views::const_iterator View::FindChild(const View* view) const { … }
std::optional<size_t> View::GetIndexOf(const View* view) const { … }
void View::SetBounds(int x, int y, int width, int height) { … }
void View::SetBoundsRect(const gfx::Rect& bounds) { … }
void View::SetSize(const gfx::Size& size) { … }
void View::SetPosition(const gfx::Point& position) { … }
void View::SetX(int x) { … }
void View::SetY(int y) { … }
gfx::Rect View::GetContentsBounds() const { … }
gfx::Rect View::GetLocalBounds() const { … }
gfx::Insets View::GetInsets() const { … }
gfx::Rect View::GetVisibleBounds() const { … }
gfx::Rect View::GetBoundsInScreen() const { … }
gfx::Rect View::GetAnchorBoundsInScreen() const { … }
gfx::Size View::GetPreferredSize(const SizeBounds& available_size) const { … }
int View::GetBaseline() const { … }
void View::SetPreferredSize(std::optional<gfx::Size> size) { … }
void View::SizeToPreferredSize() { … }
gfx::Size View::GetMinimumSize() const { … }
gfx::Size View::GetMaximumSize() const { … }
int View::GetHeightForWidth(int w) const { … }
SizeBounds View::GetAvailableSize(const View* child) const { … }
bool View::GetVisible() const { … }
void View::SetVisible(bool visible) { … }
base::CallbackListSubscription View::AddVisibleChangedCallback(
PropertyChangedCallback callback) { … }
bool View::IsDrawn() const { … }
bool View::GetIsDrawn() const { … }
bool View::GetEnabled() const { … }
void View::SetEnabled(bool enabled) { … }
base::CallbackListSubscription View::AddEnabledChangedCallback(
PropertyChangedCallback callback) { … }
View::Views View::GetChildrenInZOrder() { … }
gfx::Transform View::GetTransform() const { … }
void View::SetClipPath(const SkPath& path) { … }
void View::SetTransform(const gfx::Transform& transform) { … }
void View::SetPaintToLayer(ui::LayerType layer_type) { … }
void View::DestroyLayer() { … }
void View::AddLayerToRegion(ui::Layer* new_layer, LayerRegion region) { … }
void View::RemoveLayerFromRegions(ui::Layer* old_layer) { … }
void View::RemoveLayerFromRegionsKeepInLayerTree(ui::Layer* old_layer) { … }
std::vector<ui::Layer*> View::GetLayersInOrder(ViewLayer view_layer) { … }
void View::LayerDestroyed(ui::Layer* layer) { … }
std::unique_ptr<ui::Layer> View::RecreateLayer() { … }
gfx::Rect View::GetMirroredBounds() const { … }
gfx::Rect View::GetMirroredContentsBounds() const { … }
gfx::Point View::GetMirroredPosition() const { … }
int View::GetMirroredX() const { … }
int View::GetMirroredXForRect(const gfx::Rect& rect) const { … }
gfx::Rect View::GetMirroredRect(const gfx::Rect& rect) const { … }
int View::GetMirroredXInView(int x) const { … }
int View::GetMirroredXWithWidthInView(int x, int w) const { … }
void View::DeprecatedLayoutImmediately() { … }
void View::Layout(PassKey) { … }
void View::SetLayoutManagerUseConstrainedSpace(
bool layout_manager_use_constrained_space) { … }
void View::InvalidateLayout() { … }
LayoutManager* View::GetLayoutManager() const { … }
void View::SetLayoutManager(std::nullptr_t) { … }
bool View::GetUseDefaultFillLayout() const { … }
void View::SetUseDefaultFillLayout(bool value) { … }
const View* View::GetViewByID(int id) const { … }
View* View::GetViewByID(int id) { … }
void View::SetID(int id) { … }
base::CallbackListSubscription View::AddIDChangedCallback(
PropertyChangedCallback callback) { … }
void View::SetGroup(int gid) { … }
int View::GetGroup() const { … }
base::CallbackListSubscription View::AddGroupChangedCallback(
PropertyChangedCallback callback) { … }
bool View::IsGroupFocusTraversable() const { … }
void View::GetViewsInGroup(int group, Views* views) { … }
View* View::GetSelectedViewForGroup(int group) { … }
std::string View::GetObjectName() const { … }
void View::ConvertPointToTarget(const View* source,
const View* target,
gfx::Point* point) { … }
gfx::Point View::ConvertPointToTarget(const View* source,
const View* target,
const gfx::Point& point) { … }
void View::ConvertRectToTarget(const View* source,
const View* target,
gfx::RectF* rect) { … }
gfx::RectF View::ConvertRectToTarget(const View* source,
const View* target,
const gfx::RectF& rect) { … }
gfx::Rect View::ConvertRectToTarget(const View* source,
const View* target,
const gfx::Rect& rect) { … }
void View::ConvertPointToWidget(const View* src, gfx::Point* p) { … }
void View::ConvertPointFromWidget(const View* dest, gfx::Point* p) { … }
void View::ConvertPointToScreen(const View* src, gfx::Point* p) { … }
gfx::Point View::ConvertPointToScreen(const View* src, const gfx::Point& p) { … }
void View::ConvertPointFromScreen(const View* dst, gfx::Point* p) { … }
gfx::Point View::ConvertPointFromScreen(const View* src, const gfx::Point& p) { … }
void View::ConvertRectToScreen(const View* src, gfx::Rect* rect) { … }
gfx::Rect View::ConvertRectToParent(const gfx::Rect& rect) const { … }
gfx::Rect View::ConvertRectToWidget(const gfx::Rect& rect) const { … }
void View::SchedulePaint() { … }
void View::SchedulePaintInRect(const gfx::Rect& rect) { … }
std::string IntToHex(uint32_t value) { … }
void View::Paint(const PaintInfo& parent_paint_info) { … }
void View::SetBackground(std::unique_ptr<Background> b) { … }
Background* View::GetBackground() const { … }
void View::SetBorder(std::unique_ptr<Border> b) { … }
Border* View::GetBorder() const { … }
const ui::ThemeProvider* View::GetThemeProvider() const { … }
const LayoutProvider* View::GetLayoutProvider() const { … }
const ui::ColorProvider* View::GetColorProvider() const { … }
const ui::NativeTheme* View::GetNativeTheme() const { … }
bool View::GetFlipCanvasOnPaintForRTLUI() const { … }
void View::SetFlipCanvasOnPaintForRTLUI(bool enable) { … }
base::CallbackListSubscription
View::AddFlipCanvasOnPaintForRTLUIChangedCallback(
PropertyChangedCallback callback) { … }
void View::SetMirrored(bool is_mirrored) { … }
bool View::GetMirrored() const { … }
View* View::GetEventHandlerForPoint(const gfx::Point& point) { … }
View* View::GetEventHandlerForRect(const gfx::Rect& rect) { … }
bool View::GetCanProcessEventsWithinSubtree() const { … }
void View::SetCanProcessEventsWithinSubtree(bool can_process) { … }
View* View::GetTooltipHandlerForPoint(const gfx::Point& point) { … }
ui::Cursor View::GetCursor(const ui::MouseEvent& event) { … }
bool View::HitTestPoint(const gfx::Point& point) const { … }
bool View::HitTestRect(const gfx::Rect& rect) const { … }
bool View::IsMouseHovered() const { … }
bool View::OnMousePressed(const ui::MouseEvent& event) { … }
bool View::OnMouseDragged(const ui::MouseEvent& event) { … }
void View::OnMouseReleased(const ui::MouseEvent& event) { … }
void View::OnMouseCaptureLost() { … }
void View::OnMouseMoved(const ui::MouseEvent& event) { … }
void View::OnMouseEntered(const ui::MouseEvent& event) { … }
void View::OnMouseExited(const ui::MouseEvent& event) { … }
void View::SetMouseAndGestureHandler(View* new_handler) { … }
void View::SetMouseHandler(View* new_handler) { … }
bool View::OnKeyPressed(const ui::KeyEvent& event) { … }
bool View::OnKeyReleased(const ui::KeyEvent& event) { … }
bool View::OnMouseWheel(const ui::MouseWheelEvent& event) { … }
void View::OnKeyEvent(ui::KeyEvent* event) { … }
void View::OnMouseEvent(ui::MouseEvent* event) { … }
void View::OnScrollEvent(ui::ScrollEvent* event) { … }
void View::OnTouchEvent(ui::TouchEvent* event) { … }
void View::OnGestureEvent(ui::GestureEvent* event) { … }
std::string_view View::GetLogContext() const { … }
void View::SetNotifyEnterExitOnChild(bool notify) { … }
bool View::GetNotifyEnterExitOnChild() const { … }
const ui::InputMethod* View::GetInputMethod() const { … }
std::unique_ptr<ViewTargeter> View::SetEventTargeter(
std::unique_ptr<ViewTargeter> targeter) { … }
ViewTargeter* View::GetEffectiveViewTargeter() const { … }
WordLookupClient* View::GetWordLookupClient() { … }
bool View::CanAcceptEvent(const ui::Event& event) { … }
ui::EventTarget* View::GetParentTarget() { … }
std::unique_ptr<ui::EventTargetIterator> View::GetChildIterator() const { … }
ui::EventTargeter* View::GetEventTargeter() { … }
void View::ConvertEventToTarget(const ui::EventTarget* target,
ui::LocatedEvent* event) const { … }
gfx::PointF View::GetScreenLocationF(const ui::LocatedEvent& event) const { … }
void View::AddAccelerator(const ui::Accelerator& accelerator) { … }
void View::RemoveAccelerator(const ui::Accelerator& accelerator) { … }
void View::ResetAccelerators() { … }
bool View::AcceleratorPressed(const ui::Accelerator& accelerator) { … }
bool View::CanHandleAccelerators() const { … }
bool View::HasFocus() const { … }
View* View::GetNextFocusableView() { … }
const View* View::GetNextFocusableView() const { … }
View* View::GetPreviousFocusableView() { … }
void View::RemoveFromFocusList() { … }
void View::InsertBeforeInFocusList(View* view) { … }
void View::InsertAfterInFocusList(View* view) { … }
View::Views View::GetChildrenFocusList() { … }
View::FocusBehavior View::GetFocusBehavior() const { … }
void View::SetFocusBehavior(FocusBehavior focus_behavior) { … }
bool View::IsFocusable() const { … }
FocusManager* View::GetFocusManager() { … }
const FocusManager* View::GetFocusManager() const { … }
void View::RequestFocus() { … }
bool View::SkipDefaultKeyEventProcessing(const ui::KeyEvent& event) { … }
FocusTraversable* View::GetFocusTraversable() { … }
FocusTraversable* View::GetPaneFocusTraversable() { … }
std::u16string View::GetTooltipText(const gfx::Point& p) const { … }
void View::set_context_menu_controller(ContextMenuController* menu_controller) { … }
void View::ShowContextMenu(const gfx::Point& p,
ui::MenuSourceType source_type) { … }
gfx::Point View::GetKeyboardContextMenuLocation() { … }
bool View::GetDropFormats(int* formats,
std::set<ui::ClipboardFormatType>* format_types) { … }
bool View::AreDropTypesRequired() { … }
bool View::CanDrop(const OSExchangeData& data) { … }
void View::OnDragEntered(const ui::DropTargetEvent& event) { … }
int View::OnDragUpdated(const ui::DropTargetEvent& event) { … }
void View::OnDragExited() { … }
void View::OnDragDone() { … }
View::DropCallback View::GetDropCallback(const ui::DropTargetEvent& event) { … }
bool View::ExceededDragThreshold(const gfx::Vector2d& delta) { … }
ViewAccessibility& View::GetViewAccessibility() const { … }
void View::SetAccessibilityProperties(
std::optional<ax::mojom::Role> role,
std::optional<std::u16string> name,
std::optional<std::u16string> description,
std::optional<std::u16string> role_description,
std::optional<ax::mojom::NameFrom> name_from,
std::optional<ax::mojom::DescriptionFrom> description_from) { … }
void View::SetAccessibleName(const std::u16string& name) { … }
void View::SetAccessibleName(std::u16string name,
ax::mojom::NameFrom name_from) { … }
void View::SetAccessibleName(View* naming_view) { … }
std::u16string View::GetAccessibleName() const { … }
void View::SetAccessibleRole(const ax::mojom::Role role) { … }
void View::SetAccessibleRole(const ax::mojom::Role role,
const std::u16string& role_description) { … }
ax::mojom::Role View::GetAccessibleRole() const { … }
void View::SetAccessibleDescription(const std::u16string& description) { … }
void View::SetAccessibleDescription(
const std::u16string& description,
ax::mojom::DescriptionFrom description_from) { … }
void View::SetAccessibleDescription(View* describing_view) { … }
std::u16string View::GetAccessibleDescription() const { … }
bool View::HandleAccessibleAction(const ui::AXActionData& action_data) { … }
gfx::NativeViewAccessible View::GetNativeViewAccessible() { … }
void View::NotifyAccessibilityEvent(ax::mojom::Event event_type,
bool send_native_event) { … }
void View::OnAccessibilityEvent(ax::mojom::Event event_type) { … }
void View::ScrollRectToVisible(const gfx::Rect& rect) { … }
void View::ScrollViewToVisible() { … }
void View::AddObserver(ViewObserver* observer) { … }
void View::RemoveObserver(ViewObserver* observer) { … }
bool View::HasObserver(const ViewObserver* observer) const { … }
gfx::Size View::CalculatePreferredSize(const SizeBounds& available_size) const { … }
void View::PreferredSizeChanged() { … }
bool View::GetNeedsNotificationWhenVisibleBoundsChange() const { … }
void View::OnVisibleBoundsChanged() { … }
void View::ViewHierarchyChanged(const ViewHierarchyChangedDetails& details) { … }
void View::VisibilityChanged(View* starting_from, bool is_visible) { … }
void View::NativeViewHierarchyChanged() { … }
void View::AddedToWidget() { … }
void View::RemovedFromWidget() { … }
void View::OnDidSchedulePaint(const gfx::Rect& rect) { … }
void View::PaintChildren(const PaintInfo& paint_info) { … }
void View::OnPaint(gfx::Canvas* canvas) { … }
void View::OnPaintBackground(gfx::Canvas* canvas) { … }
void View::OnPaintBorder(gfx::Canvas* canvas) { … }
View::LayerOffsetData View::CalculateOffsetToAncestorWithLayer(
ui::Layer** layer_parent) { … }
void View::UpdateParentLayer() { … }
void View::MoveLayerToParent(ui::Layer* parent_layer,
const LayerOffsetData& offset_data) { … }
void View::UpdateLayerVisibility() { … }
void View::UpdateChildLayerVisibility(bool ancestor_visible) { … }
void View::DestroyLayerImpl(LayerChangeNotifyBehavior notify_parents) { … }
void View::NotifyParentsOfLayerChange() { … }
void View::UpdateChildLayerBounds(const LayerOffsetData& offset_data) { … }
void View::OnPaintLayer(const ui::PaintContext& context) { … }
void View::OnLayerTransformed(const gfx::Transform& old_transform,
ui::PropertyChangeReason reason) { … }
void View::OnLayerClipRectChanged(const gfx::Rect& old_rect,
ui::PropertyChangeReason reason) { … }
void View::OnDeviceScaleFactorChanged(float old_device_scale_factor,
float new_device_scale_factor) { … }
void View::CreateOrDestroyLayer() { … }
void View::ReorderLayers() { … }
void View::AddLayerToRegionImpl(
ui::Layer* new_layer,
std::vector<raw_ptr<ui::Layer, VectorExperimental>>& layer_vector) { … }
void View::SetLayerParent(ui::Layer* parent_layer) { … }
void View::ReorderChildLayers(ui::Layer* parent_layer) { … }
void View::OnChildLayerChanged(View* child) { … }
View::DragInfo* View::GetDragInfo() { … }
void View::OnFocus() { … }
void View::OnBlur() { … }
void View::Focus() { … }
void View::Blur() { … }
void View::OnThemeChanged() { … }
void View::TooltipTextChanged() { … }
void View::UpdateTooltipForFocus() { … }
int View::GetDragOperations(const gfx::Point& press_pt) { … }
void View::WriteDragData(const gfx::Point& press_pt, OSExchangeData* data) { … }
bool View::InDrag() const { … }
int View::GetHorizontalDragThreshold() { … }
int View::GetVerticalDragThreshold() { … }
PaintInfo::ScaleType View::GetPaintScaleType() const { … }
void View::HandlePropertyChangeEffects(PropertyEffects effects) { … }
void View::AfterPropertyChange(const void* key, int64_t old_value) { … }
void View::OnPropertyChanged(ui::metadata::PropertyKey property,
PropertyEffects property_effects) { … }
int View::GetX() const { … }
int View::GetY() const { … }
int View::GetWidth() const { … }
int View::GetHeight() const { … }
void View::SetWidth(int width) { … }
void View::SetHeight(int height) { … }
std::u16string View::GetTooltip() const { … }
void View::DragInfo::Reset() { … }
void View::DragInfo::PossibleDrag(const gfx::Point& p) { … }
void View::SchedulePaintInRectImpl(const gfx::Rect& rect) { … }
void View::SchedulePaintBoundsChanged(bool size_changed) { … }
void View::SchedulePaintOnParent() { … }
bool View::ShouldPaint() const { … }
void View::SetUpTransformRecorderForPainting(
const gfx::Vector2d& offset_from_parent,
ui::TransformRecorder* recorder) const { … }
void View::RecursivePaintHelper(void (View::*func)(const PaintInfo&),
const PaintInfo& info) { … }
void View::PaintFromPaintRoot(const ui::PaintContext& parent_context) { … }
void View::PaintDebugRects(const PaintInfo& parent_paint_info) { … }
void View::AddChildViewAtImpl(View* view, size_t index) { … }
void View::DoRemoveChildView(View* view,
bool update_tool_tip,
bool delete_removed_view,
View* new_parent) { … }
void View::PropagateRemoveNotifications(View* old_parent,
View* new_parent,
bool is_removed_from_widget) { … }
void View::PropagateAddNotifications(const ViewHierarchyChangedDetails& details,
bool is_added_to_widget) { … }
void View::PropagateNativeViewHierarchyChanged() { … }
void View::ViewHierarchyChangedImpl(
const ViewHierarchyChangedDetails& details) { … }
void View::PropagateVisibilityNotifications(View* start, bool is_visible) { … }
void View::VisibilityChangedImpl(View* starting_from, bool is_visible) { … }
void View::SnapLayerToPixelBoundary(const LayerOffsetData& offset_data) { … }
void View::RegisterChildrenForVisibleBoundsNotification(View* view) { … }
void View::UnregisterChildrenForVisibleBoundsNotification(View* view) { … }
void View::RegisterForVisibleBoundsNotification() { … }
void View::UnregisterForVisibleBoundsNotification() { … }
void View::AddDescendantToNotify(View* view) { … }
void View::RemoveDescendantToNotify(View* view) { … }
void View::SetLayoutManagerImpl(std::unique_ptr<LayoutManager> layout_manager) { … }
void View::SetToDefaultFillLayout() { … }
void View::SetLayerBounds(const gfx::Size& size,
const LayerOffsetData& offset_data) { … }
bool View::GetTransformRelativeTo(const View* ancestor,
gfx::Transform* transform) const { … }
bool View::ConvertPointForAncestor(const View* ancestor,
gfx::Point* point) const { … }
bool View::ConvertPointFromAncestor(const View* ancestor,
gfx::Point* point) const { … }
bool View::ConvertRectForAncestor(const View* ancestor,
gfx::RectF* rect) const { … }
bool View::ConvertRectFromAncestor(const View* ancestor,
gfx::RectF* rect) const { … }
void View::CreateLayer(ui::LayerType layer_type) { … }
bool View::UpdateParentLayers() { … }
void View::OrphanLayers() { … }
void View::ReparentLayer(ui::Layer* parent_layer) { … }
void View::CreateMaskLayer() { … }
bool View::HasLayoutManager() const { … }
void View::LayoutImmediately() { … }
bool View::ProcessMousePressed(const ui::MouseEvent& event) { … }
void View::ProcessMouseDragged(ui::MouseEvent* event) { … }
void View::ProcessMouseReleased(const ui::MouseEvent& event) { … }
void View::RegisterPendingAccelerators() { … }
void View::UnregisterAccelerators(bool leave_data_intact) { … }
void View::SetFocusSiblings(View* view, Views::const_iterator pos) { … }
void View::AdvanceFocusIfNecessary() { … }
void View::PropagateThemeChanged() { … }
void View::PropagateDeviceScaleFactorChanged(float old_device_scale_factor,
float new_device_scale_factor) { … }
void View::UpdateTooltip() { … }
bool View::kShouldDisableKeyboardTooltipsForTesting = …;
void View::DisableKeyboardTooltipsForTesting() { … }
void View::EnableKeyboardTooltipsForTesting() { … }
bool View::DoDrag(const ui::LocatedEvent& event,
const gfx::Point& press_pt,
ui::mojom::DragEventSource source) { … }
std::unique_ptr<ActionViewInterface> View::GetActionViewInterface() { … }
base::CallbackListSubscription View::RegisterNotifyViewControllerCallback(
base::RepeatingClosureList::CallbackType callback) { … }
void View::NotifyViewControllerCallback() { … }
BaseActionViewInterface::BaseActionViewInterface(View* action_view)
: … { … }
void BaseActionViewInterface::ActionItemChangedImpl(
actions::ActionItem* action_item) { … }
BEGIN_METADATA_BASE(…)
}
DEFINE_ENUM_CONVERTERS(…)