diff --git a/xpfe/appshell/public/nsFileLocations.h b/xpfe/appshell/public/nsFileLocations.h index 7341830b13b..83d0187e753 100644 --- a/xpfe/appshell/public/nsFileLocations.h +++ b/xpfe/appshell/public/nsFileLocations.h @@ -26,11 +26,34 @@ #define _NSFILELOCATIONS_H_ #include "nsFileSpec.h" +#include "nsIFileLocator.h" #ifdef XP_MAC #include #endif + +class nsFileLocator : public nsIFileLocator +//============================================================================= +{ +public: + nsFileLocator(); + + NS_DECL_ISUPPORTS + + NS_IMETHOD GetFileLocation( + PRUint32 aType, + // NOTE: actually either nsSpecialFileSpec:Type, see nsFileLocations.h + // or nsSpecialSystemDirectory::SystemDirectories, see nsSpecialSystemDirectory.h + nsIFileSpec** outSpec); + + NS_IMETHOD ForgetProfileDir(); + +protected: + virtual ~nsFileLocator(); + +}; + // SEE ALSO: // mozilla/base/public/nsSpecialSystemDirectory.h diff --git a/xpfe/appshell/src/Makefile.in b/xpfe/appshell/src/Makefile.in index 006a723e7c2..871ec048e9e 100644 --- a/xpfe/appshell/src/Makefile.in +++ b/xpfe/appshell/src/Makefile.in @@ -26,6 +26,7 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk +IS_COMPONENT=1 MODULE = raptor LIBRARY_NAME = nsappshell @@ -36,7 +37,6 @@ CPPSRCS = \ nsXULCommand.cpp \ nsAppShellService.cpp \ nsWebShellWindow.cpp \ - nsAppShellFactory.cpp \ nsCommandLineService.cpp \ nsXPConnectFactory.cpp \ nsJSXPConnectFactory.cpp \ @@ -48,6 +48,7 @@ CPPSRCS = \ nsDialogParamBlock.cpp \ nsCommonDialogs.cpp \ nsAbout.cpp \ + nsAppShellFactory.cpp \ $(NULL) EXTRA_DSO_LDOPTS = \ diff --git a/xpfe/appshell/src/makefile.win b/xpfe/appshell/src/makefile.win index 05c3de3ce7e..b97b3a941cd 100644 --- a/xpfe/appshell/src/makefile.win +++ b/xpfe/appshell/src/makefile.win @@ -22,7 +22,7 @@ DEPTH=..\..\.. include <$(DEPTH)/config/config.mak> - +IS_COMPONENT=1 DEFINES=-D_IMPL_NS_APPSHELL -DWIN32_LEAN_AND_MEAN MODULE=raptor diff --git a/xpfe/appshell/src/nsAppShellFactory.cpp b/xpfe/appshell/src/nsAppShellFactory.cpp index 36aaf429033..51623395a6e 100644 --- a/xpfe/appshell/src/nsAppShellFactory.cpp +++ b/xpfe/appshell/src/nsAppShellFactory.cpp @@ -35,132 +35,86 @@ #include "nsAbout.h" #include "nsIGenericFactory.h" + +#include "nsIAppShellService.h" +#include "nsCommandLineService.h" +#include "nsNetSupportDialog.h" +#include "nsAppShellService.h" +#include "nsXPConnectFactory.h" +#include "nsWindowMediator.h" +#include "nsSessionHistory.h" +#include "nsCommonDialogs.h" +#include "nsDialogParamBlock.h" +#include "nsFileLocations.h" + /* extern the factory entry points for each component... */ nsresult NS_NewAppShellServiceFactory(nsIFactory** aFactory); nsresult NS_NewXPConnectFactoryFactory(nsIFactory** aResult); -static NS_DEFINE_CID(kAppShellServiceCID, NS_APPSHELL_SERVICE_CID); -static NS_DEFINE_CID(kCmdLineServiceCID, NS_COMMANDLINE_SERVICE_CID); -static NS_DEFINE_CID(kProtocolHelperCID, NS_PROTOCOL_HELPER_CID); -static NS_DEFINE_CID(kXPConnectFactoryCID, NS_XPCONNECTFACTORY_CID); -static NS_DEFINE_CID(kFileLocatorCID, NS_FILELOCATOR_CID); -static NS_DEFINE_CID(kNetSupportDialogCID, NS_NETSUPPORTDIALOG_CID); -static NS_DEFINE_CID(kWindowMediatorCID, NS_WINDOWMEDIATOR_CID); -static NS_DEFINE_CID(kSessionHistoryCID, NS_SESSIONHISTORY_CID); +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCmdLineService); +NS_GENERIC_FACTORY_CONSTRUCTOR(nsAppShellService); +NS_GENERIC_FACTORY_CONSTRUCTOR(XPConnectFactoryImpl); +NS_GENERIC_FACTORY_CONSTRUCTOR(nsNetSupportDialog); +NS_GENERIC_FACTORY_CONSTRUCTOR(nsWindowMediator); +NS_GENERIC_FACTORY_CONSTRUCTOR(nsSessionHistory); +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCommonDialogs); +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDialogParamBlock); +NS_GENERIC_FACTORY_CONSTRUCTOR(nsFileLocator); -static NS_DEFINE_CID(kCommonDialogsCID, NS_CommonDialog_CID ); -static NS_DEFINE_CID(kDialogParamBlockCID, NS_DialogParamBlock_CID ); -static NS_DEFINE_CID(kAboutModuleCID, NS_ABOUT_CID); -/* - * Global entry point to register all components in the registry... - */ -extern "C" NS_EXPORT nsresult -NSRegisterSelf(nsISupports* serviceMgr, const char *path) + +static nsModuleComponentInfo gAppShellModuleInfo[] = { - nsComponentManager::RegisterComponent(kAppShellServiceCID, NULL, NULL, path, PR_TRUE, PR_TRUE); - nsComponentManager::RegisterComponent(kCmdLineServiceCID, NULL, NULL, path, PR_TRUE, PR_TRUE); - nsComponentManager::RegisterComponent(kFileLocatorCID, - NULL, NS_FILELOCATOR_PROGID, path, PR_TRUE, PR_TRUE); - nsComponentManager::RegisterComponent(kProtocolHelperCID, NULL, NULL, path, PR_TRUE, PR_TRUE); - nsComponentManager::RegisterComponent(kXPConnectFactoryCID, NULL, NULL, path, PR_TRUE, PR_TRUE); - nsComponentManager::RegisterComponent(kNetSupportDialogCID, NULL, NULL, path, PR_TRUE, PR_TRUE); - nsComponentManager::RegisterComponent(kSessionHistoryCID, "sessionhistory", NS_ISESSIONHISTORY_PROGID, path, PR_TRUE, PR_TRUE); + { "AppShell Service", + NS_APPSHELL_SERVICE_CID, + "component://netscape/appshell/appShellService", + nsAppShellServiceConstructor, + }, + { "CommandLine Service", + NS_COMMANDLINE_SERVICE_CID, + NULL, + nsCmdLineServiceConstructor, + }, + { "XPConnect Factory?", + NS_XPCONNECTFACTORY_CID, + NULL, + XPConnectFactoryImplConstructor, + }, + { "Net Support Dialogs", + NS_NETSUPPORTDIALOG_CID, + NULL, + nsNetSupportDialogConstructor, + }, + { "Window Mediator", + NS_WINDOWMEDIATOR_CID, + NS_RDF_DATASOURCE_PROGID_PREFIX "window-mediator", + nsWindowMediatorConstructor, + }, + { "Session History", + NS_SESSIONHISTORY_CID, + NULL, + nsSessionHistoryConstructor, + }, + { "Common Dialogs", + NS_CommonDialog_CID, + "component://netscape/appshell/commonDialogs", + nsCommonDialogsConstructor, + }, + { "kDialogParamBlockCID", + NS_DialogParamBlock_CID, + NULL, + nsDialogParamBlockConstructor, + }, + { "kAboutModuleCID", + NS_ABOUT_CID, + NS_ABOUT_MODULE_PROGID_PREFIX, + nsAbout::Create, + }, + { "File Locator Service", + NS_FILELOCATOR_CID, + NS_FILELOCATOR_PROGID, + nsFileLocatorConstructor, + }, +}; - nsComponentManager::RegisterComponent(kWindowMediatorCID, - "window-mediator", NS_RDF_DATASOURCE_PROGID_PREFIX "window-mediator", - path, PR_TRUE, PR_TRUE); - nsComponentManager::RegisterComponent(kCommonDialogsCID, NULL, "component://netscape/appshell/commonDialogs", path, PR_TRUE, PR_TRUE); - nsComponentManager::RegisterComponent(kDialogParamBlockCID, NULL, NULL, path, PR_TRUE, PR_TRUE); - - nsComponentManager::RegisterComponent(kAboutModuleCID, "about:", NS_ABOUT_MODULE_PROGID_PREFIX, path, PR_TRUE, PR_TRUE); - return NS_OK; -} - -/* - * Global entry point to unregister all components in the registry... - */ -extern "C" NS_EXPORT nsresult -NSUnregisterSelf(nsISupports* serviceMgr, const char *path) -{ - nsComponentManager::UnregisterComponent(kAppShellServiceCID, path); - nsComponentManager::UnregisterComponent(kCmdLineServiceCID, path); - nsComponentManager::UnregisterComponent(kFileLocatorCID, path); - nsComponentManager::UnregisterComponent(kProtocolHelperCID, path); - nsComponentManager::UnregisterComponent(kXPConnectFactoryCID, path); - nsComponentManager::UnregisterComponent(kNetSupportDialogCID, path); - nsComponentManager::UnregisterComponent(kWindowMediatorCID, path); - nsComponentManager::UnregisterComponent(kSessionHistoryCID, path); - nsComponentManager::UnregisterComponent(kCommonDialogsCID, path); - nsComponentManager::UnregisterComponent(kDialogParamBlockCID, path); - nsComponentManager::UnregisterComponent(kAboutModuleCID, path); - return NS_OK; -} - - -/* - * Global entry point to create class factories for the components - * available withing the DLL... - */ -#if defined(XP_MAC) && defined(MAC_STATIC) -extern "C" NS_APPSHELL nsresult -NSGetFactory_APPSHELL_DLL(nsISupports* serviceMgr, - const nsCID &aClass, - const char *aClassName, - const char *aProgID, - nsIFactory **aFactory) -#else -extern "C" NS_APPSHELL nsresult -NSGetFactory(nsISupports* serviceMgr, - const nsCID &aClass, - const char *aClassName, - const char *aProgID, - nsIFactory **aFactory) -#endif -{ - nsresult rv = NS_ERROR_FACTORY_NOT_REGISTERED; - - if (nsnull == aFactory) { - return NS_ERROR_NULL_POINTER; - } - - if (aClass.Equals(kAppShellServiceCID)) { - rv = NS_NewAppShellServiceFactory(aFactory); - } - else if (aClass.Equals(kCmdLineServiceCID)) { - rv = NS_NewCmdLineServiceFactory(aFactory); - } - else if (aClass.Equals(kFileLocatorCID)) { - rv = NS_NewFileLocatorFactory(aFactory); - } - else if (aClass.Equals(kXPConnectFactoryCID)) { - rv = NS_NewXPConnectFactoryFactory(aFactory); - } - else if ( aClass.Equals( kNetSupportDialogCID ) ) - { - rv = NS_NewNetSupportDialogFactory(aFactory); - } - else if ( aClass.Equals( kWindowMediatorCID ) ) - { - rv = NS_NewWindowMediatorFactory( aFactory ); - } - else if ( aClass.Equals( kSessionHistoryCID ) ) - { - rv = NS_NewSessionHistoryFactory( aFactory ); - } - else if ( aClass.Equals( kCommonDialogsCID ) ) - { - rv = NS_NewCommonDialogsFactory( aFactory ); - } - else if ( aClass.Equals( kDialogParamBlockCID ) ) - { - rv = NS_NewDialogParamBlockFactory( aFactory ); - } - else if ( aClass.Equals(kAboutModuleCID ) ) - { - nsIGenericFactory* fact; - rv = NS_NewGenericFactory(&fact, nsAbout::Create); - *aFactory = fact; - } - return rv; -} +NS_IMPL_NSGETMODULE("appshell", gAppShellModuleInfo) diff --git a/xpfe/appshell/src/nsAppShellService.cpp b/xpfe/appshell/src/nsAppShellService.cpp index a76c98d9d65..f0c7058d98f 100644 --- a/xpfe/appshell/src/nsAppShellService.cpp +++ b/xpfe/appshell/src/nsAppShellService.cpp @@ -67,6 +67,8 @@ #include "nsIScriptGlobalObject.h" #include "jsapi.h" +#include "nsAppShellService.h" + /* Define Class IDs */ static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID); @@ -78,48 +80,6 @@ static NS_DEFINE_CID(kMetaCharsetCID, NS_META_CHARSET_CID); static char *gEQActivatedNotification = "nsIEventQueueActivated"; static char *gEQDestroyedNotification = "nsIEventQueueDestroyed"; -class nsAppShellService : public nsIAppShellService, - public nsIObserver, - public nsSupportsWeakReference -{ -public: - nsAppShellService(void); - - NS_DECL_ISUPPORTS - NS_DECL_NSIAPPSHELLSERVICE - NS_DECL_NSIOBSERVER - -protected: - virtual ~nsAppShellService(); - - void RegisterObserver(PRBool aRegister); - NS_IMETHOD JustCreateTopWindow(nsIWebShellWindow *aParent, - nsIURI *aUrl, - PRBool aShowWindow, PRBool aLoadDefaultPage, - PRUint32 aChromeMask, - nsIXULWindowCallbacks *aCallbacks, - PRInt32 aInitialWidth, PRInt32 aInitialHeight, - nsIWebShellWindow **aResult); - void InitializeComponent( const nsCID &aComponentCID ); - void ShutdownComponent( const nsCID &aComponentCID ); - typedef void (nsAppShellService::*EnumeratorMemberFunction)(const nsCID&); - void EnumerateComponents( void (nsAppShellService::*function)(const nsCID&) ); - - nsIAppShell* mAppShell; - nsISupportsArray* mWindowList; - nsICmdLineService* mCmdLineService; - nsIWindowMediator* mWindowMediator; - nsCOMPtr mHiddenWindow; - PRBool mDeleteCalled; - nsISplashScreen *mSplashScreen; - - // The mShutdownTimer is set in Quit() to asynchronously call the - // ExitCallback(). This allows one last pass through any events in - // the event queue before shutting down the appshell. - nsCOMPtr mShutdownTimer; - static void ExitCallback(nsITimer* aTimer, void* aClosure); -}; - nsAppShellService::nsAppShellService() : mWindowMediator( NULL ) { NS_INIT_REFCNT(); @@ -848,39 +808,6 @@ nsAppShellService::UnregisterTopLevelWindow(nsIWebShellWindow* aWindow) } -NS_EXPORT nsresult NS_NewAppShellService(nsIAppShellService** aResult) -{ - if (nsnull == aResult) { - return NS_ERROR_NULL_POINTER; - } - - *aResult = new nsAppShellService(); - if (nsnull == *aResult) { - return NS_ERROR_OUT_OF_MEMORY; - } - - NS_ADDREF(*aResult); - return NS_OK; -} - -//---------------------------------------------------------------------- - -// Entry point to create nsAppShellService factory instances... -NS_DEF_FACTORY(AppShellService,nsAppShellService) - -nsresult NS_NewAppShellServiceFactory(nsIFactory** aResult) -{ - nsresult rv = NS_OK; - nsIFactory* inst = new nsAppShellServiceFactory; - if (nsnull == inst) { - rv = NS_ERROR_OUT_OF_MEMORY; - } - else { - NS_ADDREF(inst); - } - *aResult = inst; - return rv; -} //------------------------------------------------------------------------- // nsIObserver interface and friends diff --git a/xpfe/appshell/src/nsAppShellService.h b/xpfe/appshell/src/nsAppShellService.h new file mode 100644 index 00000000000..df14b02cb3d --- /dev/null +++ b/xpfe/appshell/src/nsAppShellService.h @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ +#ifndef __nsAppShellService_h +#define __nsAppShellService_h + +#include "nsISupports.h" +#include "nsIAppShellService.h" +#include "nsIObserver.h" +#include "nsWeakReference.h" +#include "nsIAppShell.h" +#include "nsITimer.h" + +class nsAppShellService : public nsIAppShellService, + public nsIObserver, + public nsSupportsWeakReference +{ +public: + nsAppShellService(void); + + NS_DECL_ISUPPORTS + NS_DECL_NSIAPPSHELLSERVICE + NS_DECL_NSIOBSERVER + +protected: + virtual ~nsAppShellService(); + + void RegisterObserver(PRBool aRegister); + NS_IMETHOD JustCreateTopWindow(nsIWebShellWindow *aParent, + nsIURI *aUrl, + PRBool aShowWindow, PRBool aLoadDefaultPage, + PRUint32 aChromeMask, + nsIXULWindowCallbacks *aCallbacks, + PRInt32 aInitialWidth, PRInt32 aInitialHeight, + nsIWebShellWindow **aResult); + void InitializeComponent( const nsCID &aComponentCID ); + void ShutdownComponent( const nsCID &aComponentCID ); + typedef void (nsAppShellService::*EnumeratorMemberFunction)(const nsCID&); + void EnumerateComponents( void (nsAppShellService::*function)(const nsCID&) ); + + nsIAppShell* mAppShell; + nsISupportsArray* mWindowList; + nsICmdLineService* mCmdLineService; + nsIWindowMediator* mWindowMediator; + nsCOMPtr mHiddenWindow; + PRBool mDeleteCalled; + nsISplashScreen *mSplashScreen; + + // The mShutdownTimer is set in Quit() to asynchronously call the + // ExitCallback(). This allows one last pass through any events in + // the event queue before shutting down the appshell. + nsCOMPtr mShutdownTimer; + static void ExitCallback(nsITimer* aTimer, void* aClosure); +}; + +#endif diff --git a/xpfe/appshell/src/nsCommandLineService.cpp b/xpfe/appshell/src/nsCommandLineService.cpp index ccf0521e832..7a323a91663 100644 --- a/xpfe/appshell/src/nsCommandLineService.cpp +++ b/xpfe/appshell/src/nsCommandLineService.cpp @@ -22,44 +22,11 @@ #include "nsICmdLineService.h" -#include "nsVoidArray.h" +#include "nsCommandLineService.h" #include "nsIComponentManager.h" #include "nsString.h" #include "plstr.h" - - -/* Define Class IDs */ -static NS_DEFINE_CID(kCmdLineServiceCID, NS_COMMANDLINE_SERVICE_CID); - - -class nsCmdLineService : public nsICmdLineService -{ -public: - nsCmdLineService(void); - - NS_DECL_ISUPPORTS - - NS_IMETHOD Initialize(PRInt32 aArgc, char** aArgv); - NS_IMETHOD GetCmdLineValue(const char* aArg, char **aValue); - NS_IMETHOD GetURLToLoad(char ** aResult); - NS_IMETHOD GetProgramName(char ** aResult); - NS_IMETHOD GetArgc(PRInt32 * aResult); - NS_IMETHOD GetArgv(char *** aResult); - -protected: - virtual ~nsCmdLineService(); - - nsVoidArray mArgList; // The arguments - nsVoidArray mArgValueList; // The argument values - PRInt32 mArgCount; // This is not argc. This is # of argument pairs - // in the arglist and argvaluelist arrays. This - // normally is argc/2. - PRInt32 mArgc; // This is argc; - char ** mArgv; // This is argv; -}; - - nsCmdLineService::nsCmdLineService() : mArgCount(0), mArgc(0), mArgv(0) { @@ -280,92 +247,3 @@ NS_EXPORT nsresult NS_NewCmdLineService(nsICmdLineService** aResult) return NS_OK; } - - -//---------------------------------------------------------------------- - -// Factory code for creating nsAppShellService's - -class nsCmdLineServiceFactory : public nsIFactory -{ -public: - nsCmdLineServiceFactory(); - NS_DECL_ISUPPORTS - - // nsIFactory methods - NS_IMETHOD CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult); - - NS_IMETHOD LockFactory(PRBool aLock); -protected: - virtual ~nsCmdLineServiceFactory(); -}; - - -nsCmdLineServiceFactory::nsCmdLineServiceFactory() -{ - NS_INIT_REFCNT(); -} - -nsresult -nsCmdLineServiceFactory::LockFactory(PRBool lock) -{ - - return NS_OK; -} - -nsCmdLineServiceFactory::~nsCmdLineServiceFactory() -{ -} - -NS_IMPL_ISUPPORTS1(nsCmdLineServiceFactory, nsIFactory); - - -nsresult -nsCmdLineServiceFactory::CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult) -{ - nsresult rv; - nsCmdLineService* inst; - - if (aResult == NULL) { - return NS_ERROR_NULL_POINTER; - } - *aResult = NULL; - if (nsnull != aOuter) { - rv = NS_ERROR_NO_AGGREGATION; - goto done; - } - - NS_NEWXPCOM(inst, nsCmdLineService); - if (inst == NULL) { - rv = NS_ERROR_OUT_OF_MEMORY; - goto done; - } - - NS_ADDREF(inst); - rv = inst->QueryInterface(aIID, aResult); - NS_RELEASE(inst); - -done: - return rv; -} - - -extern "C" NS_APPSHELL nsresult -NS_NewCmdLineServiceFactory(nsIFactory** aFactory) -{ - nsresult rv = NS_OK; - nsIFactory* inst = new nsCmdLineServiceFactory(); - if (nsnull == inst) { - rv = NS_ERROR_OUT_OF_MEMORY; - } - else { - NS_ADDREF(inst); - } - *aFactory = inst; - return rv; -} - diff --git a/xpfe/appshell/src/nsCommandLineService.h b/xpfe/appshell/src/nsCommandLineService.h new file mode 100644 index 00000000000..f7eefda632c --- /dev/null +++ b/xpfe/appshell/src/nsCommandLineService.h @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ +#ifndef __nsCommandLineService_h +#define __nsCommandLineService_h + +#include "nsISupports.h" +#include "nsVoidArray.h" + +class nsCmdLineService : public nsICmdLineService +{ +public: + nsCmdLineService(void); + + NS_DECL_ISUPPORTS + + NS_IMETHOD Initialize(PRInt32 aArgc, char** aArgv); + NS_IMETHOD GetCmdLineValue(const char* aArg, char **aValue); + NS_IMETHOD GetURLToLoad(char ** aResult); + NS_IMETHOD GetProgramName(char ** aResult); + NS_IMETHOD GetArgc(PRInt32 * aResult); + NS_IMETHOD GetArgv(char *** aResult); + +protected: + virtual ~nsCmdLineService(); + + nsVoidArray mArgList; // The arguments + nsVoidArray mArgValueList; // The argument values + PRInt32 mArgCount; // This is not argc. This is # of argument pairs + // in the arglist and argvaluelist arrays. This + // normally is argc/2. + PRInt32 mArgc; // This is argc; + char ** mArgv; // This is argv; +}; + +#endif diff --git a/xpfe/appshell/src/nsCommonDialogs.cpp b/xpfe/appshell/src/nsCommonDialogs.cpp index 9c967362793..d7371370c65 100644 --- a/xpfe/appshell/src/nsCommonDialogs.cpp +++ b/xpfe/appshell/src/nsCommonDialogs.cpp @@ -21,27 +21,17 @@ * Pierre Phaneuf */ #include "nsIDOMWindow.h" -#include "nsICommonDialogs.h" +#include "nsCommonDialogs.h" #include "nsCOMPtr.h" #include "nsIScriptGlobalObject.h" #include "nsXPComFactory.h" #include "nsIComponentManager.h" #include "nsIServiceManager.h" + static NS_DEFINE_CID( kDialogParamBlockCID, NS_DialogParamBlock_CID); -class nsCommonDialogs: public nsICommonDialogs -{ -public: - nsCommonDialogs(); - virtual ~nsCommonDialogs(); - - NS_DECL_NSICOMMONDIALOGS - NS_DECL_ISUPPORTS -private: -}; - const char* kPromptURL="chrome://global/content/commonDialog.xul"; const char* kQuestionIconURL ="chrome://global/skin/question-icon.gif"; @@ -473,24 +463,3 @@ NS_IMPL_ADDREF(nsCommonDialogs); NS_IMPL_RELEASE(nsCommonDialogs); NS_IMPL_QUERY_INTERFACE(nsCommonDialogs, NS_GET_IID(nsICommonDialogs)); -// Entry point to create nsAppShellService factory instances... -NS_DEF_FACTORY(CommonDialogs, nsCommonDialogs) - -nsresult NS_NewCommonDialogsFactory(nsIFactory** aResult) -{ - nsresult rv = NS_OK; - nsIFactory* inst; - - inst = new nsCommonDialogsFactory; - if (nsnull == inst) - { - rv = NS_ERROR_OUT_OF_MEMORY; - } - else - { - NS_ADDREF(inst); - } - *aResult = inst; - return rv; -} - diff --git a/xpfe/appshell/src/nsCommonDialogs.h b/xpfe/appshell/src/nsCommonDialogs.h new file mode 100644 index 00000000000..e69de29bb2d diff --git a/xpfe/appshell/src/nsDialogParamBlock.cpp b/xpfe/appshell/src/nsDialogParamBlock.cpp index e29974eec6d..e69de29bb2d 100644 --- a/xpfe/appshell/src/nsDialogParamBlock.cpp +++ b/xpfe/appshell/src/nsDialogParamBlock.cpp @@ -1,141 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Netscape Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/NPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1999 Netscape Communications Corporation. All - * Rights Reserved. - * - * Contributor(s): - * Pierre Phaneuf - */ - -#include "nsIDialogParamBlock.h" -#include "nsString.h" -#include "nsXPComFactory.h" - -class nsDialogParamBlock: public nsIDialogParamBlock -{ - enum {kNumInts = 8, kNumStrings =16 }; -public: - nsDialogParamBlock(); - virtual ~nsDialogParamBlock(); - - NS_DECL_NSIDIALOGPARAMBLOCK - - // COM - NS_DECL_ISUPPORTS -private: - nsresult InBounds( PRInt32 inIndex, PRInt32 inMax ) - { - if ( inIndex >= 0 && inIndex< inMax ) - return NS_OK; - else - return NS_ERROR_ILLEGAL_VALUE; - } - - PRInt32 mInt[ kNumInts ]; - PRInt32 mNumStrings; - nsString* mString; -}; - -nsDialogParamBlock::nsDialogParamBlock(): mNumStrings( 0 ), mString(NULL ) -{ - NS_INIT_REFCNT(); - - for( PRInt32 i =0; i< kNumInts; i++ ) - mInt[ i ] = 0; -} - -nsDialogParamBlock::~nsDialogParamBlock() -{ - delete [] mString; -} - -NS_IMETHODIMP nsDialogParamBlock::SetNumberStrings( PRInt32 inNumStrings ) -{ - if ( mString != NULL ) - { - return NS_ERROR_ALREADY_INITIALIZED; - } - mString = new nsString[ inNumStrings ]; - if ( !mString ) - return NS_ERROR_OUT_OF_MEMORY; - mNumStrings = inNumStrings; - return NS_OK; -} - - -NS_IMETHODIMP nsDialogParamBlock::GetInt(PRInt32 inIndex, PRInt32 *_retval) -{ - nsresult rv = InBounds( inIndex, kNumInts ); - if ( rv == NS_OK ) - *_retval = mInt[ inIndex ]; - return rv; -} - -NS_IMETHODIMP nsDialogParamBlock::SetInt(PRInt32 inIndex, PRInt32 inInt) -{ - nsresult rv = InBounds( inIndex, kNumInts ); - if ( rv == NS_OK ) - mInt[ inIndex ]= inInt; - return rv; -} - - -NS_IMETHODIMP nsDialogParamBlock::GetString(PRInt32 inIndex, PRUnichar **_retval) -{ - if ( mNumStrings == 0 ) - SetNumberStrings( kNumStrings ); - nsresult rv = InBounds( inIndex, mNumStrings ); - if ( rv == NS_OK ) - *_retval = mString[ inIndex ].ToNewUnicode(); - return rv; -} - -NS_IMETHODIMP nsDialogParamBlock::SetString(PRInt32 inIndex, const PRUnichar *inString) -{ - if ( mNumStrings == 0 ) - SetNumberStrings( kNumStrings ); - nsresult rv = InBounds( inIndex, mNumStrings ); - if ( rv == NS_OK ) - mString[ inIndex ]= inString; - return rv; -} - -NS_IMPL_ADDREF(nsDialogParamBlock); -NS_IMPL_RELEASE(nsDialogParamBlock); -NS_IMPL_QUERY_INTERFACE1(nsDialogParamBlock, nsIDialogParamBlock) - -// Entry point to create nsAppShellService factory instances... -NS_DEF_FACTORY(DialogParamBlock, nsDialogParamBlock) - -nsresult NS_NewDialogParamBlockFactory(nsIFactory** aResult) -{ - nsresult rv = NS_OK; - nsIFactory* inst; - - inst = new nsDialogParamBlockFactory; - if (nsnull == inst) - { - rv = NS_ERROR_OUT_OF_MEMORY; - } - else - { - NS_ADDREF(inst); - } - *aResult = inst; - return rv; -} - diff --git a/xpfe/appshell/src/nsDialogParamBlock.h b/xpfe/appshell/src/nsDialogParamBlock.h new file mode 100644 index 00000000000..e69de29bb2d diff --git a/xpfe/appshell/src/nsFileLocations.cpp b/xpfe/appshell/src/nsFileLocations.cpp index 4aab2e56e67..9011681b4f2 100644 --- a/xpfe/appshell/src/nsFileLocations.cpp +++ b/xpfe/appshell/src/nsFileLocations.cpp @@ -536,28 +536,6 @@ void nsSpecialFileSpec::operator = (Type aType) //======================================================================================== //======================================================================================== -class nsFileLocator : public nsIFileLocator -//======================================================================================== -{ -public: - nsFileLocator(); - - NS_DECL_ISUPPORTS - - NS_IMETHOD GetFileLocation( - PRUint32 aType, - // NOTE: actually either nsSpecialFileSpec:Type, see nsFileLocations.h - // or nsSpecialSystemDirectory::SystemDirectories, see nsSpecialSystemDirectory.h - nsIFileSpec** outSpec); - - NS_IMETHOD ForgetProfileDir(); - -protected: - virtual ~nsFileLocator(); - -}; - - //---------------------------------------------------------------------------------------- nsFileLocator::nsFileLocator() //---------------------------------------------------------------------------------------- @@ -604,102 +582,3 @@ NS_IMETHODIMP nsFileLocator::ForgetProfileDir() return NS_OK; } - -//---------------------------------------------------------------------------------------- -NS_EXPORT nsresult NS_NewFileLocator(nsIFileLocator** aResult) -//---------------------------------------------------------------------------------------- -{ - if (nsnull == aResult) - return NS_ERROR_NULL_POINTER; - - *aResult = new nsFileLocator(); - if (nsnull == *aResult) - return NS_ERROR_OUT_OF_MEMORY; - - NS_ADDREF(*aResult); - return NS_OK; -} - -//======================================================================================== -class nsFileLocatorFactory : public nsIFactory -//======================================================================================== -{ -public: - nsFileLocatorFactory(); - NS_DECL_ISUPPORTS - - // nsIFactory methods - NS_IMETHOD CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult); - - NS_IMETHOD LockFactory(PRBool aLock); -protected: - virtual ~nsFileLocatorFactory(); -}; - -//---------------------------------------------------------------------------------------- -nsFileLocatorFactory::nsFileLocatorFactory() -//---------------------------------------------------------------------------------------- -{ - NS_INIT_REFCNT(); -} - -//---------------------------------------------------------------------------------------- -nsresult nsFileLocatorFactory::LockFactory(PRBool /*lock*/) -//---------------------------------------------------------------------------------------- -{ - return NS_OK; -} - -//---------------------------------------------------------------------------------------- -nsFileLocatorFactory::~nsFileLocatorFactory() -//---------------------------------------------------------------------------------------- -{ -} - -NS_IMPL_ISUPPORTS1(nsFileLocatorFactory, nsIFactory); - -//---------------------------------------------------------------------------------------- -nsresult nsFileLocatorFactory::CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult) -//---------------------------------------------------------------------------------------- -{ - nsresult rv; - nsFileLocator* inst; - - if (!aResult) - return NS_ERROR_NULL_POINTER; - - *aResult = NULL; - if (aOuter) - return NS_ERROR_NO_AGGREGATION; - - NS_NEWXPCOM(inst, nsFileLocator); - if (!inst) - return NS_ERROR_OUT_OF_MEMORY; - - NS_ADDREF(inst); - rv = inst->QueryInterface(aIID, aResult); - NS_RELEASE(inst); - - return rv; -} - - -//---------------------------------------------------------------------------------------- -extern "C" NS_APPSHELL nsresult NS_NewFileLocatorFactory(nsIFactory** aFactory) -//---------------------------------------------------------------------------------------- -{ - nsresult rv = NS_OK; - nsIFactory* inst = new nsFileLocatorFactory(); - if (!inst) - rv = NS_ERROR_OUT_OF_MEMORY; - else - NS_ADDREF(inst); - - *aFactory = inst; - return rv; -} - diff --git a/xpfe/appshell/src/nsNetSupportDialog.cpp b/xpfe/appshell/src/nsNetSupportDialog.cpp index 6c4f9b84bf6..24ab2c2aa09 100644 --- a/xpfe/appshell/src/nsNetSupportDialog.cpp +++ b/xpfe/appshell/src/nsNetSupportDialog.cpp @@ -29,12 +29,9 @@ #include "nsIWebShellWindow.h" #include "nsICommonDialogs.h" #include "nsIDOMWindow.h" -#include "nsXPComFactory.h" /* Define Class IDs */ static NS_DEFINE_CID(kAppShellServiceCID, NS_APPSHELL_SERVICE_CID); -static NS_DEFINE_CID( kCommonDialogsCID, NS_CommonDialog_CID); - PRBool GetNSIPrompt( nsCOMPtr & outPrompt ) { @@ -186,29 +183,4 @@ nsresult nsNetSupportDialog::Select(const PRUnichar *inDialogTitle, const PRUnic return rv; } - - - -// COM Fluff - NS_IMPL_ISUPPORTS1( nsNetSupportDialog, nsIPrompt ); -NS_DEF_FACTORY(NetSupportDialog, nsNetSupportDialog) - - - -nsresult NS_NewNetSupportDialogFactory(nsIFactory** aFactory) -{ - nsresult rv = NS_OK; - nsIFactory* inst = new nsNetSupportDialogFactory(); - if (nsnull == inst) - { - rv = NS_ERROR_OUT_OF_MEMORY; - } - else - { - NS_ADDREF(inst); - } - *aFactory = inst; - return rv; -} - diff --git a/xpfe/appshell/src/nsSessionHistory.cpp b/xpfe/appshell/src/nsSessionHistory.cpp index 1a54a36cc77..3985f61e2f0 100644 --- a/xpfe/appshell/src/nsSessionHistory.cpp +++ b/xpfe/appshell/src/nsSessionHistory.cpp @@ -21,7 +21,7 @@ */ -#include "nsISessionHistory.h" +#include "nsSessionHistory.h" #include "nsAppShellCIDs.h" #include "nsVoidArray.h" #include "nsIWebShell.h" @@ -41,8 +41,7 @@ static NS_DEFINE_CID(kWebShellCID, NS_WEB_SHELL_CID); -// Advance declarations -class nsHistoryEntry; + static nsHistoryEntry * GenerateTree(const char * aStickyURL, nsIWebShell * aStickyContainer, nsIWebShell * aContainer,nsHistoryEntry *aParent, nsISessionHistory * aSHist); @@ -717,48 +716,6 @@ nsHistoryEntry::GetRootDoc(void) { return top; } - -class nsSessionHistory: public nsISessionHistory -{ - -public: - nsSessionHistory(); - - //nsISupports - NS_DECL_ISUPPORTS - - NS_DEFINE_STATIC_CID_ACCESSOR( NS_SESSIONHISTORY_CID ) - - NS_DECL_NSISESSIONHISTORY - -protected: - - virtual ~nsSessionHistory(); - -private: - PRInt32 mHistoryLength; - PRInt32 mHistoryCurrentIndex; - nsVoidArray mHistoryEntries; - - /** Following member is used to identify whether we are in the - * middle of loading a history document. The mIsLoadingDoc flag is - * used to determine whether the document that is curently loaded - * in the window s'd go to the end of the historylist or to be - * handed over to the current history entry (mIndexOfHistoryInLoad) - * that is in the process of loading. The current history entry - * being loaded uses this new historyentry to decide whether the - * document is completely in par with the one in history. If not, it - * will initiate further loads. When the document currently loaded is - * completely on par with the one in history, it will clear the - * mIsLoadingDoc flag. Any new URL loaded from then on, will go to the - * end of the history list. Note: these members are static. - */ - PRBool mIsLoadingDoc; - nsHistoryEntry * mHistoryEntryInLoad; - - -}; - MOZ_DECL_CTOR_COUNTER(nsSessionHistory); nsSessionHistory::nsSessionHistory() @@ -1367,107 +1324,3 @@ nsSessionHistory::SetHistoryObjectForIndex(PRInt32 aIndex, nsISupports* aState) return NS_OK; } - -NS_EXPORT nsresult NS_NewSessionHistory(nsISessionHistory** aResult) -{ - if (nsnull == aResult) { - return NS_ERROR_NULL_POINTER; - } - - *aResult = new nsSessionHistory(); - if (nsnull == *aResult) { - return NS_ERROR_OUT_OF_MEMORY; - } - - NS_ADDREF(*aResult); - return NS_OK; -} - -//---------------------------------------------------------------------- - -// Factory code for creating nsSessionHistory - -class nsSessionHistoryFactory : public nsIFactory -{ -public: - nsSessionHistoryFactory(); - NS_DECL_ISUPPORTS - - // nsIFactory methods - NS_IMETHOD CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult); - - NS_IMETHOD LockFactory(PRBool aLock); -protected: - virtual ~nsSessionHistoryFactory(); -}; - - -nsSessionHistoryFactory::nsSessionHistoryFactory() -{ - NS_INIT_REFCNT(); -} - -nsresult -nsSessionHistoryFactory::LockFactory(PRBool aLock) -{ - return NS_OK; -} - -nsSessionHistoryFactory::~nsSessionHistoryFactory() -{ -} - -NS_IMPL_ISUPPORTS1(nsSessionHistoryFactory, nsIFactory); - - -nsresult -nsSessionHistoryFactory::CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult) -{ - nsresult rv; - nsSessionHistory* inst; - - if (aResult == NULL) { - return NS_ERROR_NULL_POINTER; - } - *aResult = NULL; - if (nsnull != aOuter) { - rv = NS_ERROR_NO_AGGREGATION; - goto done; - } - - - NS_NEWXPCOM(inst, nsSessionHistory); - if (inst == NULL) { - rv = NS_ERROR_OUT_OF_MEMORY; - goto done; - } - - NS_ADDREF(inst); - rv = inst->QueryInterface(aIID, aResult); - NS_RELEASE(inst); - -done: - return rv; -} - - -nsresult -NS_NewSessionHistoryFactory(nsIFactory** aFactory) -{ - nsresult rv = NS_OK; - - nsIFactory* inst = new nsSessionHistoryFactory(); - if (nsnull == inst) { - rv = NS_ERROR_OUT_OF_MEMORY; - } - else { - NS_ADDREF(inst); - } - *aFactory = inst; - return rv; -} - diff --git a/xpfe/appshell/src/nsSessionHistory.h b/xpfe/appshell/src/nsSessionHistory.h new file mode 100644 index 00000000000..e69de29bb2d diff --git a/xpfe/appshell/src/nsWindowMediator.cpp b/xpfe/appshell/src/nsWindowMediator.cpp index f83d186a1f6..b5e9a46e1c4 100644 --- a/xpfe/appshell/src/nsWindowMediator.cpp +++ b/xpfe/appshell/src/nsWindowMediator.cpp @@ -36,7 +36,6 @@ #include "nsIWindowMediator.h" #include "nsCOMPtr.h" #include "nsIWebShell.h" -#include "nsXPComFactory.h" #include "nsIWebShellWindow.h" #include "nsIDOMWindow.h" #include "nsIDOMElement.h" @@ -44,11 +43,12 @@ #include "nsIDocumentViewer.h" #include "nsIDocument.h" #include "nsIDOMDocument.h" +#include "nsWindowMediator.h" + static NS_DEFINE_CID(kRDFInMemoryDataSourceCID, NS_RDFINMEMORYDATASOURCE_CID); static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID); static NS_DEFINE_CID(kRDFContainerUtilsCID, NS_RDFCONTAINERUTILS_CID); -static NS_DEFINE_CID(kWindowMediatorCID, NS_WINDOWMEDIATOR_CID); static NS_DEFINE_CID(kRDFContainerCID, NS_RDFCONTAINER_CID); static const char kURINC_WindowMediatorRoot[] = "NC:WindowMediatorRoot"; @@ -160,152 +160,6 @@ struct nsWindowInfo } }; -class nsWindowEnumerator; - -class nsWindowMediator : public nsIWindowMediator -{ -friend class nsWindowEnumerator; - -public: - nsWindowMediator(); - virtual ~nsWindowMediator(); - nsresult Init(); - - NS_DECL_NSIWINDOWMEDIATOR - - // COM and RDF - NS_DECL_ISUPPORTS - - // RDF - // nsIRDFDataSource - NS_IMETHOD GetURI(char* *uri) - { - NS_PRECONDITION(uri != nsnull, "null ptr"); - if (! uri) - return NS_ERROR_NULL_POINTER; - - *uri = nsXPIDLCString::Copy("rdf:window-mediator"); - if (! *uri) - return NS_ERROR_OUT_OF_MEMORY; - - return NS_OK; - } - - NS_IMETHOD GetSource(nsIRDFResource* property, - nsIRDFNode* target, - PRBool tv, - nsIRDFResource** source) - { - return mInner->GetSource(property, target, tv, source); - } - - NS_IMETHOD GetSources(nsIRDFResource* property, - nsIRDFNode* target, - PRBool tv, - nsISimpleEnumerator** sources) - { - return mInner->GetSources(property, target, tv, sources); - } - - NS_IMETHOD GetTarget(nsIRDFResource* source, - nsIRDFResource* property, - PRBool tv, - nsIRDFNode** target) - { - return mInner->GetTarget(source, property, tv, target); - } - - NS_IMETHOD GetTargets(nsIRDFResource* source, - nsIRDFResource* property, - PRBool tv, - nsISimpleEnumerator** targets) - { - return mInner->GetTargets(source, property, tv, targets); - } - - NS_IMETHOD Assert(nsIRDFResource* aSource, - nsIRDFResource* aProperty, - nsIRDFNode* aTarget, - PRBool aTruthValue); - - NS_IMETHOD Unassert(nsIRDFResource* aSource, - nsIRDFResource* aProperty, - nsIRDFNode* aTarget); - - NS_IMETHOD Change(nsIRDFResource* aSource, - nsIRDFResource* aProperty, - nsIRDFNode* aOldTarget, - nsIRDFNode* aNewTarget); - - NS_IMETHOD Move(nsIRDFResource* aOldSource, - nsIRDFResource* aNewSource, - nsIRDFResource* aProperty, - nsIRDFNode* aTarget); - - NS_IMETHOD HasAssertion(nsIRDFResource* source, - nsIRDFResource* property, - nsIRDFNode* target, - PRBool tv, - PRBool* hasAssertion) - { - return mInner->HasAssertion(source, property, target, tv, hasAssertion); - } - - NS_IMETHOD AddObserver(nsIRDFObserver* n) - { - return mInner->AddObserver(n); - } - - NS_IMETHOD RemoveObserver(nsIRDFObserver* n) - { - return mInner->RemoveObserver(n); - } - - NS_IMETHOD ArcLabelsIn( nsIRDFNode* node, nsISimpleEnumerator** labels) - { - return mInner->ArcLabelsIn(node, labels); - } - - NS_IMETHOD ArcLabelsOut(nsIRDFResource* source, nsISimpleEnumerator** labels) - { - return mInner->ArcLabelsOut(source, labels); - } - - NS_IMETHOD GetAllResources(nsISimpleEnumerator** aCursor) - { - return mInner->GetAllResources(aCursor); - } - - NS_IMETHOD GetAllCommands(nsIRDFResource* source, - nsIEnumerator** commands); - NS_IMETHOD GetAllCmds(nsIRDFResource* source, - nsISimpleEnumerator** commands); - - NS_IMETHOD IsCommandEnabled(nsISupportsArray* aSources, - nsIRDFResource* aCommand, - nsISupportsArray* aArguments, - PRBool* aResult); - - NS_IMETHOD DoCommand(nsISupportsArray* aSources, - nsIRDFResource* aCommand, - nsISupportsArray* aArguments); -private: - // Helper functions - nsresult AddWindowToRDF( nsWindowInfo* ioWindowInfo ); - PRInt32 AddEnumerator( nsWindowEnumerator* inEnumerator ); - PRInt32 RemoveEnumerator( nsWindowEnumerator* inEnumerator); - PRInt32 mTimeStamp; - nsVoidArray mEnumeratorList; - nsVoidArray mWindowList; - - - // pseudo-constants for RDF - static nsIRDFResource* kNC_WindowMediatorRoot; - static nsIRDFResource* kNC_Name; - static nsIRDFResource* kNC_URL; - static PRInt32 gRefCnt; - static nsIRDFDataSource* mInner; -}; class nsWindowEnumerator : public nsISimpleEnumerator @@ -801,28 +655,6 @@ nsresult nsWindowMediator::AddWindowToRDF( nsWindowInfo* ioWindowInfo ) } -//---------------------------------------------------------------------- - -// Entry point to create nsAppShellService factory instances... -NS_DEF_FACTORY(WindowMediator, nsWindowMediator) - -nsresult NS_NewWindowMediatorFactory(nsIFactory** aResult) -{ - nsresult rv = NS_OK; - nsIFactory* inst; - - inst = new nsWindowMediatorFactory; - if (nsnull == inst) - { - rv = NS_ERROR_OUT_OF_MEMORY; - } - else - { - NS_ADDREF(inst); - } - *aResult = inst; - return rv; -} // window Enumerator nsWindowEnumerator::nsWindowEnumerator ( const PRUnichar* inTypeString, nsWindowMediator& inMediator, diff --git a/xpfe/appshell/src/nsWindowMediator.h b/xpfe/appshell/src/nsWindowMediator.h new file mode 100644 index 00000000000..3d72d94ae36 --- /dev/null +++ b/xpfe/appshell/src/nsWindowMediator.h @@ -0,0 +1,177 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ + +#ifndef __nsWindowMediator_h +#define __nsWindowMediator_h + +#include "nsIWindowMediator.h" +#include "nsXPIDLString.h" + +class nsWindowEnumerator; +struct nsWindowInfo; + +class nsWindowMediator : public nsIWindowMediator +{ +friend class nsWindowEnumerator; + +public: + nsWindowMediator(); + virtual ~nsWindowMediator(); + nsresult Init(); + + NS_DECL_NSIWINDOWMEDIATOR + + // COM and RDF + NS_DECL_ISUPPORTS + + // RDF + // nsIRDFDataSource + NS_IMETHOD GetURI(char* *uri) + { + NS_PRECONDITION(uri != nsnull, "null ptr"); + if (! uri) + return NS_ERROR_NULL_POINTER; + + *uri = nsXPIDLCString::Copy("rdf:window-mediator"); + if (! *uri) + return NS_ERROR_OUT_OF_MEMORY; + + return NS_OK; + } + + NS_IMETHOD GetSource(nsIRDFResource* property, + nsIRDFNode* target, + PRBool tv, + nsIRDFResource** source) + { + return mInner->GetSource(property, target, tv, source); + } + + NS_IMETHOD GetSources(nsIRDFResource* property, + nsIRDFNode* target, + PRBool tv, + nsISimpleEnumerator** sources) + { + return mInner->GetSources(property, target, tv, sources); + } + + NS_IMETHOD GetTarget(nsIRDFResource* source, + nsIRDFResource* property, + PRBool tv, + nsIRDFNode** target) + { + return mInner->GetTarget(source, property, tv, target); + } + + NS_IMETHOD GetTargets(nsIRDFResource* source, + nsIRDFResource* property, + PRBool tv, + nsISimpleEnumerator** targets) + { + return mInner->GetTargets(source, property, tv, targets); + } + + NS_IMETHOD Assert(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget, + PRBool aTruthValue); + + NS_IMETHOD Unassert(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget); + + NS_IMETHOD Change(nsIRDFResource* aSource, + nsIRDFResource* aProperty, + nsIRDFNode* aOldTarget, + nsIRDFNode* aNewTarget); + + NS_IMETHOD Move(nsIRDFResource* aOldSource, + nsIRDFResource* aNewSource, + nsIRDFResource* aProperty, + nsIRDFNode* aTarget); + + NS_IMETHOD HasAssertion(nsIRDFResource* source, + nsIRDFResource* property, + nsIRDFNode* target, + PRBool tv, + PRBool* hasAssertion) + { + return mInner->HasAssertion(source, property, target, tv, hasAssertion); + } + + NS_IMETHOD AddObserver(nsIRDFObserver* n) + { + return mInner->AddObserver(n); + } + + NS_IMETHOD RemoveObserver(nsIRDFObserver* n) + { + return mInner->RemoveObserver(n); + } + + NS_IMETHOD ArcLabelsIn( nsIRDFNode* node, nsISimpleEnumerator** labels) + { + return mInner->ArcLabelsIn(node, labels); + } + + NS_IMETHOD ArcLabelsOut(nsIRDFResource* source, nsISimpleEnumerator** labels) + { + return mInner->ArcLabelsOut(source, labels); + } + + NS_IMETHOD GetAllResources(nsISimpleEnumerator** aCursor) + { + return mInner->GetAllResources(aCursor); + } + + NS_IMETHOD GetAllCommands(nsIRDFResource* source, + nsIEnumerator** commands); + NS_IMETHOD GetAllCmds(nsIRDFResource* source, + nsISimpleEnumerator** commands); + + NS_IMETHOD IsCommandEnabled(nsISupportsArray* aSources, + nsIRDFResource* aCommand, + nsISupportsArray* aArguments, + PRBool* aResult); + + NS_IMETHOD DoCommand(nsISupportsArray* aSources, + nsIRDFResource* aCommand, + nsISupportsArray* aArguments); +private: + // Helper functions + nsresult AddWindowToRDF( nsWindowInfo* ioWindowInfo ); + PRInt32 AddEnumerator( nsWindowEnumerator* inEnumerator ); + PRInt32 RemoveEnumerator( nsWindowEnumerator* inEnumerator); + PRInt32 mTimeStamp; + nsVoidArray mEnumeratorList; + nsVoidArray mWindowList; + + + // pseudo-constants for RDF + static nsIRDFResource* kNC_WindowMediatorRoot; + static nsIRDFResource* kNC_Name; + static nsIRDFResource* kNC_URL; + static PRInt32 gRefCnt; + static nsIRDFDataSource* mInner; +}; + +#endif diff --git a/xpfe/appshell/src/nsXPConnectFactory.cpp b/xpfe/appshell/src/nsXPConnectFactory.cpp index 4c745c40dd2..235ca5230a7 100644 --- a/xpfe/appshell/src/nsXPConnectFactory.cpp +++ b/xpfe/appshell/src/nsXPConnectFactory.cpp @@ -20,33 +20,14 @@ * Contributor(s): */ +#include "nsXPConnectFactory.h" #include "nsRepository.h" #include "nsXPComFactory.h" #include "nsIScriptObjectOwner.h" #include "nsIScriptGlobalObject.h" #include "nsIDOMXPConnectFactory.h" -class XPConnectFactoryImpl : public nsIDOMXPConnectFactory, - public nsIScriptObjectOwner -{ -public: - XPConnectFactoryImpl(); - NS_DECL_ISUPPORTS - - // nsIXPConnectFactory interface... - NS_IMETHOD CreateInstance(const nsString &progID, nsISupports**_retval); - - // nsIScriptObjectOwner interface... - NS_IMETHOD GetScriptObject(nsIScriptContext *aContext, void** aScriptObject); - NS_IMETHOD SetScriptObject(void *aScriptObject); - -protected: - virtual ~XPConnectFactoryImpl(); - -private: - void *mScriptObject; -}; XPConnectFactoryImpl::XPConnectFactoryImpl() @@ -133,24 +114,3 @@ XPConnectFactoryImpl::SetScriptObject(void *aScriptObject) return NS_OK; } - - -// ----- -// Entry point to create nsXPConnectFactory factory instances... -// ----- -NS_DEF_FACTORY(XPConnectFactory, XPConnectFactoryImpl) - -nsresult NS_NewXPConnectFactoryFactory(nsIFactory** aResult) -{ - nsresult rv = NS_OK; - nsIFactory* inst = new nsXPConnectFactoryFactory(); - if (nsnull == inst) { - rv = NS_ERROR_OUT_OF_MEMORY; - } - else { - NS_ADDREF(inst); - } - *aResult = inst; - return rv; -} - diff --git a/xpfe/appshell/src/nsXPConnectFactory.h b/xpfe/appshell/src/nsXPConnectFactory.h new file mode 100644 index 00000000000..b956d8ba44b --- /dev/null +++ b/xpfe/appshell/src/nsXPConnectFactory.h @@ -0,0 +1,50 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ +#ifndef __XPConnectFactory_h +#define __XPConnectFactory_h + +#include "nsIDOMXPConnectFactory.h" +#include "nsIScriptObjectOwner.h" + +class XPConnectFactoryImpl : public nsIDOMXPConnectFactory, + public nsIScriptObjectOwner +{ +public: + XPConnectFactoryImpl(); + + NS_DECL_ISUPPORTS + + // nsIXPConnectFactory interface... + NS_IMETHOD CreateInstance(const nsString &progID, nsISupports**_retval); + + // nsIScriptObjectOwner interface... + NS_IMETHOD GetScriptObject(nsIScriptContext *aContext, void** aScriptObject); + NS_IMETHOD SetScriptObject(void *aScriptObject); + +protected: + virtual ~XPConnectFactoryImpl(); + +private: + void *mScriptObject; +}; + +#endif diff --git a/xpfe/components/startup/src/nsCommandLineService.cpp b/xpfe/components/startup/src/nsCommandLineService.cpp index ccf0521e832..7a323a91663 100644 --- a/xpfe/components/startup/src/nsCommandLineService.cpp +++ b/xpfe/components/startup/src/nsCommandLineService.cpp @@ -22,44 +22,11 @@ #include "nsICmdLineService.h" -#include "nsVoidArray.h" +#include "nsCommandLineService.h" #include "nsIComponentManager.h" #include "nsString.h" #include "plstr.h" - - -/* Define Class IDs */ -static NS_DEFINE_CID(kCmdLineServiceCID, NS_COMMANDLINE_SERVICE_CID); - - -class nsCmdLineService : public nsICmdLineService -{ -public: - nsCmdLineService(void); - - NS_DECL_ISUPPORTS - - NS_IMETHOD Initialize(PRInt32 aArgc, char** aArgv); - NS_IMETHOD GetCmdLineValue(const char* aArg, char **aValue); - NS_IMETHOD GetURLToLoad(char ** aResult); - NS_IMETHOD GetProgramName(char ** aResult); - NS_IMETHOD GetArgc(PRInt32 * aResult); - NS_IMETHOD GetArgv(char *** aResult); - -protected: - virtual ~nsCmdLineService(); - - nsVoidArray mArgList; // The arguments - nsVoidArray mArgValueList; // The argument values - PRInt32 mArgCount; // This is not argc. This is # of argument pairs - // in the arglist and argvaluelist arrays. This - // normally is argc/2. - PRInt32 mArgc; // This is argc; - char ** mArgv; // This is argv; -}; - - nsCmdLineService::nsCmdLineService() : mArgCount(0), mArgc(0), mArgv(0) { @@ -280,92 +247,3 @@ NS_EXPORT nsresult NS_NewCmdLineService(nsICmdLineService** aResult) return NS_OK; } - - -//---------------------------------------------------------------------- - -// Factory code for creating nsAppShellService's - -class nsCmdLineServiceFactory : public nsIFactory -{ -public: - nsCmdLineServiceFactory(); - NS_DECL_ISUPPORTS - - // nsIFactory methods - NS_IMETHOD CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult); - - NS_IMETHOD LockFactory(PRBool aLock); -protected: - virtual ~nsCmdLineServiceFactory(); -}; - - -nsCmdLineServiceFactory::nsCmdLineServiceFactory() -{ - NS_INIT_REFCNT(); -} - -nsresult -nsCmdLineServiceFactory::LockFactory(PRBool lock) -{ - - return NS_OK; -} - -nsCmdLineServiceFactory::~nsCmdLineServiceFactory() -{ -} - -NS_IMPL_ISUPPORTS1(nsCmdLineServiceFactory, nsIFactory); - - -nsresult -nsCmdLineServiceFactory::CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult) -{ - nsresult rv; - nsCmdLineService* inst; - - if (aResult == NULL) { - return NS_ERROR_NULL_POINTER; - } - *aResult = NULL; - if (nsnull != aOuter) { - rv = NS_ERROR_NO_AGGREGATION; - goto done; - } - - NS_NEWXPCOM(inst, nsCmdLineService); - if (inst == NULL) { - rv = NS_ERROR_OUT_OF_MEMORY; - goto done; - } - - NS_ADDREF(inst); - rv = inst->QueryInterface(aIID, aResult); - NS_RELEASE(inst); - -done: - return rv; -} - - -extern "C" NS_APPSHELL nsresult -NS_NewCmdLineServiceFactory(nsIFactory** aFactory) -{ - nsresult rv = NS_OK; - nsIFactory* inst = new nsCmdLineServiceFactory(); - if (nsnull == inst) { - rv = NS_ERROR_OUT_OF_MEMORY; - } - else { - NS_ADDREF(inst); - } - *aFactory = inst; - return rv; -} - diff --git a/xpfe/components/startup/src/nsCommandLineService.h b/xpfe/components/startup/src/nsCommandLineService.h new file mode 100644 index 00000000000..f7eefda632c --- /dev/null +++ b/xpfe/components/startup/src/nsCommandLineService.h @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + */ +#ifndef __nsCommandLineService_h +#define __nsCommandLineService_h + +#include "nsISupports.h" +#include "nsVoidArray.h" + +class nsCmdLineService : public nsICmdLineService +{ +public: + nsCmdLineService(void); + + NS_DECL_ISUPPORTS + + NS_IMETHOD Initialize(PRInt32 aArgc, char** aArgv); + NS_IMETHOD GetCmdLineValue(const char* aArg, char **aValue); + NS_IMETHOD GetURLToLoad(char ** aResult); + NS_IMETHOD GetProgramName(char ** aResult); + NS_IMETHOD GetArgc(PRInt32 * aResult); + NS_IMETHOD GetArgv(char *** aResult); + +protected: + virtual ~nsCmdLineService(); + + nsVoidArray mArgList; // The arguments + nsVoidArray mArgValueList; // The argument values + PRInt32 mArgCount; // This is not argc. This is # of argument pairs + // in the arglist and argvaluelist arrays. This + // normally is argc/2. + PRInt32 mArgc; // This is argc; + char ** mArgv; // This is argv; +}; + +#endif