mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-08 08:48: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
7
application/xulrunner/examples/moz.build
Normal file
7
application/xulrunner/examples/moz.build
Normal file
|
|
@ -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 += ['simple']
|
||||
43
application/xulrunner/examples/simple/application.ini
Normal file
43
application/xulrunner/examples/simple/application.ini
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#filter substitution
|
||||
[App]
|
||||
;
|
||||
; This field specifies your organization's name. This field is recommended,
|
||||
; but optional.
|
||||
Vendor=MozillaTest
|
||||
;
|
||||
; This field specifies your application's name. This field is required.
|
||||
Name=Simple
|
||||
;
|
||||
; This field specifies your application's version. This field is required.
|
||||
Version=0.1
|
||||
;
|
||||
; This field specifies your application's build ID (timestamp). This field is
|
||||
; required.
|
||||
BuildID=20070625
|
||||
;
|
||||
; This field specifies a compact copyright notice for your application. This
|
||||
; field is optional.
|
||||
Copyright=Copyright (c) 2004 Mozilla.org
|
||||
;
|
||||
; This ID is just an example. Every XUL app ought to have it's own unique ID.
|
||||
; You can use the microsoft "guidgen" or "uuidgen" tools, or go on
|
||||
; irc.mozilla.org and /msg botbot uuid. This field is optional.
|
||||
ID={3aea3f07-ffe3-4060-bb03-bff3a5365e90}
|
||||
|
||||
[Gecko]
|
||||
;
|
||||
; This field is required. It specifies the minimum Gecko version that this
|
||||
; application requires.
|
||||
MinVersion=@MOZILLA_VERSION_U@
|
||||
;
|
||||
; This field is optional. It specifies the maximum Gecko version that this
|
||||
; application requires. It should be specified if your application uses
|
||||
; unfrozen interfaces.
|
||||
MaxVersion=@MOZILLA_VERSION_U@
|
||||
|
||||
[Shell]
|
||||
;
|
||||
; This field specifies the location of your application's main icon with file
|
||||
; extension excluded. NOTE: Unix style file separators are required. This
|
||||
; field is optional.
|
||||
Icon=chrome/icons/default/simple
|
||||
|
|
@ -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']
|
||||
17
application/xulrunner/examples/simple/content/simple.js
Normal file
17
application/xulrunner/examples/simple/content/simple.js
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
/* 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/. */
|
||||
|
||||
function onButtonClick() {
|
||||
var textbox = document.getElementById("textbox");
|
||||
|
||||
var contractid = (textbox.value % 2 == 0) ?
|
||||
"@test.mozilla.org/simple-test;1?impl=js" :
|
||||
"@test.mozilla.org/simple-test;1?impl=c++";
|
||||
|
||||
var test = Components.classes[contractid].
|
||||
createInstance(Components.interfaces.nsISimpleTest);
|
||||
|
||||
textbox.value = test.add(textbox.value, 1);
|
||||
}
|
||||
20
application/xulrunner/examples/simple/content/simple.xul
Normal file
20
application/xulrunner/examples/simple/content/simple.xul
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0"?>
|
||||
# vim:set ts=8 sw=8 sts=8 noet:
|
||||
# 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/.
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
|
||||
<!DOCTYPE window SYSTEM "chrome://simple/locale/simple.dtd">
|
||||
|
||||
<window
|
||||
id = "simple"
|
||||
title = "&simple.title;"
|
||||
xmlns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script src="chrome://simple/content/simple.js"/>
|
||||
<vbox>
|
||||
<textbox id="textbox" value="&simple.textValue;" flex="1"/>
|
||||
<button id="button" label="&simple.buttonLabel;" oncommand="onButtonClick();"/>
|
||||
</vbox>
|
||||
</window>
|
||||
BIN
application/xulrunner/examples/simple/icons/simple.ico
Normal file
BIN
application/xulrunner/examples/simple/icons/simple.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
12
application/xulrunner/examples/simple/jar.mn
Normal file
12
application/xulrunner/examples/simple/jar.mn
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# 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/.
|
||||
|
||||
simple.jar:
|
||||
% content simple %content/
|
||||
content/simple.xul (content/simple.xul)
|
||||
content/simple.js (content/simple.js)
|
||||
|
||||
en-US.jar:
|
||||
% locale simple en-US %locale/en-US/
|
||||
locale/en-US/simple.dtd (locale/simple.dtd)
|
||||
7
application/xulrunner/examples/simple/locale/simple.dtd
Normal file
7
application/xulrunner/examples/simple/locale/simple.dtd
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<!-- 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/. -->
|
||||
|
||||
<!ENTITY simple.title "Simple App">
|
||||
<!ENTITY simple.textValue "0">
|
||||
<!ENTITY simple.buttonLabel "Increment">
|
||||
22
application/xulrunner/examples/simple/moz.build
Normal file
22
application/xulrunner/examples/simple/moz.build
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# -*- 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 += ['components']
|
||||
|
||||
XPI_NAME = 'simple'
|
||||
|
||||
JAR_MANIFESTS += ['jar.mn']
|
||||
|
||||
JS_PREFERENCE_FILES += [
|
||||
'simple-prefs.js',
|
||||
]
|
||||
|
||||
FINAL_TARGET_PP_FILES += [
|
||||
'application.ini',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
|
||||
FINAL_TARGET_FILES.chrome.icons.default += ['icons/simple.ico']
|
||||
6
application/xulrunner/examples/simple/simple-prefs.js
Normal file
6
application/xulrunner/examples/simple/simple-prefs.js
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
/* 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/. */
|
||||
|
||||
pref("toolkit.defaultChromeURI", "chrome://simple/content/simple.xul");
|
||||
pref("general.useragent.extra.simple", "SimpleApp/0.1");
|
||||
Loading…
Add table
Add a link
Reference in a new issue