Themes are project components that store formatting choices for drawings. Opening a theme shows the drawing with the formatting specified by the theme. A drawing can have many themes, each of which may show that drawing through a different set of formatting choices. Adding a new theme to a project requires virtually no storage space.
Themes may be used as though they were a drawing, for example, appearing as a layer in a map. Selections and editing commands may be done in a theme. Because a theme window is simply a drawing viewed through a particular format, any selections, edits or other changes except formatting made in any theme of a drawing will affect the drawing and all other themes of that drawing as well.
Themes are most often used with thematic formatting to show values of different data fields in a drawing. For example, the same drawing may be shown in different themes to show the values of populations, per capita income or other demographic attributes. Themes make it easy to show the same drawing in different ways without having to either reformat the drawing or make copies of the drawing for use with different formats.
To create a theme for a drawing:
1. In the project pane choose Create - Theme from the project pane toolbar or right click into the project pane and choose Create - Theme from the context menu.
2. In the Create Theme dialog choose a name and an optional description for the theme.
3. Choose the Parent drawing for the theme. This is the drawing that will appear in the theme with the specified formatting.
4. Check the Inherit formatting box if the theme is to automatically inherit any formatting changes made to the parent drawing. Uncheck this box if the theme is to have no connection to the formatting of the parent drawing.
5. Press OK.
Every theme is created based upon some parent drawing. The parent drawing appears in the theme. Any selection made in the theme will be a selection from the objects (points, lines or areas) in the parent drawing. Any editing changes in the theme, such as adding or removing objects, will be implemented in the parent drawing.
Themes may also be created based upon other themes. In that case, enter the name of the parent theme in the Parent box. If a theme is created based upon a parent theme, whatever is the ultimate parent drawing will also be the parent drawing for the newly-created theme.
Example
![]()
Suppose our project contains a drawing of Mexico provinces, created from the Mexico_eg drawing on the Manifold CD.

We can open the drawing and see that it uses default formatting.

We can create a theme by choosing Create - Theme in the project pane toolbar. We enter the name Population and choose the Mexico drawing as the parent. We uncheck the Inherit formatting option so that the theme takes no formatting attributes from the parent drawing.

A new theme appears in the project under its parent drawing.

If we open the theme we see it has default gray formatting.

We can click into the area background format well in the format toolbar and apply a thematic format that colors the theme based upon the population in each province, with darker greens indicating greater population. The POBL_1990 field in the example Mexico drawing gives the 1990 population for each province.

The theme will immediately show the new formatting applied.
Next, we can create another theme called Size.

The parent for this theme will also be our Mexico drawing. Once more we uncheck the Inherit formatting box.

A new theme appears in the project underneath its parent drawing.

We can apply a thematic format to the Size theme that colors provinces based upon their size in square miles, with larger provinces having a lighter color.
We will create one more theme, called Buses.

As with the other themes, this theme appears in the project pane underneath its parent drawing.

We will thematically format this theme based upon the number of buses in each province.

The darker the color, the more buses in the province.

If desired, we can open all three themes as well as their parent drawing. Each theme appears like a drawing in a drawing window and each theme has all of the characteristics that a drawing has. Each theme is derived from the parent drawing. Although there may appear to be four different "drawings," there is in fact only a single drawing and only one copy of all the objects in that drawing. The themes are just different ways of displaying that same drawing by using different formatting. We can have as many themes as we like and still there will be no increase in the amount of disk space required for the project.
Selections and other operations
We can make selections in a theme window, edit objects and otherwise do anything we could do in a drawing window.

For example, if we have all three themes open and their parent drawing as well, a selection made in any of the windows will immediately appear in all of the other windows.

If we make any edits in any of the windows, such as deleting objects or changing their position or size or form, the edits will take effect in all of the windows. The reason is that a parent drawing and any theme based upon that parent all show the same objects. The themes simply show those objects with different formatting.
Any selections saved in the Selections pane will also be the same for all themes of the same parent drawing.
Themes inherit any views in the Views pane from their parent drawing. Adding a view to any theme will add it to the parent drawing and to all other themes of that parent.
Likewise, themes inherit any Viewbots from their parent drawing. Adding a Viewbot to any theme will add it to the parent drawing and to all other themes of that parent.
Themes and Toolbars
Themes can be used in the Query and Transform toolbars. Object sets defined on themes will always use the name of the theme's parent drawing. For example, if there are selected objects in a theme named T whose parent is a drawing named D the selection choice will appear in the query or transform toolbar boxes as Selection in D.
This is done so that it is immediately clear that modifying a theme will modify the parent drawing (and thus all other themes bound to that drawing).
Inherited Formatting
In the example above we've considered a simple use of themes, where each theme is formatted completely independently of the parent drawing. Themes may also be created so that some or all of the formatting of the theme is automatically derived from the formatting of the theme's parent. Such formatting is called inherited formatting.
When a theme is created with inherited formatting, any changes made to the formatting of the parent will be applied automatically to that theme as well for those formatting characteristics that are inherited. If we like, at any time we can disinherit any particular formatting characteristic so that it is no longer inherited from the parent and can be set independently of the parent. Likewise, it is easy at any time to change a local formatting characteristic in a theme to be automatically inherited from the parent.
Inherited formatting allows us to pick and choose what formatting characteristics are automatically displayed in themes based upon changes to their parents. A theme can even use another theme as a parent, which makes it possible to create subtle and sophisticated relationships between different themes to specify what formatting characteristics will be automatically changed and what characteristics are unique to a specific theme.
Because the project pane always shows the hierarchical relationships of parent drawings to themes and then to themes that have other themes as parents, we can always use the project pane as our guide to the relationships we have created.
To create a theme with inherited formatting:
1. In the project pane choose Create - Theme from the project pane toolbar or right click into the project pane and choose Create - Theme from the context menu.
2. In the Create Theme dialog choose a name and an optional description for the theme.
3. Choose the Parent drawing for the theme. This is the drawing that will appear in the theme with the specified formatting.
4. Check the Inherit formatting box if the theme is to automatically inherit any formatting changes made to the parent drawing. Press OK. This creates the theme with all formatting characteristics being inherited from the parent.
5. Open the theme. To disinherit any formatting characteristic, click the formatting well for that characteristic and set some local format. As soon as we set a local format in the theme the inheritance for that format is disconnected.
6. If we change our minds and would like any characteristic to be inherited again, simply click on the formatting well for that characteristic and choose Parent in the pull-down color well dialog.
Example
Let's begin by creating a theme from the Mexico sample drawing (now simply called "Mexico").

However, this time we will check the Inherit formatting box.

As before a new theme appears in the project pane.

If we open the theme we see it has default formatting.
![]()
The format toolbar for this theme now shows four corner brackets displayed for each formatting characteristic. Corner brackets indicate that a particular formatting characteristic is inherited from a parent. Because this theme was created with Inherit formatting checked, all of the formatting characteristics are inherited from its parent, the Mexico drawing.

![]()
We next click open the Mexico drawing and thematically format the background color as seen above.

![]()
If we click open the Theme 1 theme, as expected it has the same formatting as its parent Mexico drawing. The formatting changes made to the area background in the Mexico drawing have been inherited automatically by the Theme 1 theme.
At any time we change an inherited formatting characteristic into a non-inherited formatting characteristic simply by applying a format to that characteristic.
![]()
For example, if we would like to change the area background color for Theme 1 into a non-inherited, local format we can simply click on the area background well in the format toolbar.

We choose a new color for the area background…
![]()
…and the format toolbar will show the area background without corner brackets to indicate it is a local format and not inherited from a parent.

Theme 1 will now show area background color as specified within the theme and not as inherited from its parent Mexico drawing. If any change is made to area background color in the Mexico drawing it will not be propagated to the Theme 1 theme. However, any other changes made in formatting to the Mexico drawing, such as changes in area foreground color, area style, line colors, etc. will be automatically propagated into the Theme 1 theme.
We will now create a theme based upon another theme.

In the project pane we choose Create - Theme and then in the Create Theme dialog we create a new theme called Theme 2 that use Theme 1 as the parent. Note that we've checked the Inherit formatting box.

Our new theme is created in the project pane below Theme 2. The theme's position in the project pane hierarchy shows that Theme 1 is its parent.

![]()
When we open the theme we see that Theme 2 appears the same as Theme 1, which is what we would expect since Theme 1 was the parent and we created the new theme with inherited formatting. The toolbar for Theme 2 shows that all formatting characteristics are inherited from a parent. Note that even though Theme 1 is the parent of Theme 2, because Mexico is the ultimate parent of Theme 1 all of the objects that are seen either in Theme 1 or Theme 2 come from the Mexico drawing.
Let's now make some formatting changes in both Mexico and in Theme 1 and see how they are propagated through the two themes we have created.

![]()
In the Mexico drawing we change the foreground color for areas to blue so that the area borders are rendered in blue (a strikingly ugly combination, given the thematic formatting of the background color for areas).

![]()
The foreground color for areas will immediately change in the Theme 1 theme, because this formatting characteristic is inherited from the Mexico drawing.

![]()
In the Theme 1 theme, let us now change the background color for areas to a light green.

![]()
If we open Theme 2 we see that Theme 2 has inherited the light green area background color from Theme 1. It has also inherited the blue area foreground color from Theme 1 which in turn inherited the color from Mexico.
Suppose we change a formatting characteristic so that it is not inherited but then at some future point we would like to change it back to inherited formatting? That's easy to change.

![]()
Let's go back to Theme 1, seen above. Note that the area background color well in the format toolbar has no brackets, so it is not inherited from Mexico.
![]()
To change it back we click on the area background color well…

…and choose Parent within the color choice dialog.

![]()
This changes the area background color into an inherited formatting characteristic and automatically Theme 1 will be displayed using the thematic format used by the Mexico drawing for area background color. Theme 2 (not illustrated) will also have the same appearance because Theme 2 inherits all formatting characteristics from Theme 1.
Notes
Although there may seem to be no downside to using themes, there is one minor user interface issue of which users should be aware. In earlier editions of Manifold System, when themes were not yet available, a user could tell from the visual appearance of a drawing layer exactly which drawing was being manipulated because every window that showed a particular drawing always showed that drawing in the same format, the drawings' format.
Because themes make it possible to show the same drawing using many different visual appearances we should take care to use formatting in sensible ways to avoid visual confusion.
For example, suppose we have two drawings that show European countries: Drawing A is formatted with mostly green colors and drawing B is formatted using mostly blue colors. It would be unwise to create a theme A1 for drawing A that is formatted with blue colors so it looks like drawing B, and it would be unwise to create a theme B1 for drawing B that is formatted with green colors so that it looks like drawing A. We don't want users to make edits within A1 thinking they are editing the B drawing because of the visual similarity between the two.
It's true that at any moment a user could look at the title bar of a theme window or the name of a layer in a map window and compare them with the names of drawings and themes in the project pane. Nonetheless it makes sense to keep in mind the possibility of visual confusion when working with large, complex projects that might include dozens or hundreds of components.
A good approach is to adopt naming conventions that clearly state the parentage of themes. For example, we might call a drawing "US States" and name its themes "US States - Income," "US States - Birthrate", "US States - Population" and so on based upon how the themes are formatted.
Tech Tip
When pasting a theme as a labels component to create a bound labels component, the parent of the labels component will be the parent drawing of the theme.
See Also