diff options
Diffstat (limited to 'content/browser/tab_contents/constrained_window.h')
-rw-r--r-- | content/browser/tab_contents/constrained_window.h | 62 |
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_ |