Initial checkin
git-svn-id: svn://10.0.0.236/trunk@19353 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
58cccc3007
commit
beddf1b292
@ -1,43 +1,25 @@
|
||||
<html>
|
||||
<head>
|
||||
<title> SilentDownload Test Page</title>
|
||||
<title> AppProcesses Test Page</title>
|
||||
|
||||
<SCRIPT LANGUAGE="JavaScript">
|
||||
<!--
|
||||
var task = SilentDownloadManager.Find("Silent Download Task 1");
|
||||
var appCore = AppProcessesManager.Find("MailAppCore");
|
||||
|
||||
if (task==null)
|
||||
if (appCore==null)
|
||||
{
|
||||
alert("\nSD: Task Not Found - New Task");
|
||||
dump("\nAppProcess: Process Not Found - New Process");
|
||||
|
||||
|
||||
task = new SilentDownloadTask();
|
||||
|
||||
task.Init( "Silent Download Task 1",
|
||||
"http://grok/u/dougt/silentdl/tests/sol.exe",
|
||||
"http://warp/u/dougt/silentdl/tests/sol.html");
|
||||
|
||||
appCore = new MailProcess();
|
||||
if (appCore == null) {
|
||||
dump("\nnAppProcess: Process was null");
|
||||
} else {
|
||||
appCore.Init("MailAppCore");
|
||||
dump("\nnAppProcess: Process was created");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
switch (task.state)
|
||||
{
|
||||
case SilentDownloadTask.SDL_NOT_INITED:
|
||||
case SilentDownloadTask.SDL_NOT_ADDED:
|
||||
case SilentDownloadTask.SDL_STARTED:
|
||||
case SilentDownloadTask.SDL_SUSPENDED:
|
||||
case SilentDownloadTask.SDL_DOWNLOADING_NOW:
|
||||
case SilentDownloadTask.SDL_ERROR:
|
||||
break;
|
||||
|
||||
case SilentDownloadTask.SDL_COMPLETED:
|
||||
alert("\nSD: Task Complete");
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// -->
|
||||
</SCRIPT>
|
||||
|
||||
|
||||
@ -1,238 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<script LANGUAGE="JavaScript">
|
||||
<!--
|
||||
|
||||
function ClearForm(form)
|
||||
{
|
||||
form.id.value = "";
|
||||
form.url.value = "";
|
||||
form.script.value = "";
|
||||
|
||||
form.state.value = "";
|
||||
form.next_byte.value = "";
|
||||
form.outFile.value = "";
|
||||
form.errorMsg.value = "";
|
||||
}
|
||||
|
||||
function DisplayTask(form)
|
||||
{
|
||||
var task = SilentDownloadManager.Find(form.id.value);
|
||||
|
||||
if (task==null)
|
||||
{
|
||||
ClearForm(form);
|
||||
}
|
||||
else
|
||||
{
|
||||
form.id.value = task.id;
|
||||
form.url.value = task.url;
|
||||
form.script.value = task.script;
|
||||
|
||||
if (task.state == SilentDownloadTask.SDL_NOT_INITED)
|
||||
{
|
||||
form.state.value = "SDL_NOT_INITED";
|
||||
}
|
||||
else if (task.state == SilentDownloadTask.SDL_NOT_ADDED)
|
||||
{
|
||||
form.state.value = "SDL_NOT_ADDED";
|
||||
}
|
||||
else if (task.state == SilentDownloadTask.SDL_STARTED)
|
||||
{
|
||||
form.state.value = "SDL_STARTED";
|
||||
}
|
||||
else if (task.state == SilentDownloadTask.SDL_SUSPENDED)
|
||||
{
|
||||
form.state.value = "SDL_SUSPENDED";
|
||||
}
|
||||
else if (task.state == SilentDownloadTask.SDL_COMPLETED)
|
||||
{
|
||||
form.state.value = "SDL_COMPLETED";
|
||||
}
|
||||
else if (task.state == SilentDownloadTask.SDL_DOWNLOADING_NOW)
|
||||
{
|
||||
form.state.value = "SDL_DOWNLOADING_NOW";
|
||||
}
|
||||
else if (task.state == SilentDownloadTask.SDL_ERROR)
|
||||
{
|
||||
form.state.value = "SDL_ERROR";
|
||||
}
|
||||
|
||||
form.next_byte.value = task.nextByte;
|
||||
form.outFile.value = task.outFile;
|
||||
form.errorMsg.value = task.errorMsg;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function AddTask(form)
|
||||
{
|
||||
|
||||
task = new SilentDownloadTask();
|
||||
|
||||
task.Init( form.id.value,
|
||||
form.url.value,
|
||||
form.script.value);
|
||||
|
||||
|
||||
// SilentDownloadManager.Add(task);
|
||||
|
||||
FindTask(form);
|
||||
}
|
||||
|
||||
function FindTask(form)
|
||||
{
|
||||
var task = SilentDownloadManager.Find(form.id.value);
|
||||
|
||||
if (task==null)
|
||||
{
|
||||
ClearForm(form);
|
||||
alert("\nTask Not Found.");
|
||||
}
|
||||
else
|
||||
{
|
||||
DisplayTask(form);
|
||||
}
|
||||
}
|
||||
|
||||
function RemoveTask(form)
|
||||
{
|
||||
var task = SilentDownloadManager.Find(form.id.value);
|
||||
|
||||
if (task==null)
|
||||
{
|
||||
alert("\nTask Not Found.");
|
||||
}
|
||||
else
|
||||
{
|
||||
task.Remove();
|
||||
// SilentDownloadManager.Remove(task);
|
||||
ClearForm(form);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function SuspendTask(form)
|
||||
{
|
||||
var task = SilentDownloadManager.Find(form.id.value);
|
||||
|
||||
if (task==null)
|
||||
{
|
||||
alert("\nTask Not Found.");
|
||||
}
|
||||
else
|
||||
{
|
||||
task.Suspend();
|
||||
DisplayTask(form);
|
||||
}
|
||||
}
|
||||
|
||||
function ResumeTask(form)
|
||||
{
|
||||
var task = SilentDownloadManager.Find(form.id.value);
|
||||
|
||||
if (task==null)
|
||||
{
|
||||
alert("\nTask Not Found.");
|
||||
}
|
||||
else
|
||||
{
|
||||
task.Resume();
|
||||
DisplayTask(form);
|
||||
}
|
||||
}
|
||||
|
||||
function DownloadloadTaskNow(form)
|
||||
{
|
||||
var task = SilentDownloadManager.Find(form.id.value);
|
||||
|
||||
if (task==null)
|
||||
{
|
||||
alert("\nTask Not Found.");
|
||||
}
|
||||
else
|
||||
{
|
||||
task.DownloadNow();
|
||||
DisplayTask(form);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// End -->
|
||||
</script>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<p><form ENCTYPE="text/plain" onSubmit="return submitForms()"></center>
|
||||
|
||||
<center><table BORDER=2>
|
||||
<tr>
|
||||
<td ALIGN=CENTER><b>ID:</b></td>
|
||||
<td ALIGN=CENTER><input TYPE="text" NAME="id" SIZE=60 MAXLENGTH=120 ></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td ALIGN=CENTER><b>URL:</b></td>
|
||||
<td ALIGN=CENTER><input TYPE="text" NAME="url" SIZE=60 MAXLENGTH=120 ></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td ALIGN=CENTER><b>Script:</b></td>
|
||||
<td ALIGN=CENTER><input TYPE="text" NAME="script" SIZE=60 MAXLENGTH=120></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
<center><table BORDER=2>
|
||||
|
||||
<tr>
|
||||
<td ALIGN=CENTER><b>State:</b></td>
|
||||
<td ALIGN=CENTER><input TYPE="text" NAME="state" SIZE=60 MAXLENGTH=120></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td ALIGN=CENTER><b>Next Byte:</b></td>
|
||||
<td ALIGN=CENTER><input TYPE="text" NAME="next_byte" SIZE=60 MAXLENGTH=120></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td ALIGN=CENTER><b>Out File:</b></td>
|
||||
<td ALIGN=CENTER><input TYPE="text" NAME="outFile" SIZE=60 MAXLENGTH=120></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td ALIGN=CENTER><b>Error Message:</b></td>
|
||||
<td ALIGN=CENTER><input TYPE="text" NAME="errorMsg" SIZE=60 MAXLENGTH=120></td>
|
||||
</tr>
|
||||
|
||||
</table></center>
|
||||
|
||||
<center>
|
||||
|
||||
<p>
|
||||
|
||||
<table BORDER=0>
|
||||
<td ALIGN=CENTER><input TYPE=BUTTON VALUE="Add Task " onClick="AddTask(this.form)"></td>
|
||||
<td ALIGN=CENTER><input TYPE=BUTTON VALUE="Find Task" onClick="FindTask(this.form)"></td>
|
||||
<td ALIGN=CENTER><input TYPE=BUTTON VALUE="Remove Task" onClick="RemoveTask(this.form)"</td>
|
||||
</table>
|
||||
|
||||
<table BORDER=0>
|
||||
<td ALIGN=CENTER><input TYPE=BUTTON VALUE="Suspend Task " onClick="SuspendTask(this.form)"></td>
|
||||
<td ALIGN=CENTER><input TYPE=BUTTON VALUE="Resume Task" onClick="ResumeTask(this.form)"></td>
|
||||
<td ALIGN=CENTER><input TYPE=BUTTON VALUE="Download Task Now" onClick="DownloadloadTaskNow(this.form)"</td>
|
||||
</table>
|
||||
|
||||
|
||||
<BR><input TYPE=BUTTON VALUE="Clear Form" onClick="ClearForm(this.form)">
|
||||
|
||||
</form>
|
||||
</center>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
10
mozilla/xpfe/AppCores/MANIFEST
Normal file
10
mozilla/xpfe/AppCores/MANIFEST
Normal file
@ -0,0 +1,10 @@
|
||||
#
|
||||
# This is a list of local files which get copied to the mozilla:dist:appcores directory
|
||||
#
|
||||
|
||||
nsIDOMAppCores.h
|
||||
nsIDOMBaseAppCore.h
|
||||
nsIDOMMailCore.h
|
||||
nsIDOMToolbarCore.h
|
||||
nsIDOMBrowserApprCore.h
|
||||
nsAppCoresCIDs.h
|
||||
33
mozilla/xpfe/AppCores/Makefile.in
Normal file
33
mozilla/xpfe/AppCores/Makefile.in
Normal file
@ -0,0 +1,33 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
DEPTH = ..
|
||||
topsrcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
srcdir = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = silentdl
|
||||
LIBRARY_NAME = silentdl
|
||||
|
||||
EXPORTS = nsSilentDownload.h nsIDOMSilentDownloadTask.h nsIDOMSilentDownload.h
|
||||
|
||||
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
13
mozilla/xpfe/AppCores/idl/AppCores.idl
Normal file
13
mozilla/xpfe/AppCores/idl/AppCores.idl
Normal file
@ -0,0 +1,13 @@
|
||||
interface AppCores
|
||||
{
|
||||
/* IID: { 0x18c2f981, 0xb09f, 0x11d2, \
|
||||
{0xbc, 0xde, 0x00, 0x80, 0x5f, 0x0e, 0x13, 0x53}} */
|
||||
|
||||
void Startup();
|
||||
void Shutdown();
|
||||
|
||||
void Add(in BaseAppCore appcore);
|
||||
void Remove(in BaseAppCore appcore);
|
||||
|
||||
BaseAppCore Find(in wstring id);
|
||||
};
|
||||
14
mozilla/xpfe/AppCores/idl/BaseAppCore.idl
Normal file
14
mozilla/xpfe/AppCores/idl/BaseAppCore.idl
Normal file
@ -0,0 +1,14 @@
|
||||
interface BaseAppCore
|
||||
{
|
||||
/* IID: { 0xbe5c13bd, 0xba9f, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56}} */
|
||||
|
||||
readonly attribute wstring id;
|
||||
|
||||
void BaseAppCore();
|
||||
void Init(in wstring id);
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
19
mozilla/xpfe/AppCores/idl/BrowserAppCore.idl
Normal file
19
mozilla/xpfe/AppCores/idl/BrowserAppCore.idl
Normal file
@ -0,0 +1,19 @@
|
||||
interface BrowserAppCore : BaseAppCore
|
||||
{
|
||||
/* IID: { 0xb0ffb697, 0xbab4, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56}} */
|
||||
|
||||
void BrowserAppCore();
|
||||
|
||||
void back();
|
||||
void forward();
|
||||
void loadUrl(in wstring url);
|
||||
|
||||
void setToolbarWindow(in Window win);
|
||||
void setContentWindow(in Window win);
|
||||
|
||||
void disableCallback(in wstring script);
|
||||
void enableCallback(in wstring script);
|
||||
|
||||
};
|
||||
|
||||
14
mozilla/xpfe/AppCores/idl/MailCore.idl
Normal file
14
mozilla/xpfe/AppCores/idl/MailCore.idl
Normal file
@ -0,0 +1,14 @@
|
||||
interface MailCore : BaseAppCore
|
||||
{
|
||||
/* IID: { 0x18c2f980, 0xb09f, 0x11d2, \
|
||||
{0xbc, 0xde, 0x00, 0x80, 0x5f, 0x0e, 0x13, 0x53}} */
|
||||
|
||||
void MailCore();
|
||||
|
||||
void SendMail(in wstring addrTo, in wstring subject, in wstring msg);
|
||||
void MailCompleteCallback(in wstring script);
|
||||
void SetWindow(in Window win);
|
||||
|
||||
};
|
||||
|
||||
|
||||
13
mozilla/xpfe/AppCores/idl/Toolbar.idl
Normal file
13
mozilla/xpfe/AppCores/idl/Toolbar.idl
Normal file
@ -0,0 +1,13 @@
|
||||
interface ToolbarCore : BaseAppCore
|
||||
{
|
||||
/* IID: { 0xbf4ae23e, 0xba9b, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56}} */
|
||||
|
||||
void ToolbarCore();
|
||||
|
||||
void SetWindow(in Window win);
|
||||
void SetStatus(in wstring msg);
|
||||
|
||||
};
|
||||
|
||||
|
||||
95
mozilla/xpfe/AppCores/makefile.win
Normal file
95
mozilla/xpfe/AppCores/makefile.win
Normal file
@ -0,0 +1,95 @@
|
||||
#!gmake
|
||||
#
|
||||
# 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.
|
||||
|
||||
|
||||
DEPTH=..\..
|
||||
IGNORE_MANIFEST=1
|
||||
|
||||
MAKE_OBJ_TYPE = DLL
|
||||
MODULE=appcores
|
||||
|
||||
DLL=.\$(OBJDIR)\$(MODULE).dll
|
||||
|
||||
DEFINES=-D_IMPL_NS_DOM -DWIN32_LEAN_AND_MEAN
|
||||
|
||||
LCFLAGS = \
|
||||
$(LCFLAGS) \
|
||||
$(DEFINES) \
|
||||
$(NULL)
|
||||
|
||||
LINCS= \
|
||||
-I$(XPDIST)\public\js \
|
||||
-I$(XPDIST)\public\netlib \
|
||||
-I$(XPDIST)\public\network \
|
||||
-I$(XPDIST)\public\dom \
|
||||
-I$(XPDIST)\public\xpcom \
|
||||
-I$(XPDIST)\public\util \
|
||||
-I$(XPDIST)\public\nspr2 \
|
||||
-I$(XPDIST)\public\pref \
|
||||
-I$(XPDIST)\public\raptor \
|
||||
$(NULL)
|
||||
|
||||
LLIBS = \
|
||||
$(DIST)\lib\netlib.lib \
|
||||
$(DIST)\lib\xpcom32.lib \
|
||||
$(DIST)\lib\xppref32.lib \
|
||||
$(DIST)\lib\xplib.lib \
|
||||
$(DIST)\lib\js3250.lib \
|
||||
$(DIST)\lib\jsdombase_s.lib \
|
||||
$(DIST)\lib\raptorbase.lib \
|
||||
$(DIST)\lib\raptorgfxwin.lib \
|
||||
$(LIBNSPR) \
|
||||
$(DIST)\lib\libplc21.lib \
|
||||
$(NULL)
|
||||
|
||||
OBJS = \
|
||||
.\$(OBJDIR)\nsBaseAppCore.obj \
|
||||
.\$(OBJDIR)\nsMailCore.obj \
|
||||
.\$(OBJDIR)\nsAppCoresNameSet.obj \
|
||||
.\$(OBJDIR)\nsToolbarCore.obj \
|
||||
.\$(OBJDIR)\nsBrowserAppCore.obj \
|
||||
.\$(OBJDIR)\nsMailCoreFactory.obj \
|
||||
.\$(OBJDIR)\nsToolbarCoreFactory.obj \
|
||||
.\$(OBJDIR)\nsBrowserAppCoreFactory.obj \
|
||||
.\$(OBJDIR)\nsAppCoresManager.obj \
|
||||
.\$(OBJDIR)\nsAppCoresManagerFactory.obj \
|
||||
.\$(OBJDIR)\nsJSBaseAppCore.obj \
|
||||
.\$(OBJDIR)\nsJSAppCores.obj \
|
||||
.\$(OBJDIR)\nsJSMailCore.obj \
|
||||
.\$(OBJDIR)\nsJSToolbarCore.obj \
|
||||
.\$(OBJDIR)\nsJSBrowserAppCore.obj \
|
||||
.\$(OBJDIR)\nsAppCores.obj \
|
||||
$(NULL)
|
||||
|
||||
|
||||
EXPORTS= \
|
||||
nsIDOMAppCores.h \
|
||||
nsIDOMBaseAppCore.h \
|
||||
nsIDOMMailCore.h \
|
||||
nsIDOMToolbarCore.h \
|
||||
nsIDOMBrowserApprCore.h \
|
||||
nsAppCoresCIDs.h
|
||||
|
||||
include <$(DEPTH)\config\rules.mak>
|
||||
|
||||
install:: $(DLL)
|
||||
$(MAKE_INSTALL) .\$(OBJDIR)\$(MODULE).dll $(DIST)\bin
|
||||
$(MAKE_INSTALL) .\$(OBJDIR)\$(MODULE).lib $(DIST)\lib
|
||||
|
||||
clobber::
|
||||
rm -f $(DIST)\lib\$(MODULE).lib
|
||||
rm -f $(DIST)\bin\$(MODULE).dll
|
||||
146
mozilla/xpfe/AppCores/nsAppCores.cpp
Normal file
146
mozilla/xpfe/AppCores/nsAppCores.cpp
Normal file
@ -0,0 +1,146 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "nsAppCoresCIDs.h"
|
||||
#include "nsAppCoresManagerFactory.h"
|
||||
#include "nsMailCoreFactory.h"
|
||||
#include "nsToolbarCoreFactory.h"
|
||||
#include "nsBrowserAppCoreFactory.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nsRepository.h"
|
||||
|
||||
#include "pratom.h"
|
||||
|
||||
static PRInt32 gLockCnt = 0;
|
||||
static PRInt32 gInstanceCnt = 0;
|
||||
|
||||
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
|
||||
static NS_DEFINE_IID(kMailCoreCID, NS_MailCore_CID);
|
||||
static NS_DEFINE_IID(kToolbarCoreCID, NS_TOOLBARCORE_CID);
|
||||
static NS_DEFINE_IID(kBrowserAppCoreCID, NS_BROWSERAPPCORE_CID);
|
||||
static NS_DEFINE_IID(kAppCoresCID, NS_AppCores_CID);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// DLL Entry Points:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
extern "C" NS_EXPORT PRBool
|
||||
NSCanUnload(void)
|
||||
{
|
||||
return PRBool (gInstanceCnt == 0 && gLockCnt == 0);
|
||||
}
|
||||
|
||||
extern "C" NS_EXPORT nsresult
|
||||
NSRegisterSelf(const char *path)
|
||||
{
|
||||
printf("*** AppCores is being registered\n");
|
||||
nsRepository::RegisterFactory(kAppCoresCID, path, PR_TRUE, PR_TRUE);
|
||||
nsRepository::RegisterFactory(kMailCoreCID, path, PR_TRUE, PR_TRUE);
|
||||
nsRepository::RegisterFactory(kToolbarCoreCID, path, PR_TRUE, PR_TRUE);
|
||||
nsRepository::RegisterFactory(kBrowserAppCoreCID, path, PR_TRUE, PR_TRUE);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
extern "C" NS_EXPORT nsresult
|
||||
NSUnregisterSelf(const char *path)
|
||||
{
|
||||
printf("*** AppCores is being unregistered\n");
|
||||
|
||||
nsRepository::UnregisterFactory(kAppCoresCID, path);
|
||||
nsRepository::UnregisterFactory(kMailCoreCID, path);
|
||||
nsRepository::UnregisterFactory(kToolbarCoreCID, path);
|
||||
nsRepository::UnregisterFactory(kBrowserAppCoreCID, path);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern "C" NS_EXPORT nsresult
|
||||
NSGetFactory(const nsCID &aClass, nsISupports* serviceMgr, nsIFactory **aFactory)
|
||||
{
|
||||
|
||||
if (aFactory == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*aFactory = NULL;
|
||||
nsISupports *inst;
|
||||
|
||||
|
||||
if ( aClass.Equals(kAppCoresCID) )
|
||||
{
|
||||
inst = new nsAppCoresManagerFactory();
|
||||
}
|
||||
else if ( aClass.Equals(kMailCoreCID) )
|
||||
{
|
||||
inst = new nsMailCoreFactory();
|
||||
}
|
||||
else if ( aClass.Equals(kToolbarCoreCID) )
|
||||
{
|
||||
inst = new nsToolbarCoreFactory();
|
||||
}
|
||||
else if ( aClass.Equals(kBrowserAppCoreCID) )
|
||||
{
|
||||
inst = new nsBrowserAppCoreFactory();
|
||||
}
|
||||
else
|
||||
{
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
}
|
||||
|
||||
|
||||
if (inst == NULL)
|
||||
{
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
|
||||
nsresult res = inst->QueryInterface(kIFactoryIID, (void**) aFactory);
|
||||
|
||||
if (res != NS_OK)
|
||||
{
|
||||
delete inst;
|
||||
}
|
||||
|
||||
return res;
|
||||
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
IncInstanceCount(){
|
||||
PR_AtomicIncrement(&gInstanceCnt);
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
IncLockCount(){
|
||||
PR_AtomicIncrement(&gLockCnt);
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
DecInstanceCount(){
|
||||
PR_AtomicDecrement(&gInstanceCnt);
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
DecLockCount(){
|
||||
PR_AtomicDecrement(&gLockCnt);
|
||||
}
|
||||
64
mozilla/xpfe/AppCores/nsAppCores.h
Normal file
64
mozilla/xpfe/AppCores/nsAppCores.h
Normal file
@ -0,0 +1,64 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsAppCores_h___
|
||||
#define nsAppCores_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nscore.h"
|
||||
#include "prio.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// DLL Entry Points:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
extern "C" NS_EXPORT nsresult
|
||||
NSGetFactory(const nsCID &aClass, nsISupports* serviceMgr, nsIFactory **aFactory);
|
||||
|
||||
extern "C" NS_EXPORT PRBool
|
||||
NSCanUnload(void);
|
||||
|
||||
extern "C" NS_EXPORT nsresult
|
||||
NSRegisterSelf(const char *path);
|
||||
|
||||
extern "C" NS_EXPORT nsresult
|
||||
NSUnregisterSelf(const char *path);
|
||||
|
||||
extern "C" void
|
||||
IncInstanceCount();
|
||||
|
||||
extern "C" void
|
||||
IncLockCount();
|
||||
|
||||
extern "C" void
|
||||
DecInstanceCount();
|
||||
|
||||
extern "C" void
|
||||
DecLockCount();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
52
mozilla/xpfe/AppCores/nsAppCoresCIDs.h
Normal file
52
mozilla/xpfe/AppCores/nsAppCoresCIDs.h
Normal file
@ -0,0 +1,52 @@
|
||||
#ifndef nsAppCoresCIDs_h___
|
||||
#define nsAppCoresCIDs_h___
|
||||
|
||||
#define NS_AppCores_CID \
|
||||
{ /* 18c2f982-b09f-11d2-bcde-00805f0e1353 */ \
|
||||
0x18c2f982, 0xb09f, 0x11d2, \
|
||||
{0xbc, 0xde, 0x00, 0x80, 0x5f, 0x0e, 0x13, 0x53} \
|
||||
}
|
||||
|
||||
#define NS_AppCoresFactory_CID \
|
||||
{ /* 18c2f984-b09f-11d2-bcde-00805f0e1353 */ \
|
||||
0x18c2f984, 0xb09f, 0x11d2, \
|
||||
{0xbc, 0xde, 0x00, 0x80, 0x5f, 0x0e, 0x13, 0x53} \
|
||||
}
|
||||
|
||||
#define NS_MailCore_CID \
|
||||
{ /* 18c2f983-b09f-11d2-bcde-00805f0e1353 */ \
|
||||
0x18c2f983, 0xb09f, 0x11d2, \
|
||||
{0xbc, 0xde, 0x00, 0x80, 0x5f, 0x0e, 0x13, 0x53} \
|
||||
}
|
||||
|
||||
#define NS_MailCoreFactory_CID \
|
||||
{ /* 18c2f985-b09f-11d2-bcde-00805f0e1353 */ \
|
||||
0x18c2f985, 0xb09f, 0x11d2, \
|
||||
{0xbc, 0xde, 0x00, 0x80, 0x5f, 0x0e, 0x13, 0x53} \
|
||||
}
|
||||
|
||||
#define NS_TOOLBARCORE_CID \
|
||||
{ /* BF4AE23E-BA9B-11d2-96C4-0060B0FB9956 */ \
|
||||
0xbf4ae23e, 0xba9b, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56} \
|
||||
}
|
||||
|
||||
#define NS_TOOLBARCORE_FACTORY_CID \
|
||||
{ /* BF4AE23F-BA9B-11d2-96C4-0060B0FB9956 */ \
|
||||
00xbf4ae23f, 0xba9b, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56} \
|
||||
}
|
||||
|
||||
#define NS_BROWSERAPPCORE_CID \
|
||||
{ /* BF4AE23E-BA9B-11d2-96C4-0060B0FB9956 */ \
|
||||
0x108d75a0, 0xbab5, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56} \
|
||||
}
|
||||
|
||||
#define NS_BROWSERAPPCORE_FACTORY_CID \
|
||||
{ /* BF4AE23F-BA9B-11d2-96C4-0060B0FB9956 */ \
|
||||
0x108d759f, 0xbab5, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56} \
|
||||
}
|
||||
|
||||
#endif /* nsAppCoresCIDs_h___ */
|
||||
338
mozilla/xpfe/AppCores/nsAppCoresManager.cpp
Normal file
338
mozilla/xpfe/AppCores/nsAppCoresManager.cpp
Normal file
@ -0,0 +1,338 @@
|
||||
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
|
||||
#include "nsAppCoresCIDs.h"
|
||||
#include "nsAppCores.h"
|
||||
#include "nsAppCoresManager.h"
|
||||
#include "nsAppCoresNameSet.h"
|
||||
|
||||
#include "nscore.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nsISupports.h"
|
||||
|
||||
#include "nsRepository.h"
|
||||
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
|
||||
#include "pratom.h"
|
||||
#include "prmem.h"
|
||||
#include "prio.h"
|
||||
#include "mkutils.h"
|
||||
#include "prefapi.h"
|
||||
|
||||
#include "nsIURL.h"
|
||||
#include "nsINetlibURL.h"
|
||||
#include "nsINetService.h"
|
||||
#include "nsIInputStream.h"
|
||||
#include "nsIStreamListener.h"
|
||||
|
||||
#include "nsIDOMAppCores.h"
|
||||
#include "nsIDOMMailCore.h"
|
||||
|
||||
/* For Javascript Namespace Access */
|
||||
#include "nsDOMCID.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsINameSpaceManager.h"
|
||||
#include "nsIScriptNameSetRegistry.h"
|
||||
#include "nsIScriptNameSpaceManager.h"
|
||||
#include "nsIScriptExternalNameSet.h"
|
||||
|
||||
#include "nsITimer.h"
|
||||
#include "nsITimerCallback.h"
|
||||
|
||||
#include "nsIBrowserWindow.h"
|
||||
#include "nsIWebShell.h"
|
||||
|
||||
// Globals
|
||||
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
|
||||
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
|
||||
|
||||
static NS_DEFINE_IID(kIScriptNameSetRegistryIID, NS_ISCRIPTNAMESETREGISTRY_IID);
|
||||
static NS_DEFINE_IID(kCScriptNameSetRegistryCID, NS_SCRIPT_NAMESET_REGISTRY_CID);
|
||||
static NS_DEFINE_IID(kIScriptExternalNameSetIID, NS_ISCRIPTEXTERNALNAMESET_IID);
|
||||
|
||||
static NS_DEFINE_IID(kInetServiceIID, NS_INETSERVICE_IID);
|
||||
static NS_DEFINE_IID(kInetServiceCID, NS_NETSERVICE_CID);
|
||||
static NS_DEFINE_IID(kInetLibURLIID, NS_INETLIBURL_IID);
|
||||
static NS_DEFINE_IID(kIStreamListenerIID, NS_ISTREAMLISTENER_IID);
|
||||
|
||||
static NS_DEFINE_IID(kBrowserWindowCID, NS_BROWSER_WINDOW_CID);
|
||||
static NS_DEFINE_IID(kIBrowserWindowIID, NS_IBROWSER_WINDOW_IID);
|
||||
|
||||
static NS_DEFINE_IID(kIMailCoreIID, NS_IDOMMAILCORE_IID);
|
||||
static NS_DEFINE_IID(kIAppCoresIID, NS_IDOMAPPCORES_IID);
|
||||
static NS_DEFINE_IID(kAppCoresCID, NS_AppCores_CID);
|
||||
static NS_DEFINE_IID(kMailCoreCID, NS_MailCore_CID);
|
||||
static NS_DEFINE_IID(kAppCoresFactoryCID, NS_AppCoresFactory_CID);
|
||||
static NS_DEFINE_IID(kMailCoreFactoryCID, NS_MailCoreFactory_CID);
|
||||
|
||||
|
||||
static SDL_TaskList *gTasks = nsnull;
|
||||
static SDL_TaskList *gNextReadyTask = nsnull;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsAppCoresManager
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsAppCoresManager::nsAppCoresManager()
|
||||
{
|
||||
mScriptObject = nsnull;
|
||||
|
||||
IncInstanceCount();
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------
|
||||
nsAppCoresManager::~nsAppCoresManager()
|
||||
{
|
||||
DecInstanceCount();
|
||||
}
|
||||
|
||||
|
||||
NS_IMPL_ADDREF(nsAppCoresManager)
|
||||
NS_IMPL_RELEASE(nsAppCoresManager)
|
||||
|
||||
|
||||
|
||||
//--------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManager::QueryInterface(REFNSIID aIID,void** aInstancePtr)
|
||||
{
|
||||
if (aInstancePtr == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// Always NULL result, in case of failure
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
|
||||
if ( aIID.Equals(kIAppCoresIID) )
|
||||
{
|
||||
nsIDOMAppCores* tmp = this;
|
||||
*aInstancePtr = (void*)tmp;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
else if ( aIID.Equals(kIScriptObjectOwnerIID))
|
||||
{
|
||||
nsIScriptObjectOwner* tmp = this;
|
||||
*aInstancePtr = (void*)tmp;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
else if ( aIID.Equals(kISupportsIID) )
|
||||
{
|
||||
|
||||
nsIDOMAppCores* tmp1 = this;
|
||||
nsISupports* tmp2 = tmp1;
|
||||
|
||||
*aInstancePtr = (void*)tmp2;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return NS_NOINTERFACE;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManager::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject)
|
||||
{
|
||||
nsresult res = NS_OK;
|
||||
|
||||
if (nsnull == mScriptObject)
|
||||
{
|
||||
nsIScriptGlobalObject *global = aContext->GetGlobalObject();
|
||||
|
||||
res = NS_NewScriptAppCores(aContext, (nsISupports *)(nsIDOMAppCores*)this, global, (void**)&mScriptObject);
|
||||
|
||||
NS_IF_RELEASE(global);
|
||||
}
|
||||
|
||||
|
||||
*aScriptObject = mScriptObject;
|
||||
return res;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManager::SetScriptObject(void *aScriptObject)
|
||||
{
|
||||
mScriptObject = aScriptObject;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManager::Startup()
|
||||
{
|
||||
|
||||
|
||||
/***************************************/
|
||||
/* Add us to the Javascript Name Space */
|
||||
/***************************************/
|
||||
|
||||
nsIScriptNameSetRegistry *registry;
|
||||
nsresult result = nsServiceManager::GetService(kCScriptNameSetRegistryCID,
|
||||
kIScriptNameSetRegistryIID,
|
||||
(nsISupports **)®istry);
|
||||
if (NS_OK == result)
|
||||
{
|
||||
nsAppCoresNameSet* nameSet = new nsAppCoresNameSet();
|
||||
registry->AddExternalNameSet(nameSet);
|
||||
/* FIX - do we need to release this service? When we do, it get deleted,and our name is lost. */
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManager::Shutdown()
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManager::Add(nsIDOMBaseAppCore* aTask)
|
||||
{
|
||||
|
||||
if (aTask == NULL)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
/* Check to see if we already have this task in our list */
|
||||
SDL_TaskList *node = gTasks;
|
||||
nsString nodeIDString;
|
||||
nsString addIDString;
|
||||
|
||||
aTask->GetId(addIDString);
|
||||
|
||||
while (node != NULL)
|
||||
{
|
||||
node->task->GetId(nodeIDString);
|
||||
|
||||
if (nodeIDString == addIDString)
|
||||
{
|
||||
/*we already have this ID in our list, ignore */
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
node = node->next;
|
||||
}
|
||||
|
||||
/* add the task to our list */
|
||||
SDL_TaskList* taskNode = (SDL_TaskList*)PR_MALLOC(sizeof(SDL_TaskList));
|
||||
|
||||
aTask->AddRef();
|
||||
|
||||
taskNode->next = gTasks;
|
||||
taskNode->task = aTask;
|
||||
gTasks = taskNode;
|
||||
|
||||
/* Lets set the next task to run to this one */
|
||||
gNextReadyTask = taskNode;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManager::Remove(nsIDOMBaseAppCore* aTask)
|
||||
{
|
||||
if (aTask == NULL)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
/* Remove from our list */
|
||||
|
||||
SDL_TaskList *node = gTasks;
|
||||
SDL_TaskList *lastnode = gTasks;
|
||||
nsString nodeIDString;
|
||||
nsString doomedIDString;
|
||||
|
||||
aTask->GetId(doomedIDString);
|
||||
|
||||
while (node != NULL)
|
||||
{
|
||||
node->task->GetId(nodeIDString);
|
||||
|
||||
if (nodeIDString == doomedIDString)
|
||||
{
|
||||
/* we want to delete this node */
|
||||
|
||||
if (node == gTasks)
|
||||
{
|
||||
gTasks = node->next;
|
||||
}
|
||||
else
|
||||
{
|
||||
lastnode->next = node->next;
|
||||
}
|
||||
|
||||
node->task->Release();
|
||||
PR_DELETE(node);
|
||||
break;
|
||||
}
|
||||
|
||||
lastnode = node;
|
||||
node = node->next;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManager::Find(const nsString& aId, nsIDOMBaseAppCore** aReturn)
|
||||
{
|
||||
*aReturn=nsnull;
|
||||
|
||||
SDL_TaskList *node = gTasks;
|
||||
nsString nodeIDString;
|
||||
|
||||
while (node != NULL)
|
||||
{
|
||||
node->task->GetId(nodeIDString);
|
||||
|
||||
if (nodeIDString == aId)
|
||||
{
|
||||
*aReturn = node->task;
|
||||
node->task->AddRef();
|
||||
break;
|
||||
}
|
||||
node = node->next;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
71
mozilla/xpfe/AppCores/nsAppCoresManager.h
Normal file
71
mozilla/xpfe/AppCores/nsAppCoresManager.h
Normal file
@ -0,0 +1,71 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsAppCoresManager_h___
|
||||
#define nsAppCoresManager_h___
|
||||
|
||||
#include "nscore.h"
|
||||
#include "nsString.h"
|
||||
#include "nsISupports.h"
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
#include "nsIDOMAppCores.h"
|
||||
#include "prio.h"
|
||||
|
||||
class nsIScriptContext;
|
||||
class nsIDOMBaseAppCore;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsAppCoresManager:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
typedef struct _SDL_TaskList SDL_TaskList;
|
||||
|
||||
typedef struct _SDL_TaskList
|
||||
{
|
||||
nsIDOMBaseAppCore *task;
|
||||
SDL_TaskList *next;
|
||||
|
||||
} SDL_TaskList;
|
||||
|
||||
class nsAppCoresManager : public nsIScriptObjectOwner, public nsIDOMAppCores
|
||||
{
|
||||
public:
|
||||
|
||||
nsAppCoresManager();
|
||||
~nsAppCoresManager();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD GetScriptObject(nsIScriptContext *aContext, void** aScriptObject);
|
||||
NS_IMETHOD SetScriptObject(void* aScriptObject);
|
||||
|
||||
NS_IMETHOD Startup();
|
||||
|
||||
NS_IMETHOD Shutdown();
|
||||
|
||||
NS_IMETHOD Add(nsIDOMBaseAppCore* aAppcore);
|
||||
|
||||
NS_IMETHOD Remove(nsIDOMBaseAppCore* aAppcore);
|
||||
|
||||
NS_IMETHOD Find(const nsString& aId, nsIDOMBaseAppCore** aReturn);
|
||||
|
||||
private:
|
||||
void *mScriptObject;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // nsAppCoresManager_h___
|
||||
129
mozilla/xpfe/AppCores/nsAppCoresManagerFactory.cpp
Normal file
129
mozilla/xpfe/AppCores/nsAppCoresManagerFactory.cpp
Normal file
@ -0,0 +1,129 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "nsAppCoresManagerFactory.h"
|
||||
#include "nsAppCoresManager.h"
|
||||
#include "nsAppCores.h"
|
||||
#include "pratom.h"
|
||||
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsAppCoresImplFactory
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsAppCoresManagerFactory::nsAppCoresManagerFactory(void)
|
||||
{
|
||||
mRefCnt=0;
|
||||
IncInstanceCount();
|
||||
}
|
||||
|
||||
nsAppCoresManagerFactory::~nsAppCoresManagerFactory(void)
|
||||
{
|
||||
IncInstanceCount();
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManagerFactory::QueryInterface(REFNSIID aIID,void** aInstancePtr)
|
||||
{
|
||||
if (aInstancePtr == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// Always NULL result, in case of failure
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
if ( aIID.Equals(kISupportsIID) )
|
||||
{
|
||||
*aInstancePtr = (void*) this;
|
||||
}
|
||||
else if ( aIID.Equals(kIFactoryIID) )
|
||||
{
|
||||
*aInstancePtr = (void*) this;
|
||||
}
|
||||
|
||||
if (aInstancePtr == NULL)
|
||||
{
|
||||
return NS_ERROR_NO_INTERFACE;
|
||||
}
|
||||
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManagerFactory::AddRef(void)
|
||||
{
|
||||
return ++mRefCnt;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManagerFactory::Release(void)
|
||||
{
|
||||
if (--mRefCnt ==0)
|
||||
{
|
||||
delete this;
|
||||
return 0; // Don't access mRefCnt after deleting!
|
||||
}
|
||||
|
||||
return mRefCnt;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManagerFactory::CreateInstance(nsISupports *aOuter, REFNSIID aIID, void **aResult)
|
||||
{
|
||||
if (aResult == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*aResult = NULL;
|
||||
|
||||
/* do I have to use iSupports? */
|
||||
nsAppCoresManager *inst = new nsAppCoresManager();
|
||||
|
||||
if (inst == NULL)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsresult result = inst->QueryInterface(aIID, aResult);
|
||||
|
||||
if (result != NS_OK)
|
||||
delete inst;
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresManagerFactory::LockFactory(PRBool aLock)
|
||||
{
|
||||
if (aLock)
|
||||
IncLockCount();
|
||||
else
|
||||
DecLockCount();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
47
mozilla/xpfe/AppCores/nsAppCoresManagerFactory.h
Normal file
47
mozilla/xpfe/AppCores/nsAppCoresManagerFactory.h
Normal file
@ -0,0 +1,47 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsAppCoresManagerFactory_h___
|
||||
#define nsAppCoresManagerFactory_h___
|
||||
|
||||
#include "nsIFactory.h"
|
||||
#include "nsISupports.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsAppCoresManagerFactory:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class nsAppCoresManagerFactory : public nsIFactory
|
||||
{
|
||||
public:
|
||||
|
||||
nsAppCoresManagerFactory();
|
||||
~nsAppCoresManagerFactory();
|
||||
|
||||
PRBool CanUnload(void);
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD CreateInstance(nsISupports *aOuter,
|
||||
REFNSIID aIID,
|
||||
void **aResult);
|
||||
|
||||
NS_IMETHOD LockFactory(PRBool aLock);
|
||||
|
||||
};
|
||||
|
||||
#endif // nsAppCoresManagerFactory_h___
|
||||
108
mozilla/xpfe/AppCores/nsAppCoresNameSet.cpp
Normal file
108
mozilla/xpfe/AppCores/nsAppCoresNameSet.cpp
Normal file
@ -0,0 +1,108 @@
|
||||
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsAppCoresNameSet
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#include "nsAppCoresNameSet.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIScriptNameSpaceManager.h"
|
||||
#include "nsIDOMAppCores.h"
|
||||
#include "nsIDOMMailCore.h"
|
||||
#include "nsIDOMToolbarCore.h"
|
||||
#include "nsIDOMBrowserAppCore.h"
|
||||
#include "nsAppCoresCIDs.h"
|
||||
|
||||
|
||||
static NS_DEFINE_IID(kIScriptExternalNameSetIID, NS_ISCRIPTEXTERNALNAMESET_IID);
|
||||
static NS_DEFINE_IID(kAppCoresCID, NS_AppCores_CID);
|
||||
static NS_DEFINE_IID(kMailCoreCID, NS_MailCore_CID);
|
||||
static NS_DEFINE_IID(kToolbarCoreCID, NS_TOOLBARCORE_CID);
|
||||
static NS_DEFINE_IID(kBrowserAppCoreCID, NS_BROWSERAPPCORE_CID);
|
||||
|
||||
nsAppCoresNameSet::nsAppCoresNameSet()
|
||||
{
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
nsAppCoresNameSet::~nsAppCoresNameSet()
|
||||
{
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS(nsAppCoresNameSet, kIScriptExternalNameSetIID);
|
||||
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresNameSet::InitializeClasses(nsIScriptContext* aScriptContext)
|
||||
{
|
||||
nsresult result = NS_OK;
|
||||
|
||||
result = NS_InitAppCoresClass(aScriptContext, nsnull);
|
||||
if (NS_OK != result) return result;
|
||||
|
||||
result = NS_InitMailCoreClass(aScriptContext, nsnull);
|
||||
result = NS_InitToolbarCoreClass(aScriptContext, nsnull);
|
||||
result = NS_InitBrowserAppCoreClass(aScriptContext, nsnull);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAppCoresNameSet::AddNameSet(nsIScriptContext* aScriptContext)
|
||||
{
|
||||
nsresult result = NS_OK;
|
||||
nsIScriptNameSpaceManager* manager;
|
||||
|
||||
result = aScriptContext->GetNameSpaceManager(&manager);
|
||||
if (NS_OK == result)
|
||||
{
|
||||
result = manager->RegisterGlobalName("MailCore",
|
||||
kMailCoreCID,
|
||||
PR_TRUE);
|
||||
|
||||
if (NS_OK != result) return result;
|
||||
|
||||
result = manager->RegisterGlobalName("ToolbarCore",
|
||||
kToolbarCoreCID,
|
||||
PR_TRUE);
|
||||
|
||||
if (NS_OK != result) return result;
|
||||
|
||||
result = manager->RegisterGlobalName("BrowserAppCore",
|
||||
kBrowserAppCoreCID,
|
||||
PR_TRUE);
|
||||
|
||||
if (NS_OK != result) return result;
|
||||
|
||||
result = manager->RegisterGlobalName("AppCoresManager",
|
||||
kAppCoresCID,
|
||||
PR_FALSE);
|
||||
|
||||
|
||||
NS_RELEASE(manager);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
41
mozilla/xpfe/AppCores/nsAppCoresNameSet.h
Normal file
41
mozilla/xpfe/AppCores/nsAppCoresNameSet.h
Normal file
@ -0,0 +1,41 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsAppCoresNameSet_h___
|
||||
#define nsAppCoresNameSet_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIScriptExternalNameSet.h"
|
||||
|
||||
class nsIScriptContext;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsAppCoresNameSet:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class nsAppCoresNameSet : public nsIScriptExternalNameSet
|
||||
{
|
||||
public:
|
||||
nsAppCoresNameSet();
|
||||
~nsAppCoresNameSet();
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_IMETHOD InitializeClasses(nsIScriptContext* aScriptContext);
|
||||
NS_IMETHOD AddNameSet(nsIScriptContext* aScriptContext);
|
||||
};
|
||||
|
||||
#endif // nsAppCoresNameSet_h___
|
||||
180
mozilla/xpfe/AppCores/nsBaseAppCore.cpp
Normal file
180
mozilla/xpfe/AppCores/nsBaseAppCore.cpp
Normal file
@ -0,0 +1,180 @@
|
||||
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "nsBaseAppCore.h"
|
||||
#include "nsIScriptContextOwner.h"
|
||||
#include "nsAppCoresManager.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsIDOMNode.h"
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIDocument.h"
|
||||
|
||||
// Globals
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
|
||||
static NS_DEFINE_IID(kIDOMBaseAppCoreIID, nsIDOMBaseAppCore::IID());
|
||||
static NS_DEFINE_IID(kIDocumentIID, nsIDocument::IID());
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsBaseAppCore
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsBaseAppCore::nsBaseAppCore()
|
||||
{
|
||||
mScriptObject = nsnull;
|
||||
IncInstanceCount();
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
nsBaseAppCore::~nsBaseAppCore()
|
||||
{
|
||||
DecInstanceCount();
|
||||
}
|
||||
|
||||
|
||||
NS_IMPL_ADDREF(nsBaseAppCore)
|
||||
NS_IMPL_RELEASE(nsBaseAppCore)
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBaseAppCore::QueryInterface(REFNSIID aIID,void** aInstancePtr)
|
||||
{
|
||||
if (aInstancePtr == NULL) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// Always NULL result, in case of failure
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
if ( aIID.Equals(kIScriptObjectOwnerIID)) {
|
||||
*aInstancePtr = (void*) ((nsIScriptObjectOwner*)this);
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
if ( aIID.Equals(kIDOMBaseAppCoreIID)) {
|
||||
*aInstancePtr = (void*) ((nsIDOMBaseAppCore*)this);
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
else if ( aIID.Equals(kISupportsIID) ) {
|
||||
*aInstancePtr = (void*)(nsISupports*)(nsIScriptObjectOwner*)this;
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return NS_NOINTERFACE;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBaseAppCore::SetScriptObject(void *aScriptObject)
|
||||
{
|
||||
mScriptObject = aScriptObject;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBaseAppCore::Init(const nsString& aId)
|
||||
{
|
||||
|
||||
mId = aId;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBaseAppCore::GetId(nsString& aId)
|
||||
{
|
||||
aId = mId;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
nsIScriptContext *
|
||||
nsBaseAppCore::GetScriptContext(nsIDOMWindow * aWin)
|
||||
{
|
||||
nsIScriptContext * scriptContext = nsnull;
|
||||
if (nsnull != aWin) {
|
||||
nsIDOMDocument * domDoc;
|
||||
aWin->GetDocument(&domDoc);
|
||||
if (nsnull != domDoc) {
|
||||
nsIDocument * doc;
|
||||
if (NS_OK == domDoc->QueryInterface(kIDocumentIID,(void**)&doc)) {
|
||||
nsIScriptContextOwner * owner = doc->GetScriptContextOwner();
|
||||
if (nsnull != owner) {
|
||||
owner->GetScriptContext(&scriptContext);
|
||||
NS_RELEASE(owner);
|
||||
}
|
||||
NS_RELEASE(doc);
|
||||
}
|
||||
NS_RELEASE(domDoc);
|
||||
}
|
||||
}
|
||||
return scriptContext;
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
nsCOMPtr<nsIDOMNode> nsBaseAppCore::FindNamedDOMNode(const nsString &aName, nsIDOMNode * aParent, PRInt32 & aCount, PRInt32 aEndCount)
|
||||
{
|
||||
nsCOMPtr<nsIDOMNode> node;
|
||||
aParent->GetFirstChild(getter_AddRefs(node));
|
||||
while (node) {
|
||||
nsString name;
|
||||
node->GetNodeName(name);
|
||||
//printf("FindNamedDOMNode[%s] %d == %d\n", nsAutoCString(name), aCount, aEndCount);
|
||||
if (name.Equals(aName)) {
|
||||
aCount++;
|
||||
if (aCount == aEndCount)
|
||||
return node;
|
||||
}
|
||||
PRBool hasChildren;
|
||||
node->HasChildNodes(&hasChildren);
|
||||
if (hasChildren) {
|
||||
nsCOMPtr<nsIDOMNode> found(FindNamedDOMNode(aName, node, aCount, aEndCount));
|
||||
if (found)
|
||||
return found;
|
||||
}
|
||||
nsCOMPtr<nsIDOMNode> oldNode = node;
|
||||
oldNode->GetNextSibling(getter_AddRefs(node));
|
||||
}
|
||||
node = nsnull;
|
||||
return node;
|
||||
|
||||
} // nsToolbarCore::FindNamedDOMNode
|
||||
|
||||
//----------------------------------------
|
||||
nsCOMPtr<nsIDOMNode> nsBaseAppCore::GetParentNodeFromDOMDoc(nsIDOMDocument * aDOMDoc)
|
||||
{
|
||||
nsCOMPtr<nsIDOMNode> node; // null
|
||||
|
||||
if (nsnull == aDOMDoc) {
|
||||
return node;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIDOMElement> element;
|
||||
aDOMDoc->GetDocumentElement(getter_AddRefs(element));
|
||||
if (element)
|
||||
return nsCOMPtr<nsIDOMNode>(element);
|
||||
return node;
|
||||
} // nsToolbarCore::GetParentNodeFromDOMDoc
|
||||
63
mozilla/xpfe/AppCores/nsBaseAppCore.h
Normal file
63
mozilla/xpfe/AppCores/nsBaseAppCore.h
Normal file
@ -0,0 +1,63 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsBaseAppCore_h___
|
||||
#define nsBaseAppCore_h___
|
||||
|
||||
#include "nsAppCores.h"
|
||||
|
||||
//#include "nscore.h"
|
||||
#include "nsString.h"
|
||||
#include "nsISupports.h"
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
#include "nsIDOMBaseAppCore.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
class nsIDOMNode;
|
||||
class nsIDOMDocument;
|
||||
class nsIScriptContext;
|
||||
class nsIDOMWindow;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsBaseAppCore:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class nsBaseAppCore : public nsIScriptObjectOwner, public nsIDOMBaseAppCore
|
||||
{
|
||||
public:
|
||||
|
||||
nsBaseAppCore();
|
||||
~nsBaseAppCore();
|
||||
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
//NS_IMETHOD GetScriptObject(nsIScriptContext *aContext, void** aScriptObject);
|
||||
NS_IMETHOD SetScriptObject(void* aScriptObject);
|
||||
|
||||
NS_IMETHOD Init(const nsString& aId);
|
||||
NS_IMETHOD GetId(nsString& aId);
|
||||
|
||||
protected:
|
||||
nsCOMPtr<nsIDOMNode> FindNamedDOMNode(const nsString &aName, nsIDOMNode * aParent, PRInt32 & aCount, PRInt32 aEndCount);
|
||||
nsCOMPtr<nsIDOMNode> GetParentNodeFromDOMDoc(nsIDOMDocument * aDOMDoc);
|
||||
nsIScriptContext * GetScriptContext(nsIDOMWindow * aWin);
|
||||
|
||||
nsString mId; /* User ID */
|
||||
void *mScriptObject;
|
||||
};
|
||||
|
||||
#endif // nsBaseAppCore_h___
|
||||
202
mozilla/xpfe/AppCores/nsBrowserAppCore.cpp
Normal file
202
mozilla/xpfe/AppCores/nsBrowserAppCore.cpp
Normal file
@ -0,0 +1,202 @@
|
||||
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "nsBrowserAppCore.h"
|
||||
#include "nsIBrowserWindow.h"
|
||||
#include "nsIWebShell.h"
|
||||
#include "pratom.h"
|
||||
#include "nsRepository.h"
|
||||
#include "nsAppCores.h"
|
||||
#include "nsAppCoresCIDs.h"
|
||||
#include "nsAppCoresManager.h"
|
||||
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIScriptContextOwner.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
|
||||
|
||||
// Globals
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIBrowserAppCoreIID, NS_IDOMBROWSERAPPCORE_IID);
|
||||
|
||||
static NS_DEFINE_IID(kIDOMDocumentIID, nsIDOMDocument::IID());
|
||||
static NS_DEFINE_IID(kIDocumentIID, nsIDocument::IID());
|
||||
|
||||
static NS_DEFINE_IID(kBrowserAppCoreCID, NS_BROWSERAPPCORE_CID);
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsBrowserAppCore
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsBrowserAppCore::nsBrowserAppCore()
|
||||
{
|
||||
printf("Created nsBrowserAppCore\n");
|
||||
|
||||
mScriptObject = nsnull;
|
||||
mToolbarWindow = nsnull;
|
||||
mToolbarScriptContext = nsnull;
|
||||
mContentWindow = nsnull;
|
||||
mContentScriptContext = nsnull;
|
||||
|
||||
IncInstanceCount();
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
nsBrowserAppCore::~nsBrowserAppCore()
|
||||
{
|
||||
NS_IF_RELEASE(mToolbarWindow);
|
||||
NS_IF_RELEASE(mToolbarScriptContext);
|
||||
NS_IF_RELEASE(mContentWindow);
|
||||
NS_IF_RELEASE(mContentScriptContext);
|
||||
DecInstanceCount();
|
||||
}
|
||||
|
||||
|
||||
NS_IMPL_ADDREF(nsBrowserAppCore)
|
||||
NS_IMPL_RELEASE(nsBrowserAppCore)
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::QueryInterface(REFNSIID aIID,void** aInstancePtr)
|
||||
{
|
||||
if (aInstancePtr == NULL) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// Always NULL result, in case of failure
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
if ( aIID.Equals(kIBrowserAppCoreIID) ) {
|
||||
*aInstancePtr = (void*) ((nsIDOMBrowserAppCore*)this);
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return nsBaseAppCore::QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject)
|
||||
{
|
||||
NS_PRECONDITION(nsnull != aScriptObject, "null arg");
|
||||
nsresult res = NS_OK;
|
||||
if (nsnull == mScriptObject)
|
||||
{
|
||||
res = NS_NewScriptBrowserAppCore(aContext,
|
||||
(nsISupports *)(nsIDOMBrowserAppCore*)this,
|
||||
nsnull,
|
||||
&mScriptObject);
|
||||
}
|
||||
|
||||
*aScriptObject = mScriptObject;
|
||||
return res;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::Init(const nsString& aId)
|
||||
{
|
||||
|
||||
nsBaseAppCore::Init(aId);
|
||||
|
||||
nsAppCoresManager* sdm = new nsAppCoresManager();
|
||||
sdm->Add((nsIDOMBaseAppCore *)(nsBaseAppCore *)this);
|
||||
delete sdm;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::Back()
|
||||
{
|
||||
ExecuteScript(mToolbarScriptContext, mDisableScript);
|
||||
ExecuteScript(mContentScriptContext, "window.back()");
|
||||
ExecuteScript(mToolbarScriptContext, mEnableScript);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::Forward()
|
||||
{
|
||||
ExecuteScript(mToolbarScriptContext, mDisableScript);
|
||||
ExecuteScript(mContentScriptContext, "window.forward()");
|
||||
ExecuteScript(mToolbarScriptContext, mEnableScript);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::DisableCallback(const nsString& aScript)
|
||||
{
|
||||
mDisableScript = aScript;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::EnableCallback(const nsString& aScript)
|
||||
{
|
||||
mEnableScript = aScript;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::LoadUrl(const nsString& aUrl)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::SetToolbarWindow(nsIDOMWindow* aWin)
|
||||
{
|
||||
mToolbarWindow = aWin;
|
||||
NS_ADDREF(aWin);
|
||||
mToolbarScriptContext = GetScriptContext(aWin);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::SetContentWindow(nsIDOMWindow* aWin)
|
||||
{
|
||||
mContentWindow = aWin;
|
||||
NS_ADDREF(aWin);
|
||||
mContentScriptContext = GetScriptContext(aWin);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCore::ExecuteScript(nsIScriptContext * aContext, const nsString& aScript)
|
||||
{
|
||||
if (nsnull != aContext) {
|
||||
const char* url = "";
|
||||
PRBool isUndefined = PR_FALSE;
|
||||
nsString rVal;
|
||||
aContext->EvaluateString(aScript, url, 0, rVal, &isUndefined);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
74
mozilla/xpfe/AppCores/nsBrowserAppCore.h
Normal file
74
mozilla/xpfe/AppCores/nsBrowserAppCore.h
Normal file
@ -0,0 +1,74 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsBrowserAppCore_h___
|
||||
#define nsBrowserAppCore_h___
|
||||
|
||||
//#include "nsAppCores.h"
|
||||
|
||||
#include "nscore.h"
|
||||
#include "nsString.h"
|
||||
#include "nsISupports.h"
|
||||
|
||||
#include "nsIDOMBrowserAppCore.h"
|
||||
#include "nsBaseAppCore.h"
|
||||
|
||||
class nsIBrowserWindow;
|
||||
class nsIWebShell;
|
||||
class nsIScriptContext;
|
||||
class nsIDOMWindow;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsBrowserAppCore:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class nsBrowserAppCore : public nsBaseAppCore,
|
||||
public nsIDOMBrowserAppCore
|
||||
{
|
||||
public:
|
||||
|
||||
nsBrowserAppCore();
|
||||
~nsBrowserAppCore();
|
||||
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_IMETHOD GetScriptObject(nsIScriptContext *aContext, void** aScriptObject);
|
||||
NS_IMETHOD Init(const nsString& aId);
|
||||
NS_IMETHOD GetId(nsString& aId) { return nsBaseAppCore::GetId(aId); }
|
||||
|
||||
NS_IMETHOD Back();
|
||||
NS_IMETHOD Forward();
|
||||
NS_IMETHOD LoadUrl(const nsString& aUrl);
|
||||
NS_IMETHOD SetToolbarWindow(nsIDOMWindow* aWin);
|
||||
NS_IMETHOD SetContentWindow(nsIDOMWindow* aWin);
|
||||
NS_IMETHOD DisableCallback(const nsString& aScript);
|
||||
NS_IMETHOD EnableCallback(const nsString& aScript);
|
||||
|
||||
protected:
|
||||
NS_IMETHOD ExecuteScript(nsIScriptContext * aContext, const nsString& aScript);
|
||||
|
||||
nsString mEnableScript;
|
||||
nsString mDisableScript;
|
||||
|
||||
nsIScriptContext *mToolbarScriptContext;
|
||||
nsIScriptContext *mContentScriptContext;
|
||||
|
||||
nsIDOMWindow *mToolbarWindow;
|
||||
nsIDOMWindow *mContentWindow;
|
||||
};
|
||||
|
||||
#endif // nsBrowserAppCore_h___
|
||||
131
mozilla/xpfe/AppCores/nsBrowserAppCoreFactory.cpp
Normal file
131
mozilla/xpfe/AppCores/nsBrowserAppCoreFactory.cpp
Normal file
@ -0,0 +1,131 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "nsAppCores.h"
|
||||
#include "nsBrowserAppCoreFactory.h"
|
||||
#include "nsBrowserAppCore.h"
|
||||
#include "pratom.h"
|
||||
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsBrowserAppCoreFactory
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsBrowserAppCoreFactory::nsBrowserAppCoreFactory(void)
|
||||
{
|
||||
mRefCnt=0;
|
||||
IncInstanceCount();
|
||||
}
|
||||
|
||||
nsBrowserAppCoreFactory::~nsBrowserAppCoreFactory(void)
|
||||
{
|
||||
DecInstanceCount();
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCoreFactory::QueryInterface(REFNSIID aIID,void** aInstancePtr)
|
||||
{
|
||||
if (aInstancePtr == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// Always NULL result, in case of failure
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
if ( aIID.Equals(kISupportsIID) )
|
||||
{
|
||||
*aInstancePtr = (void*) this;
|
||||
}
|
||||
else if ( aIID.Equals(kIFactoryIID) )
|
||||
{
|
||||
*aInstancePtr = (void*) this;
|
||||
}
|
||||
|
||||
if (aInstancePtr == NULL)
|
||||
{
|
||||
return NS_ERROR_NO_INTERFACE;
|
||||
}
|
||||
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCoreFactory::AddRef(void)
|
||||
{
|
||||
return ++mRefCnt;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCoreFactory::Release(void)
|
||||
{
|
||||
if (--mRefCnt ==0)
|
||||
{
|
||||
delete this;
|
||||
return 0; // Don't access mRefCnt after deleting!
|
||||
}
|
||||
|
||||
return mRefCnt;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCoreFactory::CreateInstance(nsISupports *aOuter, REFNSIID aIID, void **aResult)
|
||||
{
|
||||
if (aResult == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*aResult = NULL;
|
||||
|
||||
/* do I have to use iSupports? */
|
||||
nsBrowserAppCore *inst = new nsBrowserAppCore();
|
||||
|
||||
if (inst == NULL)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsresult result = inst->QueryInterface(aIID, aResult);
|
||||
|
||||
if (result != NS_OK)
|
||||
delete inst;
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsBrowserAppCoreFactory::LockFactory(PRBool aLock)
|
||||
{
|
||||
if (aLock)
|
||||
IncLockCount();
|
||||
else
|
||||
DecLockCount();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
49
mozilla/xpfe/AppCores/nsBrowserAppCoreFactory.h
Normal file
49
mozilla/xpfe/AppCores/nsBrowserAppCoreFactory.h
Normal file
@ -0,0 +1,49 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsBrowserAppCoreFactory_h___
|
||||
#define nsBrowserAppCoreFactory_h___
|
||||
|
||||
//#include "nscore.h"
|
||||
//#include "nsString.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nsISupports.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsBrowserAppCoreFactory:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class nsBrowserAppCoreFactory : public nsIFactory
|
||||
{
|
||||
public:
|
||||
|
||||
nsBrowserAppCoreFactory();
|
||||
~nsBrowserAppCoreFactory();
|
||||
|
||||
PRBool CanUnload(void);
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD CreateInstance(nsISupports *aOuter,
|
||||
REFNSIID aIID,
|
||||
void **aResult);
|
||||
|
||||
NS_IMETHOD LockFactory(PRBool aLock);
|
||||
|
||||
};
|
||||
|
||||
#endif // nsBrowserAppCoreFactory_h___
|
||||
70
mozilla/xpfe/AppCores/nsIDOMAppCores.h
Normal file
70
mozilla/xpfe/AppCores/nsIDOMAppCores.h
Normal file
@ -0,0 +1,70 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#ifndef nsIDOMAppCores_h__
|
||||
#define nsIDOMAppCores_h__
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIScriptContext.h"
|
||||
|
||||
class nsIDOMBaseAppCore;
|
||||
|
||||
#define NS_IDOMAPPCORES_IID \
|
||||
{ 0x18c2f981, 0xb09f, 0x11d2, \
|
||||
{0xbc, 0xde, 0x00, 0x80, 0x5f, 0x0e, 0x13, 0x53}}
|
||||
|
||||
class nsIDOMAppCores : public nsISupports {
|
||||
public:
|
||||
static const nsIID& IID() { static nsIID iid = NS_IDOMAPPCORES_IID; return iid; }
|
||||
|
||||
NS_IMETHOD Startup()=0;
|
||||
|
||||
NS_IMETHOD Shutdown()=0;
|
||||
|
||||
NS_IMETHOD Add(nsIDOMBaseAppCore* aAppcore)=0;
|
||||
|
||||
NS_IMETHOD Remove(nsIDOMBaseAppCore* aAppcore)=0;
|
||||
|
||||
NS_IMETHOD Find(const nsString& aId, nsIDOMBaseAppCore** aReturn)=0;
|
||||
};
|
||||
|
||||
|
||||
#define NS_DECL_IDOMAPPCORES \
|
||||
NS_IMETHOD Startup(); \
|
||||
NS_IMETHOD Shutdown(); \
|
||||
NS_IMETHOD Add(nsIDOMBaseAppCore* aAppcore); \
|
||||
NS_IMETHOD Remove(nsIDOMBaseAppCore* aAppcore); \
|
||||
NS_IMETHOD Find(const nsString& aId, nsIDOMBaseAppCore** aReturn); \
|
||||
|
||||
|
||||
|
||||
#define NS_FORWARD_IDOMAPPCORES(_to) \
|
||||
NS_IMETHOD Startup() { return _to##Startup(); } \
|
||||
NS_IMETHOD Shutdown() { return _to##Shutdown(); } \
|
||||
NS_IMETHOD Add(nsIDOMBaseAppCore* aAppcore) { return _to##Add(aAppcore); } \
|
||||
NS_IMETHOD Remove(nsIDOMBaseAppCore* aAppcore) { return _to##Remove(aAppcore); } \
|
||||
NS_IMETHOD Find(const nsString& aId, nsIDOMBaseAppCore** aReturn) { return _to##Find(aId, aReturn); } \
|
||||
|
||||
|
||||
extern nsresult NS_InitAppCoresClass(nsIScriptContext *aContext, void **aPrototype);
|
||||
|
||||
extern "C" NS_DOM nsresult NS_NewScriptAppCores(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn);
|
||||
|
||||
#endif // nsIDOMAppCores_h__
|
||||
57
mozilla/xpfe/AppCores/nsIDOMBaseAppCore.h
Normal file
57
mozilla/xpfe/AppCores/nsIDOMBaseAppCore.h
Normal file
@ -0,0 +1,57 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#ifndef nsIDOMBaseAppCore_h__
|
||||
#define nsIDOMBaseAppCore_h__
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIScriptContext.h"
|
||||
|
||||
|
||||
#define NS_IDOMBASEAPPCORE_IID \
|
||||
{ 0xbe5c13bd, 0xba9f, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56}}
|
||||
|
||||
class nsIDOMBaseAppCore : public nsISupports {
|
||||
public:
|
||||
static const nsIID& IID() { static nsIID iid = NS_IDOMBASEAPPCORE_IID; return iid; }
|
||||
|
||||
NS_IMETHOD GetId(nsString& aId)=0;
|
||||
|
||||
NS_IMETHOD Init(const nsString& aId)=0;
|
||||
};
|
||||
|
||||
|
||||
#define NS_DECL_IDOMBASEAPPCORE \
|
||||
NS_IMETHOD GetId(nsString& aId); \
|
||||
NS_IMETHOD Init(const nsString& aId); \
|
||||
|
||||
|
||||
|
||||
#define NS_FORWARD_IDOMBASEAPPCORE(_to) \
|
||||
NS_IMETHOD GetId(nsString& aId) { return _to##GetId(aId); } \
|
||||
NS_IMETHOD Init(const nsString& aId) { return _to##Init(aId); } \
|
||||
|
||||
|
||||
extern nsresult NS_InitBaseAppCoreClass(nsIScriptContext *aContext, void **aPrototype);
|
||||
|
||||
extern "C" NS_DOM nsresult NS_NewScriptBaseAppCore(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn);
|
||||
|
||||
#endif // nsIDOMBaseAppCore_h__
|
||||
79
mozilla/xpfe/AppCores/nsIDOMBrowserAppCore.h
Normal file
79
mozilla/xpfe/AppCores/nsIDOMBrowserAppCore.h
Normal file
@ -0,0 +1,79 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#ifndef nsIDOMBrowserAppCore_h__
|
||||
#define nsIDOMBrowserAppCore_h__
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIDOMBaseAppCore.h"
|
||||
|
||||
class nsIDOMWindow;
|
||||
|
||||
#define NS_IDOMBROWSERAPPCORE_IID \
|
||||
{ 0xb0ffb697, 0xbab4, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56}}
|
||||
|
||||
class nsIDOMBrowserAppCore : public nsIDOMBaseAppCore {
|
||||
public:
|
||||
static const nsIID& IID() { static nsIID iid = NS_IDOMBROWSERAPPCORE_IID; return iid; }
|
||||
|
||||
NS_IMETHOD Back()=0;
|
||||
|
||||
NS_IMETHOD Forward()=0;
|
||||
|
||||
NS_IMETHOD LoadUrl(const nsString& aUrl)=0;
|
||||
|
||||
NS_IMETHOD SetToolbarWindow(nsIDOMWindow* aWin)=0;
|
||||
|
||||
NS_IMETHOD SetContentWindow(nsIDOMWindow* aWin)=0;
|
||||
|
||||
NS_IMETHOD DisableCallback(const nsString& aScript)=0;
|
||||
|
||||
NS_IMETHOD EnableCallback(const nsString& aScript)=0;
|
||||
};
|
||||
|
||||
|
||||
#define NS_DECL_IDOMBROWSERAPPCORE \
|
||||
NS_IMETHOD Back(); \
|
||||
NS_IMETHOD Forward(); \
|
||||
NS_IMETHOD LoadUrl(const nsString& aUrl); \
|
||||
NS_IMETHOD SetToolbarWindow(nsIDOMWindow* aWin); \
|
||||
NS_IMETHOD SetContentWindow(nsIDOMWindow* aWin); \
|
||||
NS_IMETHOD DisableCallback(const nsString& aScript); \
|
||||
NS_IMETHOD EnableCallback(const nsString& aScript); \
|
||||
|
||||
|
||||
|
||||
#define NS_FORWARD_IDOMBROWSERAPPCORE(_to) \
|
||||
NS_IMETHOD Back() { return _to##Back(); } \
|
||||
NS_IMETHOD Forward() { return _to##Forward(); } \
|
||||
NS_IMETHOD LoadUrl(const nsString& aUrl) { return _to##LoadUrl(aUrl); } \
|
||||
NS_IMETHOD SetToolbarWindow(nsIDOMWindow* aWin) { return _to##SetToolbarWindow(aWin); } \
|
||||
NS_IMETHOD SetContentWindow(nsIDOMWindow* aWin) { return _to##SetContentWindow(aWin); } \
|
||||
NS_IMETHOD DisableCallback(const nsString& aScript) { return _to##DisableCallback(aScript); } \
|
||||
NS_IMETHOD EnableCallback(const nsString& aScript) { return _to##EnableCallback(aScript); } \
|
||||
|
||||
|
||||
extern nsresult NS_InitBrowserAppCoreClass(nsIScriptContext *aContext, void **aPrototype);
|
||||
|
||||
extern "C" NS_DOM nsresult NS_NewScriptBrowserAppCore(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn);
|
||||
|
||||
#endif // nsIDOMBrowserAppCore_h__
|
||||
63
mozilla/xpfe/AppCores/nsIDOMMailCore.h
Normal file
63
mozilla/xpfe/AppCores/nsIDOMMailCore.h
Normal file
@ -0,0 +1,63 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#ifndef nsIDOMMailCore_h__
|
||||
#define nsIDOMMailCore_h__
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIDOMBaseAppCore.h"
|
||||
|
||||
class nsIDOMWindow;
|
||||
|
||||
#define NS_IDOMMAILCORE_IID \
|
||||
{ 0x18c2f980, 0xb09f, 0x11d2, \
|
||||
{0xbc, 0xde, 0x00, 0x80, 0x5f, 0x0e, 0x13, 0x53}}
|
||||
|
||||
class nsIDOMMailCore : public nsIDOMBaseAppCore {
|
||||
public:
|
||||
static const nsIID& IID() { static nsIID iid = NS_IDOMMAILCORE_IID; return iid; }
|
||||
|
||||
NS_IMETHOD SendMail(const nsString& aAddrTo, const nsString& aSubject, const nsString& aMsg)=0;
|
||||
|
||||
NS_IMETHOD MailCompleteCallback(const nsString& aScript)=0;
|
||||
|
||||
NS_IMETHOD SetWindow(nsIDOMWindow* aWin)=0;
|
||||
};
|
||||
|
||||
|
||||
#define NS_DECL_IDOMMAILCORE \
|
||||
NS_IMETHOD SendMail(const nsString& aAddrTo, const nsString& aSubject, const nsString& aMsg); \
|
||||
NS_IMETHOD MailCompleteCallback(const nsString& aScript); \
|
||||
NS_IMETHOD SetWindow(nsIDOMWindow* aWin); \
|
||||
|
||||
|
||||
|
||||
#define NS_FORWARD_IDOMMAILCORE(_to) \
|
||||
NS_IMETHOD SendMail(const nsString& aAddrTo, const nsString& aSubject, const nsString& aMsg) { return _to##SendMail(aAddrTo, aSubject, aMsg); } \
|
||||
NS_IMETHOD MailCompleteCallback(const nsString& aScript) { return _to##MailCompleteCallback(aScript); } \
|
||||
NS_IMETHOD SetWindow(nsIDOMWindow* aWin) { return _to##SetWindow(aWin); } \
|
||||
|
||||
|
||||
extern nsresult NS_InitMailCoreClass(nsIScriptContext *aContext, void **aPrototype);
|
||||
|
||||
extern "C" NS_DOM nsresult NS_NewScriptMailCore(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn);
|
||||
|
||||
#endif // nsIDOMMailCore_h__
|
||||
59
mozilla/xpfe/AppCores/nsIDOMToolbarCore.h
Normal file
59
mozilla/xpfe/AppCores/nsIDOMToolbarCore.h
Normal file
@ -0,0 +1,59 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#ifndef nsIDOMToolbarCore_h__
|
||||
#define nsIDOMToolbarCore_h__
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIDOMBaseAppCore.h"
|
||||
|
||||
class nsIDOMWindow;
|
||||
|
||||
#define NS_IDOMTOOLBARCORE_IID \
|
||||
{ 0xbf4ae23e, 0xba9b, 0x11d2, \
|
||||
{0x96, 0xc4, 0x0, 0x60, 0xb0, 0xfb, 0x99, 0x56}}
|
||||
|
||||
class nsIDOMToolbarCore : public nsIDOMBaseAppCore {
|
||||
public:
|
||||
static const nsIID& IID() { static nsIID iid = NS_IDOMTOOLBARCORE_IID; return iid; }
|
||||
|
||||
NS_IMETHOD SetWindow(nsIDOMWindow* aWin)=0;
|
||||
|
||||
NS_IMETHOD SetStatus(const nsString& aMsg)=0;
|
||||
};
|
||||
|
||||
|
||||
#define NS_DECL_IDOMTOOLBARCORE \
|
||||
NS_IMETHOD SetWindow(nsIDOMWindow* aWin); \
|
||||
NS_IMETHOD SetStatus(const nsString& aMsg); \
|
||||
|
||||
|
||||
|
||||
#define NS_FORWARD_IDOMTOOLBARCORE(_to) \
|
||||
NS_IMETHOD SetWindow(nsIDOMWindow* aWin) { return _to##SetWindow(aWin); } \
|
||||
NS_IMETHOD SetStatus(const nsString& aMsg) { return _to##SetStatus(aMsg); } \
|
||||
|
||||
|
||||
extern nsresult NS_InitToolbarCoreClass(nsIScriptContext *aContext, void **aPrototype);
|
||||
|
||||
extern "C" NS_DOM nsresult NS_NewScriptToolbarCore(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn);
|
||||
|
||||
#endif // nsIDOMToolbarCore_h__
|
||||
463
mozilla/xpfe/AppCores/nsJSAppCores.cpp
Normal file
463
mozilla/xpfe/AppCores/nsJSAppCores.cpp
Normal file
@ -0,0 +1,463 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#include "jsapi.h"
|
||||
#include "nsJSUtils.h"
|
||||
#include "nscore.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIJSScriptObject.h"
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsIPtr.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIDOMBaseAppCore.h"
|
||||
#include "nsIDOMAppCores.h"
|
||||
|
||||
|
||||
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
|
||||
static NS_DEFINE_IID(kIJSScriptObjectIID, NS_IJSSCRIPTOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIScriptGlobalObjectIID, NS_ISCRIPTGLOBALOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIBaseAppCoreIID, NS_IDOMBASEAPPCORE_IID);
|
||||
static NS_DEFINE_IID(kIAppCoresIID, NS_IDOMAPPCORES_IID);
|
||||
|
||||
NS_DEF_PTR(nsIDOMBaseAppCore);
|
||||
NS_DEF_PTR(nsIDOMAppCores);
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// AppCores Properties Getter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
GetAppCoresProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMAppCores *a = (nsIDOMAppCores*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case 0:
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// AppCores Properties Setter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
SetAppCoresProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMAppCores *a = (nsIDOMAppCores*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case 0:
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// AppCores finalizer
|
||||
//
|
||||
PR_STATIC_CALLBACK(void)
|
||||
FinalizeAppCores(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
nsJSUtils::nsGenericFinalize(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// AppCores enumerate
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
EnumerateAppCores(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
return nsJSUtils::nsGenericEnumerate(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// AppCores resolve
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
ResolveAppCores(JSContext *cx, JSObject *obj, jsval id)
|
||||
{
|
||||
return nsJSUtils::nsGenericResolve(cx, obj, id);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method Startup
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
AppCoresStartup(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMAppCores *nativeThis = (nsIDOMAppCores*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 0) {
|
||||
|
||||
if (NS_OK != nativeThis->Startup()) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function Startup requires 0 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method Shutdown
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
AppCoresShutdown(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMAppCores *nativeThis = (nsIDOMAppCores*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 0) {
|
||||
|
||||
if (NS_OK != nativeThis->Shutdown()) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function Shutdown requires 0 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method Add
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
AppCoresAdd(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMAppCores *nativeThis = (nsIDOMAppCores*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsIDOMBaseAppCorePtr b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
|
||||
kIBaseAppCoreIID,
|
||||
"BaseAppCore",
|
||||
cx,
|
||||
argv[0])) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (NS_OK != nativeThis->Add(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function Add requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method Remove
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
AppCoresRemove(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMAppCores *nativeThis = (nsIDOMAppCores*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsIDOMBaseAppCorePtr b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
|
||||
kIBaseAppCoreIID,
|
||||
"BaseAppCore",
|
||||
cx,
|
||||
argv[0])) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (NS_OK != nativeThis->Remove(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function Remove requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method Find
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
AppCoresFind(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMAppCores *nativeThis = (nsIDOMAppCores*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsIDOMBaseAppCore* nativeRet;
|
||||
nsAutoString b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
|
||||
|
||||
if (NS_OK != nativeThis->Find(b0, &nativeRet)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
nsJSUtils::nsConvertObjectToJSVal(nativeRet, cx, rval);
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function Find requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// class for AppCores
|
||||
//
|
||||
JSClass AppCoresClass = {
|
||||
"AppCores",
|
||||
JSCLASS_HAS_PRIVATE,
|
||||
JS_PropertyStub,
|
||||
JS_PropertyStub,
|
||||
GetAppCoresProperty,
|
||||
SetAppCoresProperty,
|
||||
EnumerateAppCores,
|
||||
ResolveAppCores,
|
||||
JS_ConvertStub,
|
||||
FinalizeAppCores
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// AppCores class properties
|
||||
//
|
||||
static JSPropertySpec AppCoresProperties[] =
|
||||
{
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// AppCores class methods
|
||||
//
|
||||
static JSFunctionSpec AppCoresMethods[] =
|
||||
{
|
||||
{"Startup", AppCoresStartup, 0},
|
||||
{"Shutdown", AppCoresShutdown, 0},
|
||||
{"Add", AppCoresAdd, 1},
|
||||
{"Remove", AppCoresRemove, 1},
|
||||
{"Find", AppCoresFind, 1},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// AppCores constructor
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
AppCores(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// AppCores class initialization
|
||||
//
|
||||
nsresult NS_InitAppCoresClass(nsIScriptContext *aContext, void **aPrototype)
|
||||
{
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
JSObject *proto = nsnull;
|
||||
JSObject *constructor = nsnull;
|
||||
JSObject *parent_proto = nsnull;
|
||||
JSObject *global = JS_GetGlobalObject(jscontext);
|
||||
jsval vp;
|
||||
|
||||
if ((PR_TRUE != JS_LookupProperty(jscontext, global, "AppCores", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp) ||
|
||||
((constructor = JSVAL_TO_OBJECT(vp)) == nsnull) ||
|
||||
(PR_TRUE != JS_LookupProperty(jscontext, JSVAL_TO_OBJECT(vp), "prototype", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp)) {
|
||||
|
||||
proto = JS_InitClass(jscontext, // context
|
||||
global, // global object
|
||||
parent_proto, // parent proto
|
||||
&AppCoresClass, // JSClass
|
||||
AppCores, // JSNative ctor
|
||||
0, // ctor args
|
||||
AppCoresProperties, // proto props
|
||||
AppCoresMethods, // proto funcs
|
||||
nsnull, // ctor props (static)
|
||||
nsnull); // ctor funcs (static)
|
||||
if (nsnull == proto) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
}
|
||||
else if ((nsnull != constructor) && JSVAL_IS_OBJECT(vp)) {
|
||||
proto = JSVAL_TO_OBJECT(vp);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (aPrototype) {
|
||||
*aPrototype = proto;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Method for creating a new AppCores JavaScript object
|
||||
//
|
||||
extern "C" NS_DOM nsresult NS_NewScriptAppCores(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn)
|
||||
{
|
||||
NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptAppCores");
|
||||
JSObject *proto;
|
||||
JSObject *parent;
|
||||
nsIScriptObjectOwner *owner;
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
nsresult result = NS_OK;
|
||||
nsIDOMAppCores *aAppCores;
|
||||
|
||||
if (nsnull == aParent) {
|
||||
parent = nsnull;
|
||||
}
|
||||
else if (NS_OK == aParent->QueryInterface(kIScriptObjectOwnerIID, (void**)&owner)) {
|
||||
if (NS_OK != owner->GetScriptObject(aContext, (void **)&parent)) {
|
||||
NS_RELEASE(owner);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
NS_RELEASE(owner);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (NS_OK != NS_InitAppCoresClass(aContext, (void **)&proto)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
result = aSupports->QueryInterface(kIAppCoresIID, (void **)&aAppCores);
|
||||
if (NS_OK != result) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// create a js object for this class
|
||||
*aReturn = JS_NewObject(jscontext, &AppCoresClass, proto, parent);
|
||||
if (nsnull != *aReturn) {
|
||||
// connect the native object to the js object
|
||||
JS_SetPrivate(jscontext, (JSObject *)*aReturn, aAppCores);
|
||||
}
|
||||
else {
|
||||
NS_RELEASE(aAppCores);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
364
mozilla/xpfe/AppCores/nsJSBaseAppCore.cpp
Normal file
364
mozilla/xpfe/AppCores/nsJSBaseAppCore.cpp
Normal file
@ -0,0 +1,364 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#include "jsapi.h"
|
||||
#include "nsJSUtils.h"
|
||||
#include "nscore.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIJSScriptObject.h"
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsIPtr.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIDOMBaseAppCore.h"
|
||||
#include "nsIScriptNameSpaceManager.h"
|
||||
#include "nsRepository.h"
|
||||
#include "nsDOMCID.h"
|
||||
|
||||
|
||||
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
|
||||
static NS_DEFINE_IID(kIJSScriptObjectIID, NS_IJSSCRIPTOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIScriptGlobalObjectIID, NS_ISCRIPTGLOBALOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIBaseAppCoreIID, NS_IDOMBASEAPPCORE_IID);
|
||||
|
||||
NS_DEF_PTR(nsIDOMBaseAppCore);
|
||||
|
||||
//
|
||||
// BaseAppCore property ids
|
||||
//
|
||||
enum BaseAppCore_slots {
|
||||
BASEAPPCORE_ID = -1
|
||||
};
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// BaseAppCore Properties Getter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
GetBaseAppCoreProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMBaseAppCore *a = (nsIDOMBaseAppCore*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case BASEAPPCORE_ID:
|
||||
{
|
||||
nsAutoString prop;
|
||||
if (NS_OK == a->GetId(prop)) {
|
||||
nsJSUtils::nsConvertStringToJSVal(prop, cx, vp);
|
||||
}
|
||||
else {
|
||||
return JS_FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// BaseAppCore Properties Setter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
SetBaseAppCoreProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMBaseAppCore *a = (nsIDOMBaseAppCore*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case 0:
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// BaseAppCore finalizer
|
||||
//
|
||||
PR_STATIC_CALLBACK(void)
|
||||
FinalizeBaseAppCore(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
nsJSUtils::nsGenericFinalize(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// BaseAppCore enumerate
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
EnumerateBaseAppCore(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
return nsJSUtils::nsGenericEnumerate(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// BaseAppCore resolve
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
ResolveBaseAppCore(JSContext *cx, JSObject *obj, jsval id)
|
||||
{
|
||||
return nsJSUtils::nsGenericResolve(cx, obj, id);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method Init
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BaseAppCoreInit(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMBaseAppCore *nativeThis = (nsIDOMBaseAppCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsAutoString b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
|
||||
|
||||
if (NS_OK != nativeThis->Init(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function Init requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// class for BaseAppCore
|
||||
//
|
||||
JSClass BaseAppCoreClass = {
|
||||
"BaseAppCore",
|
||||
JSCLASS_HAS_PRIVATE,
|
||||
JS_PropertyStub,
|
||||
JS_PropertyStub,
|
||||
GetBaseAppCoreProperty,
|
||||
SetBaseAppCoreProperty,
|
||||
EnumerateBaseAppCore,
|
||||
ResolveBaseAppCore,
|
||||
JS_ConvertStub,
|
||||
FinalizeBaseAppCore
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// BaseAppCore class properties
|
||||
//
|
||||
static JSPropertySpec BaseAppCoreProperties[] =
|
||||
{
|
||||
{"id", BASEAPPCORE_ID, JSPROP_ENUMERATE | JSPROP_READONLY},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// BaseAppCore class methods
|
||||
//
|
||||
static JSFunctionSpec BaseAppCoreMethods[] =
|
||||
{
|
||||
{"Init", BaseAppCoreInit, 1},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// BaseAppCore constructor
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BaseAppCore(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsresult result;
|
||||
nsIID classID;
|
||||
nsIScriptContext* context = (nsIScriptContext*)JS_GetContextPrivate(cx);
|
||||
nsIScriptNameSpaceManager* manager;
|
||||
nsIDOMBaseAppCore *nativeThis;
|
||||
nsIScriptObjectOwner *owner = nsnull;
|
||||
|
||||
static NS_DEFINE_IID(kIDOMBaseAppCoreIID, NS_IDOMBASEAPPCORE_IID);
|
||||
|
||||
result = context->GetNameSpaceManager(&manager);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
result = manager->LookupName("BaseAppCore", PR_TRUE, classID);
|
||||
NS_RELEASE(manager);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
result = nsRepository::CreateInstance(classID,
|
||||
nsnull,
|
||||
kIDOMBaseAppCoreIID,
|
||||
(void **)&nativeThis);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
// XXX We should be calling Init() on the instance
|
||||
|
||||
result = nativeThis->QueryInterface(kIScriptObjectOwnerIID, (void **)&owner);
|
||||
if (NS_OK != result) {
|
||||
NS_RELEASE(nativeThis);
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
owner->SetScriptObject((void *)obj);
|
||||
JS_SetPrivate(cx, obj, nativeThis);
|
||||
|
||||
NS_RELEASE(owner);
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
// BaseAppCore class initialization
|
||||
//
|
||||
nsresult NS_InitBaseAppCoreClass(nsIScriptContext *aContext, void **aPrototype)
|
||||
{
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
JSObject *proto = nsnull;
|
||||
JSObject *constructor = nsnull;
|
||||
JSObject *parent_proto = nsnull;
|
||||
JSObject *global = JS_GetGlobalObject(jscontext);
|
||||
jsval vp;
|
||||
|
||||
if ((PR_TRUE != JS_LookupProperty(jscontext, global, "BaseAppCore", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp) ||
|
||||
((constructor = JSVAL_TO_OBJECT(vp)) == nsnull) ||
|
||||
(PR_TRUE != JS_LookupProperty(jscontext, JSVAL_TO_OBJECT(vp), "prototype", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp)) {
|
||||
|
||||
proto = JS_InitClass(jscontext, // context
|
||||
global, // global object
|
||||
parent_proto, // parent proto
|
||||
&BaseAppCoreClass, // JSClass
|
||||
BaseAppCore, // JSNative ctor
|
||||
0, // ctor args
|
||||
BaseAppCoreProperties, // proto props
|
||||
BaseAppCoreMethods, // proto funcs
|
||||
nsnull, // ctor props (static)
|
||||
nsnull); // ctor funcs (static)
|
||||
if (nsnull == proto) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
}
|
||||
else if ((nsnull != constructor) && JSVAL_IS_OBJECT(vp)) {
|
||||
proto = JSVAL_TO_OBJECT(vp);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (aPrototype) {
|
||||
*aPrototype = proto;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Method for creating a new BaseAppCore JavaScript object
|
||||
//
|
||||
extern "C" NS_DOM nsresult NS_NewScriptBaseAppCore(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn)
|
||||
{
|
||||
NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptBaseAppCore");
|
||||
JSObject *proto;
|
||||
JSObject *parent;
|
||||
nsIScriptObjectOwner *owner;
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
nsresult result = NS_OK;
|
||||
nsIDOMBaseAppCore *aBaseAppCore;
|
||||
|
||||
if (nsnull == aParent) {
|
||||
parent = nsnull;
|
||||
}
|
||||
else if (NS_OK == aParent->QueryInterface(kIScriptObjectOwnerIID, (void**)&owner)) {
|
||||
if (NS_OK != owner->GetScriptObject(aContext, (void **)&parent)) {
|
||||
NS_RELEASE(owner);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
NS_RELEASE(owner);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (NS_OK != NS_InitBaseAppCoreClass(aContext, (void **)&proto)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
result = aSupports->QueryInterface(kIBaseAppCoreIID, (void **)&aBaseAppCore);
|
||||
if (NS_OK != result) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// create a js object for this class
|
||||
*aReturn = JS_NewObject(jscontext, &BaseAppCoreClass, proto, parent);
|
||||
if (nsnull != *aReturn) {
|
||||
// connect the native object to the js object
|
||||
JS_SetPrivate(jscontext, (JSObject *)*aReturn, aBaseAppCore);
|
||||
}
|
||||
else {
|
||||
NS_RELEASE(aBaseAppCore);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
581
mozilla/xpfe/AppCores/nsJSBrowserAppCore.cpp
Normal file
581
mozilla/xpfe/AppCores/nsJSBrowserAppCore.cpp
Normal file
@ -0,0 +1,581 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#include "jsapi.h"
|
||||
#include "nsJSUtils.h"
|
||||
#include "nscore.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIJSScriptObject.h"
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsIPtr.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIDOMBrowserAppCore.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIScriptNameSpaceManager.h"
|
||||
#include "nsRepository.h"
|
||||
#include "nsDOMCID.h"
|
||||
|
||||
|
||||
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
|
||||
static NS_DEFINE_IID(kIJSScriptObjectIID, NS_IJSSCRIPTOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIScriptGlobalObjectIID, NS_ISCRIPTGLOBALOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIBrowserAppCoreIID, NS_IDOMBROWSERAPPCORE_IID);
|
||||
static NS_DEFINE_IID(kIWindowIID, NS_IDOMWINDOW_IID);
|
||||
|
||||
NS_DEF_PTR(nsIDOMBrowserAppCore);
|
||||
NS_DEF_PTR(nsIDOMWindow);
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// BrowserAppCore Properties Getter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
GetBrowserAppCoreProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMBrowserAppCore *a = (nsIDOMBrowserAppCore*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case 0:
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// BrowserAppCore Properties Setter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
SetBrowserAppCoreProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMBrowserAppCore *a = (nsIDOMBrowserAppCore*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case 0:
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// BrowserAppCore finalizer
|
||||
//
|
||||
PR_STATIC_CALLBACK(void)
|
||||
FinalizeBrowserAppCore(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
nsJSUtils::nsGenericFinalize(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// BrowserAppCore enumerate
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
EnumerateBrowserAppCore(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
return nsJSUtils::nsGenericEnumerate(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// BrowserAppCore resolve
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
ResolveBrowserAppCore(JSContext *cx, JSObject *obj, jsval id)
|
||||
{
|
||||
return nsJSUtils::nsGenericResolve(cx, obj, id);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method Back
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BrowserAppCoreBack(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMBrowserAppCore *nativeThis = (nsIDOMBrowserAppCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 0) {
|
||||
|
||||
if (NS_OK != nativeThis->Back()) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function back requires 0 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method Forward
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BrowserAppCoreForward(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMBrowserAppCore *nativeThis = (nsIDOMBrowserAppCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 0) {
|
||||
|
||||
if (NS_OK != nativeThis->Forward()) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function forward requires 0 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method LoadUrl
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BrowserAppCoreLoadUrl(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMBrowserAppCore *nativeThis = (nsIDOMBrowserAppCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsAutoString b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
|
||||
|
||||
if (NS_OK != nativeThis->LoadUrl(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function loadUrl requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method SetToolbarWindow
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BrowserAppCoreSetToolbarWindow(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMBrowserAppCore *nativeThis = (nsIDOMBrowserAppCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsIDOMWindowPtr b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
|
||||
kIWindowIID,
|
||||
"Window",
|
||||
cx,
|
||||
argv[0])) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (NS_OK != nativeThis->SetToolbarWindow(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function setToolbarWindow requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method SetContentWindow
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BrowserAppCoreSetContentWindow(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMBrowserAppCore *nativeThis = (nsIDOMBrowserAppCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsIDOMWindowPtr b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
|
||||
kIWindowIID,
|
||||
"Window",
|
||||
cx,
|
||||
argv[0])) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (NS_OK != nativeThis->SetContentWindow(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function setContentWindow requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method DisableCallback
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BrowserAppCoreDisableCallback(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMBrowserAppCore *nativeThis = (nsIDOMBrowserAppCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsAutoString b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
|
||||
|
||||
if (NS_OK != nativeThis->DisableCallback(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function disableCallback requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method EnableCallback
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BrowserAppCoreEnableCallback(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMBrowserAppCore *nativeThis = (nsIDOMBrowserAppCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsAutoString b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
|
||||
|
||||
if (NS_OK != nativeThis->EnableCallback(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function enableCallback requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// class for BrowserAppCore
|
||||
//
|
||||
JSClass BrowserAppCoreClass = {
|
||||
"BrowserAppCore",
|
||||
JSCLASS_HAS_PRIVATE,
|
||||
JS_PropertyStub,
|
||||
JS_PropertyStub,
|
||||
GetBrowserAppCoreProperty,
|
||||
SetBrowserAppCoreProperty,
|
||||
EnumerateBrowserAppCore,
|
||||
ResolveBrowserAppCore,
|
||||
JS_ConvertStub,
|
||||
FinalizeBrowserAppCore
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// BrowserAppCore class properties
|
||||
//
|
||||
static JSPropertySpec BrowserAppCoreProperties[] =
|
||||
{
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// BrowserAppCore class methods
|
||||
//
|
||||
static JSFunctionSpec BrowserAppCoreMethods[] =
|
||||
{
|
||||
{"back", BrowserAppCoreBack, 0},
|
||||
{"forward", BrowserAppCoreForward, 0},
|
||||
{"loadUrl", BrowserAppCoreLoadUrl, 1},
|
||||
{"setToolbarWindow", BrowserAppCoreSetToolbarWindow, 1},
|
||||
{"setContentWindow", BrowserAppCoreSetContentWindow, 1},
|
||||
{"disableCallback", BrowserAppCoreDisableCallback, 1},
|
||||
{"enableCallback", BrowserAppCoreEnableCallback, 1},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// BrowserAppCore constructor
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
BrowserAppCore(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsresult result;
|
||||
nsIID classID;
|
||||
nsIScriptContext* context = (nsIScriptContext*)JS_GetContextPrivate(cx);
|
||||
nsIScriptNameSpaceManager* manager;
|
||||
nsIDOMBrowserAppCore *nativeThis;
|
||||
nsIScriptObjectOwner *owner = nsnull;
|
||||
|
||||
static NS_DEFINE_IID(kIDOMBrowserAppCoreIID, NS_IDOMBROWSERAPPCORE_IID);
|
||||
|
||||
result = context->GetNameSpaceManager(&manager);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
result = manager->LookupName("BrowserAppCore", PR_TRUE, classID);
|
||||
NS_RELEASE(manager);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
result = nsRepository::CreateInstance(classID,
|
||||
nsnull,
|
||||
kIDOMBrowserAppCoreIID,
|
||||
(void **)&nativeThis);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
// XXX We should be calling Init() on the instance
|
||||
|
||||
result = nativeThis->QueryInterface(kIScriptObjectOwnerIID, (void **)&owner);
|
||||
if (NS_OK != result) {
|
||||
NS_RELEASE(nativeThis);
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
owner->SetScriptObject((void *)obj);
|
||||
JS_SetPrivate(cx, obj, nativeThis);
|
||||
|
||||
NS_RELEASE(owner);
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
// BrowserAppCore class initialization
|
||||
//
|
||||
nsresult NS_InitBrowserAppCoreClass(nsIScriptContext *aContext, void **aPrototype)
|
||||
{
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
JSObject *proto = nsnull;
|
||||
JSObject *constructor = nsnull;
|
||||
JSObject *parent_proto = nsnull;
|
||||
JSObject *global = JS_GetGlobalObject(jscontext);
|
||||
jsval vp;
|
||||
|
||||
if ((PR_TRUE != JS_LookupProperty(jscontext, global, "BrowserAppCore", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp) ||
|
||||
((constructor = JSVAL_TO_OBJECT(vp)) == nsnull) ||
|
||||
(PR_TRUE != JS_LookupProperty(jscontext, JSVAL_TO_OBJECT(vp), "prototype", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp)) {
|
||||
|
||||
if (NS_OK != NS_InitBaseAppCoreClass(aContext, (void **)&parent_proto)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
proto = JS_InitClass(jscontext, // context
|
||||
global, // global object
|
||||
parent_proto, // parent proto
|
||||
&BrowserAppCoreClass, // JSClass
|
||||
BrowserAppCore, // JSNative ctor
|
||||
0, // ctor args
|
||||
BrowserAppCoreProperties, // proto props
|
||||
BrowserAppCoreMethods, // proto funcs
|
||||
nsnull, // ctor props (static)
|
||||
nsnull); // ctor funcs (static)
|
||||
if (nsnull == proto) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
}
|
||||
else if ((nsnull != constructor) && JSVAL_IS_OBJECT(vp)) {
|
||||
proto = JSVAL_TO_OBJECT(vp);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (aPrototype) {
|
||||
*aPrototype = proto;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Method for creating a new BrowserAppCore JavaScript object
|
||||
//
|
||||
extern "C" NS_DOM nsresult NS_NewScriptBrowserAppCore(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn)
|
||||
{
|
||||
NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptBrowserAppCore");
|
||||
JSObject *proto;
|
||||
JSObject *parent;
|
||||
nsIScriptObjectOwner *owner;
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
nsresult result = NS_OK;
|
||||
nsIDOMBrowserAppCore *aBrowserAppCore;
|
||||
|
||||
if (nsnull == aParent) {
|
||||
parent = nsnull;
|
||||
}
|
||||
else if (NS_OK == aParent->QueryInterface(kIScriptObjectOwnerIID, (void**)&owner)) {
|
||||
if (NS_OK != owner->GetScriptObject(aContext, (void **)&parent)) {
|
||||
NS_RELEASE(owner);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
NS_RELEASE(owner);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (NS_OK != NS_InitBrowserAppCoreClass(aContext, (void **)&proto)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
result = aSupports->QueryInterface(kIBrowserAppCoreIID, (void **)&aBrowserAppCore);
|
||||
if (NS_OK != result) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// create a js object for this class
|
||||
*aReturn = JS_NewObject(jscontext, &BrowserAppCoreClass, proto, parent);
|
||||
if (nsnull != *aReturn) {
|
||||
// connect the native object to the js object
|
||||
JS_SetPrivate(jscontext, (JSObject *)*aReturn, aBrowserAppCore);
|
||||
}
|
||||
else {
|
||||
NS_RELEASE(aBrowserAppCore);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
439
mozilla/xpfe/AppCores/nsJSMailCore.cpp
Normal file
439
mozilla/xpfe/AppCores/nsJSMailCore.cpp
Normal file
@ -0,0 +1,439 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#include "jsapi.h"
|
||||
#include "nsJSUtils.h"
|
||||
#include "nscore.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIJSScriptObject.h"
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsIPtr.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIDOMMailCore.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIScriptNameSpaceManager.h"
|
||||
#include "nsRepository.h"
|
||||
#include "nsDOMCID.h"
|
||||
|
||||
|
||||
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
|
||||
static NS_DEFINE_IID(kIJSScriptObjectIID, NS_IJSSCRIPTOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIScriptGlobalObjectIID, NS_ISCRIPTGLOBALOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIMailCoreIID, NS_IDOMMAILCORE_IID);
|
||||
static NS_DEFINE_IID(kIWindowIID, NS_IDOMWINDOW_IID);
|
||||
|
||||
NS_DEF_PTR(nsIDOMMailCore);
|
||||
NS_DEF_PTR(nsIDOMWindow);
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// MailCore Properties Getter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
GetMailCoreProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMMailCore *a = (nsIDOMMailCore*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case 0:
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// MailCore Properties Setter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
SetMailCoreProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMMailCore *a = (nsIDOMMailCore*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case 0:
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// MailCore finalizer
|
||||
//
|
||||
PR_STATIC_CALLBACK(void)
|
||||
FinalizeMailCore(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
nsJSUtils::nsGenericFinalize(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// MailCore enumerate
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
EnumerateMailCore(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
return nsJSUtils::nsGenericEnumerate(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// MailCore resolve
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
ResolveMailCore(JSContext *cx, JSObject *obj, jsval id)
|
||||
{
|
||||
return nsJSUtils::nsGenericResolve(cx, obj, id);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method SendMail
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
MailCoreSendMail(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMMailCore *nativeThis = (nsIDOMMailCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsAutoString b0;
|
||||
nsAutoString b1;
|
||||
nsAutoString b2;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 3) {
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b1, cx, argv[1]);
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b2, cx, argv[2]);
|
||||
|
||||
if (NS_OK != nativeThis->SendMail(b0, b1, b2)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function SendMail requires 3 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method MailCompleteCallback
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
MailCoreMailCompleteCallback(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMMailCore *nativeThis = (nsIDOMMailCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsAutoString b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
|
||||
|
||||
if (NS_OK != nativeThis->MailCompleteCallback(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function MailCompleteCallback requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method SetWindow
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
MailCoreSetWindow(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMMailCore *nativeThis = (nsIDOMMailCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsIDOMWindowPtr b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
|
||||
kIWindowIID,
|
||||
"Window",
|
||||
cx,
|
||||
argv[0])) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (NS_OK != nativeThis->SetWindow(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function SetWindow requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// class for MailCore
|
||||
//
|
||||
JSClass MailCoreClass = {
|
||||
"MailCore",
|
||||
JSCLASS_HAS_PRIVATE,
|
||||
JS_PropertyStub,
|
||||
JS_PropertyStub,
|
||||
GetMailCoreProperty,
|
||||
SetMailCoreProperty,
|
||||
EnumerateMailCore,
|
||||
ResolveMailCore,
|
||||
JS_ConvertStub,
|
||||
FinalizeMailCore
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// MailCore class properties
|
||||
//
|
||||
static JSPropertySpec MailCoreProperties[] =
|
||||
{
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// MailCore class methods
|
||||
//
|
||||
static JSFunctionSpec MailCoreMethods[] =
|
||||
{
|
||||
{"SendMail", MailCoreSendMail, 3},
|
||||
{"MailCompleteCallback", MailCoreMailCompleteCallback, 1},
|
||||
{"SetWindow", MailCoreSetWindow, 1},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// MailCore constructor
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
MailCore(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsresult result;
|
||||
nsIID classID;
|
||||
nsIScriptContext* context = (nsIScriptContext*)JS_GetContextPrivate(cx);
|
||||
nsIScriptNameSpaceManager* manager;
|
||||
nsIDOMMailCore *nativeThis;
|
||||
nsIScriptObjectOwner *owner = nsnull;
|
||||
|
||||
static NS_DEFINE_IID(kIDOMMailCoreIID, NS_IDOMMAILCORE_IID);
|
||||
|
||||
result = context->GetNameSpaceManager(&manager);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
result = manager->LookupName("MailCore", PR_TRUE, classID);
|
||||
NS_RELEASE(manager);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
result = nsRepository::CreateInstance(classID,
|
||||
nsnull,
|
||||
kIDOMMailCoreIID,
|
||||
(void **)&nativeThis);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
// XXX We should be calling Init() on the instance
|
||||
|
||||
result = nativeThis->QueryInterface(kIScriptObjectOwnerIID, (void **)&owner);
|
||||
if (NS_OK != result) {
|
||||
NS_RELEASE(nativeThis);
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
owner->SetScriptObject((void *)obj);
|
||||
JS_SetPrivate(cx, obj, nativeThis);
|
||||
|
||||
NS_RELEASE(owner);
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
// MailCore class initialization
|
||||
//
|
||||
nsresult NS_InitMailCoreClass(nsIScriptContext *aContext, void **aPrototype)
|
||||
{
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
JSObject *proto = nsnull;
|
||||
JSObject *constructor = nsnull;
|
||||
JSObject *parent_proto = nsnull;
|
||||
JSObject *global = JS_GetGlobalObject(jscontext);
|
||||
jsval vp;
|
||||
|
||||
if ((PR_TRUE != JS_LookupProperty(jscontext, global, "MailCore", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp) ||
|
||||
((constructor = JSVAL_TO_OBJECT(vp)) == nsnull) ||
|
||||
(PR_TRUE != JS_LookupProperty(jscontext, JSVAL_TO_OBJECT(vp), "prototype", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp)) {
|
||||
|
||||
if (NS_OK != NS_InitBaseAppCoreClass(aContext, (void **)&parent_proto)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
proto = JS_InitClass(jscontext, // context
|
||||
global, // global object
|
||||
parent_proto, // parent proto
|
||||
&MailCoreClass, // JSClass
|
||||
MailCore, // JSNative ctor
|
||||
0, // ctor args
|
||||
MailCoreProperties, // proto props
|
||||
MailCoreMethods, // proto funcs
|
||||
nsnull, // ctor props (static)
|
||||
nsnull); // ctor funcs (static)
|
||||
if (nsnull == proto) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
}
|
||||
else if ((nsnull != constructor) && JSVAL_IS_OBJECT(vp)) {
|
||||
proto = JSVAL_TO_OBJECT(vp);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (aPrototype) {
|
||||
*aPrototype = proto;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Method for creating a new MailCore JavaScript object
|
||||
//
|
||||
extern "C" NS_DOM nsresult NS_NewScriptMailCore(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn)
|
||||
{
|
||||
NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptMailCore");
|
||||
JSObject *proto;
|
||||
JSObject *parent;
|
||||
nsIScriptObjectOwner *owner;
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
nsresult result = NS_OK;
|
||||
nsIDOMMailCore *aMailCore;
|
||||
|
||||
if (nsnull == aParent) {
|
||||
parent = nsnull;
|
||||
}
|
||||
else if (NS_OK == aParent->QueryInterface(kIScriptObjectOwnerIID, (void**)&owner)) {
|
||||
if (NS_OK != owner->GetScriptObject(aContext, (void **)&parent)) {
|
||||
NS_RELEASE(owner);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
NS_RELEASE(owner);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (NS_OK != NS_InitMailCoreClass(aContext, (void **)&proto)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
result = aSupports->QueryInterface(kIMailCoreIID, (void **)&aMailCore);
|
||||
if (NS_OK != result) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// create a js object for this class
|
||||
*aReturn = JS_NewObject(jscontext, &MailCoreClass, proto, parent);
|
||||
if (nsnull != *aReturn) {
|
||||
// connect the native object to the js object
|
||||
JS_SetPrivate(jscontext, (JSObject *)*aReturn, aMailCore);
|
||||
}
|
||||
else {
|
||||
NS_RELEASE(aMailCore);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
396
mozilla/xpfe/AppCores/nsJSToolbarCore.cpp
Normal file
396
mozilla/xpfe/AppCores/nsJSToolbarCore.cpp
Normal file
@ -0,0 +1,396 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
/* AUTO-GENERATED. DO NOT EDIT!!! */
|
||||
|
||||
#include "jsapi.h"
|
||||
#include "nsJSUtils.h"
|
||||
#include "nscore.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIJSScriptObject.h"
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsIPtr.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIDOMToolbarCore.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIScriptNameSpaceManager.h"
|
||||
#include "nsRepository.h"
|
||||
#include "nsDOMCID.h"
|
||||
|
||||
|
||||
static NS_DEFINE_IID(kIScriptObjectOwnerIID, NS_ISCRIPTOBJECTOWNER_IID);
|
||||
static NS_DEFINE_IID(kIJSScriptObjectIID, NS_IJSSCRIPTOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIScriptGlobalObjectIID, NS_ISCRIPTGLOBALOBJECT_IID);
|
||||
static NS_DEFINE_IID(kIToolbarCoreIID, NS_IDOMTOOLBARCORE_IID);
|
||||
static NS_DEFINE_IID(kIWindowIID, NS_IDOMWINDOW_IID);
|
||||
|
||||
NS_DEF_PTR(nsIDOMToolbarCore);
|
||||
NS_DEF_PTR(nsIDOMWindow);
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// ToolbarCore Properties Getter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
GetToolbarCoreProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMToolbarCore *a = (nsIDOMToolbarCore*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case 0:
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// ToolbarCore Properties Setter
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
SetToolbarCoreProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
{
|
||||
nsIDOMToolbarCore *a = (nsIDOMToolbarCore*)JS_GetPrivate(cx, obj);
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == a) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case 0:
|
||||
default:
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, id, vp);
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// ToolbarCore finalizer
|
||||
//
|
||||
PR_STATIC_CALLBACK(void)
|
||||
FinalizeToolbarCore(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
nsJSUtils::nsGenericFinalize(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// ToolbarCore enumerate
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
EnumerateToolbarCore(JSContext *cx, JSObject *obj)
|
||||
{
|
||||
return nsJSUtils::nsGenericEnumerate(cx, obj);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// ToolbarCore resolve
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
ResolveToolbarCore(JSContext *cx, JSObject *obj, jsval id)
|
||||
{
|
||||
return nsJSUtils::nsGenericResolve(cx, obj, id);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method SetWindow
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
ToolbarCoreSetWindow(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMToolbarCore *nativeThis = (nsIDOMToolbarCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsIDOMWindowPtr b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
if (JS_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&b0,
|
||||
kIWindowIID,
|
||||
"Window",
|
||||
cx,
|
||||
argv[0])) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
if (NS_OK != nativeThis->SetWindow(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function SetWindow requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Native method SetStatus
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
ToolbarCoreSetStatus(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsIDOMToolbarCore *nativeThis = (nsIDOMToolbarCore*)JS_GetPrivate(cx, obj);
|
||||
JSBool rBool = JS_FALSE;
|
||||
nsAutoString b0;
|
||||
|
||||
*rval = JSVAL_NULL;
|
||||
|
||||
// If there's no private data, this must be the prototype, so ignore
|
||||
if (nsnull == nativeThis) {
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
if (argc >= 1) {
|
||||
|
||||
nsJSUtils::nsConvertJSValToString(b0, cx, argv[0]);
|
||||
|
||||
if (NS_OK != nativeThis->SetStatus(b0)) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
*rval = JSVAL_VOID;
|
||||
}
|
||||
else {
|
||||
JS_ReportError(cx, "Function SetStatus requires 1 parameters");
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
//
|
||||
// class for ToolbarCore
|
||||
//
|
||||
JSClass ToolbarCoreClass = {
|
||||
"ToolbarCore",
|
||||
JSCLASS_HAS_PRIVATE,
|
||||
JS_PropertyStub,
|
||||
JS_PropertyStub,
|
||||
GetToolbarCoreProperty,
|
||||
SetToolbarCoreProperty,
|
||||
EnumerateToolbarCore,
|
||||
ResolveToolbarCore,
|
||||
JS_ConvertStub,
|
||||
FinalizeToolbarCore
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// ToolbarCore class properties
|
||||
//
|
||||
static JSPropertySpec ToolbarCoreProperties[] =
|
||||
{
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// ToolbarCore class methods
|
||||
//
|
||||
static JSFunctionSpec ToolbarCoreMethods[] =
|
||||
{
|
||||
{"SetWindow", ToolbarCoreSetWindow, 1},
|
||||
{"SetStatus", ToolbarCoreSetStatus, 1},
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// ToolbarCore constructor
|
||||
//
|
||||
PR_STATIC_CALLBACK(JSBool)
|
||||
ToolbarCore(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
nsresult result;
|
||||
nsIID classID;
|
||||
nsIScriptContext* context = (nsIScriptContext*)JS_GetContextPrivate(cx);
|
||||
nsIScriptNameSpaceManager* manager;
|
||||
nsIDOMToolbarCore *nativeThis;
|
||||
nsIScriptObjectOwner *owner = nsnull;
|
||||
|
||||
static NS_DEFINE_IID(kIDOMToolbarCoreIID, NS_IDOMTOOLBARCORE_IID);
|
||||
|
||||
result = context->GetNameSpaceManager(&manager);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
result = manager->LookupName("ToolbarCore", PR_TRUE, classID);
|
||||
NS_RELEASE(manager);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
result = nsRepository::CreateInstance(classID,
|
||||
nsnull,
|
||||
kIDOMToolbarCoreIID,
|
||||
(void **)&nativeThis);
|
||||
if (NS_OK != result) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
// XXX We should be calling Init() on the instance
|
||||
|
||||
result = nativeThis->QueryInterface(kIScriptObjectOwnerIID, (void **)&owner);
|
||||
if (NS_OK != result) {
|
||||
NS_RELEASE(nativeThis);
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
owner->SetScriptObject((void *)obj);
|
||||
JS_SetPrivate(cx, obj, nativeThis);
|
||||
|
||||
NS_RELEASE(owner);
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
// ToolbarCore class initialization
|
||||
//
|
||||
nsresult NS_InitToolbarCoreClass(nsIScriptContext *aContext, void **aPrototype)
|
||||
{
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
JSObject *proto = nsnull;
|
||||
JSObject *constructor = nsnull;
|
||||
JSObject *parent_proto = nsnull;
|
||||
JSObject *global = JS_GetGlobalObject(jscontext);
|
||||
jsval vp;
|
||||
|
||||
if ((PR_TRUE != JS_LookupProperty(jscontext, global, "ToolbarCore", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp) ||
|
||||
((constructor = JSVAL_TO_OBJECT(vp)) == nsnull) ||
|
||||
(PR_TRUE != JS_LookupProperty(jscontext, JSVAL_TO_OBJECT(vp), "prototype", &vp)) ||
|
||||
!JSVAL_IS_OBJECT(vp)) {
|
||||
|
||||
if (NS_OK != NS_InitBaseAppCoreClass(aContext, (void **)&parent_proto)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
proto = JS_InitClass(jscontext, // context
|
||||
global, // global object
|
||||
parent_proto, // parent proto
|
||||
&ToolbarCoreClass, // JSClass
|
||||
ToolbarCore, // JSNative ctor
|
||||
0, // ctor args
|
||||
ToolbarCoreProperties, // proto props
|
||||
ToolbarCoreMethods, // proto funcs
|
||||
nsnull, // ctor props (static)
|
||||
nsnull); // ctor funcs (static)
|
||||
if (nsnull == proto) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
}
|
||||
else if ((nsnull != constructor) && JSVAL_IS_OBJECT(vp)) {
|
||||
proto = JSVAL_TO_OBJECT(vp);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (aPrototype) {
|
||||
*aPrototype = proto;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Method for creating a new ToolbarCore JavaScript object
|
||||
//
|
||||
extern "C" NS_DOM nsresult NS_NewScriptToolbarCore(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn)
|
||||
{
|
||||
NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptToolbarCore");
|
||||
JSObject *proto;
|
||||
JSObject *parent;
|
||||
nsIScriptObjectOwner *owner;
|
||||
JSContext *jscontext = (JSContext *)aContext->GetNativeContext();
|
||||
nsresult result = NS_OK;
|
||||
nsIDOMToolbarCore *aToolbarCore;
|
||||
|
||||
if (nsnull == aParent) {
|
||||
parent = nsnull;
|
||||
}
|
||||
else if (NS_OK == aParent->QueryInterface(kIScriptObjectOwnerIID, (void**)&owner)) {
|
||||
if (NS_OK != owner->GetScriptObject(aContext, (void **)&parent)) {
|
||||
NS_RELEASE(owner);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
NS_RELEASE(owner);
|
||||
}
|
||||
else {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if (NS_OK != NS_InitToolbarCoreClass(aContext, (void **)&proto)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
result = aSupports->QueryInterface(kIToolbarCoreIID, (void **)&aToolbarCore);
|
||||
if (NS_OK != result) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// create a js object for this class
|
||||
*aReturn = JS_NewObject(jscontext, &ToolbarCoreClass, proto, parent);
|
||||
if (nsnull != *aReturn) {
|
||||
// connect the native object to the js object
|
||||
JS_SetPrivate(jscontext, (JSObject *)*aReturn, aToolbarCore);
|
||||
}
|
||||
else {
|
||||
NS_RELEASE(aToolbarCore);
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
179
mozilla/xpfe/AppCores/nsMailCore.cpp
Normal file
179
mozilla/xpfe/AppCores/nsMailCore.cpp
Normal file
@ -0,0 +1,179 @@
|
||||
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "nsMailCore.h"
|
||||
#include "nsIBrowserWindow.h"
|
||||
#include "nsIWebShell.h"
|
||||
#include "pratom.h"
|
||||
#include "nsRepository.h"
|
||||
#include "nsAppCores.h"
|
||||
#include "nsAppCoresCIDs.h"
|
||||
#include "nsAppCoresManager.h"
|
||||
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIScriptContextOwner.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
|
||||
|
||||
// Globals
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIMailCoreIID, NS_IDOMMAILCORE_IID);
|
||||
|
||||
static NS_DEFINE_IID(kIDOMDocumentIID, nsIDOMDocument::IID());
|
||||
static NS_DEFINE_IID(kIDocumentIID, nsIDocument::IID());
|
||||
|
||||
static NS_DEFINE_IID(kMailCoreCID, NS_MailCore_CID);
|
||||
static NS_DEFINE_IID(kBrowserWindowCID, NS_BROWSER_WINDOW_CID);
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsMailCore
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsMailCore::nsMailCore()
|
||||
{
|
||||
printf("Created nsMailCore\n");
|
||||
|
||||
mScriptObject = nsnull;
|
||||
mScriptContext = nsnull;
|
||||
mWindow = nsnull;
|
||||
|
||||
IncInstanceCount();
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
nsMailCore::~nsMailCore()
|
||||
{
|
||||
NS_IF_RELEASE(mScriptContext);
|
||||
NS_IF_RELEASE(mWindow);
|
||||
DecInstanceCount();
|
||||
}
|
||||
|
||||
|
||||
NS_IMPL_ADDREF(nsMailCore)
|
||||
NS_IMPL_RELEASE(nsMailCore)
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCore::QueryInterface(REFNSIID aIID,void** aInstancePtr)
|
||||
{
|
||||
if (aInstancePtr == NULL) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// Always NULL result, in case of failure
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
if ( aIID.Equals(kIMailCoreIID) ) {
|
||||
*aInstancePtr = (void*) ((nsIDOMMailCore*)this);
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return nsBaseAppCore::QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCore::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject)
|
||||
{
|
||||
NS_PRECONDITION(nsnull != aScriptObject, "null arg");
|
||||
nsresult res = NS_OK;
|
||||
if (nsnull == mScriptObject)
|
||||
{
|
||||
res = NS_NewScriptMailCore(aContext,
|
||||
(nsISupports *)(nsIDOMMailCore*)this,
|
||||
nsnull,
|
||||
&mScriptObject);
|
||||
}
|
||||
|
||||
*aScriptObject = mScriptObject;
|
||||
return res;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCore::Init(const nsString& aId)
|
||||
{
|
||||
|
||||
nsBaseAppCore::Init(aId);
|
||||
|
||||
nsAppCoresManager* sdm = new nsAppCoresManager();
|
||||
sdm->Add((nsIDOMBaseAppCore *)(nsBaseAppCore *)this);
|
||||
delete sdm;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCore::MailCompleteCallback(const nsString& aScript)
|
||||
{
|
||||
mScript = aScript;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCore::SetWindow(nsIDOMWindow* aWin)
|
||||
{
|
||||
mWindow = aWin;
|
||||
NS_ADDREF(aWin);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCore::SendMail(const nsString& aAddrTo, const nsString& aSubject, const nsString& aMsg)
|
||||
{
|
||||
if (nsnull == mScriptContext) {
|
||||
nsIDOMDocument * domDoc;
|
||||
mWindow->GetDocument(&domDoc);
|
||||
if (nsnull != domDoc) {
|
||||
nsIDocument * doc;
|
||||
if (NS_OK == domDoc->QueryInterface(kIDocumentIID,(void**)&doc)) {
|
||||
nsIScriptContextOwner * owner = doc->GetScriptContextOwner();
|
||||
if (nsnull != owner) {
|
||||
owner->GetScriptContext(&mScriptContext);
|
||||
NS_RELEASE(owner);
|
||||
}
|
||||
NS_RELEASE(doc);
|
||||
}
|
||||
NS_RELEASE(domDoc);
|
||||
}
|
||||
}
|
||||
|
||||
printf("----------------------------\n");
|
||||
printf("-- Sending Mail Message\n");
|
||||
printf("----------------------------\n");
|
||||
printf("To: %s \nSub: %s \nMsg: %s\n", aAddrTo.ToNewCString(), aSubject.ToNewCString(), aMsg.ToNewCString());
|
||||
printf("----------------------------\n");
|
||||
|
||||
if (nsnull != mScriptContext) {
|
||||
const char* url = "";
|
||||
PRBool isUndefined = PR_FALSE;
|
||||
nsString rVal;
|
||||
mScriptContext->EvaluateString(mScript, url, 0, rVal, &isUndefined);
|
||||
//printf("SendMail [%s] %d [%s]\n", mScript.ToNewCString(), isUndefined, rVal.ToNewCString());
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
66
mozilla/xpfe/AppCores/nsMailCore.h
Normal file
66
mozilla/xpfe/AppCores/nsMailCore.h
Normal file
@ -0,0 +1,66 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsMailCorePrivate_h___
|
||||
#define nsMailCorePrivate_h___
|
||||
|
||||
//#include "nsAppCores.h"
|
||||
|
||||
#include "nscore.h"
|
||||
#include "nsString.h"
|
||||
#include "nsISupports.h"
|
||||
|
||||
#include "nsIDOMMailCore.h"
|
||||
#include "nsBaseAppCore.h"
|
||||
|
||||
class nsIBrowserWindow;
|
||||
class nsIWebShell;
|
||||
class nsIScriptContext;
|
||||
class nsIDOMWindow;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsMailCore:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class nsMailCore : public nsBaseAppCore,
|
||||
public nsIDOMMailCore
|
||||
{
|
||||
public:
|
||||
|
||||
nsMailCore();
|
||||
~nsMailCore();
|
||||
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_IMETHOD GetScriptObject(nsIScriptContext *aContext, void** aScriptObject);
|
||||
NS_IMETHOD Init(const nsString& aId);
|
||||
NS_IMETHOD GetId(nsString& aId) { return nsBaseAppCore::GetId(aId); }
|
||||
|
||||
NS_IMETHOD MailCompleteCallback(const nsString& aScript);
|
||||
NS_IMETHOD SetWindow(nsIDOMWindow* aWin);
|
||||
|
||||
NS_IMETHOD SendMail(const nsString& aAddrTo, const nsString& aSubject, const nsString& aMsg);
|
||||
|
||||
protected:
|
||||
|
||||
nsString mScript;
|
||||
|
||||
nsIScriptContext *mScriptContext;
|
||||
nsIDOMWindow *mWindow;
|
||||
};
|
||||
|
||||
#endif // nsMailCore_h___
|
||||
131
mozilla/xpfe/AppCores/nsMailCoreFactory.cpp
Normal file
131
mozilla/xpfe/AppCores/nsMailCoreFactory.cpp
Normal file
@ -0,0 +1,131 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "nsAppCores.h"
|
||||
#include "nsMailCoreFactory.h"
|
||||
#include "nsMailCore.h"
|
||||
#include "pratom.h"
|
||||
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsMailCoreFactory
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsMailCoreFactory::nsMailCoreFactory(void)
|
||||
{
|
||||
mRefCnt=0;
|
||||
IncInstanceCount();
|
||||
}
|
||||
|
||||
nsMailCoreFactory::~nsMailCoreFactory(void)
|
||||
{
|
||||
DecInstanceCount();
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCoreFactory::QueryInterface(REFNSIID aIID,void** aInstancePtr)
|
||||
{
|
||||
if (aInstancePtr == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// Always NULL result, in case of failure
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
if ( aIID.Equals(kISupportsIID) )
|
||||
{
|
||||
*aInstancePtr = (void*) this;
|
||||
}
|
||||
else if ( aIID.Equals(kIFactoryIID) )
|
||||
{
|
||||
*aInstancePtr = (void*) this;
|
||||
}
|
||||
|
||||
if (aInstancePtr == NULL)
|
||||
{
|
||||
return NS_ERROR_NO_INTERFACE;
|
||||
}
|
||||
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCoreFactory::AddRef(void)
|
||||
{
|
||||
return ++mRefCnt;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCoreFactory::Release(void)
|
||||
{
|
||||
if (--mRefCnt ==0)
|
||||
{
|
||||
delete this;
|
||||
return 0; // Don't access mRefCnt after deleting!
|
||||
}
|
||||
|
||||
return mRefCnt;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCoreFactory::CreateInstance(nsISupports *aOuter, REFNSIID aIID, void **aResult)
|
||||
{
|
||||
if (aResult == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*aResult = NULL;
|
||||
|
||||
/* do I have to use iSupports? */
|
||||
nsMailCore *inst = new nsMailCore();
|
||||
|
||||
if (inst == NULL)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsresult result = inst->QueryInterface(aIID, aResult);
|
||||
|
||||
if (result != NS_OK)
|
||||
delete inst;
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMailCoreFactory::LockFactory(PRBool aLock)
|
||||
{
|
||||
if (aLock)
|
||||
IncLockCount();
|
||||
else
|
||||
DecLockCount();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
49
mozilla/xpfe/AppCores/nsMailCoreFactory.h
Normal file
49
mozilla/xpfe/AppCores/nsMailCoreFactory.h
Normal file
@ -0,0 +1,49 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsMailCoreFactory_h___
|
||||
#define nsMailCoreFactory_h___
|
||||
|
||||
//#include "nscore.h"
|
||||
//#include "nsString.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nsISupports.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsMailCoreFactory:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class nsMailCoreFactory : public nsIFactory
|
||||
{
|
||||
public:
|
||||
|
||||
nsMailCoreFactory();
|
||||
~nsMailCoreFactory();
|
||||
|
||||
PRBool CanUnload(void);
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD CreateInstance(nsISupports *aOuter,
|
||||
REFNSIID aIID,
|
||||
void **aResult);
|
||||
|
||||
NS_IMETHOD LockFactory(PRBool aLock);
|
||||
|
||||
};
|
||||
|
||||
#endif // nsMailCoreFactory_h___
|
||||
173
mozilla/xpfe/AppCores/nsToolbarCore.cpp
Normal file
173
mozilla/xpfe/AppCores/nsToolbarCore.cpp
Normal file
@ -0,0 +1,173 @@
|
||||
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "nsToolbarCore.h"
|
||||
#include "nsIBrowserWindow.h"
|
||||
#include "nsRepository.h"
|
||||
#include "nsAppCores.h"
|
||||
#include "nsAppCoresCIDs.h"
|
||||
#include "nsAppCoresManager.h"
|
||||
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsIDOMDocument.h"
|
||||
#include "nsIDocument.h"
|
||||
#include "nsIDOMWindow.h"
|
||||
#include "nsIDOMNode.h"
|
||||
#include "nsIDOMElement.h"
|
||||
#include "nsIDOMCharacterData.h"
|
||||
|
||||
|
||||
// Globals
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIToolbarCoreIID, NS_IDOMTOOLBARCORE_IID);
|
||||
|
||||
static NS_DEFINE_IID(kIDOMDocumentIID, nsIDOMDocument::IID());
|
||||
static NS_DEFINE_IID(kIDocumentIID, nsIDocument::IID());
|
||||
static NS_DEFINE_IID(kIDOMCharacterDataIID, nsIDOMCharacterData::IID());
|
||||
|
||||
static NS_DEFINE_IID(kToolbarCoreCID, NS_TOOLBARCORE_CID);
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsToolbarCore
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsToolbarCore::nsToolbarCore()
|
||||
{
|
||||
printf("Created nsToolbarCore\n");
|
||||
|
||||
mWindow = nsnull;
|
||||
mStatusText = nsnull;
|
||||
|
||||
IncInstanceCount();
|
||||
NS_INIT_REFCNT();
|
||||
}
|
||||
|
||||
nsToolbarCore::~nsToolbarCore()
|
||||
{
|
||||
NS_IF_RELEASE(mWindow);
|
||||
NS_IF_RELEASE(mStatusText);
|
||||
DecInstanceCount();
|
||||
}
|
||||
|
||||
|
||||
NS_IMPL_ADDREF(nsToolbarCore)
|
||||
NS_IMPL_RELEASE(nsToolbarCore)
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCore::QueryInterface(REFNSIID aIID,void** aInstancePtr)
|
||||
{
|
||||
if (aInstancePtr == NULL) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// Always NULL result, in case of failure
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
if ( aIID.Equals(kIToolbarCoreIID) ) {
|
||||
*aInstancePtr = (void*) ((nsIDOMToolbarCore*)this);
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return nsBaseAppCore::QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCore::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject)
|
||||
{
|
||||
NS_PRECONDITION(nsnull != aScriptObject, "null arg");
|
||||
nsresult res = NS_OK;
|
||||
if (nsnull == mScriptObject)
|
||||
{
|
||||
res = NS_NewScriptToolbarCore(aContext,
|
||||
(nsISupports *)(nsIDOMToolbarCore*)this,
|
||||
nsnull,
|
||||
&mScriptObject);
|
||||
}
|
||||
|
||||
*aScriptObject = mScriptObject;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCore::Init(const nsString& aId)
|
||||
{
|
||||
|
||||
nsBaseAppCore::Init(aId);
|
||||
|
||||
nsAppCoresManager* sdm = new nsAppCoresManager();
|
||||
sdm->Add((nsIDOMBaseAppCore *)(nsBaseAppCore *)this);
|
||||
delete sdm;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCore::SetStatus(const nsString& aMsg)
|
||||
{
|
||||
if (nsnull == mStatusText) {
|
||||
nsIDOMDocument * domDoc;
|
||||
mWindow->GetDocument(&domDoc);
|
||||
if (!domDoc)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsIDOMNode> parent(GetParentNodeFromDOMDoc(domDoc));
|
||||
if (!parent)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
PRInt32 count = 0;
|
||||
nsCOMPtr<nsIDOMNode> statusNode(FindNamedDOMNode(nsAutoString("#text"), parent, count, 7));
|
||||
if (!statusNode)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsIDOMCharacterData> charData(statusNode);
|
||||
if (!charData)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
mStatusText = charData;
|
||||
mStatusText->SetData(nsAutoString("Ready.....")); // <<====== EVIL HARD-CODED STRING.
|
||||
NS_RELEASE(domDoc);
|
||||
}
|
||||
|
||||
mStatusText->SetData(aMsg);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCore::SetWindow(nsIDOMWindow* aWin)
|
||||
{
|
||||
mWindow = aWin;
|
||||
NS_ADDREF(aWin);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
65
mozilla/xpfe/AppCores/nsToolbarCore.h
Normal file
65
mozilla/xpfe/AppCores/nsToolbarCore.h
Normal file
@ -0,0 +1,65 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsToolbarCorePrivate_h___
|
||||
#define nsToolbarCorePrivate_h___
|
||||
|
||||
//#include "nsAppCores.h"
|
||||
|
||||
#include "nscore.h"
|
||||
#include "nsString.h"
|
||||
#include "nsISupports.h"
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
|
||||
#include "nsIDOMToolbarCore.h"
|
||||
#include "nsBaseAppCore.h"
|
||||
|
||||
class nsIBrowserWindow;
|
||||
class nsIWebShell;
|
||||
class nsIScriptContext;
|
||||
class nsIDOMWindow;
|
||||
class nsIDOMDocument;
|
||||
class nsIDOMCharacterData;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsToolbarCore:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class nsToolbarCore : public nsBaseAppCore,
|
||||
public nsIDOMToolbarCore
|
||||
{
|
||||
public:
|
||||
|
||||
nsToolbarCore();
|
||||
~nsToolbarCore();
|
||||
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_IMETHOD GetScriptObject(nsIScriptContext *aContext, void** aScriptObject);
|
||||
NS_IMETHOD Init(const nsString& aId);
|
||||
NS_IMETHOD GetId(nsString& aId) { return nsBaseAppCore::GetId(aId); }
|
||||
|
||||
NS_IMETHOD SetWindow(nsIDOMWindow* aWin);
|
||||
NS_IMETHOD SetStatus(const nsString& aMsg);
|
||||
|
||||
private:
|
||||
|
||||
nsIDOMWindow *mWindow;
|
||||
nsIDOMCharacterData *mStatusText;
|
||||
};
|
||||
|
||||
#endif // nsToolbarCore_h___
|
||||
131
mozilla/xpfe/AppCores/nsToolbarCoreFactory.cpp
Normal file
131
mozilla/xpfe/AppCores/nsToolbarCoreFactory.cpp
Normal file
@ -0,0 +1,131 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS"
|
||||
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
* the License for the specific language governing rights and limitations
|
||||
* under the License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator client code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape Communications
|
||||
* Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
* Netscape Communications Corporation. All Rights Reserved.
|
||||
*/
|
||||
|
||||
#include "nsAppCores.h"
|
||||
#include "nsToolbarCoreFactory.h"
|
||||
#include "nsToolbarCore.h"
|
||||
#include "pratom.h"
|
||||
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// nsToolbarCoreFactory
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsToolbarCoreFactory::nsToolbarCoreFactory(void)
|
||||
{
|
||||
mRefCnt=0;
|
||||
IncInstanceCount();
|
||||
}
|
||||
|
||||
nsToolbarCoreFactory::~nsToolbarCoreFactory(void)
|
||||
{
|
||||
DecInstanceCount();
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCoreFactory::QueryInterface(REFNSIID aIID,void** aInstancePtr)
|
||||
{
|
||||
if (aInstancePtr == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
// Always NULL result, in case of failure
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
if ( aIID.Equals(kISupportsIID) )
|
||||
{
|
||||
*aInstancePtr = (void*) this;
|
||||
}
|
||||
else if ( aIID.Equals(kIFactoryIID) )
|
||||
{
|
||||
*aInstancePtr = (void*) this;
|
||||
}
|
||||
|
||||
if (aInstancePtr == NULL)
|
||||
{
|
||||
return NS_ERROR_NO_INTERFACE;
|
||||
}
|
||||
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCoreFactory::AddRef(void)
|
||||
{
|
||||
return ++mRefCnt;
|
||||
}
|
||||
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCoreFactory::Release(void)
|
||||
{
|
||||
if (--mRefCnt ==0)
|
||||
{
|
||||
delete this;
|
||||
return 0; // Don't access mRefCnt after deleting!
|
||||
}
|
||||
|
||||
return mRefCnt;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCoreFactory::CreateInstance(nsISupports *aOuter, REFNSIID aIID, void **aResult)
|
||||
{
|
||||
if (aResult == NULL)
|
||||
{
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*aResult = NULL;
|
||||
|
||||
/* do I have to use iSupports? */
|
||||
nsToolbarCore *inst = new nsToolbarCore();
|
||||
|
||||
if (inst == NULL)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsresult result = inst->QueryInterface(aIID, aResult);
|
||||
|
||||
if (result != NS_OK)
|
||||
delete inst;
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsToolbarCoreFactory::LockFactory(PRBool aLock)
|
||||
{
|
||||
if (aLock)
|
||||
IncLockCount();
|
||||
else
|
||||
DecLockCount();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
47
mozilla/xpfe/AppCores/nsToolbarCoreFactory.h
Normal file
47
mozilla/xpfe/AppCores/nsToolbarCoreFactory.h
Normal file
@ -0,0 +1,47 @@
|
||||
/* -*- Mode: C++; tab-width: 2; 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.
|
||||
*/
|
||||
#ifndef nsToolbarCoreFactory_h___
|
||||
#define nsToolbarCoreFactory_h___
|
||||
|
||||
#include "nsIFactory.h"
|
||||
#include "nsISupports.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsToolbarCoreFactory:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class nsToolbarCoreFactory : public nsIFactory
|
||||
{
|
||||
public:
|
||||
|
||||
nsToolbarCoreFactory();
|
||||
~nsToolbarCoreFactory();
|
||||
|
||||
PRBool CanUnload(void);
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
NS_IMETHOD CreateInstance(nsISupports *aOuter,
|
||||
REFNSIID aIID,
|
||||
void **aResult);
|
||||
|
||||
NS_IMETHOD LockFactory(PRBool aLock);
|
||||
|
||||
};
|
||||
|
||||
#endif // nsToolbarCoreFactory_h___
|
||||
Loading…
x
Reference in New Issue
Block a user