WIP: MonthView canvas
Support for NewModel command in MultiView support for "target=" in LoadUrl hookup Day/Week/Month on toolbar and menubar git-svn-id: svn://10.0.0.236/trunk@11563 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -46,6 +46,7 @@ public:
|
||||
|
||||
NS_IMETHOD Init();
|
||||
NS_IMETHOD SetViewerContainer(nsIWebViewerContainer * aViewerContainer);
|
||||
NS_IMETHOD SetRootCanvas(nsIXPFCCanvas * aCanvas);
|
||||
|
||||
// nsIContentSink
|
||||
NS_IMETHOD OpenContainer(const nsIParserNode& aNode);
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIWebViewerContainer.h"
|
||||
#include "nsIXPFCCanvas.h"
|
||||
|
||||
//c47f83e0-4910-11d2-924a-00805f8a7ab6
|
||||
#define NS_IXPFC_XML_CONTENT_SINK_IID \
|
||||
@@ -34,6 +35,7 @@ public:
|
||||
|
||||
NS_IMETHOD Init() = 0 ;
|
||||
NS_IMETHOD SetViewerContainer(nsIWebViewerContainer * aViewerContainer) = 0;
|
||||
NS_IMETHOD SetRootCanvas(nsIXPFCCanvas * aCanvas) = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "nsITextWidget.h"
|
||||
#include "nsITabWidget.h"
|
||||
#include "nsWidgetsCID.h"
|
||||
#include "nsXPFCToolkit.h"
|
||||
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIContentSinkIID, NS_ICONTENT_SINK_IID);
|
||||
@@ -189,6 +190,7 @@ NS_IMETHODIMP nsXPFCXMLContentSink::OpenContainer(const nsIParserNode& aNode)
|
||||
eXPFCXMLTags tag = (eXPFCXMLTags) aNode.GetNodeType();
|
||||
nsresult res;
|
||||
nsCID aclass;
|
||||
nsString toLoadUrl;
|
||||
|
||||
if (eXPFCXMLTag_menubar == tag)
|
||||
mState = XPFC_PARSING_STATE_MENUBAR;
|
||||
@@ -218,14 +220,14 @@ NS_IMETHODIMP nsXPFCXMLContentSink::OpenContainer(const nsIParserNode& aNode)
|
||||
if (key.EqualsIgnoreCase("src"))
|
||||
{
|
||||
// Load the url!
|
||||
mViewerContainer->LoadURL(value,nsnull);
|
||||
toLoadUrl = value;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return NS_OK;
|
||||
//return NS_OK;
|
||||
}
|
||||
|
||||
nsString text = aNode.GetText();
|
||||
@@ -243,14 +245,14 @@ NS_IMETHODIMP nsXPFCXMLContentSink::OpenContainer(const nsIParserNode& aNode)
|
||||
if (NS_OK != res)
|
||||
return res ;
|
||||
|
||||
object->Init();
|
||||
|
||||
/*
|
||||
* ConsumeAttributes
|
||||
*/
|
||||
|
||||
ConsumeAttributes(aNode,*object);
|
||||
AddToHierarchy(*object, PR_TRUE);
|
||||
object->Init();
|
||||
ConsumeAttributes(aNode,*object);
|
||||
|
||||
/*
|
||||
* If this is a menu bar, tell the widget.
|
||||
@@ -303,6 +305,39 @@ NS_IMETHODIMP nsXPFCXMLContentSink::OpenContainer(const nsIParserNode& aNode)
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* If this was a root panel, add it to the widget
|
||||
*/
|
||||
|
||||
if (eXPFCXMLTag_application == tag)
|
||||
{
|
||||
nsIXPFCCanvas * child = (nsIXPFCCanvas *) mXPFCStack->Top();
|
||||
|
||||
if (child != nsnull)
|
||||
{
|
||||
nsIXPFCCanvas * root ;
|
||||
|
||||
gXPFCToolkit->GetRootCanvas(&root);
|
||||
|
||||
root->DeleteChildren();
|
||||
|
||||
root->AddChildCanvas(child);
|
||||
|
||||
NS_RELEASE(root);
|
||||
}
|
||||
}
|
||||
|
||||
if (toLoadUrl.Length() > 0)
|
||||
{
|
||||
nsIXPFCCanvas * canvas = nsnull;
|
||||
|
||||
if (toLoadUrl.Find(".cal") != -1)
|
||||
object->QueryInterface(kIXPFCCanvasIID,(void**)&canvas);
|
||||
|
||||
mViewerContainer->LoadURL(toLoadUrl,nsnull,canvas);
|
||||
|
||||
NS_IF_RELEASE(canvas);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -329,7 +364,9 @@ NS_IMETHODIMP nsXPFCXMLContentSink::CloseContainer(const nsIParserNode& aNode)
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
NS_IF_RELEASE(container);
|
||||
#endif
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -373,10 +410,11 @@ NS_IMETHODIMP nsXPFCXMLContentSink::AddLeaf(const nsIParserNode& aNode)
|
||||
if (NS_OK != res)
|
||||
return res ;
|
||||
|
||||
AddToHierarchy(*object, PR_FALSE);
|
||||
|
||||
object->Init();
|
||||
|
||||
ConsumeAttributes(aNode,*object);
|
||||
AddToHierarchy(*object, PR_FALSE);
|
||||
|
||||
// XXX: Need a way to identify that native widgets are
|
||||
// involved!
|
||||
@@ -715,6 +753,9 @@ NS_IMETHODIMP nsXPFCXMLContentSink::AddToHierarchy(nsIXMLParserObject& aObject,
|
||||
|
||||
nsIXPFCToolbar * container = nsnull;
|
||||
nsIXPFCToolbar * parent = nsnull;
|
||||
nsIXPFCCanvas * child_canvas = nsnull;
|
||||
|
||||
aObject.QueryInterface(kIXPFCCanvasIID,(void**)&child_canvas);
|
||||
|
||||
nsresult res = aObject.QueryInterface(kCIXPFCToolbarIID,(void**)&container);
|
||||
|
||||
@@ -723,14 +764,12 @@ NS_IMETHODIMP nsXPFCXMLContentSink::AddToHierarchy(nsIXMLParserObject& aObject,
|
||||
if (parent == nsnull)
|
||||
{
|
||||
mViewerContainer->GetToolbarManager()->AddToolbar(container);
|
||||
|
||||
} else {
|
||||
|
||||
nsIXPFCCanvas * parent_canvas = nsnull;
|
||||
nsIXPFCCanvas * child_canvas = nsnull;
|
||||
|
||||
res = aObject.QueryInterface(kIXPFCCanvasIID,(void**)&child_canvas);
|
||||
|
||||
if (NS_OK == res)
|
||||
if (child_canvas != nsnull)
|
||||
{
|
||||
res = parent->QueryInterface(kIXPFCCanvasIID,(void**)&parent_canvas);
|
||||
|
||||
@@ -741,14 +780,15 @@ NS_IMETHODIMP nsXPFCXMLContentSink::AddToHierarchy(nsIXMLParserObject& aObject,
|
||||
NS_RELEASE(parent_canvas);
|
||||
}
|
||||
|
||||
NS_RELEASE(child_canvas);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (aPush == PR_TRUE)
|
||||
mXPFCStack->Push(container);
|
||||
mXPFCStack->Push(child_canvas);
|
||||
|
||||
NS_IF_RELEASE(child_canvas);
|
||||
|
||||
return NS_OK;
|
||||
|
||||
@@ -864,12 +904,42 @@ NS_IMETHODIMP nsXPFCXMLContentSink::AddToHierarchy(nsIXMLParserObject& aObject,
|
||||
|
||||
return NS_OK;
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
} else if (mState == XPFC_PARSING_STATE_APPLICATION)
|
||||
{
|
||||
|
||||
nsIXPFCCanvas * container = nsnull;
|
||||
nsIXPFCCanvas * parent = nsnull;
|
||||
|
||||
nsresult res = aObject.QueryInterface(kIXPFCCanvasIID,(void**)&container);
|
||||
|
||||
parent = (nsIXPFCCanvas *) mXPFCStack->Top();
|
||||
|
||||
if (parent == nsnull)
|
||||
{
|
||||
if (aPush == PR_TRUE)
|
||||
mXPFCStack->Push(container);
|
||||
|
||||
} else {
|
||||
|
||||
parent->AddChildCanvas(container);
|
||||
|
||||
if (aPush == PR_TRUE)
|
||||
mXPFCStack->Push(container);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
|
||||
} else {
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
nsresult nsXPFCXMLContentSink::SetRootCanvas(nsIXPFCCanvas * aCanvas)
|
||||
{
|
||||
mXPFCStack->Push(aCanvas);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ nsXPFCXMLTagEntry gXPFCXMLTagTable[] =
|
||||
{"tabwidget", eXPFCXMLTag_tabwidget},
|
||||
{"toolbar", eXPFCXMLTag_toolbar},
|
||||
{"ui", eXPFCXMLTag_ui},
|
||||
{"userdefined", eXPFCXMLTag_userdefined},
|
||||
{"xpbutton", eXPFCXMLTag_xpbutton},
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user