Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Platform-releng/Updating Branding
This page contains information on updating the Eclipse SDK branding elements (icon, splash screen, etc).
Most items on this page only need updating when there is a change in branding, or theme, such as perhaps for every major release.
But, some need to be updated every release, even service releases, such as see Version Numbers and Copyright blurbs.
Splash screen
The splash screen used for both the Eclipse SDK and Eclipse Platform Runtime is located in the bundle org.eclipse.platform (see in Git repository). It is a single file called splash.bmp (a 452x302 bitmap). The same directory in the source tree contains some PhotoShop source files that can be used to update the splash. Typically each year the splash needs updating with the current year in the copyright statement, and the name of the Simultaneous Release.
In the same org.eclipse.platform bundle, the plugin.xml file contains properties specifying the font color and position of progress messages that are overlayed on the splash screen during startup. These properties might need changing if there are significant changes to the splash screen layout. See properties startupForegroundColor, startupMessageRect, and startupProgressRect
Note: If your image program offers a choice, such as GIMP 2.8.10 does, it is important to save the bmp WITHOUT color space information saved or, else, the splash screen will not be displayed on Windows .... apparently a silent failure to read a "modern" BMP file (watch bug 439573). And use care, since in Gimp anyway, the choice is a negative check-off: Do not write color space information
is unchecked by default, but must be checked to save the bmp WITHOUT color space information -- just like it says, but as I repeatedly misread.
Also, The bitmap should be saved in 24-bit format (8R, 8G, 8B) for else "funny colors" (such as red instead of blue, or green instead of blue) will sometimes appear if the 32-bit format is used, with 8 bits of "transparency".
Note: If your image program offers a choice, such as GIMP does, it is important to save the BMP or PNG as 72 DPI for proper display on macOS: GIMP } Image } Scale Image... } X resolution: 72; Y resolution: 72 } Scale
Icons
The icons for the Eclipse SDK are rarely updated, but when they do change, it is a significant process. Icons have to be prepared in various sizes and formats for different platforms. They have to be inserted into the build in various places.
Icon sizes and formats
The following sizes and formats are needed, as a starting point:
Png - 32 bit: (all sizes) 16, 22, 24, 32, 48, 64, 128, 256, 512, 1024
Gif - 8 bit / 256 colors 16, 22, 24, 32, 48
4 bit / 16 colors 16,22,24,32,48
Note: Besides the "normal" icon, a 16x16 Gif is needed where the Eclipse icon has a border around it. This is used inside the IDE at various places (see below)
How these sizes and formats will be further prepared for delivery depends on platform:
Windows ICO file containing:
- 32 bit PNG: 16x16, 24x24, 32x32, 48x48, 64x64 and 256x256
- 8 bit GIF: 16, 24, 32, 48
- 4 bit GIF: 16, 24, 32, 48
- Only a 32-bit copy of the 256x256 pixel image should be included, and only the 256x256 pixel image should be
compressed to keep the file size down. Note that the sizes (24x24 and 64x64) are included for "classic" mode on XP.
MAC ICNS file format containing 1024x1024, 512x512, 256x256, 128x128, 32x32, 16x16, original format is PNG
Linux XPM file containing a single resolution. Currently 256x256.
Icon locations
Feature icons for about dialog
- Every feature with a branding plugin contains a copy of the 32-bit PNG file. The file name is specified in about.ini, but is usually called eclipse32.png.
Note: The About dialog groups the features by their icons. To do this, it compares the file content and not the name! - The primary product features (org.eclipse.platform and org.eclipse.sdk), also contain a larger image for the about dialog called eclipse_lg.gif or eclipse_lg.png (we prefer eclipse_lg.png, but it should have no alpha or transparency channels). Its size should be close to 116 pixels wide and 302 pixels high.
- - For more details about the about dialog image, it should end (on the bottom) in a solid color or a pattern that is easy to reproduce since if we ever need to add more text that is displayed in the about box then the "area to cover" vertically may grow and we will need to make the image higher than 302 pixels. Note, the image can be wider if needed, but that should be done knowing that may change the size of the whole about box and text layout and hence affect the height, as well. Plus, 250 pixels is an absolute width. If the image is that wide, then only the image is displayed, and not text is. See the AboutDialog class if need. Plus there are several examples that show, for example, the "image only" about Dialog.
Window images
The images that appear in the upper left hand corner of each window are specified by the product branding plugin (org.eclipse.platform and org.eclipse.sdk in our case). A variety of sizes and formats are given, and SWT has an algorithm to select the most appropriate image for a given platform. We currently provide:
- 32x32 GIF image (eclipse32.gif)
- 48x48 GIF image (eclipse48.gif)
- 32x32 PNG image (eclipse32.png)
- 48x48 PNG image (eclipse48.png)
- 256x256 PNG image (eclipse256.png)
Typically you can just replace the existing files with new files of the same name. If you need to add additional sizes, they are listed in plugin.xml, in the property "windowImages".
Launcher (Desktop) icons
Windows
On Windows, the eclipse.ico icon is embedded in the eclipse.exe executable. This is done by the launcher build. The icon file (which itself contains 6 or so icons of various sizes), is placed in this Git location. A launcher build must then be run to build a new executable with the embedded icon. Most build systems can "replace" those icons during a custom build, as long as replacements are "same shape" as what is in original, embedded ICO resource.
Use common pallet
As mentioned in bug 433094#c3 for icons that will, or might, require a "reduced pallet" (say, 256 colors only) then all those icons must use the same pallet, in an ICO file. Hence it is important to create them with this in mind (i.e. with exact same pallet), otherwise, heavy distortions may occur as "ICO creation" tools try to adjust them to all fit in the same pallet. Ideally, even if original images require more than 256 colors, the "main" 256 colors will all be common.
Others
On other platforms, the icon is just included as a separate file (or, files) in the launcher installable unit. The icons just need to be dropped into appropriate Git location(s), and then are packaged by the rest of the build. Note: currently, some icons are duplicated, either literally or by "copy-resources" during the build to the 'tychobuilder' product definitions. We probably only need them in the product definitions area, not the executable feature area (except, for Windows, since that is built into executable), but still need to investigate pros and cons of that approach. See bug 427428.
MacOSX
The Eclipse.icns file goes in subdirector of the 'Eclipse.app', such as this in this Git location.
Linux
The icon.xpm icon file goes under the architecture directory for Linux, such as in this Git location.
Icon in IDE
The IDE itself uses the 16x16 PNG variant of the Eclipse icon ('eclipse16.png'). Note that this icon must have a border of space around it, e.g. in the Product wizard or for the Eclipse launch configuration:
- /org.eclipse.ant.ui/icons/full/obj16/eclipse16.png
- /org.eclipse.pde.api.tools.ui/icons/full/obj16/eclipse16.png
- /org.eclipse.pde.ui/icons/etool16/eclipse16.png
- /org.eclipse.pde.ui/icons/obj16/eclipse16.png
References
(1) SWG User Interface Branding - Application Icon, Icon Creation: http://stwweb1.torolab.ibm.com/uibranding/rational/appl_icon_creation.html - for Windows only, does not include latest larger size 256
- Information and links provided by Eclipse developers
- Windows sizes and production information
- Mac reference
- https://bugzilla.mozilla.org/show_bug.cgi?id=495250
- bug 341645 - master bug for updating graphics in Juno release
- http://developer.gnome.org/hig-book/stable/icons-types.html.en#application_icons
- http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines#Sizes
- Solaris Desktop Icons Such as 'Eclipse.l.pm', 'Eclipse.m.pm', etc.
- Good summary of icon sizes for many popular platforms and devices.
Other branding elements
Welcome page
The welcome page has branding that may need updating if there is a major theme change.
Version Numbers
Most "versions" displayed for feature or bundles are determined by the version of the feature (in feature.xml) or bundle (in MANIFEST.MF). And, remember, a "branding bundle" should be assigned the same version as the feature for which it is the branding bundle, even though it itself may not change.
One exception is the "version" in the main "about box". For Eclipse 4.5 (Mars release) this says "Version: Mars (4.5)" and, for example, would be expected to be "Mars.1 (4.5.1)" for first maintenance release.
- The "train name", is set in the parent pom, via the property "releaseName", for example, <releaseName>Mars</releaseName> which would be <releaseName>Mars.1</releaseName> for first service release.
- The "marketing number" in the about box, such as "4.4", or "4.4.1", is also set in the parent pom, with the properties
<releaseNumberSDK> and <releaseNumberPlatform>. Typically these are the same value, and typically the same value as the "feature version" of the Eclipse Platform or Eclipse SDK, but would not have to be. They are, technically, an attribute of the product Eclipse Platform and Eclipse SDK.
- The version in the splash screen (for the Eclipse SDK) is determined by a property defined in the .product file, such as for sdk.product:
<property name="eclipse.buildId" value="${unqualifiedVersion}.${buildQualifier}" />
The "unqualifiedVersion" part of that value, is artifact ID of the maven artifact for the product, as defined in the product's pom.xml file. One of the few cases where the artifact Id must be updated for maintenance streams. (This is handled differently than the above "release number" cases simply because Tycho is in charge of one of them, and our "branding bundles" are in charge of the other.) And, this value determines the release number in "updates" (that is, becomes part of the content repository metadata.
- For main features, there's a description property in the *.p2.inf that contains the release name, see here, e.g.
properties.1.value = Initial Mars Release of the Eclipse Platform.
These should be changed every release so that users can "see" that something is new, even if it is to say simply "First Update Release for Mars", or similar.
- Another change to make every release, is in the
.eclipseproduct
marker file, that is a root file of the eclipse platform feature. It's version should be updated to match the "marketing number" of the release. (Investigating if can be automated, in bug 476075).
Copyright blurbs
The copyright statement comes from two sources. First are the about.properties file, for any "root feature".
But, the copyright in the main "about box" comes from the plugin.properties of the branding bundle for the product.
Note: we intentionally, currently do not use the copyright symbol ('\u00A9', or '©') since it is not part of every code page in every language. See bug 427514#c19 or other sources.