Source code repository
======================

ChmSee project hosts at Google Code:
http://code.google.com/p/chmsee

But the codes released on there are only the tagged source on main
branch. If you want to track the developing code, you can use
following git command fetching them to your local directory

$ git clone git://github.com/jungleji/chmsee.git

or browse them from

https://github.com/jungleji/chmsee/tree/cmake


Branches
========

master:  xulrunner application, will release on version 2.*
gtk:     gtk based, version 1.* code
webkit:  patch on 1.3.0, replace gtk with webkit
cmake:   old and deprecated


Files and directories
=====================

There is an introduction article described some base concepts about
the xulrunner application and it's structure. 

Getting started with XULRunner
https://developer.mozilla.org/en/Getting_started_with_XULRunner

ChmSee is an event-driven program, it composed with UI part and script
part. The UI part is written with XUL, an HTML like markup
language. For now, there are only two xul files in ChmSee: main.xul
and preferences.xul. One is used to display ChmSee main window,
another popups the preferences dialog.

When you click a button on main window, an EventListener function is called.
The EventListener functions written in JavaScript store in js files,
the main.xul couples with main.js, preferences.xul with
preferences.js. After finish processing in EventListener function, it
will modify the UI and wait another event.

Other js files in chrome/content directory are helper modules for
main.js and preferences.js For instance, book.js create Book object
that extracted chm file to bookshelf directory.


Multilanguages
==============

The strings that displayed on xul are entities stored in DTD files in
the chrome/locale directory. Strings in JavaScript use properties
files to store also locate in the same directory.

All these DTD and properties files are plain text, so it's easy to
make a new translation, just copy the en-US folder to a new locale,
and open the file you want to translate with your favorite editor.


Xulrunner application documents
===============================

During the ChmSee developing, the most frequently visited site by me is:
https://developer.mozilla.org/en-US/mozilla

If you need to know the XUL language, this tutorial is a good start:
https://developer.mozilla.org/en/XUL_Tutorial

If you want to learn how to create XPCOM components, reference:
https://developer.mozilla.org/en/Creating_XPCOM_Components

Another important resource is the xulrunner source code, I suggest you
extract the Firefox source tarball at hand.


Provide patch
=============

If you found bugs or have some new features for chmsee, we can use
GitHub's "Fork + Pull Model" to collaborate, the following page
descripted how to use this method:
http://help.github.com/pull-requests/
