diff --git a/toolkit/components/alerts/Makefile.in b/toolkit/components/alerts/Makefile.in index b7d17d0f31c..ef1ac836127 100644 --- a/toolkit/components/alerts/Makefile.in +++ b/toolkit/components/alerts/Makefile.in @@ -49,13 +49,9 @@ ifneq (,$(filter $(MOZ_WIDGET_TOOLKIT),windows gtk gtk2)) DIRS += src endif -ifneq (,$(filter cocoa, $(MOZ_WIDGET_TOOLKIT))) -# src/mac/growl needs to be first for linking to work! -DIRS += \ - src/mac/growl \ - src/mac \ - $(NULL) -endif +#ifneq (,$(filter mac cocoa, $(MOZ_WIDGET_TOOLKIT))) +#DIRS += src/mac +#endif include $(topsrcdir)/config/rules.mk diff --git a/toolkit/components/alerts/src/mac/Makefile.in b/toolkit/components/alerts/src/mac/Makefile.in index 60e7691f5bc..6ac6d268441 100644 --- a/toolkit/components/alerts/src/mac/Makefile.in +++ b/toolkit/components/alerts/src/mac/Makefile.in @@ -43,8 +43,10 @@ include $(DEPTH)/config/autoconf.mk MODULE = alerts LIBRARY_NAME = alerts_s -IS_COMPONENT = 1 -FORCE_SHARED_LIB = 1 +FORCE_STATIC_LIB = 1 +LIBXUL_LIBRARY = 1 + +DIRS = growl REQUIRES = \ xpcom \ @@ -59,24 +61,13 @@ CMMSRCS = \ nsAlertsImageLoadListener.mm \ $(NULL) -CPPSRCS = \ - nsAlertsServiceModule.cpp \ - $(NULL) - LOCAL_INCLUDES += \ -I$(srcdir)/growl/ \ -I$(topsrcdir)/toolkit/components/build/ \ $(NULL) -SHARED_LIBRARY_LIBS = \ - growl/$(LIB_PREFIX)growl_s.$(LIB_SUFFIX) \ - $(NULL) +include $(topsrcdir)/config/rules.mk EXTRA_DSO_LDOPTS += \ - -framework Carbon \ - -framework Cocoa \ - $(XPCOM_GLUE_LDOPTS) \ - $(NSPR_LIBS) \ + $(MOZ_COMPONENT_LIBS) \ $(NULL) - -include $(topsrcdir)/config/rules.mk diff --git a/toolkit/components/alerts/src/mac/growl/Makefile.in b/toolkit/components/alerts/src/mac/growl/Makefile.in index f8aef184fb0..ce69cb565ab 100644 --- a/toolkit/components/alerts/src/mac/growl/Makefile.in +++ b/toolkit/components/alerts/src/mac/growl/Makefile.in @@ -44,7 +44,7 @@ include $(DEPTH)/config/autoconf.mk MODULE = alerts LIBRARY_NAME = growl_s FORCE_STATIC_LIB = 1 -FORCE_USE_PIC = 1 +LIBXUL_LIBRARY = 1 CMSRCS = \ GrowlApplicationBridge.m \ @@ -57,3 +57,13 @@ CSRCS = \ $(NULL) include $(topsrcdir)/config/rules.mk + +LDFLAGS += \ + -framework Carbon \ + -framework Foundation \ + -framework AppKit \ + $(NULL) + +EXTRA_DSO_LDOPTS += \ + $(MOZ_COMPONENT_LIBS) \ + $(NULL) diff --git a/toolkit/components/alerts/src/mac/mozGrowlDelegate.mm b/toolkit/components/alerts/src/mac/mozGrowlDelegate.mm index 98f3402d640..e96adff88ce 100644 --- a/toolkit/components/alerts/src/mac/mozGrowlDelegate.mm +++ b/toolkit/components/alerts/src/mac/mozGrowlDelegate.mm @@ -37,7 +37,7 @@ #import "mozGrowlDelegate.h" #include "nsIObserver.h" -#include "nsStringAPI.h" +#include "nsString.h" #include "nscore.h" #include "nsCOMPtr.h" #include "nsServiceManagerUtils.h" diff --git a/toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.h b/toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.h index ccc41b790c0..87a116763c3 100644 --- a/toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.h +++ b/toolkit/components/alerts/src/mac/nsAlertsImageLoadListener.h @@ -40,7 +40,7 @@ #import "mozGrowlDelegate.h" #include "nsIStreamLoader.h" -#include "nsStringAPI.h" +#include "nsString.h" class nsAlertsImageLoadListener : public nsIStreamLoaderObserver { diff --git a/toolkit/components/alerts/src/mac/nsAlertsService.h b/toolkit/components/alerts/src/mac/nsAlertsService.h index a52e9216924..11697fae29b 100644 --- a/toolkit/components/alerts/src/mac/nsAlertsService.h +++ b/toolkit/components/alerts/src/mac/nsAlertsService.h @@ -39,6 +39,7 @@ #include "nsIAlertsService.h" #include "nsIObserver.h" +#include "nsToolkitCompsCID.h" struct GrowlDelegateWrapper; @@ -57,4 +58,15 @@ private: virtual ~nsAlertsService(); }; +class nsModuleComponentInfo; +NS_METHOD nsAlertsServiceRegister(nsIComponentManager* aCompMgr, + nsIFile *aPath, + const char* registryLocation, + const char* componentType, + const nsModuleComponentInfo* info); +NS_METHOD nsAlertsServiceUnregister(nsIComponentManager* aCompMgr, + nsIFile* aPath, + const char* registryLocation, + const nsModuleComponentInfo* info); + #endif // nsAlertsService_h_ diff --git a/toolkit/components/alerts/src/mac/nsAlertsService.mm b/toolkit/components/alerts/src/mac/nsAlertsService.mm index 714fb8f7da2..1861333563d 100644 --- a/toolkit/components/alerts/src/mac/nsAlertsService.mm +++ b/toolkit/components/alerts/src/mac/nsAlertsService.mm @@ -35,13 +35,16 @@ * ***** END LICENSE BLOCK ***** */ #include "nsAlertsService.h" -#include "nsStringAPI.h" +#include "nsString.h" #include "nsAlertsImageLoadListener.h" #include "nsIURI.h" #include "nsIStreamLoader.h" #include "nsNetUtil.h" #include "nsCRT.h" #include "nsCOMPtr.h" +#include "nsIServiceManager.h" +#include "nsICategoryManager.h" +#include "nsMemory.h" #import "mozGrowlDelegate.h" #import "GrowlApplicationBridge.h" @@ -139,3 +142,42 @@ nsAlertsService::Observe(nsISupports* aSubject, const char* aTopic, return NS_OK; } +NS_METHOD +nsAlertsServiceRegister(nsIComponentManager* aCompMgr, + nsIFile* aPath, + const char* registryLocation, + const char* componentType, + const nsModuleComponentInfo* info) +{ + nsresult rv; + + nsCOMPtr catman = + do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv); + NS_ENSURE_SUCCESS(rv, rv); + + char* prev = nsnull; + rv = catman->AddCategoryEntry("app-startup", "nsAlertsService", + NS_ALERTSERVICE_CONTRACTID, PR_TRUE, PR_TRUE, + &prev); + if (prev) + nsMemory::Free(prev); + + return rv; +} + +NS_METHOD +nsAlertsServiceUnregister(nsIComponentManager* aCompMgr, + nsIFile* aPath, + const char* registryLocation, + const nsModuleComponentInfo* info) +{ + nsresult rv; + + nsCOMPtr catman = + do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv); + if (NS_FAILED(rv)) return rv; + + rv = catman->DeleteCategoryEntry("app-startup", "nsAlertsService", PR_TRUE); + + return rv; +} diff --git a/toolkit/components/alerts/src/mac/nsAlertsServiceModule.cpp b/toolkit/components/alerts/src/mac/nsAlertsServiceModule.cpp deleted file mode 100644 index af397f44245..00000000000 --- a/toolkit/components/alerts/src/mac/nsAlertsServiceModule.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla 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/MPL/ - * - * 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 Growl implementation of nsIAlertsService. - * - * The Initial Developer of the Original Code is - * Shawn Wilsher . - * Portions created by the Initial Developer are Copyright (C) 2006-2007 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "nsAlertsService.h" -#include "nsToolkitCompsCID.h" -#include "nsIGenericFactory.h" -#include "nsCOMPtr.h" -#include "nsIServiceManager.h" -#include "nsServiceManagerUtils.h" -#include "nsICategoryManager.h" -#include "nsMemory.h" - -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAlertsService, Init) - -static -NS_METHOD -nsAlertsServiceRegister(nsIComponentManager* aCompMgr, - nsIFile* aPath, - const char* registryLocation, - const char* componentType, - const nsModuleComponentInfo* info) -{ - nsresult rv; - - nsCOMPtr catman = - do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv); - NS_ENSURE_SUCCESS(rv, rv); - - char* prev = nsnull; - rv = catman->AddCategoryEntry("app-startup", "nsAlertsService", - NS_ALERTSERVICE_CONTRACTID, PR_TRUE, PR_TRUE, - &prev); - if (prev) - nsMemory::Free(prev); - - return rv; -} - -static -NS_METHOD -nsAlertsServiceUnregister(nsIComponentManager* aCompMgr, - nsIFile* aPath, - const char* registryLocation, - const nsModuleComponentInfo* info) -{ - nsresult rv; - - nsCOMPtr catman = - do_GetService(NS_CATEGORYMANAGER_CONTRACTID, &rv); - NS_ENSURE_SUCCESS(rv, rv); - - rv = catman->DeleteCategoryEntry("app-startup", "nsAlertsService", PR_TRUE); - - return rv; -} - -static const nsModuleComponentInfo components[] = -{ - { "Alerts Service", - NS_ALERTSSERVICE_CID, - NS_ALERTSERVICE_CONTRACTID, - nsAlertsServiceConstructor, - nsAlertsServiceRegister, - nsAlertsServiceUnregister }, -}; - -NS_IMPL_NSGETMODULE(nsAlertsServiceModule, components) diff --git a/toolkit/components/build/Makefile.in b/toolkit/components/build/Makefile.in index a0962f05caf..c66dce36f72 100644 --- a/toolkit/components/build/Makefile.in +++ b/toolkit/components/build/Makefile.in @@ -54,6 +54,10 @@ ifneq (,$(filter $(MOZ_WIDGET_TOOLKIT),windows gtk gtk2)) ALERTS_SERVICE=1 DEFINES += -DALERTS_SERVICE endif +#ifneq (,$(filter cocoa, $(MOZ_WIDGET_TOOLKIT))) +#ALERTS_SERVICE_MAC=1 +#DEFINES += -DALERTS_SERVICE_MAC +#endif REQUIRES = \ xpcom \ @@ -106,6 +110,14 @@ LOCAL_INCLUDES += \ -I$(srcdir)/../alerts/src \ $(NULL) endif +ifdef ALERTS_SERVICE_MAC +LOCAL_INCLUDES += \ + -I$(srcdir)/../alerts/src/mac \ + $(NULL) +EXTRA_DSO_LDOPTS += \ + -framework Cocoa \ + $(NULL) +endif SHARED_LIBRARY_LIBS = \ ../startup/src/$(LIB_PREFIX)appstartup_s.$(LIB_SUFFIX) \ diff --git a/toolkit/components/build/nsToolkitCompsModule.cpp b/toolkit/components/build/nsToolkitCompsModule.cpp index 80e473a1517..df71f4398e0 100644 --- a/toolkit/components/build/nsToolkitCompsModule.cpp +++ b/toolkit/components/build/nsToolkitCompsModule.cpp @@ -40,7 +40,7 @@ #include "nsUserInfo.h" #include "nsXPFEComponentsCID.h" #include "nsToolkitCompsCID.h" -#ifdef ALERTS_SERVICE +#if defined(ALERTS_SERVICE) || defined(ALERTS_SERVICE_MAC) #include "nsAlertsService.h" #endif @@ -73,6 +73,8 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsUserInfo) #ifdef ALERTS_SERVICE NS_GENERIC_FACTORY_CONSTRUCTOR(nsAlertsService) +#elif defined(ALERTS_SERVICE_MAC) +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsAlertsService, Init) #endif #ifndef MOZ_SUITE @@ -116,6 +118,13 @@ static const nsModuleComponentInfo components[] = NS_ALERTSSERVICE_CID, NS_ALERTSERVICE_CONTRACTID, nsAlertsServiceConstructor }, +#elif defined(ALERTS_SERVICE_MAC) + { "Alerts Service", + NS_ALERTSSERVICE_CID, + NS_ALERTSERVICE_CONTRACTID, + nsAlertsServiceConstructor, + nsAlertsServiceRegister, + nsAlertsServiceUnregister }, #endif #ifndef MOZ_SUITE // XXX Suite isn't ready to include this just yet