mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 07:15:46 +00:00
New method added to RDFCore: AddBookmark()
This commit is contained in:
parent
6da1d32e44
commit
d57e357032
@ -36,16 +36,20 @@ public:
|
||||
static const nsIID& GetIID() { static nsIID iid = NS_IDOMRDFCORE_IID; return iid; }
|
||||
|
||||
NS_IMETHOD DoSort(nsIDOMNode* aNode, const nsString& aSortResource, const nsString& aSortDirection)=0;
|
||||
|
||||
NS_IMETHOD AddBookmark(const nsString& aUrl, const nsString& aOptionalTitle)=0;
|
||||
};
|
||||
|
||||
|
||||
#define NS_DECL_IDOMRDFCORE \
|
||||
NS_IMETHOD DoSort(nsIDOMNode* aNode, const nsString& aSortResource, const nsString& aSortDirection); \
|
||||
NS_IMETHOD AddBookmark(const nsString& aUrl, const nsString& aOptionalTitle); \
|
||||
|
||||
|
||||
|
||||
#define NS_FORWARD_IDOMRDFCORE(_to) \
|
||||
NS_IMETHOD DoSort(nsIDOMNode* aNode, const nsString& aSortResource, const nsString& aSortDirection) { return _to##DoSort(aNode, aSortResource, aSortDirection); } \
|
||||
NS_IMETHOD AddBookmark(const nsString& aUrl, const nsString& aOptionalTitle) { return _to##AddBookmark(aUrl, aOptionalTitle); } \
|
||||
|
||||
|
||||
extern "C" NS_DOM nsresult NS_InitRDFCoreClass(nsIScriptContext *aContext, void **aPrototype);
|
||||
|
@ -178,6 +178,45 @@ RDFCoreDoSort(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method AddBookmark
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
RDFCoreAddBookmark(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMRDFCore *nativeThis = (nsIDOMRDFCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsAutoString b0;
|
||||
nsAutoString b1;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 2) {
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b1, cx, argv[1]);
|
||||
|
||||
if (NS_OK != nativeThis->AddBookmark(b0, b1)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function addBookmark requires 2 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// class for RDFCore
|
||||
@ -211,6 +250,7 @@ static JSPropertySpec RDFCoreProperties[] =
|
||||
static JSFunctionSpec RDFCoreMethods[] =
|
||||
{
|
||||
{"doSort", RDFCoreDoSort, 3},
|
||||
{"addBookmark", RDFCoreAddBookmark, 2},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsRDFCID.h"
|
||||
#include "nsIXULSortService.h"
|
||||
#include "nsIBookmarkDataSource.h"
|
||||
|
||||
|
||||
// Globals
|
||||
@ -45,12 +46,15 @@ static NS_DEFINE_IID(kIRDFCoreIID, NS_IDOMRDFCORE_IID);
|
||||
static NS_DEFINE_IID(kIDOMDocumentIID, nsIDOMDocument::GetIID());
|
||||
static NS_DEFINE_IID(kIDocumentIID, nsIDocument::GetIID());
|
||||
|
||||
static NS_DEFINE_IID(kRDFCoreCID, NS_RDFCORE_CID);
|
||||
static NS_DEFINE_IID(kBrowserWindowCID, NS_BROWSER_WINDOW_CID);
|
||||
static NS_DEFINE_CID(kRDFCoreCID, NS_RDFCORE_CID);
|
||||
static NS_DEFINE_CID(kBrowserWindowCID, NS_BROWSER_WINDOW_CID);
|
||||
|
||||
static NS_DEFINE_IID(kXULSortServiceCID, NS_XULSORTSERVICE_CID);
|
||||
static NS_DEFINE_CID(kXULSortServiceCID, NS_XULSORTSERVICE_CID);
|
||||
static NS_DEFINE_IID(kIXULSortServiceIID, NS_IXULSORTSERVICE_IID);
|
||||
|
||||
static NS_DEFINE_CID(kRDFBookmarkDataSourceCID, NS_RDFBOOKMARKDATASOURCE_CID);
|
||||
static NS_DEFINE_CID(kIRDFBookmarkDataSourceIID, NS_IRDFBOOKMARKDATASOURCE_IID);
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsRDFCore
|
||||
@ -135,33 +139,30 @@ NS_IMETHODIMP
|
||||
nsRDFCore::DoSort(nsIDOMNode* node, const nsString& sortResource,
|
||||
const nsString &sortDirection)
|
||||
{
|
||||
printf(" ***** nsRDFCore::DoSort entered!!! *****\n");
|
||||
|
||||
/*
|
||||
if (nsnull == mScriptContext) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
*/
|
||||
|
||||
printf("----------------------------\n");
|
||||
printf("-- Sort \n");
|
||||
printf("----------------------------\n");
|
||||
printf("Column: %s \n", sortResource.ToNewCString());
|
||||
printf("Direction: %s \n", sortDirection.ToNewCString());
|
||||
printf("----------------------------\n");
|
||||
printf("----------------------------\n");
|
||||
printf("-- Sort \n");
|
||||
printf("-- Column: %s \n", sortResource.ToNewCString());
|
||||
printf("-- Direction: %s \n", sortDirection.ToNewCString());
|
||||
printf("----------------------------\n");
|
||||
|
||||
nsIXULSortService *gXULSortService = nsnull;
|
||||
nsIXULSortService *XULSortService = nsnull;
|
||||
|
||||
nsresult rv = nsServiceManager::GetService(kXULSortServiceCID,
|
||||
kIXULSortServiceIID, (nsISupports**) &gXULSortService);
|
||||
if (nsnull != gXULSortService)
|
||||
kIXULSortServiceIID, (nsISupports**) &XULSortService);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
printf("\n******** YES, we got kXULSortServiceCID\n\n");
|
||||
|
||||
gXULSortService->DoSort(node, sortResource, sortDirection);
|
||||
nsServiceManager::ReleaseService(kXULSortServiceCID, gXULSortService);
|
||||
if (nsnull != XULSortService)
|
||||
{
|
||||
XULSortService->DoSort(node, sortResource, sortDirection);
|
||||
nsServiceManager::ReleaseService(kXULSortServiceCID, XULSortService);
|
||||
}
|
||||
}
|
||||
else printf("\n******** unable to obtain kXULSortServiceCID\n\n");
|
||||
|
||||
/*
|
||||
if (nsnull != mScriptContext) {
|
||||
@ -171,9 +172,37 @@ nsRDFCore::DoSort(nsIDOMNode* node, const nsString& sortResource,
|
||||
mScriptContext->EvaluateString(mScript, url, 0, rVal, &isUndefined);
|
||||
}
|
||||
*/
|
||||
return NS_OK;
|
||||
return(rv);
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsRDFCore::AddBookmark(const nsString& aUrl, const nsString& aOptionalTitle)
|
||||
{
|
||||
printf("----------------------------\n");
|
||||
printf("-- Add Bookmark \n");
|
||||
printf("-- URL: %s \n", aUrl.ToNewCString());
|
||||
printf("-- Title (opt): %s \n", aOptionalTitle.ToNewCString());
|
||||
printf("----------------------------\n");
|
||||
|
||||
nsIRDFBookmarkDataSource *RDFBookmarkDataSource = nsnull;
|
||||
|
||||
nsresult rv = nsServiceManager::GetService(kRDFBookmarkDataSourceCID,
|
||||
kIRDFBookmarkDataSourceIID, (nsISupports**) &RDFBookmarkDataSource);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
if (nsnull != RDFBookmarkDataSource)
|
||||
{
|
||||
char *url = aUrl.ToNewCString();
|
||||
char *optionalTitle = aOptionalTitle.ToNewCString();
|
||||
rv = RDFBookmarkDataSource->AddBookmark(url, optionalTitle);
|
||||
if (url) delete []url;
|
||||
if (optionalTitle) delete []optionalTitle;
|
||||
|
||||
nsServiceManager::ReleaseService(kRDFBookmarkDataSourceCID,
|
||||
RDFBookmarkDataSource);
|
||||
}
|
||||
}
|
||||
return(rv);
|
||||
}
|
||||
|
||||
|
@ -50,6 +50,7 @@ class nsRDFCore : public nsBaseAppCore,
|
||||
NS_IMETHOD SetDocumentCharset(const nsString& aCharset) { return nsBaseAppCore::SetDocumentCharset(aCharset); }
|
||||
|
||||
NS_IMETHOD DoSort(nsIDOMNode* node, const nsString& sortResource, const nsString& sortDirection);
|
||||
NS_IMETHOD AddBookmark(const nsString& aUrl, const nsString& aOptionalTitle);
|
||||
|
||||
protected:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user