nsContentTreeOwner.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2. *
  3. * This Source Code Form is subject to the terms of the Mozilla Public
  4. * License, v. 2.0. If a copy of the MPL was not distributed with this
  5. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  6. #ifndef nsContentTreeOwner_h__
  7. #define nsContentTreeOwner_h__
  8. // Helper Classes
  9. #include "nsCOMPtr.h"
  10. #include "nsString.h"
  11. // Interfaces Needed
  12. #include "nsIBaseWindow.h"
  13. #include "nsIDocShellTreeOwner.h"
  14. #include "nsIInterfaceRequestor.h"
  15. #include "nsIInterfaceRequestorUtils.h"
  16. #include "nsIWebBrowserChrome3.h"
  17. #include "nsIWindowProvider.h"
  18. class nsXULWindow;
  19. class nsSiteWindow;
  20. class nsContentTreeOwner final : public nsIDocShellTreeOwner,
  21. public nsIBaseWindow,
  22. public nsIInterfaceRequestor,
  23. public nsIWebBrowserChrome3,
  24. public nsIWindowProvider
  25. {
  26. friend class nsXULWindow;
  27. friend class nsSiteWindow;
  28. public:
  29. NS_DECL_ISUPPORTS
  30. NS_DECL_NSIBASEWINDOW
  31. NS_DECL_NSIDOCSHELLTREEOWNER
  32. NS_DECL_NSIINTERFACEREQUESTOR
  33. NS_DECL_NSIWEBBROWSERCHROME
  34. NS_DECL_NSIWEBBROWSERCHROME2
  35. NS_DECL_NSIWEBBROWSERCHROME3
  36. NS_DECL_NSIWINDOWPROVIDER
  37. protected:
  38. explicit nsContentTreeOwner(bool fPrimary);
  39. virtual ~nsContentTreeOwner();
  40. void XULWindow(nsXULWindow* aXULWindow);
  41. nsXULWindow* XULWindow();
  42. protected:
  43. nsXULWindow *mXULWindow;
  44. nsSiteWindow *mSiteWindow;
  45. bool mPrimary;
  46. bool mContentTitleSetting;
  47. nsString mWindowTitleModifier;
  48. nsString mTitleSeparator;
  49. nsString mTitlePreface;
  50. nsString mTitleDefault;
  51. };
  52. #endif /* nsContentTreeOwner_h__ */