C. Customizing think-cell

This chapter describes how to customize think-cell, i.e., how to change default colors and other default properties.

The following properties can be changed using style files:

The first sections describe creating and loading a style file and explain how to deploy it in an organization. An understanding of these tasks is required in any case. Afterwards, you may either follow the Style file tutorial> to create your own style file or go through the format reference in Style file format.

C.1
Creating a think-cell style
C.2
Loading style files
C.3
Deploying think-cell styles
C.4
Style file tutorial
C.5
Setting a default agenda slide layout

C.1 Creating a think-cell style

Simple modifications to an existing style file can be made using any text editor. A new think-cell style file should be created using a dedicated XML editor. It will support you by automatically checking for errors and making suggestions on how to solve them. Our recommendation for such an editor and tips for setting it up is described at

https://www.think-cell.com/kb/0191

A dedicated XML editor will typically highlight errors in your document, and with a keyboard shortcut such as Ctrl-Spacebar you can trigger auto completion: the editor will offer a choice of tags, attributes or values applicable to the current context (position of the text cursor). If you move the mouse over highlighted errors, you will get a tooltip with a detailed explanation of the error.

Several sample style files are delivered together with think-cell and you can find them in the subfolder styles in the think-cell installation folder. First, find out the location of the installation folder. It is shown when you click About in the image  More menu.

Finding the installation folder

Open this folder and go to the subfolder styles, e.g.,

C:\Program Files\think-cell\styles

Open the file generic style.xml. It should look like this:

The default style file loaded in Visual Studio Express for Web

The editor automatically checks your file for errors. You can display an error list by clicking on View > Error List:

Empty error list window in Visual Studio Express for Web

Make sure that there are no warnings or errors indicated before you save an edited style file.

Of course, any other editor that supports XML also works. The file needs to be saved with an .xml extension.

C.2 Loading style files

To load a style file, choose Load Style File... from the menu image  More. In the dialog, navigate to the folder with the style file, choose the file and click Open. It is used for any new charts in the current presentation.

For example, after you load the sample style file example_style_complex.xml from the styles directory in think-cell’s installation path, the color and color scheme property controls will include customized items.

Changed color and color scheme list after loading a complex example style

If you want to apply a style’s colors or color schemes in existing charts, you need to do so manually.

C.2.1 Loading style files programmatically

You can also load style files programmatically, for example as part of a workflow that prepares new or updated templates. The greater precision of API calls also enables to specify additional options when loading a style file, like targeting a specific custom layout or even restricting the style to a rectangular region of a custom layout.

Suppose you have a custom layout that uses different background colors for the left and right side of the slide. The right side matches the background of the rest of your presentation, so it is fine that the style set in the master applies here. However, the left side uses a different background, for which a modified style is appropriate. In this situation, you would use LoadStyle to set one style file for the whole presentation. Next, you would use LoadStyleForRegion to set a different style for only the left side of the appropriate custom layout.

The following sections describe the available API calls.

C.2.2 LoadStyle

C.2.2.1 Signature

tcaddin.LoadStyle( _ 
    CustomLayoutOrMaster As Master, _ 
    FileName As String 
)
When loading a style file into a custom layout, the signature is
tcaddin.LoadStyle( _ 
    CustomLayoutOrMaster As CustomLayout, _ 
    FileName As String _
)

C.2.2.2 Description

Called from PowerPoint, this function loads the style file at FileName into a master or custom layout, specified via the parameter CustomLayoutOrMaster.

C.2.2.3 Example

' When Option Explicit appears in a file, you must 
' explicitly declare all variables using the Dim 
' or ReDim statements. If you attempt to use an 
' undeclared variable name, an error occurs at 
' compile time. 
' Use Option Explicit to avoid incorrectly typing 
' the name of an existing variable or to avoid 
' confusion in code where the scope of the 
' variable is not clear. If you do not use the 
' Option Explicit statement, all undeclared 
' variables are of Object type. 
' http://msdn.microsoft.com/en-us/ 
' library/y9341s4f%28v=vs.80%29.aspx 
Option Explicit
 
Sub LoadStyle_Sample() 
 
   ' Get the think-cell add-in object 
   Dim tcaddin As Object 
   Set tcaddin = Application.COMAddIns("thinkcell.addin").Object 
 
   Dim master As Master
   Set master = Application.ActivePresentation.Designs(1).SlideMaster
   
   Dim style As String
   style = "C:\some\path\styles\style.xml"
 
   Call tcaddin.LoadStyle(master, style)
End Sub

C.2.3 LoadStyleForRegion

C.2.3.1 Signature

tcaddin.LoadStyleForRegion( _ 
    CustomLayout As CustomLayout, _ 
    FileName As String, _
	Left as Single, _
	Top as Single, _
	Width as Single, _
	Height as Single _
)

C.2.3.2 Description

Called from PowerPoint, this function loads the style file at FileName into the custom layout CustomLayout and restricting it to a region given by Left, Top, Width, Height. On the rest of the slide, the style previously loaded with LoadStyle applies.

The parameters Left, Top, Width, Height are given in PowerPoint points. Usually you will set them as fractions of the total slide height and width. For example, for a region covering the right two thirds of a slide, Left would be set to 1/3 of the slide width and Width to 2/3.

You can also manually add a shape to a slide or custom layout, query its properties Left, Top, Width, Height programmatically and use the values with LoadStyleForRegion to restrict the style to the same region covered by the shape.

think-cell supports a maximum of two styles per custom layout. One is set with LoadStyle and covers everything not restricted to a region, the other is set with LoadStyleForRegion.

C.2.3.3 Example

' When Option Explicit appears in a file, you must 
' explicitly declare all variables using the Dim 
' or ReDim statements. If you attempt to use an 
' undeclared variable name, an error occurs at 
' compile time. 
' Use Option Explicit to avoid incorrectly typing 
' the name of an existing variable or to avoid 
' confusion in code where the scope of the 
' variable is not clear. If you do not use the 
' Option Explicit statement, all undeclared 
' variables are of Object type. 
' http://msdn.microsoft.com/en-us/ 
' library/y9341s4f%28v=vs.80%29.aspx 
Option Explicit
 
Sub LoadStyleForRegion_Sample() 
 
   ' Get the think-cell add-in object 
   Dim tcaddin As Object 
   Set tcaddin = Application.COMAddIns("thinkcell.addin").Object 
 
   Dim layout As CustomLayout
   Set layout = Application.ActivePresentation.Designs(1).SlideMaster.CustomLayouts(2)
   
   Dim left, top, width, height As Single
   top = 0
   left = 0
   width = layout.Width / 2
   height = layout.Height
   
   Dim style As String
   style = "C:\some\path\styles\style.xml"
 
   Call tcaddin.LoadStyleForRegion(layout, style, left, top, width, height)
End Sub

C.2.4 RemoveStyles

C.2.4.1 Signature

tcaddin.RemoveStyles( _ 
    CustomLayout As CustomLayout _ 
)

C.2.4.2 Description

Called from PowerPoint, this function removes all styles from the custom layout CustomLayout. Afterwards, the style loaded into the master applies. Potentially, there can be a style loaded into the custom layout and another style restricted to a specific region of the custom layout. As RemoveStyles removes all styles, both will be removed. The style loaded into a master cannot be removed, as there always needs to be a valid style associated with a master. It can be overwritten with a different style file.

C.2.4.3 Example

' When Option Explicit appears in a file, you must 
' explicitly declare all variables using the Dim 
' or ReDim statements. If you attempt to use an 
' undeclared variable name, an error occurs at 
' compile time. 
' Use Option Explicit to avoid incorrectly typing 
' the name of an existing variable or to avoid 
' confusion in code where the scope of the 
' variable is not clear. If you do not use the 
' Option Explicit statement, all undeclared 
' variables are of Object type. 
' http://msdn.microsoft.com/en-us/ 
' library/y9341s4f%28v=vs.80%29.aspx 
Option Explicit
 
Sub RemoveStyles_Sample() 
 
   ' Get the think-cell add-in object 
   Dim tcaddin As Object 
   Set tcaddin = Application.COMAddIns("thinkcell.addin").Object 
 
   Dim layout As CustomLayout
   Set layout = Application.ActivePresentation.Designs(1).SlideMaster.CustomLayouts(2)
   
   Call tcaddin.RemoveStyles(layout)
End Sub

C.3 Deploying think-cell styles

Load Style File... in the image  More menu in the think-cell toolbar loads a style file into the master slide of the current presentation. When the presentation is distributed as a PowerPoint template, the think-cell style is implicitly distributed as well. Switching between styles is accomplished by switching between PowerPoint templates. It should not be necessary to give a think-cell style file to individual users.

We recommend to distribute your think-cell style together with your PowerPoint template. Typically both are needed to implement your corporate design and deploying them as one is the easiest option for users.

If it is not possible to follow our recommendation to deploy the think-cell style as part of your PowerPoint template, a default style file can be specified with the defaultstyle configuration parameter (see Configuration parameters). The parameter value is the path name to a valid style file. If no absolute path is included, the specified file name is loaded from the installation location of think-cell.

The default style file is loaded automatically on two occasions:

  1. When a new presentation is created.
  2. When an existing presentation is opened that does not currently contain a style. When this presentation is saved and subsequently opened again, it will now contain a style, so the default style is not loaded again.

The default style file that will be loaded automatically is highlighted with an appended (default) in the list of available and recently loaded style files:

Load Style File menu command with list of available and recently used styles

C.4 Style file tutorial

In think-cell’s installation directory (usually C:\Program Files\think-cell), in the subdirectory styles, you can find the style file generic style.xml. This style mirrors the colors and color schemes that are available immediately after installation when no style is loaded. Therefore:

  1. Make a copy of generic style.xml and load it into an XML editor (see Creating a think-cell style for choosing a suitable editor).
  2. Walk through the file from top to bottom making the changes described in the following steps.
  3. Remove any unneeded colors from the list inside the fillLst element. You will find solidFill, pattFill and separator elements corresponding to the items in the color list displayed in think-cell (see Color and fill). To remove, e.g., a solidFill element, remove everything between and including the opening tag <solidFill ...> and the closing tag </solidFill>.
  4. Optionally, create a new section for your own colors. To do this, insert a separator tag by writing <separator/> at the appropriate location in the color list. Also, feel free to use line breaks, indentation and empty lines to structure the XML code in the style file for your own convenience. Spaces and linebreaks have no effect on the resulting style.
  5. Add your own colors using the solidFill element. Your color needs a name and values for the red, green and blue channels. You should have these values from the specification document for your company’s corporate identity. If the color’s name should be “Light Green”, the decimal value for the red channel 170, for green 255 and for blue 42, then it should look like this:
    <solidFill name="Light Green"> 
      <sdrgbClr r="170" g="255" b="42"/> 
    </solidFill>
    
  6. Remove any unneeded color schemes from the list inside the fillSchemeLst element. You will find fillScheme elements corresponding to the items in the color scheme list displayed in think-cell (see Color scheme. To remove a fillScheme element, remove everything between and including the opening tag <fillScheme ...> and the closing tag </fillScheme>.
  7. Optionally, modify an existing color scheme. You can
    • remove one or multiple colors from the scheme by removing the respective fillRef elements or
    • reorder the existing colors by reordering fillRef elements or
    • include one of your own colors by adding a fillRef element inside the fillScheme element at the appropriate place. If you wish to include the color defined above, add the following line:
      <fillRef name="Light Green"/>
      

    Note that you can only use colors that have been defined in the fillLst section (see steps 3.-5.) above. In particular, if you removed any colors in step 3., you must remove those colors from the color schemes, too.

  8. Optionally, create a new color scheme using the fillScheme element. Your scheme needs a name, e.g., “Green Scheme”, a color reference to be used by the other series in the required attribute fillSchemeLst, and a list of color references as fillRef elements. If you had defined the colors “Orange”, “Dark Green”, and “Medium Green” in addition to “Light Green” above, your color scheme might look like this:
    <fillScheme name="Green Scheme" fillRefOtherSeries="Orange"> 
      <fillRef name="Dark Green"/> 
      <fillRef name="Medium Green"/> 
      <fillRef name="Light Green"/> 
    </fillScheme>
    
  9. Check the contents of the fillSchemeRefDefault element. The name attribute specifies the color scheme that is used by default when inserting new charts. If you wish to set your own color scheme as the new default, modify the code like this:
    <fillSchemeRefDefault name="Green scheme"/>
    
  10. Save the modified style file, load it (see Loading style files) and test it.
  11. Deploy the new style in your organization as described in Deploying think-cell styles. In particular, it is not necessary to send the XML file to your colleagues, but you should of course keep it for your own reference.

C.5 Setting a default agenda slide layout

The think-cell agenda can use a specific custom layout in your presentation to define the agenda position and other shapes on an agenda slide like headers or pictures. By adding this custom layout to a template, you can define these settings for a whole organization.

  1. In PowerPoints slide master view, create a new custom layout. Typically, you will duplicate one of the existing custom layouts that best match the desired look of a think-cell agenda slide.
  2. Name the new custom layout “think-cell agenda”. think-cell will only use this custom layout, if it exactly matches this name, which is case-sensitive.
  3. Only include shapes on the “think-cell agenda” custom layout that should appear like this on every agenda slide.
  4. While editing the custom layout, choose image  Agenda Placeholder from the Elements menu. This element is only available when editing a custom layout. It adds an agenda placeholder on the current custom layout.
  5. Choose the agenda placeholder position as described in Placing the agenda.

When a custom layout created this way and named “think-cell agenda” is found in the current presentation, image  Chapter will use this custom layout, including any additional shapes on it and place the agenda at the pre-set position.

Share

think-cell uses cookies to improve the functionality, performance and security of this site. Your consent is necessary if you want to use the full functionality of this site. More information on the use of cookies by think-cell, your consent and your privacy rights can be found in our privacy policy.