Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/views/compact_nav/compact_location_bar_view_host.h" | 5 #include "chrome/browser/ui/views/compact_nav/compact_location_bar_view_host.h" |
| 6 | 6 |
| 7 #if defined(TOOLKIT_USES_GTK) | 7 #if defined(TOOLKIT_USES_GTK) |
| 8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 65 virtual void WillProcessEvent(GdkEvent* native_event) OVERRIDE; | 65 virtual void WillProcessEvent(GdkEvent* native_event) OVERRIDE; |
| 66 virtual void DidProcessEvent(GdkEvent* native_event) OVERRIDE; | 66 virtual void DidProcessEvent(GdkEvent* native_event) OVERRIDE; |
| 67 #endif | 67 #endif |
| 68 #endif | 68 #endif |
| 69 | 69 |
| 70 void Observe(MessageLoopForUI* loop); | 70 void Observe(MessageLoopForUI* loop); |
| 71 void StopObserving(MessageLoopForUI* loop); | 71 void StopObserving(MessageLoopForUI* loop); |
| 72 | 72 |
| 73 private: | 73 private: |
| 74 // TODO(mad): would be nice to have this on the views::Event class. | 74 // TODO(mad): would be nice to have this on the views::Event class. |
| 75 #if !defined(USE_AURA) | |
| 76 #if defined(OS_WIN) | |
| 75 bool IsMouseEvent(const views::NativeEvent& native_event); | 77 bool IsMouseEvent(const views::NativeEvent& native_event); |
| 78 #elif defined(OS_LINUX) | |
|
Ben Goodger (Google)
2011/09/24 16:39:04
This should be TOOLKIT_USES_GTK, no?
msw
2011/09/26 05:08:00
Done.
| |
| 79 bool IsMouseEvent(GdkEvent* gdk_event); | |
|
sadrul
2011/09/24 16:56:08
Are IsMouseEvent/IsSameTopLevelWindow not used/nec
msw
2011/09/26 05:08:00
The only caller, MouseObserver::DidProcessEvent, i
| |
| 80 #endif | |
| 81 #endif | |
| 76 | 82 |
| 83 #if !defined(USE_AURA) | |
| 84 #if defined(OS_WIN) | |
| 77 bool IsSameTopLevelWindow(views::NativeEvent native_event); | 85 bool IsSameTopLevelWindow(views::NativeEvent native_event); |
| 86 #elif defined(OS_LINUX) | |
| 87 bool IsSameTopLevelWindow(GdkEvent* gdk_event); | |
| 88 #endif | |
| 89 #endif | |
| 78 | 90 |
| 79 // Tests if the event occurred on the content area, using | 91 // Tests if the event occurred on the content area, using |
| 80 // root window's coordinates. | 92 // root window's coordinates. |
| 81 bool HitContentArea(int x, int y); | 93 bool HitContentArea(int x, int y); |
| 82 | 94 |
| 83 // Tests if |p| in the root window's coordinate is within the |view|'s bound. | 95 // Tests if |p| in the root window's coordinate is within the |view|'s bound. |
| 84 bool HitOnScreen(const views::View* view, const gfx::Point& p); | 96 bool HitOnScreen(const views::View* view, const gfx::Point& p); |
| 85 | 97 |
| 86 CompactLocationBarViewHost* host_; | 98 CompactLocationBarViewHost* host_; |
| 87 BrowserView* browser_view_; | 99 BrowserView* browser_view_; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 138 | 150 |
| 139 void MouseObserver::StopObserving(MessageLoopForUI* loop) { | 151 void MouseObserver::StopObserving(MessageLoopForUI* loop) { |
| 140 #if !defined(USE_AURA) | 152 #if !defined(USE_AURA) |
| 141 if (observing_) { | 153 if (observing_) { |
| 142 loop->RemoveObserver(this); | 154 loop->RemoveObserver(this); |
| 143 observing_ = false; | 155 observing_ = false; |
| 144 } | 156 } |
| 145 #endif | 157 #endif |
| 146 } | 158 } |
| 147 | 159 |
| 160 #if !defined(USE_AURA) | |
| 161 #if defined(OS_WIN) | |
| 148 bool MouseObserver::IsMouseEvent(const views::NativeEvent& native_event) { | 162 bool MouseObserver::IsMouseEvent(const views::NativeEvent& native_event) { |
| 149 #if defined(OS_WIN) || defined(USE_AURA) | 163 return ui::IsMouseEvent(native_event); |
| 150 return views::IsClientMouseEvent(native_event) || | 164 } |
| 151 views::IsNonClientMouseEvent(native_event); | |
| 152 #elif defined(OS_LINUX) | 165 #elif defined(OS_LINUX) |
| 153 return native_event->type == GDK_MOTION_NOTIFY || | 166 bool MouseObserver::IsMouseEvent(GdkEvent* gdk_event) { |
| 154 native_event->type == GDK_BUTTON_PRESS || | 167 return gdk_event->type == GDK_MOTION_NOTIFY || |
| 155 native_event->type == GDK_2BUTTON_PRESS || | 168 gdk_event->type == GDK_BUTTON_PRESS || |
| 156 native_event->type == GDK_3BUTTON_PRESS || | 169 gdk_event->type == GDK_2BUTTON_PRESS || |
| 157 native_event->type == GDK_BUTTON_RELEASE; | 170 gdk_event->type == GDK_3BUTTON_PRESS || |
| 171 gdk_event->type == GDK_BUTTON_RELEASE; | |
| 172 } | |
| 158 #endif | 173 #endif |
| 159 } | 174 #endif |
| 160 | 175 |
| 176 #if !defined(USE_AURA) | |
| 161 // TODO(mad): Would be nice to have a NativeEvent -> NativeWindow mapping. | 177 // TODO(mad): Would be nice to have a NativeEvent -> NativeWindow mapping. |
| 162 // Then, with a GetTopLevel receiving a NativeWindow, we could do this in a | 178 // Then, with a GetTopLevel receiving a NativeWindow, we could do this in a |
| 163 // platform independent way. | 179 // platform independent way. |
| 180 #if defined(OS_WIN) | |
| 164 bool MouseObserver::IsSameTopLevelWindow(views::NativeEvent native_event) { | 181 bool MouseObserver::IsSameTopLevelWindow(views::NativeEvent native_event) { |
| 165 #if defined(USE_AURA) | |
| 166 // TODO(beng): | |
| 167 NOTIMPLEMENTED(); | |
| 168 return false; | |
| 169 #elif defined(OS_WIN) | |
| 170 return platform_util::GetTopLevel(native_event.hwnd) == top_level_window_; | 182 return platform_util::GetTopLevel(native_event.hwnd) == top_level_window_; |
| 183 } | |
| 171 #elif defined(OS_LINUX) | 184 #elif defined(OS_LINUX) |
| 185 bool MouseObserver::IsSameTopLevelWindow(GdkEvent* gdk_event) { | |
| 172 return gdk_window_get_toplevel( | 186 return gdk_window_get_toplevel( |
| 173 reinterpret_cast<GdkEventAny*>(native_event)->window) == | 187 reinterpret_cast<GdkEventAny*>(gdk_event)->window) == |
| 174 top_level_window_->window; | 188 top_level_window_->window; |
| 189 } | |
| 175 #endif | 190 #endif |
| 176 } | 191 #endif |
| 177 | 192 |
| 178 bool MouseObserver::HitContentArea(int x, int y) { | 193 bool MouseObserver::HitContentArea(int x, int y) { |
| 179 gfx::Point p(x, y); | 194 gfx::Point p(x, y); |
| 180 // First, exclude the location bar as it's shown on top of | 195 // First, exclude the location bar as it's shown on top of |
| 181 // content area. | 196 // content area. |
| 182 if (HitOnScreen(host_->view(), p)) { | 197 if (HitOnScreen(host_->view(), p)) { |
| 183 return false; | 198 return false; |
| 184 } | 199 } |
| 185 // Treat the bookmark as a content area when it in detached mode. We must | 200 // Treat the bookmark as a content area when it in detached mode. We must |
| 186 // check the view itself as it can be NULL for example in popup windows. | 201 // check the view itself as it can be NULL for example in popup windows. |
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 544 bool CompactLocationBarViewHost::IsCurrentTabIndex(int index) { | 559 bool CompactLocationBarViewHost::IsCurrentTabIndex(int index) { |
| 545 return current_tab_model_index_ == index; | 560 return current_tab_model_index_ == index; |
| 546 } | 561 } |
| 547 | 562 |
| 548 bool CompactLocationBarViewHost::IsCurrentTab(TabContents* contents) { | 563 bool CompactLocationBarViewHost::IsCurrentTab(TabContents* contents) { |
| 549 TabStripModel* tab_strip_model = browser_view()->browser()->tabstrip_model(); | 564 TabStripModel* tab_strip_model = browser_view()->browser()->tabstrip_model(); |
| 550 return tab_strip_model->ContainsIndex(current_tab_model_index_) && | 565 return tab_strip_model->ContainsIndex(current_tab_model_index_) && |
| 551 tab_strip_model->GetTabContentsAt(current_tab_model_index_)-> | 566 tab_strip_model->GetTabContentsAt(current_tab_model_index_)-> |
| 552 tab_contents() == contents; | 567 tab_contents() == contents; |
| 553 } | 568 } |
| OLD | NEW |