summaryrefslogtreecommitdiffstats
path: root/views/view.cc
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-15 15:36:03 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-15 15:36:03 +0000
commit3da0bfd1d9974b55d3358aad5954836e9986ef4b (patch)
treefbe33a78ca5f6aba01b5544516c66c17953d6552 /views/view.cc
parenta20720983ddc7796ba3b93b3e57be2e5ba7f31a5 (diff)
downloadchromium_src-3da0bfd1d9974b55d3358aad5954836e9986ef4b.zip
chromium_src-3da0bfd1d9974b55d3358aad5954836e9986ef4b.tar.gz
chromium_src-3da0bfd1d9974b55d3358aad5954836e9986ef4b.tar.bz2
Changes the tab close button to a dot, unless you're near the button
or the tab is selected. I'm not to keen on the mouse near names, if you have better ideas please say so. BUG=45743 TEST=none Review URL: http://codereview.chromium.org/2796006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49795 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/view.cc')
-rw-r--r--views/view.cc33
1 files changed, 25 insertions, 8 deletions
diff --git a/views/view.cc b/views/view.cc
index 012240a..988e76b 100644
--- a/views/view.cc
+++ b/views/view.cc
@@ -132,6 +132,21 @@ void View::SetBounds(const gfx::Rect& bounds) {
}
}
+void View::RegisterForMouseNearEvents(const gfx::Insets& insets) {
+ RootView* root = GetRootView();
+ if (insets.empty()) {
+ near_insets_.reset(NULL);
+ if (root)
+ root->UnregisterViewForNearNotification(this);
+ } else {
+ near_insets_.reset(
+ new gfx::Insets(insets.top(), insets.left(), insets.bottom(),
+ insets.right()));
+ if (root)
+ root->RegisterViewForNearNotification(this);
+ }
+}
+
gfx::Rect View::GetLocalBounds(bool include_border) const {
if (include_border || !border_.get())
return gfx::Rect(0, 0, width(), height());
@@ -537,7 +552,7 @@ void View::AddChildView(int index, View* v) {
UpdateTooltip();
RootView* root = GetRootView();
if (root)
- RegisterChildrenForVisibleBoundsNotification(root, v);
+ RegisterChildrenForRootNotifications(root, v);
if (layout_manager_.get())
layout_manager_->ViewAdded(this, v);
@@ -609,7 +624,7 @@ void View::DoRemoveChildView(View* a_view,
RootView* root = GetRootView();
if (root)
- UnregisterChildrenForVisibleBoundsNotification(root, a_view);
+ UnregisterChildrenForRootNotifications(root, a_view);
a_view->PropagateRemoveNotifications(this);
a_view->SetParent(NULL);
@@ -1440,24 +1455,26 @@ ThemeProvider* View::GetThemeProvider() const {
}
// static
-void View::RegisterChildrenForVisibleBoundsNotification(
- RootView* root, View* view) {
+void View::RegisterChildrenForRootNotifications(RootView* root, View* view) {
DCHECK(root && view);
if (view->GetNotifyWhenVisibleBoundsInRootChanges())
root->RegisterViewForVisibleBoundsNotification(view);
+ if (view->near_insets_.get())
+ root->RegisterViewForNearNotification(view);
for (int i = 0; i < view->GetChildViewCount(); ++i)
- RegisterChildrenForVisibleBoundsNotification(root, view->GetChildViewAt(i));
+ RegisterChildrenForRootNotifications(root, view->GetChildViewAt(i));
}
// static
-void View::UnregisterChildrenForVisibleBoundsNotification(
+void View::UnregisterChildrenForRootNotifications(
RootView* root, View* view) {
DCHECK(root && view);
if (view->GetNotifyWhenVisibleBoundsInRootChanges())
root->UnregisterViewForVisibleBoundsNotification(view);
+ if (view->near_insets_.get())
+ root->UnregisterViewForNearNotification(view);
for (int i = 0; i < view->GetChildViewCount(); ++i)
- UnregisterChildrenForVisibleBoundsNotification(root,
- view->GetChildViewAt(i));
+ UnregisterChildrenForRootNotifications(root, view->GetChildViewAt(i));
}
void View::AddDescendantToNotify(View* view) {