diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-07 16:13:45 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-07 16:13:45 +0000 |
commit | a2c5a9894846449c6ab3180339557af293975b9a (patch) | |
tree | d405bfd112208295be4b17891118527b50537e79 | |
parent | f45fcf799c725a5206e5de4940cd35773ab9a697 (diff) | |
download | chromium_src-a2c5a9894846449c6ab3180339557af293975b9a.zip chromium_src-a2c5a9894846449c6ab3180339557af293975b9a.tar.gz chromium_src-a2c5a9894846449c6ab3180339557af293975b9a.tar.bz2 |
Updated the AutomationMsg_TabReposition IPC to be able to set the parent of a window.
Bug=1751431
Review URL: http://codereview.chromium.org/62042
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13253 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/automation/automation_provider.cc | 8 | ||||
-rw-r--r-- | chrome/test/automation/automation_messages.h | 12 | ||||
-rw-r--r-- | chrome/test/automation/tab_proxy.cc | 14 | ||||
-rw-r--r-- | chrome/test/automation/tab_proxy.h | 1 |
4 files changed, 34 insertions, 1 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc index 9a25046..37e7b7e 100644 --- a/chrome/browser/automation/automation_provider.cc +++ b/chrome/browser/automation/automation_provider.cc @@ -2771,7 +2771,15 @@ void AutomationProvider::OnTabReposition( return; } + if (params.set_parent) { + if (IsWindow(params.parent_window)) { + if (!SetParent(params.window, params.parent_window)) + DLOG(WARNING) << "SetParent failed. Error 0x%x" << GetLastError(); + } + } + SetWindowPos(params.window, params.window_insert_after, params.left, params.top, params.width, params.height, params.flags); } + #endif // defined(OS_WIN) diff --git a/chrome/test/automation/automation_messages.h b/chrome/test/automation/automation_messages.h index 5968f78..6c198c9 100644 --- a/chrome/test/automation/automation_messages.h +++ b/chrome/test/automation/automation_messages.h @@ -169,6 +169,8 @@ struct Reposition_Params { int width; int height; int flags; + bool set_parent; + HWND parent_window; }; // Traits for SetWindowPos_Params structure to pack/unpack. @@ -183,6 +185,8 @@ struct ParamTraits<Reposition_Params> { WriteParam(m, p.width); WriteParam(m, p.height); WriteParam(m, p.flags); + WriteParam(m, p.set_parent); + WriteParam(m, p.parent_window); } static bool Read(const Message* m, void** iter, param_type* p) { return ReadParam(m, iter, &p->window) && @@ -191,7 +195,9 @@ struct ParamTraits<Reposition_Params> { ReadParam(m, iter, &p->top) && ReadParam(m, iter, &p->width) && ReadParam(m, iter, &p->height) && - ReadParam(m, iter, &p->flags); + ReadParam(m, iter, &p->flags) && + ReadParam(m, iter, &p->set_parent) && + ReadParam(m, iter, &p->parent_window); } static void Log(const param_type& p, std::wstring* l) { l->append(L"("); @@ -208,6 +214,10 @@ struct ParamTraits<Reposition_Params> { LogParam(p.height, l); l->append(L", "); LogParam(p.flags, l); + l->append(L", "); + LogParam(p.set_parent, l); + l->append(L", "); + LogParam(p.parent_window, l); l->append(L")"); } }; diff --git a/chrome/test/automation/tab_proxy.cc b/chrome/test/automation/tab_proxy.cc index bf69a78..f6142e1 100644 --- a/chrome/test/automation/tab_proxy.cc +++ b/chrome/test/automation/tab_proxy.cc @@ -619,6 +619,20 @@ void TabProxy::Reposition(HWND window, HWND window_insert_after, int left, params.width = width; params.height = height; params.flags = flags; + params.set_parent = false; + params.parent_window = NULL; sender_->Send(new AutomationMsg_TabReposition(0, handle_, params)); } + +void TabProxy::SetParentWindow(HWND window, HWND parent_window, long flags) { + IPC::Reposition_Params params = {0}; + params.window = window; + params.flags = flags; + params.set_parent = true; + params.parent_window = parent_window; + + sender_->Send(new AutomationMsg_TabReposition(0, handle_, params)); +} + + #endif // defined(OS_WIN) diff --git a/chrome/test/automation/tab_proxy.h b/chrome/test/automation/tab_proxy.h index 3603763..e05701f 100644 --- a/chrome/test/automation/tab_proxy.h +++ b/chrome/test/automation/tab_proxy.h @@ -289,6 +289,7 @@ class TabProxy : public AutomationResourceProxy { // Resizes the tab window. void Reposition(HWND window, HWND window_insert_after, int left, int top, int width, int height, int flags); + void SetParentWindow(HWND window, HWND parent_window, long flags); #endif // defined(OS_WIN) private: |