Commit 6128eae7 authored by sky@chromium.org's avatar sky@chromium.org

Converts a bunch things from NativeWindow to NativeView to make it

easier for callers. Also gets bookmark menu button to compile.

I'm also removing a function I just added to gtk_util as it's not
needed. GTK offers gtk_widget_get_toplevel which does what I need.

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/115831

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17029 0039d316-1c4b-4281-b951-d872f2087c98
parent 26feb1fe
...@@ -56,7 +56,7 @@ class EditFolderController : public InputWindowDialog::Delegate, ...@@ -56,7 +56,7 @@ class EditFolderController : public InputWindowDialog::Delegate,
} }
static void Show(Profile* profile, static void Show(Profile* profile,
gfx::NativeWindow wnd, gfx::NativeView wnd,
BookmarkNode* node, BookmarkNode* node,
bool is_new, bool is_new,
bool show_in_manager) { bool show_in_manager) {
...@@ -68,7 +68,7 @@ class EditFolderController : public InputWindowDialog::Delegate, ...@@ -68,7 +68,7 @@ class EditFolderController : public InputWindowDialog::Delegate,
private: private:
EditFolderController(Profile* profile, EditFolderController(Profile* profile,
gfx::NativeWindow wnd, gfx::NativeView wnd,
BookmarkNode* node, BookmarkNode* node,
bool is_new, bool is_new,
bool show_in_manager) bool show_in_manager)
...@@ -214,7 +214,7 @@ class SelectOnCreationHandler : public BookmarkEditor::Handler { ...@@ -214,7 +214,7 @@ class SelectOnCreationHandler : public BookmarkEditor::Handler {
// BookmarkContextMenu ------------------------------------------- // BookmarkContextMenu -------------------------------------------
BookmarkContextMenu::BookmarkContextMenu( BookmarkContextMenu::BookmarkContextMenu(
gfx::NativeWindow wnd, gfx::NativeView wnd,
Profile* profile, Profile* profile,
Browser* browser, Browser* browser,
PageNavigator* navigator, PageNavigator* navigator,
......
...@@ -55,7 +55,7 @@ class BookmarkContextMenu : public BookmarkModelObserver, ...@@ -55,7 +55,7 @@ class BookmarkContextMenu : public BookmarkModelObserver,
// |parent| is the parent for newly created nodes if |selection| is empty. // |parent| is the parent for newly created nodes if |selection| is empty.
// |selection| is the nodes the context menu operates on and may be empty. // |selection| is the nodes the context menu operates on and may be empty.
// |configuration| determines which items to show. // |configuration| determines which items to show.
BookmarkContextMenu(gfx::NativeWindow hwnd, BookmarkContextMenu(gfx::NativeView hwnd,
Profile* profile, Profile* profile,
Browser* browser, Browser* browser,
PageNavigator* navigator, PageNavigator* navigator,
...@@ -130,7 +130,7 @@ class BookmarkContextMenu : public BookmarkModelObserver, ...@@ -130,7 +130,7 @@ class BookmarkContextMenu : public BookmarkModelObserver,
// parent_ is returned. // parent_ is returned.
BookmarkNode* GetParentForNewNodes() const; BookmarkNode* GetParentForNewNodes() const;
gfx::NativeWindow wnd_; gfx::NativeView wnd_;
Profile* profile_; Profile* profile_;
Browser* browser_; Browser* browser_;
PageNavigator* navigator_; PageNavigator* navigator_;
......
...@@ -33,7 +33,7 @@ class BookmarkEditor { ...@@ -33,7 +33,7 @@ class BookmarkEditor {
// |show_tree| is false the tree is not shown. BookmarkEditor takes // |show_tree| is false the tree is not shown. BookmarkEditor takes
// ownership of |handler| and deletes it when done. |handler| may be // ownership of |handler| and deletes it when done. |handler| may be
// null. See description of Handler for details. // null. See description of Handler for details.
static void Show(gfx::NativeWindow parent_window, static void Show(gfx::NativeView parent_window,
Profile* profile, Profile* profile,
BookmarkNode* parent, BookmarkNode* parent,
BookmarkNode* node, BookmarkNode* node,
......
...@@ -138,7 +138,7 @@ void OpenAllImpl(BookmarkNode* node, ...@@ -138,7 +138,7 @@ void OpenAllImpl(BookmarkNode* node,
} }
} }
bool ShouldOpenAll(gfx::NativeWindow parent, bool ShouldOpenAll(gfx::NativeView parent,
const std::vector<BookmarkNode*>& nodes) { const std::vector<BookmarkNode*>& nodes) {
int descendant_count = 0; int descendant_count = 0;
for (size_t i = 0; i < nodes.size(); ++i) for (size_t i = 0; i < nodes.size(); ++i)
...@@ -306,7 +306,7 @@ void CloneDragData(BookmarkModel* model, ...@@ -306,7 +306,7 @@ void CloneDragData(BookmarkModel* model,
CloneDragDataImpl(model, elements[i], parent, index_to_add_at + i); CloneDragDataImpl(model, elements[i], parent, index_to_add_at + i);
} }
void OpenAll(gfx::NativeWindow parent, void OpenAll(gfx::NativeView parent,
Profile* profile, Profile* profile,
PageNavigator* navigator, PageNavigator* navigator,
const std::vector<BookmarkNode*>& nodes, const std::vector<BookmarkNode*>& nodes,
...@@ -334,7 +334,7 @@ void OpenAll(gfx::NativeWindow parent, ...@@ -334,7 +334,7 @@ void OpenAll(gfx::NativeWindow parent,
OpenAllImpl(nodes[i], initial_disposition, &navigator, &opened_url); OpenAllImpl(nodes[i], initial_disposition, &navigator, &opened_url);
} }
void OpenAll(gfx::NativeWindow parent, void OpenAll(gfx::NativeView parent,
Profile* profile, Profile* profile,
PageNavigator* navigator, PageNavigator* navigator,
BookmarkNode* node, BookmarkNode* node,
......
...@@ -73,14 +73,14 @@ void CloneDragData(BookmarkModel* model, ...@@ -73,14 +73,14 @@ void CloneDragData(BookmarkModel* model,
// |navigator| is used to open the URLs. If |navigator| is NULL the last // |navigator| is used to open the URLs. If |navigator| is NULL the last
// tabbed browser with the profile |profile| is used. If there is no browser // tabbed browser with the profile |profile| is used. If there is no browser
// with the specified profile a new one is created. // with the specified profile a new one is created.
void OpenAll(gfx::NativeWindow parent, void OpenAll(gfx::NativeView parent,
Profile* profile, Profile* profile,
PageNavigator* navigator, PageNavigator* navigator,
const std::vector<BookmarkNode*>& nodes, const std::vector<BookmarkNode*>& nodes,
WindowOpenDisposition initial_disposition); WindowOpenDisposition initial_disposition);
// Convenience for opening a single BookmarkNode. // Convenience for opening a single BookmarkNode.
void OpenAll(gfx::NativeWindow parent, void OpenAll(gfx::NativeView parent,
Profile* profile, Profile* profile,
PageNavigator* navigator, PageNavigator* navigator,
BookmarkNode* node, BookmarkNode* node,
......
...@@ -464,8 +464,7 @@ void BookmarkBarGtk::PopupMenuForNode(GtkWidget* sender, BookmarkNode* node, ...@@ -464,8 +464,7 @@ void BookmarkBarGtk::PopupMenuForNode(GtkWidget* sender, BookmarkNode* node,
} }
current_context_menu_.reset(new BookmarkContextMenu( current_context_menu_.reset(new BookmarkContextMenu(
GTK_WINDOW(gtk_widget_get_toplevel(sender)), sender, profile_, browser_, page_navigator_,
profile_, browser_, page_navigator_,
parent, nodes, parent, nodes,
BookmarkContextMenu::BOOKMARK_BAR)); BookmarkContextMenu::BOOKMARK_BAR));
current_context_menu_->PopupAsContext(event->time); current_context_menu_->PopupAsContext(event->time);
...@@ -510,8 +509,7 @@ gboolean BookmarkBarGtk::OnButtonReleased(GtkWidget* sender, ...@@ -510,8 +509,7 @@ gboolean BookmarkBarGtk::OnButtonReleased(GtkWidget* sender,
PageTransition::AUTO_BOOKMARK); PageTransition::AUTO_BOOKMARK);
} else { } else {
bookmark_utils::OpenAll( bookmark_utils::OpenAll(
GTK_WINDOW(gtk_widget_get_toplevel(sender)), bar->profile_, sender, bar->profile_, bar->page_navigator_, node,
bar->page_navigator_, node,
event_utils::DispositionFromEventFlags(event->state)); event_utils::DispositionFromEventFlags(event->state));
} }
......
...@@ -33,7 +33,7 @@ static const int kTreeHeight = 150; ...@@ -33,7 +33,7 @@ static const int kTreeHeight = 150;
} // namespace } // namespace
// static // static
void BookmarkEditor::Show(gfx::NativeWindow parent_hwnd, void BookmarkEditor::Show(gfx::NativeView parent_hwnd,
Profile* profile, Profile* profile,
BookmarkNode* parent, BookmarkNode* parent,
BookmarkNode* node, BookmarkNode* node,
...@@ -41,8 +41,8 @@ void BookmarkEditor::Show(gfx::NativeWindow parent_hwnd, ...@@ -41,8 +41,8 @@ void BookmarkEditor::Show(gfx::NativeWindow parent_hwnd,
Handler* handler) { Handler* handler) {
DCHECK(profile); DCHECK(profile);
BookmarkEditorGtk* editor = BookmarkEditorGtk* editor =
new BookmarkEditorGtk(parent_hwnd, profile, parent, node, configuration, new BookmarkEditorGtk(GTK_WINDOW(gtk_widget_get_toplevel(parent_hwnd)),
handler); profile, parent, node, configuration, handler);
editor->Show(); editor->Show();
} }
......
...@@ -150,8 +150,7 @@ gboolean BookmarkMenuController::OnButtonPressed( ...@@ -150,8 +150,7 @@ gboolean BookmarkMenuController::OnButtonPressed(
nodes.push_back(node); nodes.push_back(node);
controller->context_menu_.reset( controller->context_menu_.reset(
new BookmarkContextMenu( new BookmarkContextMenu(
GTK_WINDOW(gtk_widget_get_toplevel(sender)), sender, controller->profile_, controller->browser_,
controller->profile_, controller->browser_,
controller->page_navigator_, parent, nodes, controller->page_navigator_, parent, nodes,
BookmarkContextMenu::BOOKMARK_BAR)); BookmarkContextMenu::BOOKMARK_BAR));
controller->context_menu_->PopupAsContext(event->time); controller->context_menu_->PopupAsContext(event->time);
......
...@@ -27,10 +27,9 @@ class InputWindowDialog { ...@@ -27,10 +27,9 @@ class InputWindowDialog {
virtual void InputCanceled() = 0; virtual void InputCanceled() = 0;
}; };
// Creates a new input window dialog from the parent window // Creates a new input window dialog parented to |parent|. Ownership of
// |parent|, Ownership of |delegate| is taken by InputWindowDialog or // |delegate| is taken by InputWindowDialog or InputWindowDialog's owner.
// InputWindowDialog's owner. static InputWindowDialog* Create(gfx::NativeView parent,
static InputWindowDialog* Create(gfx::NativeWindow parent,
const std::wstring& window_title, const std::wstring& window_title,
const std::wstring& label, const std::wstring& label,
const std::wstring& contents, const std::wstring& contents,
......
...@@ -148,12 +148,12 @@ void GtkInputWindowDialog::OnWindowDestroy(GtkWidget* widget, ...@@ -148,12 +148,12 @@ void GtkInputWindowDialog::OnWindowDestroy(GtkWidget* widget,
} }
// static // static
InputWindowDialog* InputWindowDialog::Create(gfx::NativeWindow parent, InputWindowDialog* InputWindowDialog::Create(gfx::NativeView parent,
const std::wstring& window_title, const std::wstring& window_title,
const std::wstring& label, const std::wstring& label,
const std::wstring& contents, const std::wstring& contents,
Delegate* delegate) { Delegate* delegate) {
return new GtkInputWindowDialog(parent, return new GtkInputWindowDialog(GTK_WINDOW(gtk_widget_get_toplevel(parent)),
WideToUTF8(window_title), WideToUTF8(window_title),
WideToUTF8(label), WideToUTF8(label),
WideToUTF8(contents), WideToUTF8(contents),
......
...@@ -223,7 +223,7 @@ void WinInputWindowDialog::Close() { ...@@ -223,7 +223,7 @@ void WinInputWindowDialog::Close() {
} }
// static // static
InputWindowDialog* InputWindowDialog::Create(gfx::NativeWindow parent, InputWindowDialog* InputWindowDialog::Create(HWND parent,
const std::wstring& window_title, const std::wstring& window_title,
const std::wstring& label, const std::wstring& label,
const std::wstring& contents, const std::wstring& contents,
......
...@@ -4,6 +4,12 @@ ...@@ -4,6 +4,12 @@
#include "chrome/browser/views/bookmark_menu_button.h" #include "chrome/browser/views/bookmark_menu_button.h"
#include "build/build_config.h"
#if defined(OS_GTK)
#include <gtk/gtk.h>
#endif
#include "app/resource_bundle.h" #include "app/resource_bundle.h"
#include "app/os_exchange_data.h" #include "app/os_exchange_data.h"
#include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/bookmarks/bookmark_model.h"
...@@ -129,9 +135,13 @@ void BookmarkMenuButton::StartShowFolderDropMenuTimer() { ...@@ -129,9 +135,13 @@ void BookmarkMenuButton::StartShowFolderDropMenuTimer() {
if (show_drop_menu_timer_.IsRunning()) if (show_drop_menu_timer_.IsRunning())
return; return;
#if defined(OS_WIN)
static DWORD delay = 0; static DWORD delay = 0;
if (!delay && !SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &delay, 0)) if (!delay && !SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &delay, 0))
delay = 400; delay = 400;
#else
static int delay = 400;
#endif
show_drop_menu_timer_.Start(base::TimeDelta::FromMilliseconds(delay), show_drop_menu_timer_.Start(base::TimeDelta::FromMilliseconds(delay),
this, &BookmarkMenuButton::ShowDropMenu); this, &BookmarkMenuButton::ShowDropMenu);
} }
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
BookmarkMenuController::BookmarkMenuController(Browser* browser, BookmarkMenuController::BookmarkMenuController(Browser* browser,
Profile* profile, Profile* profile,
PageNavigator* navigator, PageNavigator* navigator,
gfx::NativeWindow parent, gfx::NativeView parent,
BookmarkNode* node, BookmarkNode* node,
int start_child_index, int start_child_index,
bool show_other_folder) bool show_other_folder)
...@@ -48,15 +48,10 @@ void BookmarkMenuController::RunMenuAt( ...@@ -48,15 +48,10 @@ void BookmarkMenuController::RunMenuAt(
bool for_drop) { bool for_drop) {
for_drop_ = for_drop; for_drop_ = for_drop;
profile_->GetBookmarkModel()->AddObserver(this); profile_->GetBookmarkModel()->AddObserver(this);
#if defined(OS_WIN)
gfx::NativeView widget = parent_;
#else
gfx::NativeView widget = GTK_WIDGET(parent_);
#endif
if (for_drop) { if (for_drop) {
menu_->RunMenuForDropAt(widget, bounds, position); menu_->RunMenuForDropAt(parent_, bounds, position);
} else { } else {
menu_->RunMenuAt(widget, bounds, position, false); menu_->RunMenuAt(parent_, bounds, position, false);
delete this; delete this;
} }
} }
......
...@@ -38,7 +38,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, ...@@ -38,7 +38,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver,
BookmarkMenuController(Browser* browser, BookmarkMenuController(Browser* browser,
Profile* profile, Profile* profile,
PageNavigator* page_navigator, PageNavigator* page_navigator,
gfx::NativeWindow parent, gfx::NativeView parent,
BookmarkNode* node, BookmarkNode* node,
int start_child_index, int start_child_index,
bool show_other_folder); bool show_other_folder);
...@@ -110,7 +110,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, ...@@ -110,7 +110,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver,
PageNavigator* page_navigator_; PageNavigator* page_navigator_;
// Parent of menus. // Parent of menus.
gfx::NativeWindow parent_; gfx::NativeView parent_;
// The node we're showing the contents of. // The node we're showing the contents of.
BookmarkNode* node_; BookmarkNode* node_;
......
...@@ -1686,6 +1686,8 @@ ...@@ -1686,6 +1686,8 @@
['include', '^browser/dock_info_gtk.cc'], ['include', '^browser/dock_info_gtk.cc'],
['include', '^browser/dock_info.cc'], ['include', '^browser/dock_info.cc'],
['include', '^browser/dock_info.h'], ['include', '^browser/dock_info.h'],
['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/bookmark_menu_controller_views.cc'],
['include', '^browser/views/dialog_stubs_gtk.cc'], ['include', '^browser/views/dialog_stubs_gtk.cc'],
['include', '^browser/views/download_item_view.cc'], ['include', '^browser/views/download_item_view.cc'],
......
...@@ -122,13 +122,4 @@ void InitRCStyles() { ...@@ -122,13 +122,4 @@ void InitRCStyles() {
gtk_rc_parse_string(kRCText); gtk_rc_parse_string(kRCText);
} }
GtkWindow* ParentWindow(GtkWidget* widget) {
while (widget) {
if (GTK_IS_WINDOW(widget))
return GTK_WINDOW(widget);
widget = gtk_widget_get_parent(widget);
}
return NULL;
}
} // namespace gtk_util } // namespace gtk_util
...@@ -44,10 +44,6 @@ gfx::Rect GetWidgetScreenBounds(GtkWidget* widget); ...@@ -44,10 +44,6 @@ gfx::Rect GetWidgetScreenBounds(GtkWidget* widget);
// Initialize some GTK settings so that our dialogs are consistent. // Initialize some GTK settings so that our dialogs are consistent.
void InitRCStyles(); void InitRCStyles();
// Returns the closest ancestor of |widget| which is a top level window or NULL
// if there is no such ancestor. The search starts at |widget|.
GtkWindow* ParentWindow(GtkWidget* widget);
} // namespace gtk_util } // namespace gtk_util
#endif // CHROME_COMMON_GTK_UTIL_H_ #endif // CHROME_COMMON_GTK_UTIL_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment