diff --git a/mozilla/calendar/modules/parser/calxml/inc/nsCalXMLContentSink.h b/mozilla/calendar/modules/parser/calxml/inc/nsCalXMLContentSink.h index 770be9fb2da..23e1970ecd2 100644 --- a/mozilla/calendar/modules/parser/calxml/inc/nsCalXMLContentSink.h +++ b/mozilla/calendar/modules/parser/calxml/inc/nsCalXMLContentSink.h @@ -35,9 +35,11 @@ #include "nsIXMLParserObject.h" #include "nsICalTimeContext.h" #include "nsIXPFCXMLContentSink.h" +#include "nsIXPFCContentSink.h" class nsCalXMLContentSink : public nsIHTMLContentSink, - public nsIXPFCXMLContentSink + public nsIXPFCXMLContentSink, + public nsIXPFCContentSink { public: @@ -50,6 +52,7 @@ public: NS_IMETHOD Init(); NS_IMETHOD SetViewerContainer(nsIWebViewerContainer * aViewerContainer); NS_IMETHOD SetRootCanvas(nsIXPFCCanvas * aCanvas); + NS_IMETHOD SetContentSinkContainer(nsISupports * aContentSinkContainer); // nsIContentSink NS_IMETHOD OpenContainer(const nsIParserNode& aNode); diff --git a/mozilla/calendar/modules/parser/calxml/src/nsCalXMLContentSink.cpp b/mozilla/calendar/modules/parser/calxml/src/nsCalXMLContentSink.cpp index c9e0dd6fd03..8d44401ae3a 100644 --- a/mozilla/calendar/modules/parser/calxml/src/nsCalXMLContentSink.cpp +++ b/mozilla/calendar/modules/parser/calxml/src/nsCalXMLContentSink.cpp @@ -64,6 +64,7 @@ static NS_DEFINE_IID(kCalTimebarCanvasCID, NS_CAL_TIMEBARCANVAS_CID); static NS_DEFINE_IID(kCalContextcontrollerIID, NS_ICAL_CONTEXT_CONTROLLER_IID); static NS_DEFINE_IID(kIXPFCXMLContentSinkIID, NS_IXPFC_XML_CONTENT_SINK_IID); +static NS_DEFINE_IID(kIXPFCContentSinkIID, NS_IXPFC_CONTENT_SINK_IID); static NS_DEFINE_IID(kCXPFolderCanvas, NS_XP_FOLDER_CANVAS_CID); static NS_DEFINE_IID(kCXPItem, NS_XP_ITEM_CID); @@ -225,6 +226,9 @@ nsresult nsCalXMLContentSink::QueryInterface(const nsIID& aIID, void** aInstance else if(aIID.Equals(kIXPFCXMLContentSinkIID)) { //do this class... *aInstancePtr = (nsIXPFCXMLContentSink*)(this); } + else if(aIID.Equals(kIXPFCContentSinkIID)) { //do this class... + *aInstancePtr = (nsIXPFCContentSink*)(this); + } else { *aInstancePtr=0; return NS_NOINTERFACE; @@ -1093,3 +1097,18 @@ nsresult nsCalXMLContentSink::SetRootCanvas(nsIXPFCCanvas * aCanvas) NS_ADDREF(aCanvas); return NS_OK; } + +nsresult nsCalXMLContentSink::SetContentSinkContainer(nsISupports * + aContentSinkContainer) +{ + nsresult res; + nsIXPFCCanvas * canvas; + static NS_DEFINE_IID(kIXPFCCanvasIID, NS_IXPFC_CANVAS_IID); + res = aContentSinkContainer->QueryInterface(kIXPFCCanvasIID, (void **)&canvas); + if (NS_OK == res) + { + res = SetRootCanvas(canvas); + NS_RELEASE(canvas); + } + return res; +}