initial import from Ted Mielczarek's extensionwiz, plus eclipse .project
This commit is contained in:
Коммит
a458d13f03
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>gloda</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,128 @@
|
|||
#!/bin/bash
|
||||
# build.sh -- builds JAR and XPI files for mozilla extensions
|
||||
# by Nickolay Ponomarev <asqueella@gmail.com>
|
||||
# (original version based on Nathan Yergler's build script)
|
||||
# Most recent version is at <http://kb.mozillazine.org/Bash_build_script>
|
||||
|
||||
# This script assumes the following directory structure:
|
||||
# ./
|
||||
# chrome.manifest (optional - for newer extensions)
|
||||
# install.rdf
|
||||
# (other files listed in $ROOT_FILES)
|
||||
#
|
||||
# content/ |
|
||||
# locale/ |} these can be named arbitrary and listed in $CHROME_PROVIDERS
|
||||
# skin/ |
|
||||
#
|
||||
# defaults/ |
|
||||
# components/ |} these must be listed in $ROOT_DIRS in order to be packaged
|
||||
# ... |
|
||||
#
|
||||
# It uses a temporary directory ./build when building; don't use that!
|
||||
# Script's output is:
|
||||
# ./$APP_NAME.xpi
|
||||
# ./$APP_NAME.jar (only if $KEEP_JAR=1)
|
||||
# ./files -- the list of packaged files
|
||||
#
|
||||
# Note: It modifies chrome.manifest when packaging so that it points to
|
||||
# chrome/$APP_NAME.jar!/*
|
||||
|
||||
#
|
||||
# default configuration file is ./config_build.sh, unless another file is
|
||||
# specified in command-line. Available config variables:
|
||||
APP_NAME= # short-name, jar and xpi files name. Must be lowercase with no spaces
|
||||
CHROME_PROVIDERS= # which chrome providers we have (space-separated list)
|
||||
CLEAN_UP= # delete the jar / "files" when done? (1/0)
|
||||
ROOT_FILES= # put these files in root of xpi (space separated list of leaf filenames)
|
||||
ROOT_DIRS= # ...and these directories (space separated list)
|
||||
BEFORE_BUILD= # run this before building (bash command)
|
||||
AFTER_BUILD= # ...and this after the build (bash command)
|
||||
|
||||
if [ -z $1 ]; then
|
||||
. ./config_build.sh
|
||||
else
|
||||
. $1
|
||||
fi
|
||||
|
||||
if [ -z $APP_NAME ]; then
|
||||
echo "You need to create build config file first!"
|
||||
echo "Read comments at the beginning of this script for more info."
|
||||
exit;
|
||||
fi
|
||||
|
||||
ROOT_DIR=`pwd`
|
||||
TMP_DIR=build
|
||||
|
||||
#uncomment to debug
|
||||
#set -x
|
||||
|
||||
# remove any left-over files from previous build
|
||||
rm -f $APP_NAME.jar $APP_NAME.xpi files
|
||||
rm -rf $TMP_DIR
|
||||
|
||||
$BEFORE_BUILD
|
||||
|
||||
mkdir --parents --verbose $TMP_DIR/chrome
|
||||
|
||||
# generate the JAR file, excluding CVS and temporary files
|
||||
JAR_FILE=$TMP_DIR/chrome/$APP_NAME.jar
|
||||
echo "Generating $JAR_FILE..."
|
||||
for CHROME_SUBDIR in $CHROME_PROVIDERS; do
|
||||
find $CHROME_SUBDIR -path '*CVS*' -prune -o -type f -print | grep -v \~ >> files
|
||||
done
|
||||
|
||||
zip -0 -r $JAR_FILE `cat files`
|
||||
# The following statement should be used instead if you don't wish to use the JAR file
|
||||
#cp --verbose --parents `cat files` $TMP_DIR/chrome
|
||||
|
||||
# prepare components and defaults
|
||||
echo "Copying various files to $TMP_DIR folder..."
|
||||
for DIR in $ROOT_DIRS; do
|
||||
mkdir $TMP_DIR/$DIR
|
||||
FILES="`find $DIR -path '*CVS*' -prune -o -type f -print | grep -v \~`"
|
||||
echo $FILES >> files
|
||||
cp --verbose --parents $FILES $TMP_DIR
|
||||
done
|
||||
|
||||
# Copy other files to the root of future XPI.
|
||||
for ROOT_FILE in $ROOT_FILES install.rdf chrome.manifest; do
|
||||
cp --verbose $ROOT_FILE $TMP_DIR
|
||||
if [ -f $ROOT_FILE ]; then
|
||||
echo $ROOT_FILE >> files
|
||||
fi
|
||||
done
|
||||
|
||||
cd $TMP_DIR
|
||||
|
||||
if [ -f "chrome.manifest" ]; then
|
||||
echo "Preprocessing chrome.manifest..."
|
||||
# You think this is scary?
|
||||
#s/^(content\s+\S*\s+)(\S*\/)$/\1jar:chrome\/$APP_NAME\.jar!\/\2/
|
||||
#s/^(skin|locale)(\s+\S*\s+\S*\s+)(.*\/)$/\1\2jar:chrome\/$APP_NAME\.jar!\/\3/
|
||||
#
|
||||
# Then try this! (Same, but with characters escaped for bash :)
|
||||
sed -i -r s/^\(content\\s+\\S*\\s+\)\(\\S*\\/\)$/\\1jar:chrome\\/$APP_NAME\\.jar!\\/\\2/ chrome.manifest
|
||||
sed -i -r s/^\(skin\|locale\)\(\\s+\\S*\\s+\\S*\\s+\)\(.*\\/\)$/\\1\\2jar:chrome\\/$APP_NAME\\.jar!\\/\\3/ chrome.manifest
|
||||
|
||||
# (it simply adds jar:chrome/whatever.jar!/ at appropriate positions of chrome.manifest)
|
||||
fi
|
||||
|
||||
# generate the XPI file
|
||||
echo "Generating $APP_NAME.xpi..."
|
||||
zip -r ../$APP_NAME.xpi *
|
||||
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
echo "Cleanup..."
|
||||
if [ $CLEAN_UP = 0 ]; then
|
||||
# save the jar file
|
||||
mv $TMP_DIR/chrome/$APP_NAME.jar .
|
||||
else
|
||||
rm ./files
|
||||
fi
|
||||
|
||||
# remove the working files
|
||||
rm -rf $TMP_DIR
|
||||
echo "Done!"
|
||||
|
||||
$AFTER_BUILD
|
|
@ -0,0 +1,4 @@
|
|||
content gloda content/
|
||||
locale gloda en-US locale/en-US/
|
||||
skin gloda classic/1.0 skin/
|
||||
overlay chrome://messenger/content/messenger.xul chrome://gloda/content/thunderbirdOverlay.xul
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
# Build config for build.sh
|
||||
APP_NAME=gloda
|
||||
CHROME_PROVIDERS="content locale skin"
|
||||
CLEAN_UP=1
|
||||
ROOT_FILES=
|
||||
ROOT_DIRS="defaults"
|
||||
BEFORE_BUILD=
|
||||
AFTER_BUILD=
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
-
|
||||
- The contents of this file are subject to the Mozilla Public License Version
|
||||
- 1.1 (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/MPL/
|
||||
-
|
||||
- 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 Global Database.
|
||||
-
|
||||
- The Initial Developer of the Original Code is
|
||||
- Andrew Sutherland.
|
||||
- Portions created by the Initial Developer are Copyright (C) 2008
|
||||
- the Initial Developer. All Rights Reserved.
|
||||
-
|
||||
- Contributor(s):
|
||||
-
|
||||
- Alternatively, the contents of this file may be used under the terms of
|
||||
- either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
- in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
- of those above. If you wish to allow use of your version of this file only
|
||||
- under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
- use your version of this file under the terms of the MPL, indicate your
|
||||
- decision by deleting the provisions above and replace them with the notice
|
||||
- and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
- the provisions above, a recipient may use your version of this file under
|
||||
- the terms of any one of the MPL, the GPL or the LGPL.
|
||||
-
|
||||
- ***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
<!DOCTYPE prefwindow SYSTEM "chrome://gloda/locale/prefwindow.dtd">
|
||||
<prefwindow id="glodaPreferences" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="&prefwindow.title;">
|
||||
<prefpane id="pane1" label="&pane1.title;">
|
||||
<preferences>
|
||||
<preference id="boolpref1" name="extensions.gloda.boolpref" type="bool"/>
|
||||
<preference id="intpref1" name="extensions.gloda.intpref" type="int"/>
|
||||
<preference id="stringpref1" name="extensions.gloda.stringpref" type="string"/> <!-- note that this is only an ASCII string - use unichar for unicode strings -->
|
||||
</preferences>
|
||||
<checkbox id="checkboolpref" preference="boolpref1" label="&checkboolpref.label;" accesskey="&checkboolpref.accesskey;"/>
|
||||
<label accesskey="&intpref.accesskey;" control="textintpref">&intpref.label;</label><textbox id="textintpref" preference="intpref1"/>
|
||||
<label accesskey="&stringpref.accesskey;" control="textstringpref">&stringpref.label;</label><textbox id="textstringpref" preference="stringpref1"/>
|
||||
</prefpane>
|
||||
</prefwindow>
|
|
@ -0,0 +1,51 @@
|
|||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (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/MPL/
|
||||
*
|
||||
* 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 Global Database.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Andrew Sutherland.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2008
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
var gloda = {
|
||||
onLoad: function() {
|
||||
// initialization code
|
||||
this.initialized = true;
|
||||
this.strings = document.getElementById("gloda-strings");
|
||||
},
|
||||
onMenuItemCommand: function(e) {
|
||||
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
|
||||
.getService(Components.interfaces.nsIPromptService);
|
||||
promptService.alert(window, this.strings.getString("helloMessageTitle"),
|
||||
this.strings.getString("helloMessage"));
|
||||
},
|
||||
|
||||
};
|
||||
window.addEventListener("load", function(e) { gloda.onLoad(e); }, false);
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
-
|
||||
- The contents of this file are subject to the Mozilla Public License Version
|
||||
- 1.1 (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/MPL/
|
||||
-
|
||||
- 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 Global Database.
|
||||
-
|
||||
- The Initial Developer of the Original Code is
|
||||
- Andrew Sutherland.
|
||||
- Portions created by the Initial Developer are Copyright (C) 2008
|
||||
- the Initial Developer. All Rights Reserved.
|
||||
-
|
||||
- Contributor(s):
|
||||
-
|
||||
- Alternatively, the contents of this file may be used under the terms of
|
||||
- either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
- in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
- of those above. If you wish to allow use of your version of this file only
|
||||
- under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
- use your version of this file under the terms of the MPL, indicate your
|
||||
- decision by deleting the provisions above and replace them with the notice
|
||||
- and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
- the provisions above, a recipient may use your version of this file under
|
||||
- the terms of any one of the MPL, the GPL or the LGPL.
|
||||
-
|
||||
- ***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<?xml-stylesheet href="chrome://gloda/skin/overlay.css" type="text/css"?>
|
||||
<!DOCTYPE overlay SYSTEM "chrome://gloda/locale/gloda.dtd">
|
||||
<overlay id="gloda-overlay"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
<script src="overlay.js"/>
|
||||
<stringbundleset id="stringbundleset">
|
||||
<stringbundle id="gloda-strings" src="chrome://gloda/locale/gloda.properties"/>
|
||||
</stringbundleset>
|
||||
|
||||
<menupopup id="taskPopup">
|
||||
<menuitem id="gloda-hello" label="&gloda.label;"
|
||||
oncommand="gloda.onMenuItemCommand(event);"/>
|
||||
</menupopup>
|
||||
</overlay>
|
|
@ -0,0 +1,5 @@
|
|||
pref("extensions.gloda.boolpref", false);
|
||||
pref("extensions.gloda.intpref", 0);
|
||||
pref("extensions.gloda.stringpref", "A string");
|
||||
// See http://kb.mozillazine.org/Localize_extension_descriptions
|
||||
pref("extensions.gloda@mozillamessaging.com.description", "chrome://gloda/locale/gloda.properties");
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
|
||||
<Description about="urn:mozilla:install-manifest">
|
||||
<em:id>gloda@mozillamessaging.com</em:id>
|
||||
<em:name>Global Database</em:name>
|
||||
<em:version>1.0</em:version>
|
||||
<em:creator>Andrew Sutherland</em:creator>
|
||||
<em:description>Adds a global database to Thunderbird</em:description>
|
||||
<em:optionsURL>chrome://gloda/content/options.xul</em:optionsURL>
|
||||
<em:targetApplication>
|
||||
<Description>
|
||||
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <!-- thunderbird -->
|
||||
<em:minVersion>1.5</em:minVersion>
|
||||
<em:maxVersion>2.0.0.*</em:maxVersion>
|
||||
</Description>
|
||||
</em:targetApplication>
|
||||
</Description>
|
||||
</RDF>
|
|
@ -0,0 +1 @@
|
|||
<!ENTITY gloda.label "Your localized menuitem">
|
|
@ -0,0 +1,4 @@
|
|||
helloMessage=Hello World!
|
||||
helloMessageTitle=Hello
|
||||
prefMessage=Int Pref Value: %d
|
||||
extensions.gloda.description=Adds a global database to Thunderbird
|
|
@ -0,0 +1,8 @@
|
|||
<!ENTITY prefwindow.title "Global Database preferences">
|
||||
<!ENTITY pane1.title "Global Database preferences">
|
||||
<!ENTITY checkboolpref.label "A Boolean Preference">
|
||||
<!ENTITY checkboolpref.accesskey "B">
|
||||
<!ENTITY intpref.label "An Integer Preference">
|
||||
<!ENTITY intpref.accesskey "I">
|
||||
<!ENTITY stringpref.label "A String Preference">
|
||||
<!ENTITY stringpref.accesskey "S">
|
|
@ -0,0 +1,21 @@
|
|||
This extension was generated by the Extension Wizard at
|
||||
http://ted.mielczarek.org/code/mozilla/extensionwiz/ .
|
||||
This extension is compatible only with Firefox 1.5 and
|
||||
above. Most of the files in this package are based on
|
||||
the 'helloworld' extension from the Mozillazine Knowledge Base.
|
||||
|
||||
You can build an XPI for installation by running the
|
||||
build.sh script located in this folder. For development
|
||||
you should do the following:
|
||||
1. Unzip the entire contents of this package to somewhere,
|
||||
e.g, c:\dev or /home/user/dev
|
||||
2. Put the full path to the folder (e.g. c:\dev\gloda on
|
||||
Windows, /home/user/dev/gloda on Linux) in a file named
|
||||
gloda@mozillamessaging.com and copy that file to
|
||||
[your profile folder]\extensions\
|
||||
3. Restart Firefox.
|
||||
|
||||
For more information, see the Mozillazine Knowledge Base:
|
||||
http://kb.mozillazine.org/Getting_started_with_extension_development
|
||||
|
||||
-Ted Mielczarek <ted.mielczarek@gmail.com>
|
|
@ -0,0 +1,5 @@
|
|||
/* This is just an example. You shouldn't do this. */
|
||||
#gloda-hello
|
||||
{
|
||||
color: red ! important;
|
||||
}
|
Загрузка…
Ссылка в новой задаче