The Theme Library allows you to use pre-defined themes within your projects. These themes can be created and shared by anyone.\\

+

The Theme Library allows you to use pre-defined themes within your projects. These themes can be [[software:​gui-designer:​theme-library:​creating-a-theme|created]] and shared by anyone.\\

Note: Currently sharing is a manual process. We are working on ways to allow full sharing directly within guiDesigner. But for now, you need to share the theme GUI file and all images manually.

Note: Currently sharing is a manual process. We are working on ways to allow full sharing directly within guiDesigner. But for now, you need to share the theme GUI file and all images manually.

+

{{:​software:​gui-designer:​theme_libraru.png?​nolink|}}

===== Accessing the Theme Library =====

===== Accessing the Theme Library =====

There are two ways to access the Theme Library within guiDesigner:​

There are two ways to access the Theme Library within guiDesigner:​

Line 12:

Line 13:

guiDesigner comes with some built-in themes. [[software:​gui-designer:​theme-library:​built-in-themes|To learn more about the inbuilt themes click here.]]

guiDesigner comes with some built-in themes. [[software:​gui-designer:​theme-library:​built-in-themes|To learn more about the inbuilt themes click here.]]

-

===== Creating ​Theme Library Files =====

+

===== Theme Groups ​=====

-

You can create your own library files for use in future projects, or to share with others. Basically, a theme library file is just a specially formatted [[software:​gui-designer:​gui-file|GUI File]].\\

+

Groups ​are a collection of GUI Objects which can be dragged and dropped in two ways:

-

\\

+

- Dragged into the project tree - this will create a copy of the group as a new subpage in the open project.

-

+

- Dragged onto an open page/​subpage - this will create copies of all the GUI objects within the group (buttons, etc) directly onto the page (rather than creating a subpage).

-

==== Theme Details ====

+

-

+

-

The theme library name and author details ​are grabbed from the GUI File [[software:​gui-designer:​project-properties|Project Properties]]. The project name is used as the theme name, whilst the author is used as the theme'​s author also.

+

-

+

-

==== Theme Previews ====

+

-

Any themes defined in the project will be visible in the Theme Library file, using the theme details to render the preview. You can also create a custom preview for a particular theme by creating a subpage and naming it '​theme_<​themename>',​ where <​themename>​ is the actual name of the theme definition you are creating the preview for. This allows you to show how a button theme looks with specific text, an overlay image, or amongst other objects such as a background image, etc. Anything you place on this subpage will be shown on the theme preview window within the Theme Library. If this subpage doesn'​t exist, the Theme Library will draw the theme on the appropriate object based on the theme details alone.

+

-

+

-

==== Groups ====

+

-

You can also create '​groups'​ within the theme library file. Groups allow you to create ​a collection of GUI Objects which can be dragged and dropped in two ways:

+

-

- Dragged into the project tree - this will create a copy of the group as a new subpage in the open project

+

-

- Dragged onto an open page/​subpage - this will create copies of all the objects within the group directly onto the page (rather than creating a subpage).

+

-

+

-

Good examples of use cases for the second method (dragging objects onto a page) are an Arrow Pad (containing left, right, up and down arrows, as well as an enter button) and a numpad (numbers 0 to 9, an asterix and hash).

+

-

+

-

To create a group in your theme library file, simply create a subpage called '​group_<​groupname>',​ where <​groupname>​ is the name you want to give your group. For example, '​group_arrowpad'​. This will then show up as a group item within Theme Library, allowing users to simply drag the group onto a page in their project and have all the objects automatically added.

+

-

+

-

==== Save Location ====

+

-

Once you have created your guiDesigner file for your Theme Library entry, you need to save a copy of it into the location where guiDesigner is installed, such as:\\

+

-

''​C:​\Program Files (x86)\CommandFusion\themes''​

+

-

+

-

Create a new folder for each theme, and the first .gui file that is found in that directory will be loaded into the Theme Manager when you next launch guiDesigner.

+

-

+

-

You can also include a ''​icon.png''​ file in that directory, and it will be used as the icon image in front of the theme name within the Theme Library.\\

+

-

This icon file should be 16x16 pixels. Transparency is supported.

+

+

===== Creating Theme Library Entries =====

+

See our wiki entry on how to [[software:​gui-designer:​theme-library:​creating-a-theme|create your own Theme Library entries]].