How to do an application using XULRunner

From CDOT Wiki
Jump to: navigation, search

Note: This page is still under construction

Setting up an application file structure

First set up the application file structure to the following:

 /applicationName
   /chrome
     /applicationName
       your app files
     chrome.manifest
   /defaults
     /preferences
        prefs.js
   application.ini

This file structure is used on a Linux platform. If your using a different platform, please visit Deploying XULRunner 1.8 to find the file struture for your specific platform.

Notes:

Users can change the name of the italicized filename and folders

Setting up the application.ini file

XULRunner first looks at the application.ini file located at the root directory. This file contains metadata which tells XULRunner how to run the application properly. This fype typically contains [Heading] and Key=Values. Also, Lines which begin with characters "#" or ";" are treated as comments.

The application.ini file contains two sections. They are the following with surrounding square brackets:

[App] Section - This section of the file contains data about the application

Key Value
Name Name of the application.
Version Version of the application.
BuildID This is the build ID which is unique. Typically this field is a date
ID Unique ID of the application.
Vendor This is the vendor of the application which is an optional field.


[Gecko] Section - This section contains information about what version XULRunner is needed for the application.

Key Value
MinVersion The minimum XULRunner version this application supports.
MaxVersion The maximum XULRunner version this application can run on.


The following is a sample application.ini file.

 [App]
 Vendor=Mylau
 Name=Hello World Application
 Version=1.0
 BuildID=20060101
 Copyright=Copyright (c) 2006 
 ID=xulTestApp@mylau.org
 
 [Gecko]
 MinVersion=1.8
 MaxVersion=1.8

Setting up the chrome.manifest file

The chrome manifest is used by XULRunner to locate the application resources. The application can be distributed using a compressed JAR file. For this example, the chrome.manifest file contains the following:

 content myapp file:content/

Setting up the prefs.js file

The prefs.js file tells XULRunner which XUL file contains the main window. The following was used for this simple application.

pref("toolkit.defaultChromeURI", "chrome://myapp/content/main.xul");


The pref function needs to be passed in two arguements. In this scenario, this document provided an explaination on what those two arguements are:

  • toolkit.defaultChromeURI is a preferences which allows a simple XULRunner-based application to open a new window
  • chrome://myapp/content/main.xul is the location of the main XUL file.

Creating some XUL

For the similicity of this application, we're going to create a simple XUL window that says hello world.

  <?xml version="1.0"?>
  <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

  <window id="main" title="My App" width="300" height="300"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <caption label="Hello World"/>
  </window>
  

Running the application

To run the application, type the following:

If your on Windows:

 xulrunner.exe application.ini

If your on Linux:

xulrunner application.ini

If your on Mac:

 /Library/Frameworks/XUL.framework/xulrunner-bin application.ini

Make sure your in the application level of the XULRunner application.

References