summaryrefslogtreecommitdiffstats
path: root/content/browser/tab_contents/constrained_window.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/tab_contents/constrained_window.h')
-rw-r--r--content/browser/tab_contents/constrained_window.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/content/browser/tab_contents/constrained_window.h b/content/browser/tab_contents/constrained_window.h
new file mode 100644
index 0000000..7dd0b40
--- /dev/null
+++ b/content/browser/tab_contents/constrained_window.h
@@ -0,0 +1,62 @@
+// Copyright (c) 2006-2008 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.
+
+#ifndef CONTENT_BROWSER_TAB_CONTENTS_CONSTRAINED_WINDOW_H_
+#define CONTENT_BROWSER_TAB_CONTENTS_CONSTRAINED_WINDOW_H_
+#pragma once
+
+#include "build/build_config.h"
+
+// The different platform specific subclasses use different delegates for their
+// dialogs.
+#if defined(OS_WIN)
+namespace views {
+class WindowDelegate;
+class DialogDelegate;
+}
+typedef views::WindowDelegate ConstrainedWindowDelegate;
+typedef views::DialogDelegate ConstrainedDialogDelegate;
+#elif defined(OS_MACOSX)
+class ConstrainedWindowMacDelegate;
+class ConstrainedWindowMacDelegateSystemSheet;
+typedef ConstrainedWindowMacDelegate ConstrainedWindowDelegate;
+typedef ConstrainedWindowMacDelegateSystemSheet ConstrainedDialogDelegate;
+#elif defined(TOOLKIT_USES_GTK)
+class ConstrainedWindowGtkDelegate;
+typedef ConstrainedWindowGtkDelegate ConstrainedWindowDelegate;
+typedef ConstrainedWindowGtkDelegate ConstrainedDialogDelegate;
+#endif
+
+class TabContents;
+
+///////////////////////////////////////////////////////////////////////////////
+// ConstrainedWindow
+//
+// This interface represents a window that is constrained to a TabContents'
+// bounds.
+//
+class ConstrainedWindow {
+ public:
+ // Create a Constrained Window that contains a platform specific client
+ // area. Typical uses include the HTTP Basic Auth prompt. The caller must
+ // provide a delegate to describe the content area and to respond to events.
+ static ConstrainedWindow* CreateConstrainedDialog(
+ TabContents* owner,
+ ConstrainedWindowDelegate* delegate);
+
+ // Makes the Constrained Window visible. Only one Constrained Window is shown
+ // at a time per tab.
+ virtual void ShowConstrainedWindow() = 0;
+
+ // Closes the Constrained Window.
+ virtual void CloseConstrainedWindow() = 0;
+
+ // Sets focus on the Constrained Window.
+ virtual void FocusConstrainedWindow() {}
+
+ protected:
+ virtual ~ConstrainedWindow() {}
+};
+
+#endif // CONTENT_BROWSER_TAB_CONTENTS_CONSTRAINED_WINDOW_H_