Back to index

lightning-sunbird  0.9+nobinonly
WebBrowserContainer.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is mozilla.org code.
00016  *
00017  * The Initial Developer of the Original Code is
00018  * Netscape Communications Corporation.
00019  * Portions created by the Initial Developer are Copyright (C) 1998
00020  * the Initial Developer. All Rights Reserved.
00021  *
00022  * Contributor(s):
00023  *   Adam Lock <adamlock@eircom.net>
00024  *
00025  * Alternatively, the contents of this file may be used under the terms of
00026  * either the GNU General Public License Version 2 or later (the "GPL"), or
00027  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00028  * in which case the provisions of the GPL or the LGPL are applicable instead
00029  * of those above. If you wish to allow use of your version of this file only
00030  * under the terms of either the GPL or the LGPL, and not to allow others to
00031  * use your version of this file under the terms of the MPL, indicate your
00032  * decision by deleting the provisions above and replace them with the notice
00033  * and other provisions required by the GPL or the LGPL. If you do not delete
00034  * the provisions above, a recipient may use your version of this file under
00035  * the terms of any one of the MPL, the GPL or the LGPL.
00036  *
00037  * ***** END LICENSE BLOCK ***** */
00038 #ifndef WEBBROWSERCONTAINER_H
00039 #define WEBBROWSERCONTAINER_H
00040 
00041 #include "nsIContextMenuListener.h"
00042 #include "nsITooltipListener.h"
00043 #include "nsICommandHandler.h"
00044 #include "nsIEmbeddingSiteWindow.h"
00045 #include "nsIEmbeddingSiteWindow2.h"
00046 #include "nsIURIContentListener.h"
00047 #include "nsIWebBrowserChromeFocus.h"
00048 #include "nsWeakReference.h"
00049 
00050 // This is the class that handles the XPCOM side of things, callback
00051 // interfaces into the web shell and so forth.
00052 
00053 class CWebBrowserContainer :
00054         public nsIEmbeddingSiteWindow2,
00055         public nsIWebBrowserChrome,
00056         public nsIWebProgressListener,
00057         public nsIRequestObserver,
00058         public nsIURIContentListener,
00059         public nsIInterfaceRequestor,
00060         public nsIContextMenuListener,
00061         public nsICommandHandler,
00062         public nsIWebBrowserChromeFocus,
00063         public nsSupportsWeakReference
00064 {
00065 public:
00066     CWebBrowserContainer(CMozillaBrowser *pOwner);
00067 
00068     friend CMozillaBrowser;
00069     friend CWindowCreator;
00070 
00071 protected:
00072     virtual ~CWebBrowserContainer();
00073 
00074 // Protected members
00075 protected:
00076     CMozillaBrowser *mOwner;
00077     nsCOMPtr<nsIURI> mCurrentURI;
00078     CProxyDWebBrowserEvents<CMozillaBrowser>  *mEvents1;
00079     CProxyDWebBrowserEvents2<CMozillaBrowser> *mEvents2;
00080     nsString mTitle;
00081     PRPackedBool mVisible;
00082 
00083 public:
00084     NS_DECL_ISUPPORTS
00085     NS_DECL_NSIEMBEDDINGSITEWINDOW
00086     NS_DECL_NSIEMBEDDINGSITEWINDOW2
00087     NS_DECL_NSIWEBBROWSERCHROME
00088     NS_DECL_NSIURICONTENTLISTENER
00089     NS_DECL_NSIREQUESTOBSERVER
00090     NS_DECL_NSIINTERFACEREQUESTOR
00091     NS_DECL_NSIWEBPROGRESSLISTENER
00092     NS_DECL_NSICONTEXTMENULISTENER
00093     NS_DECL_NSIWEBBROWSERCHROMEFOCUS
00094     NS_DECL_NSICOMMANDHANDLER
00095 };
00096 
00097 #endif
00098