How to skin MediaMonkey versions 3 and 4: Difference between revisions

From MediaMonkey Wiki
Jump to navigation Jump to search
 
(10 intermediate revisions by 4 users not shown)
Line 181: Line 181:




===Customizing Icons===
=== Customizing Icons ===
The default MediaMonkey icons can be replaced with custom icons included with a specific skin, or with a custom icon set that is applied to any user-selected skin that does not have custom icons.


To bundle specific custom icons within a Skin:
The default MediaMonkey icons can be replaced with custom icons included with a specific skin, or with a custom icon set that is applied to any user-selected skin that does not have custom icons. A [[MediaMonkey for Windows Icon_list|list of icons is available here]].
#Download all icons via http://www.mediamonkey.com/contrib/artwork/icons.zip (for MM2.5, use http://www.mediamonkey.com/contrib/artwork/icons_mm25.zip)
 
#Extract the icons from the .zip file to ''\Program Files\MediaMonkey\Skins\<Skinname>\Icons''
To bundle specific custom icons within a Skin:  
#Delete any icons that you do not plan to customize
 
#Edit any of the icons that you wish to include with the skin
#Download all icons via http://www.mediamonkey.com/contrib/artwork/icons.zip (for MM2.5, use http://www.mediamonkey.com/contrib/artwork/icons_mm25.zip)  
#Extract the icons from the .zip file to ''\Program Files\MediaMonkey\Skins\&lt;Skinname&gt;\Icons''  
#Delete any icons that you do not plan to customize  
#Edit any of the icons that you wish to include with the skin  
#To customize the skin just save the icons to the skin directory or archive (msz file), and then switch skins or restart MediaMonkey to see your work.
#To customize the skin just save the icons to the skin directory or archive (msz file), and then switch skins or restart MediaMonkey to see your work.


To create a complete icon set to be used with skins lacking custom icons:
To create a complete icon set to be used with skins lacking custom icons:  
#Download all icons via http://www.mediamonkey.com/contrib/artwork/icons.zip (for MM2.5, use http://www.mediamonkey.com/contrib/artwork/icons_mm25.zip)
#Extract the icons from the .zip file to ''\Program Files\MediaMonkey\Icons\''
#To customize the icons, just edit any of the icons in the ''\Icons\'' directory, and restart MediaMonkey.  The new icons will appear.
 
Notes:
*Main tree +/- icons can be replaced by bitmaps TreePlus.bmp and TreeMinus.bmp inside the skin package. As transparent color is used same color as in skin (007F007F). This feature is new to the 3.1 version.
*NoAArt.png is included in the icon set for unknown art in Album Art window even though it isn't really an icon.
*NoAArtNew.png is included in the icon set for default unknown art in Album Art views even though it isn't really an icon.
*CTIDNoAArtNew.png can define customized unknown art for each content type (see below).


Each collection can have custom icons set based on his content type. These custom icons should be named:<br>
#Download all icons via http://www.mediamonkey.com/contrib/artwork/icons.zip (for MM2.5, use http://www.mediamonkey.com/contrib/artwork/icons_mm25.zip)
CTIDtreeXXX.ico<br>
#Extract the icons from the .zip file to ''\Program Files\MediaMonkey\Icons\''
#To customize the icons, just edit any of the icons in the ''\Icons\'' directory, and restart MediaMonkey. The new icons will appear.


Notes:


where CTID is Content Type ID:<br>
*Main tree +/- icons can be replaced by bitmaps TreePlus.bmp and TreeMinus.bmp inside the skin package. As transparent color is used same color as in skin (007F007F). This feature is new to the 3.1 version.
Podcast = 1<br>
*NoAArt.png is included in the icon set for unknown art in Album Art window even though it isn't really an icon.
Audiobooks = 2<br>
*NoAArtNew.png is included in the icon set for default unknown art in Album Art views even though it isn't really an icon.
Classical Music = 3<br>
*CTIDNoAArtNew.png can define customized unknown art for each content type (see below).
Music Video = 4<br>
Video = 5<br>
TV = 6<br>
Video Podcast = 7<br>


Each collection can have custom icons set based on his content type. These custom icons should be named:<br> CTIDtreeXXX.ico<br>


For Music type and collections without any type specified default icons set will be used.
<br> where CTID is Content Type ID:<br> Podcast = 1<br> Audiobooks = 2<br> Classical Music = 3<br> Music Video = 4<br> Video = 5<br> TV = 6<br> Video Podcast = 7<br>
In case collection will have defined more than one content type, icons set based on the first type will be used.<br>
For example:<br>
Collection Podcast have defined types Podcast and Video Podcast, then icons set for Podcast will be used (1treexxx.ico).


<br> For Music type and collections without any type specified default icons set will be used. In case collection will have defined more than one content type, icons set based on the first type will be used.<br> For example:<br> Collection Podcast have defined types Podcast and Video Podcast, then icons set for Podcast will be used (1treexxx.ico).


===Main Tree (or any other control) SETTINGS.INI===


Also in MM 3.1 Settings.ini file were added into skin package. This file can contains some specific settings on main tree (or any other controls).  
Introduced in MM 3.1 when Settings.ini file were added into skin package. This file can contains some specific settings on main tree (or any other controls).  


[Tree]<br>
=====[Tree]=====
ShowLines=0/1 - Hide/Show dotted lines in main tree<br>
ShowLines=0/1 - Hide/Show dotted lines in main tree<br>
NumberColumnTextColor=RRGGBB - text color of # column (introduced in MM4)<br>
NumberColumnTextColor=RRGGBB - text color of # column (introduced in MM4)<br>
FullRowSelect=0/1 - full row select in main tree (introduced in MM4)<br>
FullRowSelect=0/1 - full row select in main tree (introduced in MM4)<br>


[PageControl]<br>
=====[PageControl]=====
MainWindowTabs=TE_Object_Name - theme name for main window tabs - by default standard Tabs theme is used (introduced in MM4)<br>
MainWindowTabs=TE_Object_Name - theme name for main window tabs - by default standard Tabs theme is used (introduced in MM4)<br>
MainWindowTabsXP=TE_Object_Name - same as above, but only for XP<br>
MainWindowTabsXP=TE_Object_Name - same as above, but only for XP<br>
Line 241: Line 232:
CoverWindowTabsLineColor=RRGGBB - color of the line under tabs in Art & Details window<br>
CoverWindowTabsLineColor=RRGGBB - color of the line under tabs in Art & Details window<br>


[Aero]<br>
=====[Aero]=====
GlowSize=xxxx - size of the glow size in aero - default is 10 (introduced in MM4)<br>
GlowSize=xxxx - size of the glow size in aero - default is 10 (introduced in MM4)<br>


[Search]<br>
=====[Search]=====
InactiveTextColor=RRGGBB - inactive text color in search edit (introduced in MM4)<br>
InactiveTextColor=RRGGBB - inactive text color in search edit (introduced in MM4)<br>
ActiveTextColor=RRGGBB - text color in search edit edited by user (introduced in MM4)<br>
ActiveTextColor=RRGGBB - text color in search edit edited by user (introduced in MM4)<br>
Width=xxxx - width of the search edit - default is 127 (introduced in MM4)<br>
Width=xxxx - width of the search edit - default is 127 (introduced in MM4)<br>


[ArtBrowser]<br>
=====[ArtBrowser]=====
BackgroundColor=RRGGBB - background color of Art Browser (introduced in MM4)<br>
BackgroundColor=RRGGBB - background color of Art Browser (introduced in MM4)<br>
OverlayTextColor=RRGGBB - color of the overlay text on empty art (introduced in MM4)<br>
OverlayTextColor=RRGGBB - color of the overlay text on empty art (introduced in MM4)<br>
DescTextColor=RRGGBB - color of the description text of the art (introduced in MM4)<br>
DescTextColor=RRGGBB - color of the description text of the art (introduced in MM4)<br>
LetterTextColor=RRGGBB - color of the letter for fast scrolling (introduced in MM4)<br>
LetterTextColor=RRGGBB - color of the letter for fast scrolling (introduced in MM4)<br>
ArtFontName=MS Shell Dlg 2 - name of the font used in Art Browser<br>
'''These next variables are introduced in 4.0.2'''<br>
NoArt1FontSize=16 - height of the text at first row in No Art cover<br>
NoArt1FontStyle=[Bold] - style of the text at first row in No Art cover (can be a set of bold, italic, underline and strikeout)<br>
NoArt2FontSize=16 - height of the text at second row in No Art cover<br>
NoArt2FontStyle=[Bold] - style of the text at second row in No Art cover<br>
Selected1FontSize=11 - height of the text at first row for selected album description<br>
Selected1FontStyle=[Bold] - style of the text at first row for selected album description<br>
Selected2FontSize=11 - height of the text at second row for selected album description<br>
Selected2FontStyle=[Bold] - style of the text at second row for selected album description<br>
NoArt1YOffset=60 - vertical offset of first row in No Art cover<br>
NoArt2YOffset=90 - vertical offset of second row in No Art cover<br>
Selected1YOffset= 0 - vertical offset of first row in selected album description<br>
Selected2YOffset= 21 - vertical offset of second row in selected album description<br>
NoArt1Center=0 - first row in No Art cover will be centered<br>
NoArt2Center=0 - second row in No Art cover will be centered<br>
Selected1Center=1 - first row in selected album description will be centered<br>
Selected2Center=1 - second row in selected album description will be centered<br>


[System]<br>
=====[System]=====
ForceDisableAero=0/1 - allows skin to disable Aero for MM (introduced in MM4 build 1415)<br>
ForceDisableAero=0/1 - allows skin to disable Aero for MM (introduced in MM4 build 1415)<br>
<br>
=====[Menu]=====
SeparatorColor1=RRGGBB - define first line custom color for menu separator<br>
SeparatorColor2=RRGGBB - define second line custom color for menu separator<br>


'''Windows 7 Support (introduced in 3.1.2.1268)'''
===Windows 7 Support (introduced in 3.1.2.1268)===


Windows 7 comes with new taskbar features (live thumbnail, overlay icons, Aero Peek etc.) and MediaMonkey implements most of them.
Windows 7 comes with new taskbar features (live thumbnail, overlay icons, Aero Peek etc.) and MediaMonkey implements most of them.
Line 386: Line 400:




====INI File====
====PLAYER INI File====
Each Player's ini file is divided into sections corresponding to most names in the MSKN file and can contain:
Each Player's ini file is divided into sections corresponding to most names in the MSKN file and can contain:



Latest revision as of 18:18, 3 December 2020

This entry is primarily for reference purposes. For a walkthrough of how to skin your MediaMonkey interface, please see the Walkthrough on how to skin MediaMonkey v3 and/or Fast Newbie's Skinning Walkthrough for MM 3.

Introduction

MediaMonkey offers a fair amount of flexibility to customize the look of the application. This document provides graphic designers with the information needed to make MediaMonkey even better looking than it already is.

The UI elements that can be modified are:

  1. The MediaMonkey Skin
    • The application Theme (i.e. the look of buttons, borders, status bars, title bars, fonts, etc.)
    • The skin of the various incarnations of the player (the main player, mini-monkey, and micro-monkey) and the font of the text within
    • Background images for various panels
  2. Icons within the application

The MediaMonkey Skin

A MediaMonkey skin consists of the Theme, the Player skins, and several background images that together make up a ‘skin’. Skins are packaged as .msz files, which are simply .zip files with an .msz extension, containing all skin elements, saved to:

\MediaMonkey\Skins\skinname.msz

so that users can choose a skin via Tools > Options > Skin.

Note that during the skin creation process, skin components can be created/edited in

\MediaMonkey\Skins\Skinname\<skin components>

so that there’s no need to continually repackage the skin during skin development. Once you’re satisfied with your edits, you can just Zip the contents of the \Test directory into a zip file, rename it to <Skinname>.msz, and place it in the \MediaMonkey\Skins\ directory to see the final result.


Customizing the Theme

The MediaMonkey Theme is what controls the overall look and feel of most aspects of the application (e.g. the titlebar, the buttons, the status bar, tabs, checkboxes, etc.). The theme is controlled by Theme.mskn which contains graphical elements and mappings of these elements to various UI objects. To edit a theme:

  1. Extract a skin (e.g. Casino Blue.msz) to
    \MediaMonkey\Skins\Test\
  2. Download the KSDev theme editor from
    http://www.mediamonkey.com/contrib/artwork/themeeditor7.exe
  3. Run the Theme Editor and load Theme.mskn from the \Test directory into the theme editor and edit it and save it.
  4. In MediaMonkey, Go to Tools > Options > Skins and select the new Test skin to see the results of your work (to refresh the skin, just switch skins in the Skins configuration panel).


During the editing process, there are 2 approaches you can take:

  • If you have graphic expertise, but don't want to get into the details of configuring the size of buttons, their behaviour, setting margins, etc. the simplest approach is to create a new theme based on the graphics of an existing theme:
    1. Click File > Export Bitmaps and then edit the images, while making certain to maintain their exact dimensions
    2. Click the Images node in the ThemeEditor tree, select individual images and click 'Replace' to replace them with the newly edited images
    3. After replacing all the images, resave the .mskn file
    4. Switch to the skin entitled 'Test' to see how the changes look
  • If you want much greater control and flexibility to control all aspects of a theme, you can create a new theme based on an existing one, but in addition to changing graphics images, you can also change various additional characteristics of the theme (e.g. fonts) by editing the properties of various objects that appear in the MediaMonkey UI.


Instructions on the use of Theme Editor is beyond the scope of this document. The best approach is to edit the properties of various objects in the tree and then saving the theme file and test out the Skin containing the new theme file by switching to it in MediaMonkey.


Below is a reference to all Theme.mskn objects used in the MediaMonkey UI:

Form
This defines the MediaMonkey frame, and buttons within the title bar
Caption\Title\Font - caption font
MenuBar
Only the ToolbarItem is used along with;
ItemButton (TSeButtonObject type) - This defines look of the top menu item (items like File, Tools etc.)
SubitemButton (TSeButtonObject type) - This defined buttons within menu (all items in menu)
Popup Menu
This defines the look of menus
CheckBox
Defines the look/behaviour of checkboxes
RadioButton
Defines the look/behaviour of radio buttons
ScrollBar
Defines the look/behaviour of scrollbars
NCArea - defines bottom right corner background (area between horizontal and vertical scrollbars)
TopButton - defines top scrollbar button (for vertical scrollbar)
BottomButton - defines bottom scrollbar button (for vertical scrollbar)
LeftButton - defines left scrollbar button (for horizontal scrollbar)
RightButton - defines right scrollbar button (for horizontal scrollbar)
VertFrame - defines vertical scrollbar background
HorzFrame - defines horizontal scrollbar background
VertSlider - defines vertical scrollbar
HorzSlider - defines horizontal scrollbar
Button
Defines the look/behaviour of OK/Cancel/Other buttons that appear within dialogs
SpeedButton
Defines the look/behaviour of buttons on the toolbar
GroupBox
Defines the group boxes that are used in some dialogs such as encoder selection dialog
ProgressBar
Defines the look of progress bar that's used to indicate status. Currently only the horizontal one is used.
TrackBar
Defines the look of the sliders/tracks used for the equalizer
Listbox
Defines the look of listboxes (e.g. the Scan Folders dialog, tracklist)
Item\ActiveBitmap - for selected item background
ItemAdv\ActiveBitmap - for unfocused selected text background
ItemAdv\ActiveFont - for unfocused control selected text font
-
ListBox colors and fonts:
Colors\ListBox\Body - used to set default background colour
Fonts\ListItemTextNormal - for normal text
Fonts\ListItemTextHot - for 'hot' text
Fonts\ListItemTextSelected - for selected text
Combobox
Defines the look of combo boxes
SpinButton
Used for Up/Down arrows
Panel
Used for docked dialogs
Tabs
Used for TabSheets
ControlBar
Used to control the look of toolbars
Toolbar
Used to control the look of toolbar backgrounds.
SubitemFont (TextObject) - font for popped menu items.
Header
Used to control the headers in lists
Section\Font - header font
StatusBar
Controls the look of the status bar
ToolWindow
Controls the look of mini dialog frames (e.g. Equalizer, Album Browser)
Caption\Title\font - title font
Container
Used for some backgrounds
Splitter
Divides up the toolbar
VirtualTree
Defines the look of the VirtualTree (TrackList, MainTree etc.)
Panel - for defining border
DragSelection - selection color for mouse-use drag selection
DragTarget - selection color for dragging target node
TrackListOdd - background image for odd rows in tracklist
TrackListEven - background image for even rows in tracklist
NowPlayingOdd - background image for odd rows in now playing
NowPlayingEven - background image for even rows in now playing
MainTreeBackground - background image for the nodes (Available in Alpha 5 and newer builds)
AlbumArtTrackSelection - background image for highlighted tracks in "Album Art with details" view
AlbumArtSelection - background image for highlighted albums in "Album Art" view
AlbumArtTrackText - TSeTextObject for defining font color in "Album Art with details" view
AlbumArtText - TSeTextObject for defining font color in "Album Art" view
InfoPopup
Defines background and fields positions within popup info window
Frame\Background\AlbumArt - position and size of the place for album art image
Frame\Background\* - all fields with English names can be defined as TextObject (like Artist, Title etc.)
NavBar
Navigation bar settings
Background - navigation panel background
Node\Selection - background for selected node (mouse is hover it)
Node\DropMark - drop down sign
Node\Background - background for path node
Node\Caption - path node font settings
Indicator (introduced in MM 4.0.0.1350)
Usage Indicator (in Device Config dialog) settings
Audio - Audio part theme (should be in 9px height)
Video - Video part theme (should be in 9px height)
Others - Others part theme (should be in 9px height)
Free - Free part theme (should be in 9px height)
HistoryAudio - Audio history image (should be in size 10x10)
HistoryVideo - Video history image (should be in size 10x10)
HistoryOthers - Others history image (should be in size 10x10)
HistoryFree - Free history image (should be in size 10x10)


Tips for Maximizing Skin Performance

  1. Use the smallest size graphics possible to minimize the memory footprint
  2. Use 1 image per object rather than a single image for all objects
  3. Avoid the use of transparency in theme editor whenever possible
  4. Use stretched images in theme editor whenever possible (as opposed to tiled images)


Other Tips & hints:

  • MediaMonkey has a default theme of Default.mskn that's used if a xxx.msz archive doesn't contain a Theme.mskn file. You can edit this if you like.
  • Minimize single-pixel transparency in bitmaps to avoid performance hits
  • Try to minimize the use of margins in your objects as they decrease performance
  • It is best to use bitmaps that are distinct for each object (rather than a single image containing all objects) to avoid performance hits
  • ThemeEditor has a bug which sometimes causes the bottom right pixel in an image to become transparent. To avoid this, add an extra pixel of padding to the right of the image, but don't use the rightmost column of pixels in your objects.
  • All fonts in the fonts node should be set to 'Arial' to ensure correct functionality in unicode environments
  • For Font properties other that in 'Fonts' node (like ListBox\ItemAdv\ActiveFont). They allow to use 'MS Shell Dlg 2' font and thus it should be used when needed (such occasions are appear in the above list) -- the trick with 'Arial' font isn't used there).
  • Before finalizing your theme, make sure to test it at different DPI settings

Customizing Background Images

There are a number of background images used in MediaMonkey that are part of a skin (i.e. they are included within the <Skinname>.msz file. These include:

  • sdb_background_playing.bmp – non-scrollable background for the Now Playing list (optional – use if scrollable background not defined in the Theme)
  • sdb_background_list.bmp – non-scrollable background for the Track list (optional – use if scrollable background not defined in the Theme)
  • sdb_background_tree.bmp – non-scrollable background of the tree

To customize these, just save the bitmaps to a skin directory or archive (msz file), and then switch skins or restart MediaMonkey to see your work.


Customizing Icons

The default MediaMonkey icons can be replaced with custom icons included with a specific skin, or with a custom icon set that is applied to any user-selected skin that does not have custom icons. A list of icons is available here.

To bundle specific custom icons within a Skin:

  1. Download all icons via http://www.mediamonkey.com/contrib/artwork/icons.zip (for MM2.5, use http://www.mediamonkey.com/contrib/artwork/icons_mm25.zip)
  2. Extract the icons from the .zip file to \Program Files\MediaMonkey\Skins\<Skinname>\Icons
  3. Delete any icons that you do not plan to customize
  4. Edit any of the icons that you wish to include with the skin
  5. To customize the skin just save the icons to the skin directory or archive (msz file), and then switch skins or restart MediaMonkey to see your work.

To create a complete icon set to be used with skins lacking custom icons:

  1. Download all icons via http://www.mediamonkey.com/contrib/artwork/icons.zip (for MM2.5, use http://www.mediamonkey.com/contrib/artwork/icons_mm25.zip)
  2. Extract the icons from the .zip file to \Program Files\MediaMonkey\Icons\
  3. To customize the icons, just edit any of the icons in the \Icons\ directory, and restart MediaMonkey. The new icons will appear.

Notes:

  • Main tree +/- icons can be replaced by bitmaps TreePlus.bmp and TreeMinus.bmp inside the skin package. As transparent color is used same color as in skin (007F007F). This feature is new to the 3.1 version.
  • NoAArt.png is included in the icon set for unknown art in Album Art window even though it isn't really an icon.
  • NoAArtNew.png is included in the icon set for default unknown art in Album Art views even though it isn't really an icon.
  • CTIDNoAArtNew.png can define customized unknown art for each content type (see below).

Each collection can have custom icons set based on his content type. These custom icons should be named:
CTIDtreeXXX.ico


where CTID is Content Type ID:
Podcast = 1
Audiobooks = 2
Classical Music = 3
Music Video = 4
Video = 5
TV = 6
Video Podcast = 7


For Music type and collections without any type specified default icons set will be used. In case collection will have defined more than one content type, icons set based on the first type will be used.
For example:
Collection Podcast have defined types Podcast and Video Podcast, then icons set for Podcast will be used (1treexxx.ico).

Main Tree (or any other control) SETTINGS.INI

Introduced in MM 3.1 when Settings.ini file were added into skin package. This file can contains some specific settings on main tree (or any other controls).

[Tree]

ShowLines=0/1 - Hide/Show dotted lines in main tree
NumberColumnTextColor=RRGGBB - text color of # column (introduced in MM4)
FullRowSelect=0/1 - full row select in main tree (introduced in MM4)

[PageControl]

MainWindowTabs=TE_Object_Name - theme name for main window tabs - by default standard Tabs theme is used (introduced in MM4)
MainWindowTabsXP=TE_Object_Name - same as above, but only for XP
CoverWindowTabs=TE_Object_Name - theme name for cover window tabs - by default standard Tabs theme is used (introduced in MM4)

MainWindowTabsOverlaySize=size - define size of tabs overlay (so tabs can overlay each other)
CoverWindowTabsOverlaySize=size - same as above but for Art & Details window

CoverWindowTabsLineUnderTabs=1/0 - enable (default) or disable line under tabs in Art & Details window (introduced in MM4)
CoverWindowTabsLineColor=RRGGBB - color of the line under tabs in Art & Details window

[Aero]

GlowSize=xxxx - size of the glow size in aero - default is 10 (introduced in MM4)

[Search]

InactiveTextColor=RRGGBB - inactive text color in search edit (introduced in MM4)
ActiveTextColor=RRGGBB - text color in search edit edited by user (introduced in MM4)
Width=xxxx - width of the search edit - default is 127 (introduced in MM4)

[ArtBrowser]

BackgroundColor=RRGGBB - background color of Art Browser (introduced in MM4)
OverlayTextColor=RRGGBB - color of the overlay text on empty art (introduced in MM4)
DescTextColor=RRGGBB - color of the description text of the art (introduced in MM4)
LetterTextColor=RRGGBB - color of the letter for fast scrolling (introduced in MM4)
ArtFontName=MS Shell Dlg 2 - name of the font used in Art Browser
These next variables are introduced in 4.0.2
NoArt1FontSize=16 - height of the text at first row in No Art cover
NoArt1FontStyle=[Bold] - style of the text at first row in No Art cover (can be a set of bold, italic, underline and strikeout)
NoArt2FontSize=16 - height of the text at second row in No Art cover
NoArt2FontStyle=[Bold] - style of the text at second row in No Art cover
Selected1FontSize=11 - height of the text at first row for selected album description
Selected1FontStyle=[Bold] - style of the text at first row for selected album description
Selected2FontSize=11 - height of the text at second row for selected album description
Selected2FontStyle=[Bold] - style of the text at second row for selected album description
NoArt1YOffset=60 - vertical offset of first row in No Art cover
NoArt2YOffset=90 - vertical offset of second row in No Art cover
Selected1YOffset= 0 - vertical offset of first row in selected album description
Selected2YOffset= 21 - vertical offset of second row in selected album description
NoArt1Center=0 - first row in No Art cover will be centered
NoArt2Center=0 - second row in No Art cover will be centered
Selected1Center=1 - first row in selected album description will be centered
Selected2Center=1 - second row in selected album description will be centered


[System]

ForceDisableAero=0/1 - allows skin to disable Aero for MM (introduced in MM4 build 1415)

[Menu]

SeparatorColor1=RRGGBB - define first line custom color for menu separator
SeparatorColor2=RRGGBB - define second line custom color for menu separator

Windows 7 Support (introduced in 3.1.2.1268)

Windows 7 comes with new taskbar features (live thumbnail, overlay icons, Aero Peek etc.) and MediaMonkey implements most of them.


- Overlay Icons

Play and Pause overlay icons can be customized by play_overlay.ico and pause_overlay.ico stored in the skin.


- Thumbnail View & Aero Peek

Icons in thumbnail view can be customized using prev_thumb.ico, play_thumb.ico, pause_thumb.ico, stop_thumb.ico, next_thumb.ico, ratinginc_thumb.ico and ratingdec_thumb.ico stored in the skin.


All of these icons MUST be in size 16x16 32bit color depth.

Customizing the Player

Basic Information

MediaMonkey v4 (MM4) comes with a Skinnable Player, which can be skinned independently of the MediaMonkey Theme.

There are 4 players in MM4:

  1. Classic player which appears in the main window.
  2. Aero player which appears in the main window for Operating Systems which support Aero (Windows Vista and 7).
  3. Full Screen Video player which appears on video playback when switched to full screen mode.
  4. Mini-player a smaller version of the player (known as MiniMonkey mode in older versions of MM).
  5. Toolbar controller which appears in Windows taskbar next to the system tray.

Each of these are skinned separately and can have different design attributes.

Player Files

Every player skin is stored and defined in 2 files: one defining the skin and the other, it's settings.

  • Classic player is defined in files Player.mskn and Player.ini.
  • Aero player is defined in files AeroPlayer.mskn and AeroPlayer.ini (introduced in MM4).
  • Mini-player player is defined in files FloatPlayer.mskn and FloatPlayer.ini.
  • Full Screen Player is defined in files FullScreenPlayer.mskn and FullScreenPlayer.ini. When Full Screen Player isn't defined inside the skin, Classic Player is used instead.
  • Toolbar controller can have two types: horizontal (when taskbar is on top or bottom edge of the screen) or vertical (when taskbar is on left or right edge of the screen). File name format for these types is MicroPlayerH (for horizontal) and MicroPlayerV (for vertical). Horizontal toolbar controller is then defined in MicroPlayerH.mskn and MicroPlayerH.ini, and vertical in MicroPlayerV.mskn and MicroPlayerV.ini.

#MSKN Files are standard ThemeEngine 6 files (older version of TE can be used, but with no warranty) formatted with maximum compression.

#INI Files are text-format config files that can be edited with any text editor.

Note: As with the MediaMonkey Themes, all skin files must be packaged within the Skin file (the WSZ file that contains all skins and themes and settings described in #Customizing the Theme ), though skin files can be can be saved to a subfolder of MM\Skins folder for development purposes. If a player is missing from the Skin file, MM3 uses default built-in skins for the missing player.

MSKN File

Players' MSKN file can contain these objects:


PlayerBackground (SkinObject)

Defines background of the Player. This object must contain object Frame and into this object you can store all parts of player background (like left side, center and right side).

Example:

PlayerBackground

Frame
LeftSide
Center
RightSide


With this hierarchy you can define the player, which can be resized (center part can be tiled, stretched etc. when player is being resized).

Every player can have transparent elements. One requirement is, that every transparent part must have the same color as color in upper left corner (point 0;0).

PlayButton, PauseButton, StopButton, PrevButton, NextButton, PlayPauseButton, ShuffleButton, ContinousButton, PlaylistButton, AutoDJButton (ButtonObject)

These objects represent basic player buttons. When you need to use more than 3 state buttons (like for PlayPauseButton where you need to design button for play and for pause both), then you can create objects with _UP and _DOWN postfixes and in INI file set to StateButton type (see below).

SeekBar, BalanceBar, VolumeBar (SkinObject)

Every seekbar can define its background (in these objects) and can define slider design with HorzSlider or VertSlider as its descendant.


Example:

SeekBar - this object defines the seekbar background

HorzSlider - this object defines the horizontal slider for seekbar
VertSlider - this object defines the vertical slider for seekbar

Visualization {Left/Right} (BitmapObject)

This object defines the bitmap for the visualization background. If you use themed visualization then you must define VisualizationLeft and VisualizationRight (instead of Visualization) as backgrounds for left and right channels.

Visualizations (SkinObject)

Container for themed visualization bands. In this container you can define visualization steps for separate channels or for both together. All visualizations steps is defined as LeftBand0..LeftBandn, RightBand0..RightBandn or Band0..Bandn for both channels. The number of steps is defined in the player INI file.

MonoStereoLabel (ButtonObject)

Indicator for mono/stereo. Mono indicator put into Bitmap and stereo into BitmapDisabled.

DigitPanels (ButtonObject)

Every digit panel uses bitmaps for its digits. In skin you can create 2 types of digits: small and normal.

Normal digits are named as Digit%, DigitEmpty and DigitNegative, where % is value (like Digit0, Digit4 etc.). Small digits have the same rules as normal digits, but name is SmallDigit.

For normal digits you can define TimeDivider object, which represents digits divider (like ‘:’, ‘-‘ etc.).

Rating (ButtonObject)

This button object is used for player-based ratings. Both Bitmap and BitmapDisabled fields need to be defined, where Bitmap is a “highlighted” rating star and BitmapDisabled is a “grayed” rating star.

StatusPanel (BitmapObject)

This panel is used as background for the player’s status indicators (like “playing”, “paused” etc.).

StatusImages/* (TBitmapObject)

Images for player’s status (can be defined StatusPlay, StatusStop and StatusPause).

AlbumArt (TBitmapObject)

Custom defined AlbumArt image for tracks that don’t have a defined cover.

AlbumArtOverlay (TBitmapObject) (since 3.1)

Custom defined Album Art Overlay image for tracks that have a defined cover.


Also MicroPlayer can have some additional data.

Popup (TBitmapObject) (since 3.1)

Custom defined popup window for micro player. This popup will appear hovering mouse over the player. This object can contains these childs :
BtnPlaylist (TButtonObject) - Playlist controller
BtnShuffle (TButtonObject) - Shuffle controller
BtnEQ (TButtonObject) - Equalizer controller
BtnContinous (TButtonObject) - Continous controller
CurArt (TBitmapObject) - Tracks Cover
CurRating (TSkinObject) - Rating range
CurTime (TLabelObject) - Position text settings
CurAlbum (TLabelObject) - Album text settings
CurTitle (TLabelObject) - Title text settings


PLAYER INI File

Each Player's ini file is divided into sections corresponding to most names in the MSKN file and can contain:

PlayerSkin

Basic information about skin and can contain these values:

EngineVersion
for which version of SkinnablePlayer is this skin designed (default 100 as 1.00 version)
Resizable
Defines how can the skin be resized. There are 4 4 values to set, with left, top, right and bottom sequence delimited with a comma.
-
Example :
Resizeable=1,0,1,0 – skin can be resized by left and right edges
Size
Initial size of skin.
MaxSize
Maximal size of the floating player (introduced in MM4)
TimeFormat
Default time format. Acceptable masks are d (day), h (hour), m (minutes), s (seconds). Upper case of D or H masks can be used to show these values only if it's not equal to zero. For example format HH:mm:ss shows :
01:40:30 if time is longer than an hour
40:30 if time is less than an hour
DockAtMostBottom
This value defines whether the player can be docked at the bottommost position in the main window (under status bar).
DockAtTheTop (introduced in 4.0.0.1301)
This value defines that the player be docked at the top (right below the toolbars).
DockLocked
If this value is set to 1, player is always docked in it’s default position and can’t be docked to any other position.
RemoveAllBordersAround
This removes all borders around the player (player background can be visually joined with main window without annoying borders).
RemoveBordersOnMainWindow (introduced in 3.1.0.1228)
This removes all borders on main window (around main tree, tracklist and other docked windows)
AeroSupported
Defines whether skin is aero ready or not
Centered
Player is centered - only for FullScreenPlayer (introduced in MM4)
PlayerAlpha
Alpha value of the FullScreenPlayer in range 0 - 255 (0 = fully transparent, 255 = opaque) (introduced in MM4)


Sections can have these names:

PlayPauseButton, SeekBar, VolumeBar, BalanceBar, PrevButton, PlayButton, PauseButton, StopButton, NextButton, ShuffleButton, ContinousButton, AutoDJButton, MonoStereo, Summary, SongTitle, TimeDisplay, SearchBar, EQButton, PlaylistButton, KbpsDisplay, FreqDisplay, AlbumArt, Visualization (for standard MM build-in visualization), VisualizationLeft and VisualizationRight (for user themed visualization), MinimizeButton, MaximizeButton, CloseButton, SwitchButton, Rating, StatusPanel, MuteButton, EjectButton


Type of an object is defined by Type value and can be one of the following:

Button, StateButton, DigitPanel, Text, TrackBar, BitmapLabel, Panel


Note : Rating and StatusPanel objects must be a type PANEL.


Other values, which can be defined:

Resizable
Defines, if object can be resized when user resizes player in Left,Top,Right,Bottom format. Also it defines controls alignment while resizing. If you define left/right or top/bottom to 0, control always stays in it’s position relative to resized size (e.g. if control in basic size will be on center and player is resized, then control will always be on center).
Pos
Position of the object in Left,Top format.
Size
Size of the object in Width,Height format. (Note: when height is greater than width, then object is defined as vertical .. this is usable for defining vertical seekbars).
Transperent
Ability to be transparent (1 indicates YES, 0 no).
TextMask
Text mask define which and how data is showed. See below for which masks can be used.
SmallDigits (only for DigitPanel type)
Defines, if digit panel uses small or normal digits (more about it at MSKN File section). 1 is Yes, 0 no.
ThumbSize (only for TrackBar type)
Defines thumb size.
ShowLimitH, ShowLimitV
These values defines horizontal and vertical limits for showing defined object. If players width/height is smaller than defined limit, then object is invisible.
FontColor
This value is used only for text objects. It defines font color in format RRGGBB (like FFFFFF is white color).
FontHeight
This value is used only for text objects. It defines font height in pixels.
FontName
User defined font for text object.
FontStyle
Style of the font. Can be one or more values (bold,italic,underline,strikeout) separated by space, comma or semicolon. This variable was introduced in 3.1.0.1203.
TextAlign
Text aligning. Can be -1 for left-align, 0 for center or 1 for right-align.
TrackReversed
Basic trackbar orientation have min value at the left or top of the trackbar. With this boolean value you can reverse this orientation (like for vertical volume bar which has max at the top of the trackbar). This is usable only for trackbars.
Steps
Defines steps of the user themed visualization. Images for this steps is defined in MSKN in Visualizations container.
Scrollable
For text objects it can be defined for enable/disable scrolling functionality (like for time display).
CenterOffsetX, CenterOffsetY
This values defines contant position of the object relative to player center (left/top edge of the object). Like CenterOffsetX=-20 defines, that the objects left edge will be always 20px left of the center of the player.
Lock<edge>Distance, Lock<edge>Object
Control can be locked by any of edge to any other control. If control, which is locked to is moved or sized, this control is automatically adjusted. Like:
LockRightDistance=-50 - right edge of the object will be always 50 pixels left from
LockRightObject=PrevButton - PrevButton’s left edge
Action
Name of the internal action (mainly for custom buttons) - introduced in MM4
GlowEffect
Enables/disables glow effect on labels (aero player only)


Additional options for VolumeBar (Visualization settings is described below)

BuiltInVUMeter
This option integrates VU meter directly into vertical volume bar.
BuiltInVUOffsets
Left,Top,Right and Bottom offsets of the VU meter inside the volume bar.
BuiltInSpectrum
This option integrates Spectrum visualization directly into horizontal volume bar (introduced in MM4).
BuiltInSpectrumOffsets
Left,Top,Right and Bottom offsets of the spectrum inside the volume bar.


Additional options to Visualization (non-themed version)

Switchable
1 when visualization can be changed to other type. 0 when only initial visualization should work.
InitialType
Initial type of visualization. Acceptable values are VUMeter (default), Spectrum, Osciloscope.


VU Meter visualization

VUDefaultSize
Default VU meter size (pixel rows in vertical bar or cols in horizontal).
VUSteps
Number of steps of VU meter (only for custom bands, see below).
VUBreaksSize
Empty space between steps.
VUColorBands
Number of color bands.
VUColorBandxColor
Band x color (same for left and right channel). X should be from 0 to VUColorBands-1.
VUColorBandxColorLeft
Band x color for left channel.
VUColorBandxColorRight
Band x color for right channel.
VUColorBandxSize
Size of the color band (in pixels).
VUColorBandxPerc
Maximal meter % used by this band. For example VUColorBand0Perc will be 50, so meter values up to 50% will be drawed by settings in this band.
VUColorMin
Starting color (lowest value) of the VU meter (RGB).
VUColorMax
Ending color (highest value) of the VU meter (RGB).
BuiltInVU1stRowOffsets
Offset of VU meter lines on 1st row. Ends of Volume bar background can be rounded so using this offsets user can better visually integrate VU into this rounded ends.
VUPeakColor
Color of peaks. Peaks can be disabled using VUPeakSize=0 (RGB).
VUPeakSize
Size of peaks in pixels.
VUPeakOffset
Offset of peaks from VU meter bar.


Spectrum visualization

SPPeakColor
Peak color.
SPSectionsCount
Number of spectrum sections (up to 10).
SPSpaceSize
Space in pixels between sections.
SPSectionSize
Section width in pixels.
SPDefaultSize
Default height of one spectrum line in pixels.
SPSteps
Number of steps in each section.
SPBreaksSize
Size of the breaks between section steps in pixels.
SPPeakSize
Peak size in pixels.
SPPeakOffset
Offset of the peak from current spectrum bar position.
SPColorMin
Starting color (lowest value) in RGB.
SPColorMax
Ending color (highest value) in RGB.
SPColorBands
Number of color bands.
SPColorBandxColor
Band x color. X should be from 0 to SPColorBands-1.
SPColorBandxSize
Size of the color band (in pixels).
SPColorBandxPerc
Maximal spectrum % used by this band. For example SPColorBand0Perc will be 50, so meter values up to 50% will be drawed by settings in this band.


Osciloscope

OSCColor
Color of osciloscope line (for left and right together) in RGB.
OSCColorLeft
Color of osciloscope line for left channel (RGB).
OSCColorRight
Color of osciloscope line for right channel (RGB).



By default, the skinning engine detects buttons' clicking area as non-transparent parts of the buttons. In some cases (like when you’re using images with alpha channel), this detection can be very limited. For this reason, every buttons can have it’s own mask in BitmapFocused property of the button object.

In addition you can use custom defined objects, which let you to give to your skin more functionality. Custom objects can be defined as Custom% (where % is unique number for anyone custom field, e.g. Custom1, Custom2, Custom3 etc.).


Switching between all players can be done via MediaMonkey (system’s minimize button and/or settings of the MediaMonkey) or you can use Player buttons:

MinimizeButton – in main player it switches to the MiniPlayer. In the MiniPlayer it uses MM settings for minimize.
SwitchButton – switches to the Micro-player (in all cases)
MaximizeButton – maximizes to main from the MiniPlayer or Micro-player
CloseButton – closes whole MM

Custom objects can have these fields: Pos, Size, Transperent, TextMask, ShowLimitH, ShowLimitV

These fields has a same sense as above.

Type

Types for custom objects is same as for classic objects, but any new types are allowed :
IMAGE
Image control. Source of the image is defined in Source field (see below)

Source

Source for image object (image path and filename relative to MM directory) or “<Cover>” text to show album cover of the loaded track.

Usable Masks

mm:ss – time format (can be used with digit panels like TimeDisplay)


# - any digit: MM3 replaces # char with digit. You can use more than one # char (for 3 digits you can use ### etc.). This can be used with digit panels like FreqDisplay etc.


%A – Artist
%R – Album artist
%L – Album
%S – Song
%P – Playlist position
%I – Song position
%H – Song length
%J – Time to play
%G – Genre
%C – Author
%U – Custom1
%V – Custom2
%W – Custom3
%E – Songs file extension
%F – Filename
%Y – Year
%T – Song order
%B – Bitrate
%M – Songs BPM
%D – Temporary order

Available in Alpha 5 and newer builds;
%Cn - custom field (n must be between 1 and 5)
%PC - current track in playlist
%PT - total tracks in playlist