зеркало из https://github.com/mozilla/gecko-dev.git
Started work on 17376. reviewed by bienvenu. create an object that knows about
mailnews window data and pass it through backend.
This commit is contained in:
Родитель
94ce645568
Коммит
4e22bcccab
|
@ -247,4 +247,15 @@
|
|||
{ 0x4e03b3a6, 0x624a, 0x11d3, \
|
||||
{ 0x8a, 0xd4, 0x0, 0x60, 0xb0, 0xfc, 0x4, 0xd2}}
|
||||
|
||||
//
|
||||
//nsMsgWindow
|
||||
//
|
||||
#define NS_MSGWINDOW_PROGID \
|
||||
"component://netscape/messenger/msgwindow"
|
||||
|
||||
/* BB460DFF-8BF0-11d3-8AFE-0060B0FC04D2*/
|
||||
#define NS_MSGWINDOW_CID \
|
||||
{ 0xbb460dff, 0x8bf0, 0x11d3, \
|
||||
{ 0x8a, 0xfe, 0x0, 0x60, 0xb0, 0xfc, 0x4, 0xd2}}
|
||||
|
||||
#endif // nsMessageBaseCID_h__
|
||||
|
|
|
@ -64,6 +64,7 @@
|
|||
|
||||
#include "nsMsgFilterService.h"
|
||||
#include "nsMessageView.h"
|
||||
#include "nsMsgWindow.h"
|
||||
|
||||
static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID);
|
||||
|
||||
|
@ -112,6 +113,8 @@ static NS_DEFINE_CID(kMsgStatusFeedbackCID, NS_MSGSTATUSFEEDBACK_CID);
|
|||
//MessageView
|
||||
static NS_DEFINE_CID(kMessageViewCID, NS_MESSAGEVIEW_CID);
|
||||
|
||||
//MsgWindow
|
||||
static NS_DEFINE_CID(kMsgWindowCID, NS_MSGWINDOW_CID);
|
||||
|
||||
// private factory declarations for each component we know how to produce
|
||||
|
||||
|
@ -133,6 +136,7 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgCopyService)
|
|||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgFolderCache)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsMsgStatusFeedback)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMessageView,Init)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsMsgWindow,Init)
|
||||
|
||||
// Module implementation for the sample library
|
||||
class nsMsgBaseModule : public nsIModule
|
||||
|
@ -170,6 +174,7 @@ protected:
|
|||
nsCOMPtr<nsIGenericFactory> mMsgFolderCacheFactory;
|
||||
nsCOMPtr<nsIGenericFactory> mMsgStatusFeedbackFactory;
|
||||
nsCOMPtr<nsIGenericFactory> mMessageViewFactory;
|
||||
nsCOMPtr<nsIGenericFactory> mMsgWindowFactory;
|
||||
};
|
||||
|
||||
nsMsgBaseModule::nsMsgBaseModule()
|
||||
|
@ -217,6 +222,7 @@ void nsMsgBaseModule::Shutdown()
|
|||
mMsgFolderCacheFactory = null_nsCOMPtr();
|
||||
mMsgStatusFeedbackFactory = null_nsCOMPtr();
|
||||
mMessageViewFactory = null_nsCOMPtr();
|
||||
mMsgWindowFactory = null_nsCOMPtr();
|
||||
}
|
||||
|
||||
// Create a factory object for creating instances of aClass.
|
||||
|
@ -353,6 +359,12 @@ NS_IMETHODIMP nsMsgBaseModule::GetClassObject(nsIComponentManager *aCompMgr,
|
|||
rv = NS_NewGenericFactory(getter_AddRefs(mMessageViewFactory), &nsMessageViewConstructor);
|
||||
fact = mMessageViewFactory;
|
||||
}
|
||||
else if (aClass.Equals(kMsgWindowCID))
|
||||
{
|
||||
if (!mMsgWindowFactory)
|
||||
rv = NS_NewGenericFactory(getter_AddRefs(mMsgWindowFactory), &nsMsgWindowConstructor);
|
||||
fact = mMsgWindowFactory;
|
||||
}
|
||||
|
||||
|
||||
if (fact)
|
||||
|
@ -404,7 +416,9 @@ static Components gComponents[] = {
|
|||
{ "Mail/News Status Feedback", &kMsgStatusFeedbackCID,
|
||||
NS_MSGSTATUSFEEDBACK_PROGID},
|
||||
{ "Mail/News MessageView", &kMessageViewCID,
|
||||
NS_MESSAGEVIEW_PROGID}
|
||||
NS_MESSAGEVIEW_PROGID},
|
||||
{ "Mail/News MsgWindow", &kMsgWindowCID,
|
||||
NS_MSGWINDOW_PROGID}
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -30,8 +30,10 @@ nsIMsgCopyService.idl
|
|||
nsIMsgCopyServiceListener.idl
|
||||
nsIMsgStatusFeedback.idl
|
||||
nsIMsgMailNewsUrl.idl
|
||||
nsIMsgWindowData.idl
|
||||
nsIMsgWindow.idl
|
||||
nsIUrlListenerManager.idl
|
||||
nsIMsgProtocolInfo.idl
|
||||
nsIMsgRDFDataSource.idl
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -63,8 +63,9 @@ XPIDLSRCS = \
|
|||
nsIMsgCopyServiceListener.idl \
|
||||
nsIMsgStatusFeedback.idl \
|
||||
nsIMsgMailNewsUrl.idl \
|
||||
nsIMsgWindowData.idl \
|
||||
nsIMsgWindow.idl \
|
||||
nsIMsgProtocolInfo.idl \
|
||||
nsIMsgRDFDataSource.idl \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
|
@ -47,8 +47,9 @@ XPIDLSRCS = \
|
|||
.\nsIUrlListenerManager.idl \
|
||||
.\nsIMsgStatusFeedback.idl \
|
||||
.\nsIMsgMailNewsUrl.idl \
|
||||
.\nsIMsgWindowData.idl \
|
||||
.\nsIMsgWindow.idl \
|
||||
.\nsIMsgProtocolInfo.idl \
|
||||
.\nsIMsgRDFDataSource.idl \
|
||||
$(NULL)
|
||||
|
||||
################################################################################
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
/* -*- 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) 1999 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
#include "nsIMsgWindow.idl"
|
||||
|
||||
[scriptable, uuid(BB460DFE-8BF0-11d3-8AFE-0060B0FC04D2)]
|
||||
|
||||
/* Interface used to access functions particular to mailnews datasources */
|
||||
|
||||
interface nsIMsgRDFDataSource : nsISupports
|
||||
{
|
||||
attribute nsIMsgWindow window;
|
||||
};
|
|
@ -0,0 +1,36 @@
|
|||
/* -*- Mode: IDL; 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 "nsISupports.idl"
|
||||
#include "nsIMsgStatusFeedback.idl"
|
||||
#include "nsIMessageView.idl"
|
||||
|
||||
interface nsITransactionManager;
|
||||
|
||||
/*
|
||||
* This interface can be used to set data specific to a window.
|
||||
*/
|
||||
|
||||
|
||||
[scriptable, uuid(BD85A416-5433-11d3-8AC5-0060B0FC04D2)]
|
||||
interface nsIMsgWindow : nsISupports {
|
||||
|
||||
attribute nsIMsgStatusFeedback statusFeedback;
|
||||
attribute nsITransactionManager transactionManager;
|
||||
attribute nsIMessageView messageView;
|
||||
};
|
|
@ -26,6 +26,7 @@ var statusFeedbackProgID = "component://netscape/messenger/statusfeedback";
|
|||
var messageViewProgID = "component://netscape/messenger/messageview";
|
||||
var mailSessionProgID = "component://netscape/messenger/services/session";
|
||||
var prefProgID = "component://netscape/preferences";
|
||||
var msgWindowProgID = "component://netscape/messenger/msgwindow";
|
||||
|
||||
var datasourceProgIDPrefix = "component://netscape/rdf/datasource?name=";
|
||||
var accountManagerDSProgID = datasourceProgIDPrefix + "msgaccountmanager";
|
||||
|
@ -53,6 +54,10 @@ statusFeedback = statusFeedback.QueryInterface(Components.interfaces.nsIMsgStatu
|
|||
var messageView = Components.classes[messageViewProgID].createInstance();
|
||||
messageView = messageView.QueryInterface(Components.interfaces.nsIMessageView);
|
||||
|
||||
//Create message window object
|
||||
var msgWindow = Components.classes[msgWindowProgID].createInstance();
|
||||
msgWindow = msgWindow.QueryInterface(Components.interfaces.nsIMsgWindow);
|
||||
|
||||
// the folderListener object
|
||||
var folderListener = {
|
||||
OnItemAdded: function(parentFolder, item) {},
|
||||
|
@ -92,6 +97,8 @@ function OnLoadMessenger()
|
|||
loadStartPage();
|
||||
messenger.SetWindow(window, statusFeedback);
|
||||
|
||||
InitMsgWindow();
|
||||
|
||||
AddDataSources();
|
||||
InitPanes();
|
||||
|
||||
|
@ -212,6 +219,11 @@ function getFolderListener()
|
|||
}
|
||||
}
|
||||
|
||||
function InitMsgWindow()
|
||||
{
|
||||
msgWindow.statusFeedback = statusFeedback;
|
||||
msgWindow.messageView = messageView;
|
||||
}
|
||||
|
||||
function AddDataSources()
|
||||
{
|
||||
|
@ -236,17 +248,15 @@ function AddDataSources()
|
|||
copyMenu.setAttribute('ref', 'msgaccounts:/');
|
||||
}
|
||||
//Add statusFeedback
|
||||
var windowData = folderDataSource.QueryInterface(Components.interfaces.nsIMsgWindowData);
|
||||
windowData.statusFeedback = statusFeedback;
|
||||
windowData.messageView = messageView;
|
||||
|
||||
windowData = messageDataSource.QueryInterface(Components.interfaces.nsIMsgWindowData);
|
||||
windowData.statusFeedback = statusFeedback;
|
||||
windowData.messageView = messageView;
|
||||
var msgDS = folderDataSource.QueryInterface(Components.interfaces.nsIMsgRDFDataSource);
|
||||
msgDS.window = msgWindow;
|
||||
|
||||
windowData = accountManagerDataSource.QueryInterface(Components.interfaces.nsIMsgWindowData);
|
||||
windowData.statusFeedback = statusFeedback;
|
||||
windowData.messageView = messageView;
|
||||
msgDS = messageDataSource.QueryInterface(Components.interfaces.nsIMsgRDFDataSource);
|
||||
msgDS.window = msgWindow;
|
||||
|
||||
msgDS = accountManagerDataSource.QueryInterface(Components.interfaces.nsIMsgRDFDataSource);
|
||||
msgDS.window = msgWindow;
|
||||
|
||||
}
|
||||
|
||||
|
@ -273,8 +283,10 @@ function OnLoadFolderPane(folderTree)
|
|||
//Add folderDataSource and accountManagerDataSource to folderPane
|
||||
accountManagerDataSource = accountManagerDataSource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
folderDataSource = folderDataSource.QueryInterface(Components.interfaces.nsIRDFDataSource);
|
||||
folderTree.database.AddDataSource(accountManagerDataSource);
|
||||
folderTree.database.AddDataSource(folderDataSource);
|
||||
var database = folderTree.database;
|
||||
|
||||
database.AddDataSource(accountManagerDataSource);
|
||||
database.AddDataSource(folderDataSource);
|
||||
folderTree.setAttribute('ref', 'msgaccounts:/');
|
||||
}
|
||||
|
||||
|
@ -341,6 +353,10 @@ function RefreshThreadTreeView()
|
|||
{
|
||||
var currentFolder = GetThreadTreeFolder();
|
||||
var currentFolderID = currentFolder.getAttribute('ref');
|
||||
//This will make us lose selection when this happens.
|
||||
//need to figure out if we have to save off selection or if
|
||||
//tree widget is responsible for this.
|
||||
ClearThreadTreeSelection();
|
||||
currentFolder.setAttribute('ref', currentFolderID);
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,8 @@ nsCopyMessageStreamListener.h
|
|||
nsMsgCopyService.h
|
||||
nsMsgStatusFeedback.h
|
||||
nsMessageView.h
|
||||
nsMsgWindow.h
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@ CPPSRCS = \
|
|||
nsMsgFolderCacheElement.cpp \
|
||||
nsMsgStatusFeedback.cpp \
|
||||
nsMessageView.cpp \
|
||||
nsMsgWindow.cpp \
|
||||
$(NULL)
|
||||
|
||||
EXPORTS = \
|
||||
|
@ -70,6 +71,7 @@ EXPORTS = \
|
|||
nsMsgCopyService.h \
|
||||
nsMsgStatusFeedback.h \
|
||||
nsMessageView.h \
|
||||
nsMsgWindow.h \
|
||||
$(NULL)
|
||||
|
||||
# we don't want the shared lib, but we want to force the creation of a static lib.
|
||||
|
|
|
@ -44,6 +44,7 @@ EXPORTS= \
|
|||
nsMsgCopyService.h \
|
||||
nsMsgStatusFeedback.h \
|
||||
nsMessageView.h \
|
||||
nsMsgWindow.h \
|
||||
$(NULL)
|
||||
|
||||
|
||||
|
@ -74,6 +75,7 @@ CPP_OBJS= \
|
|||
.\$(OBJDIR)\nsMsgCopyService.obj \
|
||||
.\$(OBJDIR)\nsMsgStatusFeedback.obj \
|
||||
.\$(OBJDIR)\nsMessageView.obj \
|
||||
.\$(OBJDIR)\nsMsgWindow.obj \
|
||||
$(NULL)
|
||||
|
||||
|
||||
|
|
|
@ -312,7 +312,11 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetTargets(nsIRDFResource* source,
|
|||
else if ((kNC_MessageChild == property))
|
||||
{
|
||||
PRBool showThreads;
|
||||
rv = mMessageView->GetShowThreads(&showThreads);
|
||||
nsCOMPtr<nsIMessageView> messageView;
|
||||
rv = mWindow->GetMessageView(getter_AddRefs(messageView));
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = messageView->GetShowThreads(&showThreads);
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
if(showThreads)
|
||||
|
@ -335,7 +339,11 @@ NS_IMETHODIMP nsMsgFolderDataSource::GetTargets(nsIRDFResource* source,
|
|||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
PRUint32 viewType;
|
||||
rv = mMessageView->GetViewType(&viewType);
|
||||
nsCOMPtr<nsIMessageView> messageView;
|
||||
rv = mWindow->GetMessageView(getter_AddRefs(messageView));
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = messageView->GetViewType(&viewType);
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
nsMessageViewMessageEnumerator * messageEnumerator =
|
||||
new nsMessageViewMessageEnumerator(messages, viewType);
|
||||
|
|
|
@ -316,7 +316,11 @@ NS_IMETHODIMP nsMsgMessageDataSource::GetTargets(nsIRDFResource* source,
|
|||
nsCOMPtr<nsIMessage> message(do_QueryInterface(source, &rv));
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
PRBool showThreads;
|
||||
rv = mMessageView->GetShowThreads(&showThreads);
|
||||
nsCOMPtr<nsIMessageView> messageView;
|
||||
rv = mWindow->GetMessageView(getter_AddRefs(messageView));
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = messageView->GetShowThreads(&showThreads);
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
if(showThreads && property == kNC_MessageChild)
|
||||
|
@ -336,7 +340,11 @@ NS_IMETHODIMP nsMsgMessageDataSource::GetTargets(nsIRDFResource* source,
|
|||
nsCOMPtr<nsMessageFromMsgHdrEnumerator> converter;
|
||||
NS_NewMessageFromMsgHdrEnumerator(messages, msgfolder, getter_AddRefs(converter));
|
||||
PRUint32 viewType;
|
||||
rv = mMessageView->GetViewType(&viewType);
|
||||
nsCOMPtr<nsIMessageView> messageView;
|
||||
rv = mWindow->GetMessageView(getter_AddRefs(messageView));
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = messageView->GetViewType(&viewType);
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
nsMessageViewMessageEnumerator * messageEnumerator =
|
||||
|
@ -430,7 +438,11 @@ NS_IMETHODIMP nsMsgMessageDataSource::ArcLabelsOut(nsIRDFResource* source,
|
|||
{
|
||||
|
||||
PRBool showThreads;
|
||||
rv = mMessageView->GetShowThreads(&showThreads);
|
||||
nsCOMPtr<nsIMessageView> messageView;
|
||||
rv = mWindow->GetMessageView(getter_AddRefs(messageView));
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = messageView->GetShowThreads(&showThreads);
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
if(showThreads)
|
||||
|
@ -895,7 +907,11 @@ nsresult nsMsgMessageDataSource::createMessageTotalNode(nsIMessage *message, nsI
|
|||
nsString emptyString("");
|
||||
|
||||
PRBool showThreads;
|
||||
rv = mMessageView->GetShowThreads(&showThreads);
|
||||
nsCOMPtr<nsIMessageView> messageView;
|
||||
rv = mWindow->GetMessageView(getter_AddRefs(messageView));
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = messageView->GetShowThreads(&showThreads);
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
if(!showThreads)
|
||||
|
@ -939,7 +955,11 @@ nsresult nsMsgMessageDataSource::createMessageUnreadNode(nsIMessage *message, ns
|
|||
nsString emptyString("");
|
||||
|
||||
PRBool showThreads;
|
||||
rv = mMessageView->GetShowThreads(&showThreads);
|
||||
nsCOMPtr<nsIMessageView> messageView;
|
||||
rv = mWindow->GetMessageView(getter_AddRefs(messageView));
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = messageView->GetShowThreads(&showThreads);
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
if(!showThreads)
|
||||
|
|
|
@ -61,9 +61,7 @@ nsMsgRDFDataSource::Init()
|
|||
|
||||
void nsMsgRDFDataSource::Close()
|
||||
{
|
||||
mStatusFeedback = null_nsCOMPtr();
|
||||
mTransactionManager = null_nsCOMPtr();
|
||||
mMessageView = null_nsCOMPtr();
|
||||
mWindow = null_nsCOMPtr();
|
||||
kEmptyArray = null_nsCOMPtr();
|
||||
}
|
||||
|
||||
|
@ -84,8 +82,8 @@ nsMsgRDFDataSource::QueryInterface(const nsIID& iid, void **result)
|
|||
res = NS_STATIC_CAST(nsIRDFDataSource*, this);
|
||||
else if(iid.Equals(nsCOMTypeInfo<nsIShutdownListener>::GetIID()))
|
||||
res = NS_STATIC_CAST(nsIShutdownListener*, this);
|
||||
else if(iid.Equals(nsCOMTypeInfo<nsIMsgWindowData>::GetIID()))
|
||||
res = NS_STATIC_CAST(nsIMsgWindowData*, this);
|
||||
else if(iid.Equals(nsCOMTypeInfo<nsIMsgRDFDataSource>::GetIID()))
|
||||
res = NS_STATIC_CAST(nsIMsgRDFDataSource*, this);
|
||||
|
||||
if (res) {
|
||||
NS_ADDREF(this);
|
||||
|
@ -295,57 +293,22 @@ nsMsgRDFDataSource::OnShutdown(const nsCID& aClass, nsISupports* service)
|
|||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsMsgRDFDataSource::GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback)
|
||||
NS_IMETHODIMP nsMsgRDFDataSource::GetWindow(nsIMsgWindow * *aWindow)
|
||||
{
|
||||
if(!aStatusFeedback)
|
||||
if(!aWindow)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*aStatusFeedback = mStatusFeedback;
|
||||
NS_IF_ADDREF(*aStatusFeedback);
|
||||
*aWindow = mWindow;
|
||||
NS_IF_ADDREF(*aWindow);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgRDFDataSource::SetStatusFeedback(nsIMsgStatusFeedback * aStatusFeedback)
|
||||
NS_IMETHODIMP nsMsgRDFDataSource::SetWindow(nsIMsgWindow * aWindow)
|
||||
{
|
||||
mStatusFeedback = aStatusFeedback;
|
||||
mWindow = aWindow;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP nsMsgRDFDataSource::GetTransactionManager(nsITransactionManager * *aTransactionManager)
|
||||
{
|
||||
if(!aTransactionManager)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*aTransactionManager = mTransactionManager;
|
||||
NS_IF_ADDREF(*aTransactionManager);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgRDFDataSource::SetTransactionManager(nsITransactionManager * aTransactionManager)
|
||||
{
|
||||
mTransactionManager = aTransactionManager;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgRDFDataSource::GetMessageView(nsIMessageView * *aMessageView)
|
||||
{
|
||||
if(!aMessageView)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*aMessageView = mMessageView;
|
||||
NS_IF_ADDREF(*aMessageView);
|
||||
return NS_OK;
|
||||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgRDFDataSource::SetMessageView(nsIMessageView * aMessageView)
|
||||
{
|
||||
mMessageView = aMessageView;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
nsIRDFService *
|
||||
nsMsgRDFDataSource::getRDFService()
|
||||
{
|
||||
|
|
|
@ -26,10 +26,12 @@
|
|||
#include "nsIServiceManager.h"
|
||||
#include "nsISupportsArray.h"
|
||||
#include "nsITransactionManager.h"
|
||||
#include "nsIMsgWindowData.h"
|
||||
#include "nsIMsgWindow.h"
|
||||
#include "nsIMsgRDFDataSource.h"
|
||||
|
||||
class nsMsgRDFDataSource : public nsIRDFDataSource,
|
||||
public nsIShutdownListener,
|
||||
public nsIMsgWindowData
|
||||
public nsIMsgRDFDataSource
|
||||
{
|
||||
public:
|
||||
nsMsgRDFDataSource();
|
||||
|
@ -37,7 +39,7 @@ class nsMsgRDFDataSource : public nsIRDFDataSource,
|
|||
virtual nsresult Init();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIMSGWINDOWDATA
|
||||
NS_DECL_NSIMSGRDFDATASOURCE
|
||||
NS_DECL_NSIRDFDATASOURCE
|
||||
NS_IMETHOD OnShutdown(const nsCID& aClass, nsISupports* service);
|
||||
|
||||
|
@ -51,9 +53,7 @@ class nsMsgRDFDataSource : public nsIRDFDataSource,
|
|||
nsIRDFNode *object, PRBool assert);
|
||||
nsresult GetTransactionManager(nsISupportsArray *sources, nsITransactionManager **aTransactionManager);
|
||||
|
||||
nsCOMPtr<nsIMsgStatusFeedback> mStatusFeedback;
|
||||
nsCOMPtr<nsITransactionManager> mTransactionManager;
|
||||
nsCOMPtr<nsIMessageView> mMessageView;
|
||||
nsCOMPtr<nsIMsgWindow> mWindow;
|
||||
|
||||
nsCOMPtr<nsISupportsArray> kEmptyArray;
|
||||
PRBool m_shuttingDown;
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
/* -*- 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) 1999 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
#include "nsMsgWindow.h"
|
||||
|
||||
|
||||
|
||||
NS_IMPL_ISUPPORTS(nsMsgWindow, nsCOMTypeInfo<nsIMsgWindow>::GetIID())
|
||||
|
||||
nsMsgWindow::nsMsgWindow()
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
|
||||
}
|
||||
|
||||
nsMsgWindow::~nsMsgWindow()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
nsresult nsMsgWindow::Init()
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgWindow::GetStatusFeedback(nsIMsgStatusFeedback * *aStatusFeedback)
|
||||
{
|
||||
if(!aStatusFeedback)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*aStatusFeedback = mStatusFeedback;
|
||||
NS_IF_ADDREF(*aStatusFeedback);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgWindow::SetStatusFeedback(nsIMsgStatusFeedback * aStatusFeedback)
|
||||
{
|
||||
mStatusFeedback = aStatusFeedback;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgWindow::GetTransactionManager(nsITransactionManager * *aTransactionManager)
|
||||
{
|
||||
if(!aTransactionManager)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*aTransactionManager = mTransactionManager;
|
||||
NS_IF_ADDREF(*aTransactionManager);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgWindow::SetTransactionManager(nsITransactionManager * aTransactionManager)
|
||||
{
|
||||
mTransactionManager = aTransactionManager;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgWindow::GetMessageView(nsIMessageView * *aMessageView)
|
||||
{
|
||||
if(!aMessageView)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*aMessageView = mMessageView;
|
||||
NS_IF_ADDREF(*aMessageView);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgWindow::SetMessageView(nsIMessageView * aMessageView)
|
||||
{
|
||||
mMessageView = aMessageView;
|
||||
return NS_OK;
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
/* -*- 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) 1999 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
|
||||
#ifndef _nsMsgWindow_h
|
||||
#define _nsMsgWindow_h
|
||||
|
||||
#include "nsIMsgWindow.h"
|
||||
#include "nsIMsgStatusFeedback.h"
|
||||
#include "nsITransactionManager.h"
|
||||
#include "nsIMessageView.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
class nsMsgWindow : public nsIMsgWindow {
|
||||
|
||||
public:
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
nsMsgWindow();
|
||||
virtual ~nsMsgWindow();
|
||||
nsresult Init();
|
||||
NS_DECL_NSIMSGWINDOW
|
||||
|
||||
protected:
|
||||
nsCOMPtr<nsIMsgStatusFeedback> mStatusFeedback;
|
||||
nsCOMPtr<nsITransactionManager> mTransactionManager;
|
||||
nsCOMPtr<nsIMessageView> mMessageView;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
Загрузка…
Ссылка в новой задаче