From 2f34d62786a2fae4f0f5764fbfaf020d20ea3c08 Mon Sep 17 00:00:00 2001 From: "ramiro%netscape.com" Date: Sat, 17 Jul 1999 21:23:46 +0000 Subject: [PATCH] Step 1 of cleaning up link time toolkit dependencies. Put the widget factories in the toolkit specific widget libs. git-svn-id: svn://10.0.0.236/trunk@39904 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/widget/src/beos/Makefile.in | 41 ++- mozilla/widget/src/beos/nsWidgetFactory.cpp | 210 ++++++----- mozilla/widget/src/build/Makefile.in | 15 - .../widget/src/build/nsBeOSWidgetFactory.cpp | 299 --------------- .../widget/src/build/nsPhWidgetFactory.cpp | 344 ------------------ mozilla/widget/src/gtk/Makefile.in | 31 +- .../nsWidgetFactory.cpp} | 0 mozilla/widget/src/motif/Makefile.in | 47 +-- .../nsWidgetFactory.cpp} | 0 mozilla/widget/src/os2/Makefile.in | 50 +-- mozilla/widget/src/photon/Makefile.in | 26 +- mozilla/widget/src/photon/nsWidgetFactory.cpp | 329 ++++++++++------- 12 files changed, 411 insertions(+), 981 deletions(-) delete mode 100644 mozilla/widget/src/build/nsBeOSWidgetFactory.cpp delete mode 100644 mozilla/widget/src/build/nsPhWidgetFactory.cpp rename mozilla/widget/src/{build/nsGTKWidgetFactory.cpp => gtk/nsWidgetFactory.cpp} (100%) rename mozilla/widget/src/{build/nsMotifWidgetFactory.cpp => motif/nsWidgetFactory.cpp} (100%) diff --git a/mozilla/widget/src/beos/Makefile.in b/mozilla/widget/src/beos/Makefile.in index 1b09c48b502..f0929e0ad72 100644 --- a/mozilla/widget/src/beos/Makefile.in +++ b/mozilla/widget/src/beos/Makefile.in @@ -38,33 +38,34 @@ INCLUDES+= -I$(srcdir)/../xpwidgets -I$(srcdir)/. INCLUDES += $(TK_CFLAGS) CPPSRCS = \ - nsPopUpMenu.cpp \ - nsMenuBar.cpp \ - nsMenu.cpp \ - nsMenuItem.cpp \ - nsObject.cpp \ - nsWindow.cpp \ + nsAppShell.cpp \ nsButton.cpp \ nsCheckButton.cpp \ - nsRadioButton.cpp \ - nsDragService.cpp \ - nsListBox.cpp \ + nsClipboard.cpp \ nsComboBox.cpp \ - nsTextWidget.cpp \ - nsTextHelper.cpp \ - nsTextAreaWidget.cpp\ + nsDragService.cpp \ nsFileWidget.cpp \ - nsScrollbar.cpp \ - nsTabWidget.cpp \ - nsTooltipWidget.cpp \ - nsAppShell.cpp \ - nsLabel.cpp \ - nsToolkit.cpp \ - nsSound.cpp \ nsFontRetrieverService.cpp \ nsFontSizeIterator.cpp \ - nsClipboard.cpp \ + nsLabel.cpp \ + nsListBox.cpp \ nsLookAndFeel.cpp \ + nsMenu.cpp \ + nsMenuBar.cpp \ + nsMenuItem.cpp \ + nsObject.cpp \ + nsPopUpMenu.cpp \ + nsRadioButton.cpp \ + nsScrollbar.cpp \ + nsSound.cpp \ + nsTabWidget.cpp \ + nsTextAreaWidget.cpp\ + nsTextHelper.cpp \ + nsTextWidget.cpp \ + nsToolkit.cpp \ + nsTooltipWidget.cpp \ + nsWidgetFactory.cpp \ + nsWindow.cpp \ $(NULL) TARGETS = $(LIBRARY) diff --git a/mozilla/widget/src/beos/nsWidgetFactory.cpp b/mozilla/widget/src/beos/nsWidgetFactory.cpp index 71f09c26de3..4c564cd2119 100644 --- a/mozilla/widget/src/beos/nsWidgetFactory.cpp +++ b/mozilla/widget/src/beos/nsWidgetFactory.cpp @@ -1,4 +1,4 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- +/* -*- 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.0 (the "NPL"); you may not use this file except in @@ -18,33 +18,39 @@ #include "nsIFactory.h" #include "nsISupports.h" -#include "nsdefs.h" +#include "nsIButton.h" +#include "nsITextWidget.h" #include "nsWidgetsCID.h" +#include "nsToolkit.h" +#include "nsWindow.h" +#include "nsAppShell.h" #include "nsButton.h" +#include "nsScrollbar.h" #include "nsCheckButton.h" -#include "nsComboBox.h" +#include "nsRadioButton.h" +#include "nsTextWidget.h" +#include "nsTextAreaWidget.h" #include "nsFileWidget.h" #include "nsListBox.h" +#include "nsComboBox.h" #include "nsLookAndFeel.h" -#include "nsRadioButton.h" -#include "nsScrollbar.h" -#include "nsTextAreaWidget.h" -#include "nsTextHelper.h" -#include "nsTextWidget.h" -#include "nsToolkit.h" -#include "nsTabWidget.h" -#include "nsTooltipWidget.h" -#include "nsWindow.h" -#include "nsDialog.h" #include "nsLabel.h" #include "nsMenuBar.h" #include "nsMenu.h" #include "nsMenuItem.h" #include "nsPopUpMenu.h" -#include "nsImageButton.h" -#include "nsMenuButton.h" -#include "nsAppShell.h" +#include "nsTabWidget.h" +#include "nsTooltipWidget.h" +#include "nsFontRetrieverService.h" + +// Drag & Drop, Clipboard +#include "nsClipboard.h" +#include "nsTransferable.h" +#include "nsXIFFormatConverter.h" +#include "nsDragService.h" + +#include "nsISound.h" static NS_DEFINE_IID(kCWindow, NS_WINDOW_CID); static NS_DEFINE_IID(kCChild, NS_CHILD_CID); @@ -63,130 +69,142 @@ static NS_DEFINE_IID(kCTooltipWidget, NS_TOOLTIPWIDGET_CID); static NS_DEFINE_IID(kCAppShell, NS_APPSHELL_CID); static NS_DEFINE_IID(kCToolkit, NS_TOOLKIT_CID); static NS_DEFINE_IID(kCLookAndFeel, NS_LOOKANDFEEL_CID); -static NS_DEFINE_IID(kCDialog, NS_DIALOG_CID); static NS_DEFINE_IID(kCLabel, NS_LABEL_CID); static NS_DEFINE_IID(kCMenuBar, NS_MENUBAR_CID); static NS_DEFINE_IID(kCMenu, NS_MENU_CID); static NS_DEFINE_IID(kCMenuItem, NS_MENUITEM_CID); -static NS_DEFINE_IID(kCImageButton, NS_IMAGEBUTTON_CID); static NS_DEFINE_IID(kCPopUpMenu, NS_POPUPMENU_CID); -static NS_DEFINE_IID(kCMenuButton, NS_MENUBUTTON_CID); +static NS_DEFINE_IID(kCFontRetrieverService, NS_FONTRETRIEVERSERVICE_CID); + +// Drag & Drop, Clipboard +static NS_DEFINE_IID(kCDataObj, NS_DATAOBJ_CID); +static NS_DEFINE_IID(kCClipboard, NS_CLIPBOARD_CID); +static NS_DEFINE_IID(kCTransferable, NS_TRANSFERABLE_CID); +static NS_DEFINE_IID(kCDataFlavor, NS_DATAFLAVOR_CID); +static NS_DEFINE_IID(kCXIFFormatConverter, NS_XIFFORMATCONVERTER_CID); +static NS_DEFINE_IID(kCDragService, NS_DRAGSERVICE_CID); static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID); +// Sound services (just Beep for now) +static NS_DEFINE_CID(kCSound, NS_SOUND_CID); + + class nsWidgetFactory : public nsIFactory { public: - // nsISupports methods + NS_DECL_ISUPPORTS // nsIFactory methods NS_IMETHOD CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult); + const nsIID &aIID, + void **aResult); NS_IMETHOD LockFactory(PRBool aLock); nsWidgetFactory(const nsCID &aClass); - ~nsWidgetFactory(); + virtual ~nsWidgetFactory(); +private: + nsCID mClassID; + +}; -private: - nsCID mClassID; -}; -NS_IMPL_ADDREF(nsWidgetFactory) -NS_IMPL_RELEASE(nsWidgetFactory) - nsWidgetFactory::nsWidgetFactory(const nsCID &aClass) { - NS_INIT_REFCNT(); - mClassID = aClass; + NS_INIT_REFCNT(); + mClassID = aClass; } nsWidgetFactory::~nsWidgetFactory() { - NS_ASSERTION(mRefCnt == 0, "Reference count not zero in destructor"); + NS_ASSERTION(mRefCnt == 0, "Reference count not zero in destructor"); } nsresult nsWidgetFactory::QueryInterface(const nsIID &aIID, void **aResult) { - if (aResult == NULL) { - return NS_ERROR_NULL_POINTER; - } + if (NULL == aResult) { + return NS_ERROR_NULL_POINTER; + } - // Always NULL result, in case of failure - *aResult = NULL; + *aResult = NULL; - if (aIID.Equals(kISupportsIID)) { - *aResult = (void *)(nsISupports*)this; - } else if (aIID.Equals(kIFactoryIID)) { - *aResult = (void *)(nsIFactory*)this; - } + if (aIID.Equals(kISupportsIID)) { + *aResult = (void *)(nsISupports *)this; + } else if (aIID.Equals(kIFactoryIID)) { + *aResult = (void *)(nsIFactory *)this; + } - if (*aResult == NULL) { - return NS_NOINTERFACE; - } + if (*aResult == NULL) { + return NS_NOINTERFACE; + } - NS_ADDREF_THIS(); // Increase reference count for caller - return NS_OK; + NS_ADDREF_THIS(); + return NS_OK; } +NS_IMPL_ADDREF(nsWidgetFactory) +NS_IMPL_RELEASE(nsWidgetFactory) -nsresult nsWidgetFactory::CreateInstance( nsISupports* aOuter, +nsresult nsWidgetFactory::CreateInstance(nsISupports *aOuter, const nsIID &aIID, void **aResult) { if (aResult == NULL) { return NS_ERROR_NULL_POINTER; } - *aResult = NULL; - if (nsnull != aOuter) { - return NS_ERROR_NO_AGGREGATION; - } + *aResult = NULL; + + if (nsnull != aOuter) + return NS_ERROR_NO_AGGREGATION; + nsISupports *inst = nsnull; - if (mClassID.Equals(kCWindow) || - mClassID.Equals(kCChild)) { - inst = (nsISupports*)new nsWindow(); + if (mClassID.Equals(kCWindow)) { + inst = (nsISupports *)new nsWindow(); + } + else if (mClassID.Equals(kCChild)) { + inst = (nsISupports *)new ChildWindow(); } else if (mClassID.Equals(kCButton)) { - inst = (nsISupports*)(nsWindow*)new nsButton(); + inst = (nsISupports*)(nsWindow *)new nsButton(); } else if (mClassID.Equals(kCCheckButton)) { - inst = (nsISupports*)(nsWindow*)new nsCheckButton(); + inst = (nsISupports*)(nsWindow *)new nsCheckButton(); } else if (mClassID.Equals(kCCombobox)) { - inst = (nsISupports*)(nsWindow*)new nsComboBox(); + inst = (nsISupports*)(nsWindow *)new nsComboBox(); } else if (mClassID.Equals(kCRadioButton)) { - inst = (nsISupports*)(nsWindow*)new nsRadioButton(); + inst = (nsISupports*)(nsWindow *)new nsRadioButton(); } else if (mClassID.Equals(kCFileOpen)) { inst = (nsISupports*)new nsFileWidget(); } else if (mClassID.Equals(kCListbox)) { - inst = (nsISupports*)(nsWindow*)new nsListBox(); + inst = (nsISupports*)(nsWindow *)new nsListBox(); } else if (mClassID.Equals(kCHorzScrollbar)) { - inst = (nsISupports*)(nsWindow*)new nsScrollbar(PR_FALSE); + inst = (nsISupports*)(nsWindow *)new nsScrollbar(PR_FALSE); } else if (mClassID.Equals(kCVertScrollbar)) { - inst = (nsISupports*)(nsWindow*)new nsScrollbar(PR_TRUE); + inst = (nsISupports*)(nsWindow *)new nsScrollbar(PR_TRUE); } else if (mClassID.Equals(kCTextArea)) { - inst = (nsISupports*)(nsWindow*)new nsTextAreaWidget(); + inst = (nsISupports*)(nsWindow *)new nsTextAreaWidget(); } else if (mClassID.Equals(kCTextField)) { - inst = (nsISupports*)(nsWindow*)new nsTextWidget(); + inst = (nsISupports*)(nsWindow *)new nsTextWidget(); } else if (mClassID.Equals(kCTabWidget)) { - inst = (nsISupports*)(nsWindow*)new nsTabWidget(); + inst = (nsISupports*)(nsWindow *)new nsTabWidget(); } else if (mClassID.Equals(kCTooltipWidget)) { - inst = (nsISupports*)(nsWindow*)new nsTooltipWidget(); + inst = (nsISupports*)(nsWindow *)new nsTooltipWidget(); } else if (mClassID.Equals(kCAppShell)) { inst = (nsISupports*)new nsAppShell(); @@ -197,31 +215,44 @@ nsresult nsWidgetFactory::CreateInstance( nsISupports* aOuter, else if (mClassID.Equals(kCLookAndFeel)) { inst = (nsISupports*)new nsLookAndFeel(); } - else if (mClassID.Equals(kCDialog)) { - inst = (nsISupports*)(nsWindow*)new nsDialog(); - } else if (mClassID.Equals(kCLabel)) { - inst = (nsISupports*)(nsWindow*)new nsLabel(); + inst = (nsISupports*)(nsWindow *)new nsLabel(); } else if (mClassID.Equals(kCMenuBar)) { - inst = (nsISupports*)(nsIMenuBar*) new nsMenuBar(); + inst = (nsISupports*)(nsIMenuBar *)new nsMenuBar(); } else if (mClassID.Equals(kCMenu)) { - inst = (nsISupports*)(nsIMenu*) new nsMenu(); + inst = (nsISupports*)(nsIMenu *)new nsMenu(); } else if (mClassID.Equals(kCMenuItem)) { - inst = (nsISupports*)(nsIMenuItem*) new nsMenuItem(); - } - else if (mClassID.Equals(kCImageButton)) { - inst = (nsISupports*)(nsWindow*)new nsImageButton(); - } - else if (mClassID.Equals(kCMenuButton)) { - inst = (nsISupports*)(nsWindow*)new nsMenuButton(); + inst = (nsISupports*)(nsIMenuItem *)new nsMenuItem(); } else if (mClassID.Equals(kCPopUpMenu)) { inst = (nsISupports*)new nsPopUpMenu(); } - /* */ + else if (mClassID.Equals(kCSound)) { + nsISound* aSound = nsnull; + NS_NewSound(&aSound); + inst = (nsISupports*) aSound; + } + else if (mClassID.Equals(kCTransferable)) { + inst = (nsISupports*)new nsTransferable(); + } + else if (mClassID.Equals(kCClipboard)) { + inst = (nsISupports*)new nsClipboard(); + } + else if (mClassID.Equals(kCXIFFormatConverter)) { + inst = (nsISupports*)new nsXIFFormatConverter(); + } + else if (mClassID.Equals(kCFontRetrieverService)) { + inst = (nsISupports*)(nsIFontRetrieverService *) new nsFontRetrieverService(); + } + else if (mClassID.Equals(kCDragService)) { + inst = (nsISupports*) (nsIDragService *) new nsDragService(); + } + else { + printf("nsWidgetFactory::CreateInstance(), unhandled class.\n"); + } if (inst == NULL) { return NS_ERROR_OUT_OF_MEMORY; @@ -234,7 +265,8 @@ nsresult nsWidgetFactory::CreateInstance( nsISupports* aOuter, delete inst; } - return res; + return res; + } nsresult nsWidgetFactory::LockFactory(PRBool aLock) @@ -251,17 +283,17 @@ NSGetFactory(nsISupports* serviceMgr, const char *aProgID, nsIFactory **aFactory) { - if (nsnull == aFactory) { - return NS_ERROR_NULL_POINTER; - } + if (nsnull == aFactory) { + return NS_ERROR_NULL_POINTER; + } - *aFactory = new nsWidgetFactory(aClass); + *aFactory = new nsWidgetFactory(aClass); - if (nsnull == aFactory) { - return NS_ERROR_OUT_OF_MEMORY; - } + if (nsnull == aFactory) { + return NS_ERROR_OUT_OF_MEMORY; + } - return (*aFactory)->QueryInterface(kIFactoryIID, (void**)aFactory); + return (*aFactory)->QueryInterface(kIFactoryIID, (void**)aFactory); } diff --git a/mozilla/widget/src/build/Makefile.in b/mozilla/widget/src/build/Makefile.in index 49e39ab8f68..2fea617a9ac 100644 --- a/mozilla/widget/src/build/Makefile.in +++ b/mozilla/widget/src/build/Makefile.in @@ -34,22 +34,7 @@ LOCAL_INCLUDES := \ -I$(srcdir)/. \ $(NULL) -CPPSRCS_gtk := \ - nsGTKWidgetFactory.cpp - -CPPSRCS_photon := \ - nsPhWidgetFactory.cpp - -# nsMotifWidgetFactory actually has no Motif/Xt/Xlib code in it -- surprise! - -CPPSRCS_motif := \ - nsMotifWidgetFactory.cpp - -CPPSRCS_beos := \ - nsBeOSWidgetFactory.cpp - CPPSRCS := \ - $(CPPSRCS_$(MOZ_WIDGET_TOOLKIT)) \ nsWidgetSupport.cpp \ $(NULL) diff --git a/mozilla/widget/src/build/nsBeOSWidgetFactory.cpp b/mozilla/widget/src/build/nsBeOSWidgetFactory.cpp deleted file mode 100644 index 4c564cd2119..00000000000 --- a/mozilla/widget/src/build/nsBeOSWidgetFactory.cpp +++ /dev/null @@ -1,299 +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.0 (the "NPL"); you may not use this file except in - * compliance with the NPL. You may obtain a copy of the NPL at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the NPL is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL - * for the specific language governing rights and limitations under the - * NPL. - * - * The Initial Developer of this code under the NPL is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All Rights - * Reserved. - */ - -#include "nsIFactory.h" -#include "nsISupports.h" -#include "nsIButton.h" -#include "nsITextWidget.h" -#include "nsWidgetsCID.h" - -#include "nsToolkit.h" -#include "nsWindow.h" -#include "nsAppShell.h" -#include "nsButton.h" -#include "nsScrollbar.h" -#include "nsCheckButton.h" -#include "nsRadioButton.h" -#include "nsTextWidget.h" -#include "nsTextAreaWidget.h" -#include "nsFileWidget.h" -#include "nsListBox.h" -#include "nsComboBox.h" -#include "nsLookAndFeel.h" -#include "nsLabel.h" -#include "nsMenuBar.h" -#include "nsMenu.h" -#include "nsMenuItem.h" -#include "nsPopUpMenu.h" -#include "nsTabWidget.h" -#include "nsTooltipWidget.h" -#include "nsFontRetrieverService.h" - -// Drag & Drop, Clipboard -#include "nsClipboard.h" -#include "nsTransferable.h" -#include "nsXIFFormatConverter.h" -#include "nsDragService.h" - -#include "nsISound.h" - -static NS_DEFINE_IID(kCWindow, NS_WINDOW_CID); -static NS_DEFINE_IID(kCChild, NS_CHILD_CID); -static NS_DEFINE_IID(kCButton, NS_BUTTON_CID); -static NS_DEFINE_IID(kCCheckButton, NS_CHECKBUTTON_CID); -static NS_DEFINE_IID(kCCombobox, NS_COMBOBOX_CID); -static NS_DEFINE_IID(kCFileOpen, NS_FILEWIDGET_CID); -static NS_DEFINE_IID(kCListbox, NS_LISTBOX_CID); -static NS_DEFINE_IID(kCRadioButton, NS_RADIOBUTTON_CID); -static NS_DEFINE_IID(kCHorzScrollbar, NS_HORZSCROLLBAR_CID); -static NS_DEFINE_IID(kCVertScrollbar, NS_VERTSCROLLBAR_CID); -static NS_DEFINE_IID(kCTextArea, NS_TEXTAREA_CID); -static NS_DEFINE_IID(kCTextField, NS_TEXTFIELD_CID); -static NS_DEFINE_IID(kCTabWidget, NS_TABWIDGET_CID); -static NS_DEFINE_IID(kCTooltipWidget, NS_TOOLTIPWIDGET_CID); -static NS_DEFINE_IID(kCAppShell, NS_APPSHELL_CID); -static NS_DEFINE_IID(kCToolkit, NS_TOOLKIT_CID); -static NS_DEFINE_IID(kCLookAndFeel, NS_LOOKANDFEEL_CID); -static NS_DEFINE_IID(kCLabel, NS_LABEL_CID); -static NS_DEFINE_IID(kCMenuBar, NS_MENUBAR_CID); -static NS_DEFINE_IID(kCMenu, NS_MENU_CID); -static NS_DEFINE_IID(kCMenuItem, NS_MENUITEM_CID); -static NS_DEFINE_IID(kCPopUpMenu, NS_POPUPMENU_CID); -static NS_DEFINE_IID(kCFontRetrieverService, NS_FONTRETRIEVERSERVICE_CID); - -// Drag & Drop, Clipboard -static NS_DEFINE_IID(kCDataObj, NS_DATAOBJ_CID); -static NS_DEFINE_IID(kCClipboard, NS_CLIPBOARD_CID); -static NS_DEFINE_IID(kCTransferable, NS_TRANSFERABLE_CID); -static NS_DEFINE_IID(kCDataFlavor, NS_DATAFLAVOR_CID); -static NS_DEFINE_IID(kCXIFFormatConverter, NS_XIFFORMATCONVERTER_CID); -static NS_DEFINE_IID(kCDragService, NS_DRAGSERVICE_CID); - -static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); -static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID); - -// Sound services (just Beep for now) -static NS_DEFINE_CID(kCSound, NS_SOUND_CID); - - -class nsWidgetFactory : public nsIFactory -{ -public: - - NS_DECL_ISUPPORTS - - // nsIFactory methods - NS_IMETHOD CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult); - - NS_IMETHOD LockFactory(PRBool aLock); - - nsWidgetFactory(const nsCID &aClass); - virtual ~nsWidgetFactory(); -private: - nsCID mClassID; - -}; - - - -nsWidgetFactory::nsWidgetFactory(const nsCID &aClass) -{ - NS_INIT_REFCNT(); - mClassID = aClass; -} - -nsWidgetFactory::~nsWidgetFactory() -{ - NS_ASSERTION(mRefCnt == 0, "Reference count not zero in destructor"); -} - -nsresult nsWidgetFactory::QueryInterface(const nsIID &aIID, - void **aResult) -{ - if (NULL == aResult) { - return NS_ERROR_NULL_POINTER; - } - - *aResult = NULL; - - if (aIID.Equals(kISupportsIID)) { - *aResult = (void *)(nsISupports *)this; - } else if (aIID.Equals(kIFactoryIID)) { - *aResult = (void *)(nsIFactory *)this; - } - - if (*aResult == NULL) { - return NS_NOINTERFACE; - } - - NS_ADDREF_THIS(); - return NS_OK; -} - -NS_IMPL_ADDREF(nsWidgetFactory) -NS_IMPL_RELEASE(nsWidgetFactory) - -nsresult nsWidgetFactory::CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult) -{ - if (aResult == NULL) { - return NS_ERROR_NULL_POINTER; - } - - *aResult = NULL; - - if (nsnull != aOuter) - return NS_ERROR_NO_AGGREGATION; - - nsISupports *inst = nsnull; - if (mClassID.Equals(kCWindow)) { - inst = (nsISupports *)new nsWindow(); - } - else if (mClassID.Equals(kCChild)) { - inst = (nsISupports *)new ChildWindow(); - } - else if (mClassID.Equals(kCButton)) { - inst = (nsISupports*)(nsWindow *)new nsButton(); - } - else if (mClassID.Equals(kCCheckButton)) { - inst = (nsISupports*)(nsWindow *)new nsCheckButton(); - } - else if (mClassID.Equals(kCCombobox)) { - inst = (nsISupports*)(nsWindow *)new nsComboBox(); - } - else if (mClassID.Equals(kCRadioButton)) { - inst = (nsISupports*)(nsWindow *)new nsRadioButton(); - } - else if (mClassID.Equals(kCFileOpen)) { - inst = (nsISupports*)new nsFileWidget(); - } - else if (mClassID.Equals(kCListbox)) { - inst = (nsISupports*)(nsWindow *)new nsListBox(); - } - else if (mClassID.Equals(kCHorzScrollbar)) { - inst = (nsISupports*)(nsWindow *)new nsScrollbar(PR_FALSE); - } - else if (mClassID.Equals(kCVertScrollbar)) { - inst = (nsISupports*)(nsWindow *)new nsScrollbar(PR_TRUE); - } - else if (mClassID.Equals(kCTextArea)) { - inst = (nsISupports*)(nsWindow *)new nsTextAreaWidget(); - } - else if (mClassID.Equals(kCTextField)) { - inst = (nsISupports*)(nsWindow *)new nsTextWidget(); - } - else if (mClassID.Equals(kCTabWidget)) { - inst = (nsISupports*)(nsWindow *)new nsTabWidget(); - } - else if (mClassID.Equals(kCTooltipWidget)) { - inst = (nsISupports*)(nsWindow *)new nsTooltipWidget(); - } - else if (mClassID.Equals(kCAppShell)) { - inst = (nsISupports*)new nsAppShell(); - } - else if (mClassID.Equals(kCToolkit)) { - inst = (nsISupports*)new nsToolkit(); - } - else if (mClassID.Equals(kCLookAndFeel)) { - inst = (nsISupports*)new nsLookAndFeel(); - } - else if (mClassID.Equals(kCLabel)) { - inst = (nsISupports*)(nsWindow *)new nsLabel(); - } - else if (mClassID.Equals(kCMenuBar)) { - inst = (nsISupports*)(nsIMenuBar *)new nsMenuBar(); - } - else if (mClassID.Equals(kCMenu)) { - inst = (nsISupports*)(nsIMenu *)new nsMenu(); - } - else if (mClassID.Equals(kCMenuItem)) { - inst = (nsISupports*)(nsIMenuItem *)new nsMenuItem(); - } - else if (mClassID.Equals(kCPopUpMenu)) { - inst = (nsISupports*)new nsPopUpMenu(); - } - else if (mClassID.Equals(kCSound)) { - nsISound* aSound = nsnull; - NS_NewSound(&aSound); - inst = (nsISupports*) aSound; - } - else if (mClassID.Equals(kCTransferable)) { - inst = (nsISupports*)new nsTransferable(); - } - else if (mClassID.Equals(kCClipboard)) { - inst = (nsISupports*)new nsClipboard(); - } - else if (mClassID.Equals(kCXIFFormatConverter)) { - inst = (nsISupports*)new nsXIFFormatConverter(); - } - else if (mClassID.Equals(kCFontRetrieverService)) { - inst = (nsISupports*)(nsIFontRetrieverService *) new nsFontRetrieverService(); - } - else if (mClassID.Equals(kCDragService)) { - inst = (nsISupports*) (nsIDragService *) new nsDragService(); - } - else { - printf("nsWidgetFactory::CreateInstance(), unhandled class.\n"); - } - - if (inst == NULL) { - return NS_ERROR_OUT_OF_MEMORY; - } - - nsresult res = inst->QueryInterface(aIID, aResult); - - if (res != NS_OK) { - // We didn't get the right interface, so clean up - delete inst; - } - - return res; - -} - -nsresult nsWidgetFactory::LockFactory(PRBool aLock) -{ - // Not implemented in simplest case. - return NS_OK; -} - -// return the proper factory to the caller -extern "C" NS_WIDGET nsresult -NSGetFactory(nsISupports* serviceMgr, - const nsCID &aClass, - const char *aClassName, - const char *aProgID, - nsIFactory **aFactory) -{ - if (nsnull == aFactory) { - return NS_ERROR_NULL_POINTER; - } - - *aFactory = new nsWidgetFactory(aClass); - - if (nsnull == aFactory) { - return NS_ERROR_OUT_OF_MEMORY; - } - - return (*aFactory)->QueryInterface(kIFactoryIID, (void**)aFactory); -} - - diff --git a/mozilla/widget/src/build/nsPhWidgetFactory.cpp b/mozilla/widget/src/build/nsPhWidgetFactory.cpp deleted file mode 100644 index a23b8be91f9..00000000000 --- a/mozilla/widget/src/build/nsPhWidgetFactory.cpp +++ /dev/null @@ -1,344 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * - * The contents of this file are subject to the Netscape Public License - * Version 1.0 (the "NPL"); you may not use this file except in - * compliance with the NPL. You may obtain a copy of the NPL at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the NPL is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL - * for the specific language governing rights and limitations under the - * NPL. - * - * The Initial Developer of this code under the NPL is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All Rights - * Reserved. - */ - -/* Interface Headers */ -#include "nsIFactory.h" -#include "nsISupports.h" -#include "nsIButton.h" -#include "nsILabel.h" -#include "nsICheckButton.h" -#include "nsIRadioButton.h" -#include "nsITextWidget.h" -#include "nsITextAreaWidget.h" -#include "nsIListBox.h" -#include "nsIFileWidget.h" -#include "nsFileSpecWithUIImpl.h" -#include "nsIComboBox.h" -#include "nsISound.h" - -#include "nsWidgetsCID.h" - -/* Implmentation Headers */ -#include "nsToolkit.h" -#include "nsWindow.h" -#include "nsAppShell.h" -#include "nsLookAndFeel.h" -#include "nsButton.h" -#include "nsCheckButton.h" -#include "nsRadioButton.h" -#include "nsMenuBar.h" -#include "nsMenu.h" -#include "nsMenuItem.h" -#include "nsTextWidget.h" -#include "nsTextAreaWidget.h" -#include "nsScrollbar.h" -#include "nsListBox.h" -#include "nsFileWidget.h" -#include "nsComboBox.h" -#include "nsLabel.h" -#include "nsClipboard.h" -#include "nsTransferable.h" -#include "nsXIFFormatConverter.h" - -#include "nsPhWidgetLog.h" - -static NS_DEFINE_IID(kCWindow, NS_WINDOW_CID); -static NS_DEFINE_IID(kCChild, NS_CHILD_CID); -static NS_DEFINE_IID(kCButton, NS_BUTTON_CID); -static NS_DEFINE_IID(kCCheckButton, NS_CHECKBUTTON_CID); -static NS_DEFINE_IID(kCCombobox, NS_COMBOBOX_CID); -static NS_DEFINE_IID(kCFileOpen, NS_FILEWIDGET_CID); -static NS_DEFINE_IID(kCListbox, NS_LISTBOX_CID); -static NS_DEFINE_IID(kCRadioButton, NS_RADIOBUTTON_CID); -static NS_DEFINE_IID(kCHorzScrollbar, NS_HORZSCROLLBAR_CID); -static NS_DEFINE_IID(kCVertScrollbar, NS_VERTSCROLLBAR_CID); -static NS_DEFINE_IID(kCTextArea, NS_TEXTAREA_CID); -static NS_DEFINE_IID(kCTextField, NS_TEXTFIELD_CID); -static NS_DEFINE_IID(kCTabWidget, NS_TABWIDGET_CID); -static NS_DEFINE_IID(kCTooltipWidget, NS_TOOLTIPWIDGET_CID); -static NS_DEFINE_IID(kCAppShell, NS_APPSHELL_CID); -static NS_DEFINE_IID(kCToolkit, NS_TOOLKIT_CID); -static NS_DEFINE_IID(kCLookAndFeel, NS_LOOKANDFEEL_CID); -static NS_DEFINE_IID(kCLabel, NS_LABEL_CID); -static NS_DEFINE_IID(kCMenuBar, NS_MENUBAR_CID); -static NS_DEFINE_IID(kCMenu, NS_MENU_CID); -static NS_DEFINE_IID(kCMenuItem, NS_MENUITEM_CID); -static NS_DEFINE_IID(kCImageButton, NS_IMAGEBUTTON_CID); -static NS_DEFINE_IID(kCPopUpMenu, NS_POPUPMENU_CID); -static NS_DEFINE_IID(kCMenuButton, NS_MENUBUTTON_CID); - -// Drag & Drop, Clipboard -static NS_DEFINE_IID(kCDataObj, NS_DATAOBJ_CID); -static NS_DEFINE_IID(kCClipboard, NS_CLIPBOARD_CID); -static NS_DEFINE_IID(kCTransferable, NS_TRANSFERABLE_CID); -static NS_DEFINE_IID(kCXIFFormatConverter, NS_XIFFORMATCONVERTER_CID); -//static NS_DEFINE_IID(kCDragService, NS_DRAGSERVICE_CID); -//static NS_DEFINE_IID(kCFileListTransferable, NS_FILELISTTRANSFERABLE_CID); - -static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); -static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID); -static NS_DEFINE_CID(kCSound, NS_SOUND_CID); - -static NS_DEFINE_CID(kCFileSpecWithUI, NS_FILESPECWITHUI_CID); - - -class nsWidgetFactory : public nsIFactory -{ -public: - // nsISupports methods - NS_DECL_ISUPPORTS - - // nsIFactory methods - NS_IMETHOD CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult); - - NS_IMETHOD LockFactory(PRBool aLock); - - nsWidgetFactory(const nsCID &aClass); - ~nsWidgetFactory(); - -private: - nsCID mClassID; -}; - -NS_IMPL_ADDREF(nsWidgetFactory) -NS_IMPL_RELEASE(nsWidgetFactory) - - -nsWidgetFactory::nsWidgetFactory(const nsCID &aClass) -{ - NS_INIT_REFCNT(); - mClassID = aClass; - PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::nsWidgetFactory Constructor Called\n")); - -} - -nsWidgetFactory::~nsWidgetFactory() -{ - PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::~nsWidgetFactory Destructor Called\n")); - - NS_ASSERTION(mRefCnt == 0, "Reference count not zero in destructor"); -} - -nsresult nsWidgetFactory::QueryInterface(const nsIID &aIID, - void **aResult) -{ - PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::QueryInterface mRefCnt=<%d>\n", mRefCnt)); - - if (NULL == aResult) { - return NS_ERROR_NULL_POINTER; - } - - *aResult = NULL; - - if (aIID.Equals(kISupportsIID)) { - *aResult = (void *)(nsISupports *)this; - } else if (aIID.Equals(kIFactoryIID)) { - *aResult = (void *)(nsIFactory *)this; - } - - if (*aResult == NULL) { - return NS_NOINTERFACE; - } - - NS_ADDREF_THIS(); - return NS_OK; -} - - -nsresult nsWidgetFactory::CreateInstance( nsISupports *aOuter, - const nsIID &aIID, - void **aResult) -{ -PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::CreateInstance 1 mRefCnt=<%d>\n", mRefCnt)); - - if (aResult == NULL) { - return NS_ERROR_NULL_POINTER; - } - - *aResult = NULL; - - if (nsnull != aOuter) - return NS_ERROR_NO_AGGREGATION; - - nsISupports *inst = nsnull; - if (mClassID.Equals(kCWindow)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::CreateInstance of nsWindow\n")); - inst = (nsISupports *)new nsWindow(); - } - else if (mClassID.Equals(kCChild)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::CreateInstance of nsChildWindow\n")); - inst = (nsISupports *)new ChildWindow(); - } - else if (mClassID.Equals(kCButton)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsButton\n" )); - inst = (nsISupports *)(nsWidget *)new nsButton(); - } - else if (mClassID.Equals(kCTextField)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::CreateInstance of TextField\n")); - inst = (nsISupports *) (nsWidget *) new nsTextWidget(); - } - else if (mClassID.Equals(kCHorzScrollbar)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of HorzScrollBar\n" )); - inst = (nsISupports *) (nsWidget *) new nsScrollbar( PR_FALSE ); - } - else if (mClassID.Equals(kCVertScrollbar)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of VertScrollBar\n" )); - inst = (nsISupports *) (nsWidget *) new nsScrollbar( PR_TRUE ); - } - else if (mClassID.Equals(kCCheckButton)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsCheckButton\n" )); - inst = (nsISupports *)(nsWidget *)new nsCheckButton(); - } - else if (mClassID.Equals(kCRadioButton)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsRadioButton\n" )); - inst = (nsISupports *)(nsWidget *)new nsRadioButton(); - } - else if (mClassID.Equals(kCTextArea)) { - inst = (nsISupports *) (nsWidget *) new nsTextAreaWidget(); - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of TextArea\n" )); - } - else if (mClassID.Equals(kCListbox)) { - inst = (nsISupports *) (nsWidget *) new nsListBox(); - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsListBox\n" )); - } - else if (mClassID.Equals(kCFileOpen)) { - inst = (nsISupports *) new nsFileWidget(); - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsFileWidget\n" )); - } - else if (mClassID.Equals(kCCombobox)) { - inst = (nsISupports *) (nsWidget *) new nsComboBox(); - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsComboBox\n" )); - } - else if (mClassID.Equals(kCSound)) { - nsISound* aSound = nsnull; - NS_NewSound(&aSound); - inst = (nsISupports*) aSound; - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsSound\n" )); - - } - -#if 1 -/* Widget we don't support */ - else if (mClassID.Equals(kCTabWidget)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of TabWidget\n" )); - } - else if (mClassID.Equals(kCTooltipWidget)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of ToolTip\n" )); - } - else if (mClassID.Equals(kCPopUpMenu)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of PopUpMenu\n" )); - } -#endif - - else if (mClassID.Equals(kCAppShell)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsAppShell\n" )); - inst = (nsISupports*)new nsAppShell(); - } - else if (mClassID.Equals(kCToolkit)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsToolkit\n" )); - inst = (nsISupports*)new nsToolkit(); - } - else if (mClassID.Equals(kCLookAndFeel)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsLookAndFeel\n" )); - inst = (nsISupports*)new nsLookAndFeel(); - } - else if (mClassID.Equals(kCMenuBar)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsMenuBar\n" )); - inst = (nsISupports*)(nsIMenuBar *)new nsMenuBar(); - } - else if (mClassID.Equals(kCMenu)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsMenu\n" )); - inst = (nsISupports*)(nsIMenu *)new nsMenu(); - } - else if (mClassID.Equals(kCMenuItem)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsMenuItem\n" )); - inst = (nsISupports*)(nsIMenuItem *)new nsMenuItem(); - } - else if (mClassID.Equals(kCLabel)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsLabel\n" )); - inst = (nsISupports*)(nsILabel *)new nsLabel(); - } - else if (mClassID.Equals(kCClipboard)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::CreateInstance of nsClipboard\n")); - inst = (nsISupports*)(nsBaseClipboard *)new nsClipboard(); - } - else if (mClassID.Equals(kCXIFFormatConverter)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsXIFFormatConverter\n" )); - inst = (nsISupports*)new nsXIFFormatConverter(); - } - else if (mClassID.Equals(kCFileSpecWithUI)) - { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsFileSpecWithUIImpl\n" )); - inst = (nsISupports*) (nsIFileSpecWithUI *) new nsFileSpecWithUIImpl; - } - else if (mClassID.Equals(kCTransferable)) { - PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsTransferable\n" )); - inst = (nsISupports*)new nsTransferable(); - } - - if (inst == NULL) { - PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::CreateInstance Failed to create widget.\n" )); - return NS_ERROR_OUT_OF_MEMORY; - } - -PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::CreateInstance 2 mRefCnt=<%d>\n", mRefCnt)); - - nsresult res = inst->QueryInterface(aIID, aResult); - - if (res != NS_OK) { - PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::CreateInstance query interface barfed.\n" )); - // We didn't get the right interface, so clean up - delete inst; - } - - return res; - -} - -nsresult nsWidgetFactory::LockFactory(PRBool aLock) -{ - PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::Lock Factory mRefCnt=<%d> - Not Implemented\n", mRefCnt)); - - // Not implemented in simplest case. - return NS_OK; -} - -// return the proper factory to the caller -extern "C" NS_WIDGET nsresult -NSGetFactory(nsISupports* serviceMgr, - const nsCID &aClass, - const char *aClassName, - const char *aProgID, - nsIFactory **aFactory) -{ - if (nsnull == aFactory) { - return NS_ERROR_NULL_POINTER; - } - - *aFactory = new nsWidgetFactory(aClass); - - if (nsnull == aFactory) { - return NS_ERROR_OUT_OF_MEMORY; - } - - return (*aFactory)->QueryInterface(kIFactoryIID, (void**)aFactory); -} - - diff --git a/mozilla/widget/src/gtk/Makefile.in b/mozilla/widget/src/gtk/Makefile.in index ac0fb9c45f9..11b7f9d26ce 100644 --- a/mozilla/widget/src/gtk/Makefile.in +++ b/mozilla/widget/src/gtk/Makefile.in @@ -38,33 +38,34 @@ INCLUDES+= -I$(srcdir)/../xpwidgets -I$(srcdir)/../gtk -I$(srcdir)/. INCLUDES += $(TK_CFLAGS) CPPSRCS= \ - nsFontRetrieverService.cpp \ - nsFontSizeIterator.cpp \ nsAppShell.cpp \ + nsButton.cpp \ + nsCheckButton.cpp \ nsClipboard.cpp \ nsComboBox.cpp \ nsDragService.cpp \ + nsFileWidget.cpp \ + nsFontRetrieverService.cpp \ + nsFontSizeIterator.cpp \ + nsGtkEventHandler.cpp \ nsLabel.cpp \ - nsScrollbar.cpp \ - nsButton.cpp \ nsListBox.cpp \ nsLookAndFeel.cpp \ - nsTextAreaWidget.cpp \ - nsCheckButton.cpp \ nsMenu.cpp \ - nsTextHelper.cpp \ nsMenuBar.cpp \ - nsTextWidget.cpp \ - nsFileWidget.cpp \ nsMenuItem.cpp \ - nsTabWidget.cpp \ - nsToolkit.cpp \ - nsGtkEventHandler.cpp \ - nsRadioButton.cpp \ nsPopUpMenu.cpp \ - nsWidget.cpp \ - nsWindow.cpp \ + nsRadioButton.cpp \ + nsScrollbar.cpp \ nsSound.cpp \ + nsTabWidget.cpp \ + nsTextAreaWidget.cpp \ + nsTextHelper.cpp \ + nsTextWidget.cpp \ + nsToolkit.cpp \ + nsWidget.cpp \ + nsWidgetFactory.cpp \ + nsWindow.cpp \ $(NULL) TARGETS = $(LIBRARY) diff --git a/mozilla/widget/src/build/nsGTKWidgetFactory.cpp b/mozilla/widget/src/gtk/nsWidgetFactory.cpp similarity index 100% rename from mozilla/widget/src/build/nsGTKWidgetFactory.cpp rename to mozilla/widget/src/gtk/nsWidgetFactory.cpp diff --git a/mozilla/widget/src/motif/Makefile.in b/mozilla/widget/src/motif/Makefile.in index 58dddcda51f..3da8d10fe6b 100644 --- a/mozilla/widget/src/motif/Makefile.in +++ b/mozilla/widget/src/motif/Makefile.in @@ -38,51 +38,30 @@ INCLUDES+= -I$(srcdir)/../xpwidgets -I$(srcdir)/../motif -I$(srcdir)/. INCLUDES += $(TK_CFLAGS) CPPSRCS= \ - nsMenuBar.cpp \ + nsAppShell.cpp \ + nsButton.cpp \ + nsCheckButton.cpp \ + nsComboBox.cpp \ + nsFileWidget.cpp \ + nsLabel.cpp \ + nsListBox.cpp \ + nsLookAndFeel.cpp \ nsMenu.cpp \ + nsMenuBar.cpp \ nsMenuItem.cpp \ nsPopUpMenu.cpp \ - nsComboBox.cpp \ - nsTextHelper.cpp \ - nsTextAreaWidget.cpp \ - nsTextWidget.cpp \ - nsListBox.cpp \ nsRadioButton.cpp \ - nsFileWidget.cpp \ - nsCheckButton.cpp \ nsScrollbar.cpp \ - nsButton.cpp \ - nsAppShell.cpp \ - nsLookAndFeel.cpp \ + nsTextAreaWidget.cpp \ + nsTextHelper.cpp \ + nsTextWidget.cpp \ nsToolkit.cpp \ - nsLabel.cpp \ + nsWidgetFactory.cpp \ nsWindow.cpp \ nsXtEventHandler.cpp \ nsXtManageWidget.cpp \ $(NULL) -CPP_OBJS= \ - ./$(OBJDIR)/nsPopUpMenu.o \ - ./$(OBJDIR)/nsComboBox.o \ - ./$(OBJDIR)/nsFileWidget.o \ - ./$(OBJDIR)/nsTextHelper.o \ - ./$(OBJDIR)/nsTextAreaWidget.o \ - ./$(OBJDIR)/nsTextWidget.o \ - ./$(OBJDIR)/nsListBox.o \ - ./$(OBJDIR)/nsRadioButton.o \ - ./$(OBJDIR)/nsFileWidget.o \ - ./$(OBJDIR)/nsCheckButton.o \ - ./$(OBJDIR)/nsScrollbar.o \ - ./$(OBJDIR)/nsButton.o \ - ./$(OBJDIR)/nsScrollbar.o \ - ./$(OBJDIR)/nsAppShell.o \ - ./$(OBJDIR)/nsLookAndFeel.o \ - ./$(OBJDIR)/nsToolkit.o \ - ./$(OBJDIR)/nsLabel.o \ - ./$(OBJDIR)/nsWindow.o \ - ./$(OBJDIR)/nsXtEventHandler.o \ - $(NULL) - TARGETS = $(LIBRARY) MKSHLIB := diff --git a/mozilla/widget/src/build/nsMotifWidgetFactory.cpp b/mozilla/widget/src/motif/nsWidgetFactory.cpp similarity index 100% rename from mozilla/widget/src/build/nsMotifWidgetFactory.cpp rename to mozilla/widget/src/motif/nsWidgetFactory.cpp diff --git a/mozilla/widget/src/os2/Makefile.in b/mozilla/widget/src/os2/Makefile.in index 6cc18085564..2700d68d2cb 100644 --- a/mozilla/widget/src/os2/Makefile.in +++ b/mozilla/widget/src/os2/Makefile.in @@ -43,38 +43,40 @@ DIRS += tests endif CPPSRCS = \ - nsToolkit.cpp \ nsAppShell.cpp \ - nsLookAndFeel.cpp \ - nsWindow.cpp \ - nsCanvas.cpp \ - nsFrameWindow.cpp \ - nsScrollbar.cpp \ - nsEntryField.cpp \ - nsTextArea.cpp \ nsBaseList.cpp \ + nsCanvas.cpp \ + nsCheckbutton.cpp \ + nsClipboard.cpp \ nsCombobox.cpp \ - nsListbox.cpp \ - nsTooltipWidget.cpp \ + nsContextMenu.cpp \ + nsDirPicker.cpp \ + nsDragService.cpp \ + nsEntryField.cpp \ + nsFSTree.cpp \ nsFileDialog.cpp \ - nsTooltipManager.cpp \ + nsFontServices.cpp \ + nsFrameWindow.cpp \ nsLabel.cpp \ + nsListbox.cpp \ + nsLookAndFeel.cpp \ + nsMenu.cpp \ + nsMenuBase.cpp \ + nsMenuItem.cpp \ + nsMenubar.cpp \ + nsModule.cpp \ nsPushbutton.cpp \ nsRadiobutton.cpp \ - nsCheckbutton.cpp \ - nsMenuBase.cpp \ - nsMenubar.cpp \ - nsMenu.cpp \ - nsMenuItem.cpp \ + nsScrollbar.cpp \ + nsSound.cpp \ nsTabWidget.cpp \ - nsModule.cpp \ - nsFontServices.cpp \ - nsFSTree.cpp \ - nsDirPicker.cpp \ - nsContextMenu.cpp \ - nsClipboard.cpp \ - nsDragService.cpp \ - nsSound.cpp + nsTextArea.cpp \ + nsToolkit.cpp \ + nsTooltipManager.cpp \ + nsTooltipWidget.cpp \ + nsWidgetFactory.cpp \ + nsWindow.cpp \ + $(NULL) CSRCS = tabctrl.c diff --git a/mozilla/widget/src/photon/Makefile.in b/mozilla/widget/src/photon/Makefile.in index a0b7da500d8..16bf87de6c0 100644 --- a/mozilla/widget/src/photon/Makefile.in +++ b/mozilla/widget/src/photon/Makefile.in @@ -44,26 +44,28 @@ CPPSRCS= \ PtRawDrawContainer.cpp \ nsAppShell.cpp \ nsButton.cpp \ - nsLabel.cpp \ nsCheckButton.cpp \ - nsRadioButton.cpp \ + nsClipboard.cpp \ + nsComboBox.cpp \ + nsFileWidget.cpp \ + nsLabel.cpp \ + nsListBox.cpp \ nsLookAndFeel.cpp \ - nsToolkit.cpp \ + nsMenu.cpp \ nsMenuBar.cpp \ nsMenuItem.cpp \ - nsMenu.cpp \ nsPopUpMenu.cpp \ - nsWidget.cpp \ + nsRadioButton.cpp \ nsScrollbar.cpp \ + nsSound.cpp \ + nsTextAreaWidget.cpp \ nsTextHelper.cpp \ nsTextWidget.cpp \ - nsTextAreaWidget.cpp \ - nsListBox.cpp \ - nsFileWidget.cpp \ - nsComboBox.cpp \ - nsClipboard.cpp \ - nsSound.cpp \ - nsWindow.cpp + nsToolkit.cpp \ + nsWidget.cpp \ + nsWidgetFactory.cpp \ + nsWindow.cpp \ + $(NULL) TARGETS = $(LIBRARY) diff --git a/mozilla/widget/src/photon/nsWidgetFactory.cpp b/mozilla/widget/src/photon/nsWidgetFactory.cpp index acadea9f3d3..a23b8be91f9 100644 --- a/mozilla/widget/src/photon/nsWidgetFactory.cpp +++ b/mozilla/widget/src/photon/nsWidgetFactory.cpp @@ -16,235 +16,308 @@ * Reserved. */ +/* Interface Headers */ #include "nsIFactory.h" #include "nsISupports.h" +#include "nsIButton.h" +#include "nsILabel.h" +#include "nsICheckButton.h" +#include "nsIRadioButton.h" +#include "nsITextWidget.h" +#include "nsITextAreaWidget.h" +#include "nsIListBox.h" +#include "nsIFileWidget.h" +#include "nsFileSpecWithUIImpl.h" +#include "nsIComboBox.h" +#include "nsISound.h" + #include "nsWidgetsCID.h" -//#include "nsButton.h" -//#include "nsCheckButton.h" -//#include "nsComboBox.h" -//#include "nsFileWidget.h" -//#include "nsListBox.h" -#include "nsLookAndFeel.h" -//#include "nsRadioButton.h" -//#include "nsScrollbar.h" -//#include "nsTextAreaWidget.h" -//#include "nsTextHelper.h" -//#include "nsTextWidget.h" +/* Implmentation Headers */ #include "nsToolkit.h" -//#include "nsTabWidget.h" -//#include "nsTooltipWidget.h" #include "nsWindow.h" -//#include "nsLabel.h" -//#include "nsMenuBar.h" -//#include "nsMenu.h" -//#include "nsMenuItem.h" -//#include "nsPopUpMenu.h" -//#include "nsImageButton.h" -//#include "nsMenuButton.h" #include "nsAppShell.h" +#include "nsLookAndFeel.h" +#include "nsButton.h" +#include "nsCheckButton.h" +#include "nsRadioButton.h" +#include "nsMenuBar.h" +#include "nsMenu.h" +#include "nsMenuItem.h" +#include "nsTextWidget.h" +#include "nsTextAreaWidget.h" +#include "nsScrollbar.h" +#include "nsListBox.h" +#include "nsFileWidget.h" +#include "nsComboBox.h" +#include "nsLabel.h" +#include "nsClipboard.h" +#include "nsTransferable.h" +#include "nsXIFFormatConverter.h" +#include "nsPhWidgetLog.h" static NS_DEFINE_IID(kCWindow, NS_WINDOW_CID); static NS_DEFINE_IID(kCChild, NS_CHILD_CID); -//static NS_DEFINE_IID(kCButton, NS_BUTTON_CID); -//static NS_DEFINE_IID(kCCheckButton, NS_CHECKBUTTON_CID); -//static NS_DEFINE_IID(kCCombobox, NS_COMBOBOX_CID); -//static NS_DEFINE_IID(kCFileOpen, NS_FILEWIDGET_CID); -//static NS_DEFINE_IID(kCListbox, NS_LISTBOX_CID); -//static NS_DEFINE_IID(kCRadioButton, NS_RADIOBUTTON_CID); -//static NS_DEFINE_IID(kCHorzScrollbar, NS_HORZSCROLLBAR_CID); -//static NS_DEFINE_IID(kCVertScrollbar, NS_VERTSCROLLBAR_CID); -//static NS_DEFINE_IID(kCTextArea, NS_TEXTAREA_CID); -//static NS_DEFINE_IID(kCTextField, NS_TEXTFIELD_CID); -//static NS_DEFINE_IID(kCTabWidget, NS_TABWIDGET_CID); -//static NS_DEFINE_IID(kCTooltipWidget, NS_TOOLTIPWIDGET_CID); +static NS_DEFINE_IID(kCButton, NS_BUTTON_CID); +static NS_DEFINE_IID(kCCheckButton, NS_CHECKBUTTON_CID); +static NS_DEFINE_IID(kCCombobox, NS_COMBOBOX_CID); +static NS_DEFINE_IID(kCFileOpen, NS_FILEWIDGET_CID); +static NS_DEFINE_IID(kCListbox, NS_LISTBOX_CID); +static NS_DEFINE_IID(kCRadioButton, NS_RADIOBUTTON_CID); +static NS_DEFINE_IID(kCHorzScrollbar, NS_HORZSCROLLBAR_CID); +static NS_DEFINE_IID(kCVertScrollbar, NS_VERTSCROLLBAR_CID); +static NS_DEFINE_IID(kCTextArea, NS_TEXTAREA_CID); +static NS_DEFINE_IID(kCTextField, NS_TEXTFIELD_CID); +static NS_DEFINE_IID(kCTabWidget, NS_TABWIDGET_CID); +static NS_DEFINE_IID(kCTooltipWidget, NS_TOOLTIPWIDGET_CID); static NS_DEFINE_IID(kCAppShell, NS_APPSHELL_CID); static NS_DEFINE_IID(kCToolkit, NS_TOOLKIT_CID); static NS_DEFINE_IID(kCLookAndFeel, NS_LOOKANDFEEL_CID); -//static NS_DEFINE_IID(kCLabel, NS_LABEL_CID); -//static NS_DEFINE_IID(kCMenuBar, NS_MENUBAR_CID); -//static NS_DEFINE_IID(kCMenu, NS_MENU_CID); -//static NS_DEFINE_IID(kCMenuItem, NS_MENUITEM_CID); -//static NS_DEFINE_IID(kCImageButton, NS_IMAGEBUTTON_CID); -//static NS_DEFINE_IID(kCPopUpMenu, NS_POPUPMENU_CID); -//static NS_DEFINE_IID(kCMenuButton, NS_MENUBUTTON_CID); +static NS_DEFINE_IID(kCLabel, NS_LABEL_CID); +static NS_DEFINE_IID(kCMenuBar, NS_MENUBAR_CID); +static NS_DEFINE_IID(kCMenu, NS_MENU_CID); +static NS_DEFINE_IID(kCMenuItem, NS_MENUITEM_CID); +static NS_DEFINE_IID(kCImageButton, NS_IMAGEBUTTON_CID); +static NS_DEFINE_IID(kCPopUpMenu, NS_POPUPMENU_CID); +static NS_DEFINE_IID(kCMenuButton, NS_MENUBUTTON_CID); + +// Drag & Drop, Clipboard +static NS_DEFINE_IID(kCDataObj, NS_DATAOBJ_CID); +static NS_DEFINE_IID(kCClipboard, NS_CLIPBOARD_CID); +static NS_DEFINE_IID(kCTransferable, NS_TRANSFERABLE_CID); +static NS_DEFINE_IID(kCXIFFormatConverter, NS_XIFFORMATCONVERTER_CID); +//static NS_DEFINE_IID(kCDragService, NS_DRAGSERVICE_CID); +//static NS_DEFINE_IID(kCFileListTransferable, NS_FILELISTTRANSFERABLE_CID); static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID); +static NS_DEFINE_CID(kCSound, NS_SOUND_CID); + +static NS_DEFINE_CID(kCFileSpecWithUI, NS_FILESPECWITHUI_CID); + class nsWidgetFactory : public nsIFactory { public: - // nsISupports methods + // nsISupports methods NS_DECL_ISUPPORTS // nsIFactory methods NS_IMETHOD CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult); + const nsIID &aIID, + void **aResult); NS_IMETHOD LockFactory(PRBool aLock); nsWidgetFactory(const nsCID &aClass); ~nsWidgetFactory(); -private: +private: nsCID mClassID; -}; +}; NS_IMPL_ADDREF(nsWidgetFactory) NS_IMPL_RELEASE(nsWidgetFactory) - + nsWidgetFactory::nsWidgetFactory(const nsCID &aClass) { NS_INIT_REFCNT(); mClassID = aClass; + PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::nsWidgetFactory Constructor Called\n")); + } nsWidgetFactory::~nsWidgetFactory() { - NS_ASSERTION(mRefCnt == 0, "Reference count not zero in destructor"); + PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::~nsWidgetFactory Destructor Called\n")); + + NS_ASSERTION(mRefCnt == 0, "Reference count not zero in destructor"); } nsresult nsWidgetFactory::QueryInterface(const nsIID &aIID, void **aResult) { - if (aResult == NULL) { - return NS_ERROR_NULL_POINTER; - } + PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::QueryInterface mRefCnt=<%d>\n", mRefCnt)); - // Always NULL result, in case of failure - *aResult = NULL; + if (NULL == aResult) { + return NS_ERROR_NULL_POINTER; + } - if (aIID.Equals(kISupportsIID)) { - *aResult = (void *)(nsISupports*)this; - } else if (aIID.Equals(kIFactoryIID)) { - *aResult = (void *)(nsIFactory*)this; - } + *aResult = NULL; - if (*aResult == NULL) { - return NS_NOINTERFACE; - } + if (aIID.Equals(kISupportsIID)) { + *aResult = (void *)(nsISupports *)this; + } else if (aIID.Equals(kIFactoryIID)) { + *aResult = (void *)(nsIFactory *)this; + } - NS_ADDREF_THIS(); // Increase reference count for caller - return NS_OK; + if (*aResult == NULL) { + return NS_NOINTERFACE; + } + + NS_ADDREF_THIS(); + return NS_OK; } -nsresult nsWidgetFactory::CreateInstance( nsISupports* aOuter, +nsresult nsWidgetFactory::CreateInstance( nsISupports *aOuter, const nsIID &aIID, void **aResult) { +PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::CreateInstance 1 mRefCnt=<%d>\n", mRefCnt)); + if (aResult == NULL) { return NS_ERROR_NULL_POINTER; } - *aResult = NULL; - if (nsnull != aOuter) { - return NS_ERROR_NO_AGGREGATION; - } + *aResult = NULL; + + if (nsnull != aOuter) + return NS_ERROR_NO_AGGREGATION; + nsISupports *inst = nsnull; if (mClassID.Equals(kCWindow)) { - inst = (nsISupports*)new nsWindow(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::CreateInstance of nsWindow\n")); + inst = (nsISupports *)new nsWindow(); } else if (mClassID.Equals(kCChild)) { - inst = (nsISupports*)new ChildWindow(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::CreateInstance of nsChildWindow\n")); + inst = (nsISupports *)new ChildWindow(); } - -/* else if (mClassID.Equals(kCButton)) { - inst = (nsISupports*)(nsWindow*)new nsButton(); - } - else if (mClassID.Equals(kCCheckButton)) { - inst = (nsISupports*)(nsWindow*)new nsCheckButton(); - } - else if (mClassID.Equals(kCCombobox)) { - inst = (nsISupports*)(nsWindow*)new nsComboBox(); - } - else if (mClassID.Equals(kCRadioButton)) { - inst = (nsISupports*)(nsWindow*)new nsRadioButton(); - } - else if (mClassID.Equals(kCFileOpen)) { - inst = (nsISupports*)new nsFileWidget(); - } - else if (mClassID.Equals(kCListbox)) { - inst = (nsISupports*)(nsWindow*)new nsListBox(); - } - else if (mClassID.Equals(kCHorzScrollbar)) { - inst = (nsISupports*)(nsWindow*)new nsScrollbar(PR_FALSE); - } - else if (mClassID.Equals(kCVertScrollbar)) { - inst = (nsISupports*)(nsWindow*)new nsScrollbar(PR_TRUE); - } - else if (mClassID.Equals(kCTextArea)) { - inst = (nsISupports*)(nsWindow*)new nsTextAreaWidget(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsButton\n" )); + inst = (nsISupports *)(nsWidget *)new nsButton(); } else if (mClassID.Equals(kCTextField)) { - inst = (nsISupports*)(nsWindow*)new nsTextWidget(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::CreateInstance of TextField\n")); + inst = (nsISupports *) (nsWidget *) new nsTextWidget(); } + else if (mClassID.Equals(kCHorzScrollbar)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of HorzScrollBar\n" )); + inst = (nsISupports *) (nsWidget *) new nsScrollbar( PR_FALSE ); + } + else if (mClassID.Equals(kCVertScrollbar)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of VertScrollBar\n" )); + inst = (nsISupports *) (nsWidget *) new nsScrollbar( PR_TRUE ); + } + else if (mClassID.Equals(kCCheckButton)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsCheckButton\n" )); + inst = (nsISupports *)(nsWidget *)new nsCheckButton(); + } + else if (mClassID.Equals(kCRadioButton)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsRadioButton\n" )); + inst = (nsISupports *)(nsWidget *)new nsRadioButton(); + } + else if (mClassID.Equals(kCTextArea)) { + inst = (nsISupports *) (nsWidget *) new nsTextAreaWidget(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of TextArea\n" )); + } + else if (mClassID.Equals(kCListbox)) { + inst = (nsISupports *) (nsWidget *) new nsListBox(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsListBox\n" )); + } + else if (mClassID.Equals(kCFileOpen)) { + inst = (nsISupports *) new nsFileWidget(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsFileWidget\n" )); + } + else if (mClassID.Equals(kCCombobox)) { + inst = (nsISupports *) (nsWidget *) new nsComboBox(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsComboBox\n" )); + } + else if (mClassID.Equals(kCSound)) { + nsISound* aSound = nsnull; + NS_NewSound(&aSound); + inst = (nsISupports*) aSound; + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsSound\n" )); + + } + +#if 1 +/* Widget we don't support */ else if (mClassID.Equals(kCTabWidget)) { - inst = (nsISupports*)(nsWindow*)new nsTabWidget(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of TabWidget\n" )); } else if (mClassID.Equals(kCTooltipWidget)) { - inst = (nsISupports*)(nsWindow*)new nsTooltipWidget(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of ToolTip\n" )); } -*/ + else if (mClassID.Equals(kCPopUpMenu)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of PopUpMenu\n" )); + } +#endif else if (mClassID.Equals(kCAppShell)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsAppShell\n" )); inst = (nsISupports*)new nsAppShell(); } else if (mClassID.Equals(kCToolkit)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsToolkit\n" )); inst = (nsISupports*)new nsToolkit(); } else if (mClassID.Equals(kCLookAndFeel)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsLookAndFeel\n" )); inst = (nsISupports*)new nsLookAndFeel(); } - -/* - else if (mClassID.Equals(kCLabel)) { - inst = (nsISupports*)(nsWindow*)new nsLabel(); - } else if (mClassID.Equals(kCMenuBar)) { - inst = (nsISupports*)(nsIMenuBar*) new nsMenuBar(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsMenuBar\n" )); + inst = (nsISupports*)(nsIMenuBar *)new nsMenuBar(); } else if (mClassID.Equals(kCMenu)) { - inst = (nsISupports*)(nsIMenu*) new nsMenu(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsMenu\n" )); + inst = (nsISupports*)(nsIMenu *)new nsMenu(); } else if (mClassID.Equals(kCMenuItem)) { - inst = (nsISupports*)(nsIMenuItem*) new nsMenuItem(); + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsMenuItem\n" )); + inst = (nsISupports*)(nsIMenuItem *)new nsMenuItem(); } - else if (mClassID.Equals(kCImageButton)) { - inst = (nsISupports*)(nsWindow*)new nsImageButton(); + else if (mClassID.Equals(kCLabel)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsLabel\n" )); + inst = (nsISupports*)(nsILabel *)new nsLabel(); } - else if (mClassID.Equals(kCMenuButton)) { - inst = (nsISupports*)(nsWindow*)new nsMenuButton(); + else if (mClassID.Equals(kCClipboard)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,("nsWidgetFactory::CreateInstance of nsClipboard\n")); + inst = (nsISupports*)(nsBaseClipboard *)new nsClipboard(); } - else if (mClassID.Equals(kCPopUpMenu)) { - inst = (nsISupports*)new nsPopUpMenu(); + else if (mClassID.Equals(kCXIFFormatConverter)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsXIFFormatConverter\n" )); + inst = (nsISupports*)new nsXIFFormatConverter(); } -*/ - - + else if (mClassID.Equals(kCFileSpecWithUI)) + { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsFileSpecWithUIImpl\n" )); + inst = (nsISupports*) (nsIFileSpecWithUI *) new nsFileSpecWithUIImpl; + } + else if (mClassID.Equals(kCTransferable)) { + PR_LOG(PhWidLog, PR_LOG_DEBUG,( "nsWidgetFactory::CreateInstance of nsTransferable\n" )); + inst = (nsISupports*)new nsTransferable(); + } + if (inst == NULL) { + PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::CreateInstance Failed to create widget.\n" )); return NS_ERROR_OUT_OF_MEMORY; } +PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::CreateInstance 2 mRefCnt=<%d>\n", mRefCnt)); + nsresult res = inst->QueryInterface(aIID, aResult); if (res != NS_OK) { + PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::CreateInstance query interface barfed.\n" )); // We didn't get the right interface, so clean up delete inst; } - return res; + return res; + } nsresult nsWidgetFactory::LockFactory(PRBool aLock) { - // Not implemented in simplest case. - return NS_OK; + PR_LOG(PhWidLog, PR_LOG_ERROR,( "nsWidgetFactory::Lock Factory mRefCnt=<%d> - Not Implemented\n", mRefCnt)); + + // Not implemented in simplest case. + return NS_OK; } // return the proper factory to the caller @@ -255,19 +328,17 @@ NSGetFactory(nsISupports* serviceMgr, const char *aProgID, nsIFactory **aFactory) { - if( nsnull == aFactory ) - { - return NS_ERROR_NULL_POINTER; - } + if (nsnull == aFactory) { + return NS_ERROR_NULL_POINTER; + } - *aFactory = new nsWidgetFactory( aClass ); + *aFactory = new nsWidgetFactory(aClass); - if( nsnull == aFactory ) - { - return NS_ERROR_OUT_OF_MEMORY; - } + if (nsnull == aFactory) { + return NS_ERROR_OUT_OF_MEMORY; + } - return (*aFactory)->QueryInterface(kIFactoryIID, (void**)aFactory); + return (*aFactory)->QueryInterface(kIFactoryIID, (void**)aFactory); }