<p>NetSurf has inbuilt support for themed icons and status bar tools.<br/>
This document details how to create your own themes for NetSurf</p>
</section>
<sectiontitle="Tools Required">
<p>In order to create a new theme, you will require the following tools:
<listtype="unordered">
<item><p> A template editor </p></item>
<item><p> A sprite file editor </p></item>
<item><p> A text editor </p></item>
</list>
</p>
</section>
<sectiontitle="Creating Templates">
<p>The best way to go about creating a new theme is to take the templates for the default theme and edit them with a template editor.</p>
<p>The templates file must contain two templates. One is "toolbar", the other is "theme_info".</p>
<subsectiontitle="Toolbar">
<p>The toolbar template must contain the following icons:
<listtype="unordered">
<item><p> Back Button </p></item>
<item><p> Refresh Button </p></item>
<item><p> Forwards Button </p></item>
<item><p> Throbber </p></item>
<item><p> URL entry bar </p></item>
<item><p> Status bar </p></item>
</list></p>
</subsection>
<subsectiontitle="Theme Info">
<p>The theme_info template details the theme in a graphical manner. It is similar to a program info dialogue box and should be treated as such. Again, the Default theme is a good source of reference.</p>
</subsection>
</section>
<sectiontitle="Sprites">
<p>Sprites should be contained in a single file named "Sprites".</p>
<p>Throbber sprites should display the various stages of progress and should be named "throbberN", where N is a numerical suffix (eg throbber0, throbber 23 etc).</p>
<p>Button sprites can be called whatever you like. The only limitation is that two sprites are provided per button - one unpressed, the other pressed. Also, the template validation strings for each button should contain the sprite names (eg Sbackl,backp)</p>
<subsectiontitle="Optional Preview Sprite">
<p>You may optionally provide a preview sprite for display in the theme configuration dialogue box. The sprite must be in a file called "Preview" and the sprite itself must be called "preview".</p>
</subsection>
</section>
<sectiontitle="Text Files">
<p>There are two text files which also make up the theme.</p>
<subsectiontitle="Icon Names">
<p>The IconNames text file provides the link between the template and the program. Each icon has a name defined internally by NetSurf (eg TOOLBAR_BACK). It is necessary to map these internal names to the icon numbers in the template. See the default theme for reference. All icons should be defined.</p>
</subsection>
<subsectiontitle="Icon Sizes">
<p>The IconSizes text file is best left alone. Simply copy the one from the default theme into your theme.</p>
</subsection>
</section>
<sectiontitle="Packaging your Theme">
<p>The default packaging for NetSurf themes is simply a folder named the same as your theme name (eg "Clear" for the Clear theme). Simply place all the files for your theme into a single directory, name the directory appropriately and create a Zip archive containing your theme.</p>
</section>
<sectiontitle="Submitting your Theme">
<p>Themes may be uploaded to the central NetSurf theme repository at <referencetype="link"href="http://netsurf.sourceforge.net/themes/">http://netsurf.sourceforge.net/themes/</reference></p>
</section>
</chapter>
<meta>
<maintainer>
<emailname="NetSurf Development Team"address="netsurf-develop@lists.sourceforge.net"/>