# Substance 5 API change overview

### Removed client properties

- BACKGROUND_COMPOSITE, OVERLAY_PROPERTY.
- BORDER_PAINTER_PROPERTY, GRADIENT_PAINTER_PROPERTY, THEME_PROPERTY, TITLE_PAINTER_PROPERTY. Use custom skin + COLORIZATION_FACTOR for colorizing components
- ENABLE_INVERTED_THEMES, ENABLE_NEGATED_THEMES
- GRIP_PAINTER
- PAINT_ACTIVE_PROPERTY
- TABBED_PANE_VERTICAL_ORIENTATION, TABBED_PANE_VERTICAL_ORIENTATION_ROTATE_ICONS - left / right tabs are always rotated
- WATERMARK_IMAGE_KIND, WATERMARK_IMAGE_OPACITY, WATERMARK_IMAGE_PROPERTY - use APIs on SubstanceImageWatermark

### Modified client properties

- COLORIZATION_FACTOR - the colorization is on by default with value of 50%. To remove colorization, set the client property value to 0.0
- NO_EXTRA_ELEMENTS - use SHOW_EXTRA_WIDGETS. The widgets are not added by default (menu search panel, system menu entries, lock icon).
- WATERMARK_IGNORE, WATERMARK_TO_BLEED - use WATERMARK_VISIBLE. Trees, tables, lists and text components don't show watermark unless WATERMARK_VISIBLE is explicitly set to Boolean.TRUE

### New client properties

- SKIN_PROPERTY - on the root pane to install a per-window skin.
- WATERMARK_VISIBLE - combines WATERMARK_IGNORE and WATERMARK_TO_BLEED
- SHOW_EXTRA_WIDGETS - replaces NO_EXTRA_ELEMENTS

### Removed VM flags

- CONFIG_FILE
- BORDER_PAINTER_PROPERTY, GRADIENT_PAINTER_PROPERTY, THEME_PROPERTY, BUTTON_SHAPER_PROPERTY, TITLE_PAINTER_PROPERTY, WATERMARK_PROPERTY
- DEBUG_UI_MODE - use the substance-tools plugin
- ENABLE_INVERTED_THEMES, ENABLE_NEGATED_THEMES
- NO_EXTRA_ELEMENTS
- WATERMARK_IMAGE_KIND, WATERMARK_IMAGE_OPACITY, WATERMARK_IMAGE_PROPERTY

### Modified VM flags

- HEAP_STATUS_PANEL - use setWidgetVisible(SubstanceWidgetType.TITLE_PANE_HEAP_STATUS) and HEAP_STATUS_TRACE_FILE

### New VM flags

- HEAP_STATUS_TRACE_FILE - replaces HEAP_STATUS_PANEL

### Removed APIs

- addMixedTheme, addMixedThemeBy, hasMixedThemes, removeMixedTheme, removeMixedThemeBy along with SubstanceMixTheme and SubstanceMixBiTheme
- getActiveColorScheme, getDefaultColorScheme, getDisabledColorScheme
- getBackgroundComposite, setBackgroundComposite
- getCurrent*, getCurrent*Name, setCurrent*, register*ChangeListener, unregister*ChangeListener, getAll*s for border painters, button shapers, gradient painters, themes and watermarks. To get the current settings, use getCurrentSkin and SubstanceSkin APIs. To change the current settings, create a custom skin and use setSkin.
- getImageWatermarkKind, getImageWatermarkOpacity, setImageWatermarkKind, setImageWatermarkOpacity - use getSkin, SubstanceSkin.getWatermark and SubstanceImageWatermark APIs
- hideMenuSearchPanels, showMenuSearchPanels - use setWidgetVisible(SubstanceWidgetType.MENU_SEARCH)
- permanentlyHideHeapStatusPanel, permanentlyShowHeapStatusPanel - use setWidgetVisible(SubstanceWidgetType.TITLE_PANE_HEAP_STATUS)
- toBleedWatermark
- toEnableInvertedThemes, toEnableNegatedThemes
- ignoreAnimationsOnClass, toIgnoreAnimation - use FadeConfigurationManager APIs
- toShowExtraElements

### New APIs

- getCurrentSkin and the relevant SubstanceSkin APIs
- setWidgetVisible - currently for menu search and title pane heap status panel