Альтернативная тема для Altium Designer 18. Делаем свою тему.

Описание того, как устроена структура папки тем в AD18 и как можно легко сделать свою тему.

Cover Image

Посмню как увидел в первый раз AD18. Тогда в нём была только одна темная тема, которая оказась очень привлекательной. В следующих версиях появилась и светлая, которую я сразу же испытал, но всё-таки вернулся на тёмную сторону. И появился исследовательский интерес - "Можно ли сделать свою тему целиком или хотябы просто разукрасить по другому?". Можно.

Для изготовления свой темы возьмём за основу темную тему. Папку отвечающие за визуальную красоту AD18 находятся в месте установки в папке /Altium/AD18/System/:

  • Buttons - изображения кнопок и других вещей, которые зависят от основного цвета окна. Для темной темы кнопочки светлые, для светлой - тёмные. Ну вы поняли. Эту папку трогать не будем;
  • Themes - описание тем. Здесь всё, что касается цвета, шрифтов и тому подобного. Вот здесь мы и покапаемся.

Каталог содержит несколько папок и файлов:

  • AltiumDark - папка с некоторыми изображениями и описанием внешнего вида(положение элементов управления и другое - WpfResources.xaml) для темной темы.
  • AltiumLight - аналогичная папка для светлой темы
  • EDP Themes.xml - файл, где перечислены все доступные темы
  • Colors-AltiumLightGray.xml - цвета для светлой темы
  • Elements-AltiumDark.xml - описание элементов для светлой темы
  • Colors-AltiumDarkGray.xml - аналогичное для темной темы
  • Elements-AltiumLight.xml - аналогичное для темной темы

Для нашей темы нужен только файл с именем Color-*.xml, так как кроме цветов я ничего менять не собираюсь. Копирую файл темной темы и переименовываю на свой лад - Colors-DevprodestDarkGreen.xml. Теперь осталось только поменять необходимые цвета. У меня тема будет с зелёным оттенком.

<theme format="1.0">
    <colors>
        <!-- base colors. contrast-dependent -->
        <color name="Background" value="#353535" id="SystemBackground"></color>
        <color name="Border" value="#222222" id="SystemBorder"></color>
        <color name="InnerBorder" value="#303030" id="SystemInnerBorder"></color>
        <color name="OuterBorderInactive" value="#072600" id="SystemOuterBorderInactive"></color>
        <color name="OuterBorderActive" value="#167200" id="SystemOuterBorderActive"></color>
        <color name="DefaultFont" value="#E5E5E5" id="SystemDefaultFont"></color>
        <color name="AccentFont" value="#FFFFFF" id="SystemAccentFont"></color>
        <color name="DisabledFont" value="#868686" id="SystemDisabledFont"></color>
        <color name="FadedFont" value="#BBBBBB" id="SystemFadedFont"></color>
        <color name="ButtonFont" value="#FFFFFF" id="SystemButtonFont"></color>
        <color name="MenuBackground" value="#424242" id="SystemMenuBackground"></color>
        <color name="MenuFont" value="#E5E5E5" id="SystemMenuFont"></color>
        <color name="MenuPressed" value="#505050" id="SystemMenuPressed"></color>
        <color name="PanelCaption" value="#4E4E4E" id="SystemPanelCaption"></color>
        <color name="PanelFont" value="#E5E5E5" id="SystemPanelFont"></color>
        <color name="PanelBody" value="#404040" id="SystemPanelBody"></color>
        <color name="PanelGroup" value="#4E4E4E" id="SystemPanelGroup"></color>
        <color name="FrameInactive" value="#474747" id="SystemFrameInactive"></color>
        <color name="FrameActive" value="#4E4E4E" id="SystemFrameActive"></color>
        <color name="DialogBody" value="#404040" id="SystemDialogBody"></color>
        <color name="PlainArea" value="#3B3B3B" id="SystemPlainArea"></color>
        <color name="Header" value="#484848" id="SystemHeader"></color>
        <color name="GridLine" value="#353535" id="SystemGridLine"></color>
        <color name="GridGlyph" value="#222222" id="SystemGridGlyph"></color>
        <color name="TabActive" value="#4E4E4E" id="SystemTabActive"></color>
        <color name="Tooltip" value="#EEEEEE" id="SystemTooltip"></color>
        <color name="TooltipBorder" value="#3B3B3B" id="SystemTooltipBorder"></color>
        <color name="TooltipFont" value="#282828" id="SystemTooltipFont"></color>
        <color name="TooltipError" value="#906161" id="SystemTooltipError"></color>
        <color name="TooltipErrorBorder" value="#7B4343" id="SystemTooltipErrorBorder"></color>
        <color name="TooltipErrorFont" value="#E5E5E5" id="SystemTooltipErrorFont"></color>
        <color name="Button" value="#545454" id="SystemButton"></color>
        <color name="ButtonTop" value="#686868" id="SystemButtonTop"></color>
        <color name="ButtonActive" value="#5C5C5C" id="SystemButtonActive"></color>
        <color name="ButtonActiveTop" value="#707070" id="SystemButtonActiveTop"></color>
        <color name="ButtonPressed" value="#505050" id="SystemButtonPressed"></color>
        <color name="ButtonDisabled" value="#66484848" id="SystemButtonDisabled"></color>
        <color name="ButtonDisabledTop" value="#665C5C5C" id="SystemButtonDisabledTop"></color>
        <color name="ButtonBorderDisabled" value="#66333333" id="SystemButtonBorderDisabled"></color>
        <color name="ButtonGlare" value="#5F5F5F" id="SystemButtonGlare"></color>
        <color name="ButtonGlareActive" value="#646464" id="SystemButtonGlareActive"></color>
        <color name="ButtonGlarePressed" value="#484848" id="SystemButtonGlarePressed"></color>
        <color name="ButtonGlareDisabled" value="#66505050" id="SystemButtonGlareDisabled"></color>
        <color name="EditBoxBack" value="#2E2E2E" id="SystemEditBoxBack"></color>
        <color name="EditBoxBackDisabled" value="#444444" id="SystemEditBoxBackDisabled"></color>
        <color name="EditBoxGlare" value="#2A2A2A" id="SystemEditBoxGlare"></color>
        <color name="EditBoxGlareDisabled" value="#404040" id="SystemEditBoxGlareDisabled"></color>
        <color name="ScrollBarArrow" value="#808080" id="SystemScrollBarArrow"></color>
        <color name="ScrollBarThumb" value="#808080" id="SystemScrollBarThumb"></color>
        <color name="ExpanderBack" value="#484848" id="SystemExpanderBack"></color>
        <color name="LayerEditorName" value="#4B4B4B" id="SystemLayerEditorName"></color>
        <color name="LayerEditorNameFont" value="#CCCCCC" id="SystemLayerEditorNameFont"></color>
        <color name="LayerEditorBorder" value="#393939" id="SystemLayerEditorBorder"></color>
        <color name="LayerEditor" value="#545454" id="SystemLayerEditor"></color>
        <color name="LayerEditorFont" value="#999999" id="SystemLayerEditorFont"></color>
        <color name="LayerEditorTopBorder" value="#565656" id="SystemLayerEditorTopBorder"></color>
        <color name="LayerEditorActiveTopBorder" value="#727272" id="SystemLayerEditorActiveTopBorder"></color>
        <color name="LayerEditorActiveBorder" value="#383838" id="SystemLayerEditorActiveBorder"></color>
        <color name="GroupSeparatorBorderTop" value="#2C2C2C" id="SystemGroupSeparatorBorderTop"></color>
        <color name="GroupSeparatorBorderBottom" value="#454545" id="SystemGroupSeparatorBorderBottom"></color>
        <color name="SearchSeparatorBorderTop" value="#404040" id="SystemSearchSeparatorBorderTop"></color>
        <color name="SearchSeparatorBorderBottom" value="#575757" id="SystemSearchSeparatorBorderBottom"></color>
        <color name="ColorPicker" value="#4B4B4B" id="SystemColorPicker"></color>
        <color name="ColorPickerBorder" value="#474747" id="SystemColorPickerBorder"></color>
        <color name="ColorPickerTileBorder" value="#1D1D1D" id="SystemColorPickerTileBorder"></color>
        <color name="UIPanelBorder" value="#3E3E3E" id="SystemUIPanelBorder"></color>
        <color name="UIPanelInnerBorder" value="#545454" id="SystemUIPanelInnerBorder"></color>
        <color name="DisabledBorder" value="#383838" id="SystemDisabledBorder"></color>
        <color name="WizardHeader" value="#303030" id="SystemWizardHeader"></color>
        <!-- additional colors. contrast-independent -->
        <color name="ActiveBorder" value="#abfda2" id="SystemActiveBorder"></color>
        <color name="SelectedBack" value="#00A000" id="SystemSelectedBack"></color>
        <color name="SelectedBorder" value="#306439" id="SystemSelectedBorder"></color>
        <color name="SelectedGlare" value="#6ba775" id="SystemSelectedGlare"></color>
        <color name="SelectedFont" value="#FFFFFF" id="SystemSelectedFont"></color>
        <color name="SelectedBackSecondary" value="#434950"></color>
        <color name="SelectedFontSecondary" value="#FFFFFF"></color>
        <color name="SelectedBackInactive" value="#828282"></color>
        <color name="SelectedFontInactive" value="#FFFFFF"></color>
        <color name="SelectedBackInactiveSecondary" value="#494949"></color>
        <color name="SelectedFontInactiveSecondary" value="#FFFFFF"></color>
        <color name="EditSelectionBack" value="#868686" id="SystemEditSelectionBack"></color>
        <color name="EditSelectionFont" value="#CCCCCC" id="SystemEditSelectionFont"></color>
        <color name="PanelActiveCaption" value="#00A000" id="SystemPanelActiveCaption"></color>
        <color name="ErrorFill" value="#A26262" id="SystemErrorFill"></color>
        <color name="ErrorText" value="#E77878" id="SystemErrorText"></color>
        <color name="WarningText" value="#EDAF51" id="SystemWarningText"></color>
        <color name="ValidText" value="#90E778" id="SystemValidText"></color>
        <color name="ValidationErrorBack" value="#4F4444" id="SystemValidationErrorBack"></color>
        <color name="ValidationErrorInnerBorder" value="#4D4242" id="SystemValidationErrorInnerBorder"></color>
        <color name="ValidationErrorIconBack" value="#906161" id="SystemValidationErrorIconBack"></color>
        <color name="ValidationErrorIconGlyph" value="#FDFDFD" id="SystemValidationErrorIconGlyph"></color>
        <color name="ValidationErrorIconGlyph" value="#404040" id="SystemValidationWarningIconGlyph"></color>
        <color name="SysButtonInactiveHot" value="#6da161" id="SystemSysButtonInactiveHot"></color>
        <color name="SysButtonActiveHot" value="#00A000" id="SystemSysButtonActiveHot"></color>
        <color name="CloseButtonInactive" value="#474747" id="SystemCloseButtonInactive"></color>
        <color name="CloseButtonInactiveHot" value="#A00000" id="SystemCloseButtonInactiveHot"></color>
        <color name="CloseButtonActive" value="#A00000" id="SystemCloseButtonActive"></color>
        <color name="CloseButtonActiveHot" value="#C00000" id="SystemCloseButtonActiveHot"></color>
        <color name="CloseButtonPressed" value="#800000" id="SystemCloseButtonPressed"></color>
        <color name="CloseButtonFontInactive" value="#E5E5E5" id="SystemCloseButtonFontInactive"></color>
        <color name="CloseButtonFontActive" value="#FFFFFF" id="SystemCloseButtonFontActive"></color>
        <color name="ClearButton" value="#CCCCCC" id="SystemClearButton"></color>
        <color name="ClearButtonActive" value="#FFFFFF" id="SystemClearButtonActive"></color>
        <color name="Search" value="#A5915F" id="SystemSearch"></color>
        <color name="SearchCurrent" value="#A6842E" id="SystemSearchCurrent"></color>
        <color name="SearchFont" value="#3A372F" id="SystemSearchFont"></color>
        <color name="Link" value="#6da161" id="SystemLink"></color>
        <color name="LinkActiveHot" value="#e0f6dd" id="SystemLinkActiveHot"></color>
        <color name="ButtonLink" value="#6da161" id="SystemButtonLink"></color>
        <color name="ButtonLinkActiveHot" value="#ddf6dd" id="SystemButtonLinkActiveHot"></color>
        <color name="ButtonLinkChecked" value="#BBBBBB" id="SystemButtonLinkChecked"></color>
        <color name="SelectedButtonLink" value="#dcf1d7" id="SystemSelectedButtonLink"></color>
        <color name="SelectedButtonLinkActiveHot" value="#FFFFFF" id="SystemSelectedButtonLinkActiveHot"></color>
        <color name="SelectedButtonLinkChecked" value="#cde2c8" id="SystemSelectedButtonLinkChecked"></color>
        <color name="ControlGlyph" value="#FDFDFD" id="SystemControlGlyph"></color>
        <color name="ControlGlyphHot" value="#CCCCCC" id="SystemControlGlyphHot"></color>
        <color name="ControlGlyphFaded" value="#7F7F7F" id="SystemControlGlyphFaded"></color>
        <color name="ControlGlyphSoft" value="#CCCCCC"></color>
        <color name="PreviewModelTop" value="#555555" id="SystemPreviewModelTop"></color>
        <color name="PreviewModelBottom" value="#484848" id="SystemPreviewModelBottom"></color>
        <color name="UndefinedValueFont" value="#F4E48C" id="SystemUndefinedValueFont"></color>
        <color name="UndefinedValueFontDisabled" value="#BFC28A" id="SystemUndefinedValueFontDisabled"></color>
        <color name="UndefinedValueFont2" value="#999999" id="SystemUndefinedValueFont2"></color>
        <color name="UndefinedValueFontDisabled2" value="#A5A5A5" id="SystemUndefinedValueFontDisabled2"></color>

        <color name="PanelShapeHolderBackground" value="#1D1D1D" id="SystemPanelShapeHolderBackground"></color>
        <color name="PanelShapeTextForeground" value="#CBCBCB" id="SystemPanelShapeTextForeground"></color>
        <color name="PanelPcbFootprintBackground" value="#1D1D1D" id="SystemPanelPcbFootprintBackground"></color>
        <color name="PanelPcbFootprintLabelForeground" value="#E5E5E5" id="SystemPanelPcbFootprintLabelForeground"></color>
        <color name="PanelPcbFootprintTextBlockForeground" value="#FFFFFF" id="SystemPanelPcbFootprintTextBlockForeground"></color>

        <color name="ConnectionManagerPinColor" value="#FF8D5447" id="SystemDesignConnectionManagerPinColor"></color>
        <color name="ConnectionManagerConnectionChangedColor" value="#FF436045" id="SystemDesignConnectionManagerConnectionChangedColor"></color>
        <color name="ConnectionManagerConnectionChangedNetColor" value="#FF008F3B" id="SystemDesignConnectionManagerConnectionChangedNetColor"></color>
        <color name="ConnectionManagerConnectionConflictColor" value="#FF684646" id="SystemDesignConnectionManagerConnectionConflictColor"></color>
        <color name="ConnectionManagerConnectionConflictNetColor" value="#FF8D5446" id="SystemDesignConnectionManagerConnectionConflictNetColor"></color>

        <color name="VersionControlGridRowSelectedFont" value="#E5E5E5" id="SystemVersionControlGridRowSelectedFont"></color>
        </colors>
</theme>

Теперь необходимо добавить нашу тему в файл EDP Themes.xml:

<themes format="1.0">
    <theme name="Altium Dark Gray" layout="Dark" default="true">
        <colors file="Colors-AltiumDarkGray.xml">
        <elements file="Elements-AltiumDark.xml">
    </elements></colors></theme>
    <theme name="Altium Light Gray" layout="Dark">
        <colors file="Colors-AltiumLightGray.xml">
        <elements file="Elements-AltiumLight.xml">
    </elements></colors></theme>
    <theme name="Devprodest Dark Green" layout="Dark">
        <colors file="Colors-DevprodestDarkGreen.xml">
        <elements file="Elements-AltiumDark.xml">
    </elements></colors></theme>
</themes>

Собственно и всё.