summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-07 16:13:45 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-07 16:13:45 +0000
commita2c5a9894846449c6ab3180339557af293975b9a (patch)
treed405bfd112208295be4b17891118527b50537e79
parentf45fcf799c725a5206e5de4940cd35773ab9a697 (diff)
downloadchromium_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.cc8
-rw-r--r--chrome/test/automation/automation_messages.h12
-rw-r--r--chrome/test/automation/tab_proxy.cc14
-rw-r--r--chrome/test/automation/tab_proxy.h1
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: