mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-08 00:38:39 +09:00
Import XULRunner and make it produce the generic stub
This commit is contained in:
parent
1f12910aa2
commit
d3be0506a0
73 changed files with 2418 additions and 10 deletions
|
|
@ -0,0 +1,7 @@
|
|||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
DIRS += ['public', 'src']
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
XPIDL_SOURCES += [
|
||||
'nsISimpleTest.idl',
|
||||
]
|
||||
|
||||
XPIDL_MODULE = 'simple'
|
||||
|
||||
XPI_NAME = 'simple'
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/* vim:set ts=2 sw=2 sts=2 et cin: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
[scriptable, uuid(f2f71d91-0451-47ec-aaa0-166663a7711a)]
|
||||
interface nsISimpleTest : nsISupports
|
||||
{
|
||||
/**
|
||||
* This interface adds two numbers together and returns the result.
|
||||
*/
|
||||
long add(in long a, in long b);
|
||||
};
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
/* vim:set ts=2 sw=2 sts=2 et cin: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "nsISimpleTest.h"
|
||||
#include "mozilla/ModuleUtils.h"
|
||||
|
||||
class SimpleTest : public nsISimpleTest
|
||||
{
|
||||
~SimpleTest() {}
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSISIMPLETEST
|
||||
};
|
||||
|
||||
NS_IMPL_ISUPPORTS(SimpleTest, nsISimpleTest)
|
||||
|
||||
NS_IMETHODIMP
|
||||
SimpleTest::Add(int32_t a, int32_t b, int32_t *r)
|
||||
{
|
||||
printf("add(%d,%d) from C++\n", a, b);
|
||||
|
||||
*r = a + b;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(SimpleTest)
|
||||
|
||||
// 5e14b432-37b6-4377-923b-c987418d8429
|
||||
#define SIMPLETEST_CID \
|
||||
{ 0x5e14b432, 0x37b6, 0x4377, \
|
||||
{ 0x92, 0x3b, 0xc9, 0x87, 0x41, 0x8d, 0x84, 0x29 } }
|
||||
|
||||
NS_DEFINE_NAMED_CID(SIMPLETEST_CID);
|
||||
|
||||
static const mozilla::Module::CIDEntry kSimpleCIDs[] = {
|
||||
{ &kSIMPLETEST_CID, false, nullptr, SimpleTestConstructor },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
static const mozilla::Module::ContractIDEntry kSimpleContracts[] = {
|
||||
{ "@test.mozilla.org/simple-test;1?impl=c++", &kSIMPLETEST_CID },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
static const mozilla::Module kSimpleModule = {
|
||||
mozilla::Module::kVersion,
|
||||
kSimpleCIDs,
|
||||
kSimpleContracts
|
||||
};
|
||||
|
||||
NSMODULE_DEFN(SimpleTestModule) = &kSimpleModule;
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
/* vim:set ts=2 sw=2 sts=2 et cin: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
function SimpleTest() {
|
||||
}
|
||||
|
||||
SimpleTest.prototype = {
|
||||
classID: Components.ID("{4177e257-a0dc-49b9-a774-522a000a49fa}"),
|
||||
|
||||
QueryInterface: function(iid) {
|
||||
if (iid.equals(Components.interfaces.nsISimpleTest) ||
|
||||
iid.equals(Components.interfaces.nsISupports))
|
||||
return this;
|
||||
throw Components.results.NS_ERROR_NO_INTERFACE;
|
||||
},
|
||||
|
||||
add: function(a, b) {
|
||||
dump("add(" + a + "," + b + ") from JS\n");
|
||||
return a + b;
|
||||
}
|
||||
};
|
||||
|
||||
this.NSGetFactory = XPCOMUtils.generateNSGetFactory([SimpleTest]);
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
component {4177e257-a0dc-49b9-a774-522a000a49fa} SimpleTest.js
|
||||
contract @test.mozilla.org/simple-test;1?impl=js {4177e257-a0dc-49b9-a774-522a000a49fa}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||
# vim: set filetype=python:
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
SOURCES += [
|
||||
'SimpleTest.cpp',
|
||||
]
|
||||
|
||||
XPCOMBinaryComponent('simpletest')
|
||||
|
||||
EXTRA_COMPONENTS += [
|
||||
'SimpleTest.js',
|
||||
'SimpleTest.manifest',
|
||||
]
|
||||
|
||||
XPI_NAME = 'simple'
|
||||
|
||||
if CONFIG['GNU_CXX']:
|
||||
CXXFLAGS += ['-Wshadow']
|
||||
Loading…
Add table
Add a link
Reference in a new issue