diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-29 21:53:27 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-29 21:53:27 +0000 |
commit | a4c368180132f1f5fc2e57af75115b0d36b542a7 (patch) | |
tree | 44069f6a2e8fbec60b3347736941fd1da20c7a00 /chrome | |
parent | c3b0173e79820fbb5252d873fc14ea70c1132bcc (diff) | |
download | chromium_src-a4c368180132f1f5fc2e57af75115b0d36b542a7.zip chromium_src-a4c368180132f1f5fc2e57af75115b0d36b542a7.tar.gz chromium_src-a4c368180132f1f5fc2e57af75115b0d36b542a7.tar.bz2 |
Fixes a slew of random link/compile errors for views on gtk.
BUG=none
TEST=none
TBR=ben
Review URL: http://codereview.chromium.org/115948
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17246 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_context_menu.cc | 12 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_host.h | 4 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_process_manager.cc | 4 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_process_manager.h | 4 | ||||
-rw-r--r-- | chrome/browser/views/browser_bubble_gtk.cc | 56 | ||||
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 10 | ||||
-rw-r--r-- | chrome/browser/views/location_bar_view.cc | 6 | ||||
-rw-r--r-- | chrome/browser/views/tab_contents/native_tab_contents_container_gtk.h | 2 | ||||
-rw-r--r-- | chrome/browser/window_sizer_linux.cc | 24 | ||||
-rw-r--r-- | chrome/chrome.gyp | 10 |
10 files changed, 119 insertions, 13 deletions
diff --git a/chrome/browser/bookmarks/bookmark_context_menu.cc b/chrome/browser/bookmarks/bookmark_context_menu.cc index 06ed2d4..35389f4 100644 --- a/chrome/browser/bookmarks/bookmark_context_menu.cc +++ b/chrome/browser/bookmarks/bookmark_context_menu.cc @@ -336,6 +336,7 @@ void BookmarkContextMenu::ExecuteCommand(int id) { } if (selection_[0]->is_url()) { +#if defined(OS_WIN) BookmarkEditor::Configuration editor_config; if (configuration_ == BOOKMARK_BAR) editor_config = BookmarkEditor::SHOW_TREE; @@ -343,6 +344,9 @@ void BookmarkContextMenu::ExecuteCommand(int id) { editor_config = BookmarkEditor::NO_TREE; BookmarkEditor::Show(wnd_, profile_, NULL, selection_[0], editor_config, NULL); +#else + NOTIMPLEMENTED(); +#endif } else { EditFolderController::Show(profile_, wnd_, selection_[0], false, false); @@ -364,21 +368,21 @@ void BookmarkContextMenu::ExecuteCommand(int id) { case IDS_BOOMARK_BAR_ADD_NEW_BOOKMARK: { UserMetrics::RecordAction(L"BookmarkBar_ContextMenu_Add", profile_); +#if defined(OS_WIN) BookmarkEditor::Configuration editor_config; BookmarkEditor::Handler* handler = NULL; if (configuration_ == BOOKMARK_BAR) { editor_config = BookmarkEditor::SHOW_TREE; } else { editor_config = BookmarkEditor::NO_TREE; -#if defined(OS_WIN) // This is owned by the BookmarkEditorView. handler = new SelectOnCreationHandler(profile_); -#else - NOTIMPLEMENTED() << "Custom SelectOnCreationHandler not implemented"; -#endif } BookmarkEditor::Show(wnd_, profile_, GetParentForNewNodes(), NULL, editor_config, handler); +#else + NOTIMPLEMENTED(); +#endif break; } diff --git a/chrome/browser/extensions/extension_host.h b/chrome/browser/extensions/extension_host.h index 95a885c..ba7c283 100644 --- a/chrome/browser/extensions/extension_host.h +++ b/chrome/browser/extensions/extension_host.h @@ -27,7 +27,7 @@ class ExtensionHost : public RenderViewHostDelegate, ExtensionHost(Extension* extension, SiteInstance* site_instance); ~ExtensionHost(); -#if defined(OS_WIN) +#if defined(TOOLKIT_VIEWS) void set_view(ExtensionView* view) { view_ = view; } ExtensionView* view() const { return view_; } #endif @@ -86,7 +86,7 @@ class ExtensionHost : public RenderViewHostDelegate, // The extension that we're hosting in this view. Extension* extension_; -#if defined(OS_WIN) +#if defined(TOOLKIT_VIEWS) // Optional view that shows the rendered content in the UI. ExtensionView* view_; #endif diff --git a/chrome/browser/extensions/extension_process_manager.cc b/chrome/browser/extensions/extension_process_manager.cc index 5f08f78..f2bcad4 100644 --- a/chrome/browser/extensions/extension_process_manager.cc +++ b/chrome/browser/extensions/extension_process_manager.cc @@ -6,7 +6,7 @@ #include "chrome/browser/browsing_instance.h" #include "chrome/browser/extensions/extension_host.h" -#if defined(OS_WIN) +#if defined(TOOLKIT_VIEWS) #include "chrome/browser/extensions/extension_view.h" #endif #include "chrome/browser/extensions/extensions_service.h" @@ -42,7 +42,7 @@ ExtensionProcessManager::~ExtensionProcessManager() { delete *iter; } -#if defined(OS_WIN) +#if defined(TOOLKIT_VIEWS) ExtensionView* ExtensionProcessManager::CreateView(Extension* extension, const GURL& url, Browser* browser) { diff --git a/chrome/browser/extensions/extension_process_manager.h b/chrome/browser/extensions/extension_process_manager.h index b31edb6..1b99933 100644 --- a/chrome/browser/extensions/extension_process_manager.h +++ b/chrome/browser/extensions/extension_process_manager.h @@ -14,7 +14,7 @@ class Browser; class BrowsingInstance; class Extension; class ExtensionHost; -#if defined(OS_WIN) +#if defined(TOOLKIT_VIEWS) class ExtensionView; #endif class GURL; @@ -28,7 +28,7 @@ class ExtensionProcessManager : public NotificationObserver { ExtensionProcessManager(Profile* profile); ~ExtensionProcessManager(); -#if defined(OS_WIN) +#if defined(TOOLKIT_VIEWS) // Creates a new ExtensionView, grouping it in the appropriate SiteInstance // (and therefore process) based on the URL and profile. ExtensionView* CreateView(Extension* extension, diff --git a/chrome/browser/views/browser_bubble_gtk.cc b/chrome/browser/views/browser_bubble_gtk.cc new file mode 100644 index 0000000..91fea0c --- /dev/null +++ b/chrome/browser/views/browser_bubble_gtk.cc @@ -0,0 +1,56 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/views/browser_bubble.h" + +#include "chrome/browser/views/frame/browser_view.h" +#include "views/widget/widget_gtk.h" +#include "views/window/window.h" + +void BrowserBubble::InitPopup() { + gfx::NativeView native_view = frame_->GetNativeView(); + gfx::NativeWindow native_window = frame_->GetWindow()->GetNativeWindow(); + views::WidgetGtk* pop = new views::WidgetGtk(views::WidgetGtk::TYPE_POPUP); + pop->set_delete_on_destroy(false); + pop->SetOpacity(0xFF); + pop->Init(native_view, bounds_, false); + pop->SetContentsView(view_); + popup_.reset(pop); + Reposition(); + + BrowserView* browser_view = + BrowserView::GetBrowserViewForNativeWindow(native_window); + DCHECK(browser_view); + if (browser_view) + browser_view->AttachBrowserBubble(this); +} + +void BrowserBubble::DestroyPopup() { + gfx::NativeWindow native_window = frame_->GetWindow()->GetNativeWindow(); + BrowserView* browser_view = + BrowserView::GetBrowserViewForNativeWindow(native_window); + if (browser_view) + browser_view->DetachBrowserBubble(this); +} + +void BrowserBubble::MovePopup(int x, int y, int w, int h) { + views::WidgetGtk* pop = static_cast<views::WidgetGtk*>(popup_.get()); + pop->SetBounds(gfx::Rect(x, y, w, h)); +} + +void BrowserBubble::Show() { + if (visible_) + return; + views::WidgetGtk* pop = static_cast<views::WidgetGtk*>(popup_.get()); + pop->Show(); + visible_ = true; +} + +void BrowserBubble::Hide() { + if (!visible_) + return; + views::WidgetGtk* pop = static_cast<views::WidgetGtk*>(popup_.get()); + pop->Hide(); + visible_ = false; +} diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index d32e8b6..b68b2c1 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -56,7 +56,6 @@ #include "grit/theme_resources.h" #include "grit/webkit_resources.h" #include "views/controls/menu/menu.h" -#include "views/controls/scrollbar/native_scroll_bar.h" #include "views/fill_layout.h" #include "views/view.h" #include "views/widget/root_view.h" @@ -64,6 +63,10 @@ #include "views/window/non_client_view.h" #include "views/window/window.h" +#if defined(OS_WIN) +#include "views/controls/scrollbar/native_scroll_bar.h" +#endif + using base::TimeDelta; // static @@ -406,7 +409,12 @@ gfx::Rect BrowserView::GetFindBarBoundingBox() const { // Finally decrease the width of the bounding box by the width of the vertical // scroll bar. +#if defined(OS_WIN) int scrollbar_width = views::NativeScrollBar::GetVerticalScrollBarWidth(); +#else + // This matches the value in ScrollbarThemeChromium::scrollbarThickness. + int scrollbar_width = 15; +#endif bounding_box.set_width(std::max(0, bounding_box.width() - scrollbar_width)); if (UILayoutIsRightToLeft()) bounding_box.set_x(bounding_box.x() + scrollbar_width); diff --git a/chrome/browser/views/location_bar_view.cc b/chrome/browser/views/location_bar_view.cc index ac2ebc6..df195c4 100644 --- a/chrome/browser/views/location_bar_view.cc +++ b/chrome/browser/views/location_bar_view.cc @@ -26,7 +26,6 @@ #include "chrome/browser/tab_contents/navigation_entry.h" #include "chrome/browser/view_ids.h" #include "chrome/browser/views/info_bubble.h" -#include "chrome/browser/views/first_run_bubble.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/page_action.h" #include "grit/generated_resources.h" @@ -39,6 +38,7 @@ #if defined(OS_WIN) #include "app/win_util.h" +#include "chrome/browser/views/first_run_bubble.h" #include "chrome/browser/views/page_info_window.h" #endif @@ -1003,7 +1003,11 @@ void LocationBarView::ShowFirstRunBubbleInternal(bool use_OEM_bubble) { if (UILayoutIsRightToLeft()) bounds.set_x(location.x() - 20); +#if defined(OS_WIN) FirstRunBubble::Show(profile_, GetWindow(), bounds, use_OEM_bubble); +#else + NOTIMPLEMENTED(); +#endif } // LocationBarImageView--------------------------------------------------------- diff --git a/chrome/browser/views/tab_contents/native_tab_contents_container_gtk.h b/chrome/browser/views/tab_contents/native_tab_contents_container_gtk.h index 16d9c5f..855faa2 100644 --- a/chrome/browser/views/tab_contents/native_tab_contents_container_gtk.h +++ b/chrome/browser/views/tab_contents/native_tab_contents_container_gtk.h @@ -6,7 +6,7 @@ #define CHROME_BROWSER_VIEWS_TAB_CONTENTS_NATIVE_TAB_CONTENTS_CONTAINER_GTK_H_ #include "chrome/browser/views/tab_contents/native_tab_contents_container.h" -#include "views/controls/native_view_host_gtk.h" +#include "views/controls/native/native_view_host.h" class NativeTabContentsContainerGtk : public NativeTabContentsContainer, public views::NativeViewHost { diff --git a/chrome/browser/window_sizer_linux.cc b/chrome/browser/window_sizer_linux.cc index fc5fc0d..f8800a7 100644 --- a/chrome/browser/window_sizer_linux.cc +++ b/chrome/browser/window_sizer_linux.cc @@ -8,6 +8,7 @@ #include "base/logging.h" #include "chrome/browser/browser.h" +#include "chrome/browser/browser_list.h" // How much horizontal and vertical offset there is between newly // opened windows. We don't care on Linux since the window manager generally @@ -102,3 +103,26 @@ WindowSizer::MonitorInfoProvider* WindowSizer::CreateDefaultMonitorInfoProvider() { return new DefaultMonitorInfoProvider(); } + +// static +gfx::Point WindowSizer::GetDefaultPopupOrigin(const gfx::Size& size) { + scoped_ptr<MonitorInfoProvider> provider(CreateDefaultMonitorInfoProvider()); + gfx::Rect monitor_bounds = provider->GetPrimaryMonitorWorkArea(); + gfx::Point corner(monitor_bounds.x(), monitor_bounds.y()); + if (Browser* browser = BrowserList::GetLastActive()) { + GtkWindow* window = + reinterpret_cast<GtkWindow*>(browser->window()->GetNativeHandle()); + int x = 0, y = 0; + gtk_window_get_position(window, &x, &y); + // Limit to not overflow the work area right and bottom edges. + gfx::Point limit( + std::min(x + kWindowTilePixels, monitor_bounds.right() - size.width()), + std::min(y + kWindowTilePixels, monitor_bounds.bottom() - size.height())); + // Adjust corner to now overflow the work area left and top edges, so + // that if a popup does not fit the title-bar is remains visible. + corner = gfx::Point( + std::max(corner.x(), limit.x()), + std::max(corner.y(), limit.y())); + } + return corner; +} diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp index f8fea09..a0cf91a 100644 --- a/chrome/chrome.gyp +++ b/chrome/chrome.gyp @@ -1396,6 +1396,7 @@ 'browser/views/bookmark_table_view.h', 'browser/views/browser_bubble.cc', 'browser/views/browser_bubble.h', + 'browser/views/browser_bubble_gtk.cc', 'browser/views/browser_bubble_win.cc', 'browser/views/browser_dialogs.h', 'browser/views/bug_report_view.cc', @@ -1721,6 +1722,7 @@ ['include', '^browser/dock_info.h'], ['include', '^browser/encoding_menu_controller_delegate.cc'], ['include', '^browser/encoding_menu_controller_delegate.h'], + ['include', '^browser/extensions/'], ['include', '^browser/views/bookmark_bar_view.cc'], ['include', '^browser/views/bookmark_bar_view.h'], ['include', '^browser/views/bookmark_context_menu.cc'], @@ -1728,6 +1730,10 @@ ['include', '^browser/views/bookmark_menu_button.cc'], ['include', '^browser/views/bookmark_menu_button.h'], ['include', '^browser/views/bookmark_menu_controller_views.cc'], + ['include', '^browser/views/browser_bubble_gtk.cc'], + ['include', '^browser/views/browser_bubble.cc'], + ['include', '^browser/views/browser_bubble.h'], + ['include', '^browser/views/chrome_views_delegate.cc'], ['include', '^browser/views/dialog_stubs_gtk.cc'], ['include', '^browser/views/download_item_view.cc'], ['include', '^browser/views/download_item_view.h'], @@ -1764,6 +1770,8 @@ ['include', '^browser/views/tab_contents/tab_contents_container.h'], ['include', '^browser/views/tab_icon_view.cc'], ['include', '^browser/views/tab_icon_view.h'], + ['include', '^browser/views/tabs/dragged_tab_controller.cc'], + ['include', '^browser/views/tabs/dragged_tab_controller.h'], ['include', '^browser/views/tabs/dragged_tab_view.cc'], ['include', '^browser/views/tabs/dragged_tab_view.h'], ['include', '^browser/views/tabs/tab.cc'], @@ -1779,6 +1787,8 @@ # Exclude all of browser/gtk, then include the things we want. ['exclude', '^browser/gtk'], + ['include', '^browser/gtk/autocomplete_edit_gtk.cc'], + ['include', '^browser/gtk/autocomplete_edit_gtk.h'], ['include', '^browser/gtk/dialogs_gtk.cc'], ['include', '^browser/gtk/dialogs_gtk.h'], ['include', '^browser/gtk/download_started_animation_gtk.cc'], |