OpenSkin Designer MOD by @odem2014 popking159 and Lululla is based on OpenSkin Designer, a further development of e2skinner.
It includes a couple of new features i.e.:
- includes
- panels
- colored tree view
- screen search
- fold/unfold xml code
- quick add buttons (add screen, panel, widget, label, pixmap; delete item)
- simple autocomplete in code
- toggle conditional hiding element (show all, none, random, default)
- toggle markers (border indicators of elements)
- position replacement to 'center' disabled
- bugfixes
- etc.
To view 'fMain.cs'[design] you have to delete the following lines 988-997 (they will autogenerated again...)
this.textBoxEditor2.Styles.BraceBad.FontName = "Verdana\0\0\0\0\0\0\0\0\0\0\0\0\0"; this.textBoxEditor2.Styles.BraceLight.FontName = "Verdana\0\0\0\0\0\0\0\0\0\0\0\0\0"; this.textBoxEditor2.Styles.CallTip.FontName = "Segoe UI\0\0\0\0\0\0\0\0\0\0\0\0"; this.textBoxEditor2.Styles.ControlChar.FontName = "Verdana\0\0\0\0\0\0\0\0\0\0\0\0\0"; this.textBoxEditor2.Styles.Default.BackColor = System.Drawing.SystemColors.InactiveBorder; this.textBoxEditor2.Styles.Default.FontName = "Verdana\0\0\0\0\0\0\0\0\0\0\0\0\0"; this.textBoxEditor2.Styles.IndentGuide.FontName = "Verdana\0\0\0\0\0\0\0\0\0\0\0\0\0"; this.textBoxEditor2.Styles.LastPredefined.FontName = "Verdana\0\0\0\0\0\0\0\0\0\0\0\0\0"; this.textBoxEditor2.Styles.LineNumber.FontName = "Verdana\0\0\0\0\0\0\0\0\0\0\0\0\0"; this.textBoxEditor2.Styles.Max.FontName = "Verdana\0\0\0\0\0\0\0\0\0\0\0\0\0";
![]() Preview 1 |
![]() Preview 2 |
![]() Preview 3 |
![]() Preview 4 |
![]() Preview 5 |
![]() Preview 6 |
New Features & Improvements
-
Auto-update version comparison fix
The update check now correctly compares semantic versions usingSystem.Version. Previously any version difference (even if the online version was older) would trigger an update request. Now the update is offered only when the online version is strictly greater than the installed one. -
Rulers visibility fix
Rulers (horizontal and vertical) are now properly shown when the application starts and when a skin is opened. The 'Rulers' button in the designer toolbar reflects the correct state (checked when visible). Rulers disappear automatically when the skin is closed. -
Translation coverage extended
Language support has been increased to cover approximately 95% of all UI strings, including every entry in the keyboard shortcuts help window. Missing translations fall back to English gracefully. -
Minor stability improvements
General code cleanup and small bug fixes to enhance the overall user experience.
New Features & Improvements
-
PropertyGrid category collapse
The '0 XML attributes' category is now automatically collapsed by default, keeping the property view tidy and focused on standard attributes. -
Shift+arrow key movement
Holding Shift while moving a widget with arrow keys now moves by 10 pixels instead of 5, allowing faster repositioning. Ctrl+arrow remains 1 pixel for fine tuning. -
Magnetic snapping (M key)
When moving a widget with the mouse, its edges snap to other widgets or screen borders within a 6-pixel threshold. Press M to toggle (ON/OFF), with status displayed in the global status bar. Magnetic snap is applied before grid snap when grid is enabled. -
Keyboard Shortcuts help window
Added a dedicated help window (FHelp) listing all keyboard shortcuts and mouse actions, accessible from the?menu →Keyboard Shortcuts. The window content is fully translatable viaGetTranslation.
New Features & Improvements
-
Auto‑update
- Added
Check for updatesentry under the?(Help) menu. - Compares the current version with a
version.txtfile hosted on GitHub. - If a newer release is available, the browser opens to the release page for manual download.
- No external dependencies – works with standard .NET
WebClient.
- Added
-
Stability & refinements
- Fixed missing references and assembly issues for the update mechanism.
- Updated changelog and translations for the new feature.
New Features & Improvements
-
Resolution rescaling
- Added a ComboBox with all common resolutions (720p, 1080p, 1440p, 2160p).
- Automatically rescales positions, sizes, fonts, and images when changing resolution – no manual work needed.
-
Hybrid Preferences dialog
- New layout: PropertyGrid on the left for main settings (paths, auto‑save, language, colors, editor, designer).
- ListView on the right for raw key/value properties (advanced users).
- Keeps all your original settings and supports dynamic language switching.
-
cDesigner zoom enhancements
- Zoom range extended from 0.4x–2.0x to 0.35x–10.0x (better detail view).
- Added
getAttributes()andgetAttribute(XmlNode)methods for future multi‑selection support.
-
sGraphicRectangel improvements
- Full support for selective corner rounding (e.g.,
30;topLeft,topRight). - Unified gradient rendering for backgrounds and selections.
- Full support for selective corner rounding (e.g.,
-
Stability
- Fixed missing
using System.Xml;incDesigner.cs. - No regressions – all existing features (cornerRadius, gradient tolerance, background fallback, etc.) remain intact.
- Fixed missing
New Features (ported from OpenATV version)
-
Add OpenATV Element menu:
- New menu (under "Element") and toolbar button to quickly insert OpenATV‑specific elements:
Panel Reference,Inline Panel,Stack,Rectangle,Applet,Constant Widget,Layout. - Custom icons and full translation support.
- New menu (under "Element") and toolbar button to quickly insert OpenATV‑specific elements:
-
Missing panel logging:
- Logs each missing panel reference only once (with context) to avoid spamming the log file.
-
Double‑click on colors/fonts:
- Directly opens the Colors or Fonts dialog instead of switching to the Code tab – much faster editing.
-
Convert wizard:
- Double‑click on any
<convert>node opens a simple dialog to edit its content. - Full undo/redo support via the command queue.
- Double‑click on any
-
Editor change tracking suppression:
- Prevents false "unsaved changes" flags when switching tree nodes.
- The flag is now set only when the user actually types in the editor.
-
Raw XML attributes in PropertyGrid:
- A new category "0 XML attributes" appears in the PropertyGrid for any selected element.
- Shows all XML attributes that are not handled by standard properties (custom or unknown attributes).
- For
<convert>nodes, avalueproperty is also available to edit the inner text.
-
Auto‑save before switching tabs:
- When leaving the Code tab for the Designer tab, the editor content is automatically validated.
- If the XML is valid, changes are applied silently and the tab switches.
- If invalid, the tab switch is blocked and the error is shown in the status bar (no intrusive message boxes).
Bug Fixes & Improvements
-
Background fallback fixed:
- Restored background image loading (
background.jpg,background1920.jpg, etc.) by improvingcDataBase.getPath()to search in theskinsfolder next to the executable. - Background now works correctly for all resolutions (4K, QHD, FHD, and default).
- Restored background image loading (
-
Image path resolution enhanced:
getPath()now looks for images in multiple locations: project folder, skin folder,skinsfolder (next to the executable), and the executable folder itself.- This ensures all pixmaps and background images are found even when opening skins from network paths (UNC) or relative folders.
-
CornerRadius as string:
cornerRadiusattribute now accepts string values like30;topLeft,topRight.- The numeric part is extracted for rendering; the full string is preserved in XML for compatibility with downstream tools.
-
BackgroundColor gradient tolerance:
backgroundColorattribute now accepts gradient syntax (e.g.red,green,verticalor#00101010,#00303030,vertical) without throwing "invalid color" errors.- Gradients are saved correctly to XML (preview not implemented, but no crashes).
-
Fallback images for widgets:
- Improved loading of default images for render types (
picon,pig,xtraposter,xtrabackdrop,xtraparental,xtrastar,xtranextevents,msnweatherpixmap, etc.). - Added missing mappings for
posterx,weather,boximage, andgenre. - The
skinsfolder is now the primary search location for these default images.
- Improved loading of default images for render types (
-
Stability fixes:
- Fixed
NullReferenceExceptioninsGraphicWidget.updateObjectand other runtime crashes. - Restored original
sGraphicImageconstructor to avoid missing dimensions for background images.
- Fixed
-
Code cleanup:
- Removed duplicate constructors in
sGraphicImageand unified image loading logic. - Restored original
drawBackground()method incDesigner.csfor reliability. - Cleaned up unnecessary modifications that broke the preview.
- Removed duplicate constructors in
New Features
-
Telnet Commander:
- Added standalone Telnet module to connect to Enigma2/DreamOS boxes.
- Execute common commands (init 4, killall -9 enigma2, systemctl stop/start, screenshot, tail logs, reboot, halt, etc.).
- View real-time command output in a dedicated monitor (RichTextBox).
- Custom commands can be added, removed, and saved/loaded from
Telnet/TelnetCommands.xml. - Dedicated toolbar button (
telnet.png) opens a resizable, user‑friendly window. - Supports user/password authentication (default: root / your box password).
-
Translation updates:
- Added Italiano, English, Deutsch, Français, Español, Português, Polski, Português, Türkçe, Русский, العربية, Shqip, 中文(简体), 中文(繁體) translations for all Telnet strings and the new gradient properties.
New Features
-
Template system:
- Added new "Template" menu to insert custom widgets/pixmaps/labels/sliders from XML files stored in a configurable
templatesfolder. Includes example templates for quick start.
- Added new "Template" menu to insert custom widgets/pixmaps/labels/sliders from XML files stored in a configurable
-
Open Screen:
- Open standalone screen XML files (without
<skin>wrapper), edit them, and save back only the screen node – ideal for offline screen editing and version control. - Fixed zoom functionality when opening standalone screen files; zoom slider and numeric box are now properly enabled.
- Open Screen now respects the screen's actual size attribute instead of defaulting to 1920x1080.
- Open standalone screen XML files (without
-
Import Screen:
- Import an external screen XML file into the currently open skin, merging it as a new screen.
-
Label text wrap:
- Added "Wrap Text" property for eLabel (and widget render="Label") to enable automatic line wrapping (XML attribute
wrap="1").
- Added "Wrap Text" property for eLabel (and widget render="Label") to enable automatic line wrapping (XML attribute
-
Auto-save:
- Added optional auto-save feature (every X minutes) with status bar notification.
-
Network support:
- Added ability to open and save skins directly from network paths (UNC). Network folder can be set in Preferences.
-
Font management:
- Added full font editor (Add, Remove, Change buttons) in Fonts window. Font name, path, scale, size, and replacement are now editable. Changes are saved to
skin.xmlimmediately.
- Added full font editor (Add, Remove, Change buttons) in Fonts window. Font name, path, scale, size, and replacement are now editable. Changes are saved to
-
Skin project paths:
- Added Preferences for Rootfs folder (to resolve system fonts/images) and Enigma2 source folder (for developer reference).
Improvements
-
Converter improvements:
- Enhanced cConverter with safer value parsing (getIntValue, getSourceTable), better null handling, and support for parent source references.
-
Coordinate system:
- Enhanced
parseCoordto support advanced expressions (e-10,bottom-10,center-100,top+20,right-50%, etc.). FixedFormatExceptionwhen using negative values or percentages.
- Enhanced
-
Listbox improvements:
- Added context‑aware preview entries (menu, bouquet, EPG, movie lists) and smarter font detection (priority attributes like serviceNameFont, EventFontVertical, etc.).
-
Label preview:
- Added context‑aware preview text for dynamic sources (clock, events, channels) when no explicit text is set.
-
Code improvements:
- Added
cSkinProject.csto manage skin, rootfs, and Enigma2 source paths. - Enhanced
cDataBase.cswithsetFonts(),syncFonts(),renameFontReferences().
- Added
Stability & Localization
-
Stability fixes:
- Fixed multiple exceptions when opening single‑screen files (missing mandatory tags like
output,colors,fonts,windowstyle). Properly handles null references.
- Fixed multiple exceptions when opening single‑screen files (missing mandatory tags like
-
Localization:
- Added translations for all new strings (Template, Open Screen, Import Screen, Wrap Text, Auto-save, Network paths, Rootfs, Enigma2 source, etc.) into all language files.
-
Code cleanup:
- Removed duplicate gradient properties, unified gradient handling, general refactoring.
New Features
- Auto-save:
- Added optional auto-save feature (every X minutes) with status bar notification.
You can enable automatic saving of your skin at regular intervals.
How to use:
- Go to Settings → Preferences.
- Check "Auto-save every" and set the number of minutes (1–60).
- Click OK.
- When a skin is open and you make changes, the program will automatically save it every X minutes.
- A message like
Auto-saved at 14:35will appear in the status bar.
Note: Auto-save only triggers if there are unsaved changes. It uses the normal save() function, so it works for both local and network skins.
- Network support:
- Added ability to open and save skins directly from network paths (UNC). Network folder can be set in Preferences.
You can now open and save skins directly from a network share (e.g. your Enigma2 box) without copying files to your local PC.
How to set up:*
- Make sure your Enigma2 box has Samba (Windows share) enabled and that the skin folder (e.g.
/usr/share/enigma2/) is shared. - In OpenSkinDesigner, go to Settings → Preferences.
- Under "Default network path (UNC)", enter the path to the parent folder that contains your skin subfolders.
Example:\\192.168.1.78\Root\usr\share\enigma2 - Click Browse... to select the folder visually, then OK.
How to open a network skin:*
- File → Open
The list will now show both your local skins (from./skins/) and any network skins found in the UNC path. - Select a skin from the list and click Open.
- The skin will load exactly like a local one. You can edit, add widgets, change properties, etc.
How to save a network skin:*
- Just press Ctrl+S or use File → Save. The program will overwrite the original
skin.xmlon the network share.
Stability & Improvements
-
Bug fixes:
- Fixed
ArgumentNullExceptioninGetTranslation()when no language file is loaded. - Removed orphaned methods and unused constants.
- Fixed
-
Code cleanup:
- Removed duplicate gradient properties, unified gradient handling, and general refactoring.
-
Important notes:
- The network path must be accessible and writable by Windows.
- You must have proper permissions on the share.
- If you only want to edit a single screen file (without
<skin>wrapper), use File → Open Screen... instead.
New Features
-
Template system:
- Added new "Template" menu to insert custom widgets/pixmaps/labels/sliders from XML files stored in a configurable
templatesfolder. - Includes example templates for quick start (label, pixmap, slider, progress).
- Added new "Template" menu to insert custom widgets/pixmaps/labels/sliders from XML files stored in a configurable
-
Open Screen:
- Open standalone screen XML files (without
<skin>wrapper), edit them, and save back only the screen node – ideal for offline screen editing and version control.
- Open standalone screen XML files (without
-
Import Screen:
- Import an external screen XML file into the currently open skin, merging it as a new screen.
-
Label text wrap:
- Added "Wrap Text" property for
eLabel(and widgets withrender="Label") to enable automatic line wrapping (XML attributewrap="1").
- Added "Wrap Text" property for
Stability & Improvements
-
Stability fixes:
- Resolved multiple exceptions when opening single‑screen files (missing mandatory tags like
output,colors,fonts,windowstyle). - Properly handles null references in
cDataBaseandsAttributeScreenduring wrapper generation.
- Resolved multiple exceptions when opening single‑screen files (missing mandatory tags like
-
Code improvements:
- Enhanced XML wrapper generation for single‑screen editing.
- Unified gradient handling, general refactoring and cleanup.
New Features
-
OpenATV integration:
- Added multi-select support.
- Added grid support.
- Added magnet/snap functionality.
- Added OpenATV element menu integration.
-
New element templates:
- Added new clock variants.
- Added PIG (Picture-in-Graphics) templates.
- Added progress bar templates.
- Added rounded panel templates.
- Added various OpenATV component templates.
- Open a skin (or create a new one with File → New Screen).
- Select a screen in the tree on the left.
- Open Menu → Template.
- Select a template (example:
multi_example). - Widgets will be inserted into the selected screen.
⚠️ Templates can only be inserted inside a screen. Selecting a widget or another element will not work. -
WindowStyle improvements:
- Added WindowStyle preview support.
- Fixed WindowStyle rendering and related issues.
-
Crash handling:
- Added a global crash handler for improved stability and debugging.
-
Language & startup fixes:
- Updated translations and language resources.
- Fixed startup crash issues.
New Features
-
Screen reordering: Added new buttons in the main toolbar to manage screen order inside the skin tree:
- Move Up – Move the selected screen one position up.
- Move Down – Move the selected screen one position down.
- Sort Screens – Automatically sort all screens alphabetically by name (case-insensitive).
-
Code language: Entire project migrated to English (comments, identifiers, UI messages).
-
Rulers & guidelines:
- Added horizontal and vertical rulers with precise skin coordinate tracking.
- Added red guidelines that correctly follow the mouse cursor at any zoom level.
- Fixed coordinate conversion issues affecting guideline positioning.
-
Zoom fixes:
- Resolved guideline and mouse pointer misalignment when zoom level is not 1:1.
-
UI improvements:
- Added ruler toggle button in the designer toolbar.
- Improved ruler tick marks and number visibility.
-
Code cleanup:
- Removed duplicate Paint event subscriptions.
- Optimized mouse coordinate handling.
- General refactoring and cleanup.
New Features
- Screen reordering: New buttons in the main toolbar to manage screen order inside the skin tree:
- Move Up – Move the selected screen one position up.
- Move Down – Move the selected screen one position down.
- Sort Screens – Automatically sort all screens alphabetically by name (case‑insensitive). Code language: Entire project migrated to English (comments, identifiers, UI messages).
New Features
- ClockToText extended with new time formats:
%l– 12‑hour without leading zero (1‑12)%I– 12‑hour with leading zero (01‑12)%e– day of month without leading zero (1‑31)%P– lowercase AM/PM (am/pm)%p– uppercase AM/PM (AM/PM)
- ServiceName new modes:
ChannelNumber– e.g.,101ChannelNumberAndName– e.g.,101 - Rai 1PiconName– sanitized name for picon filesReferenceName– last part of the service reference
- Slider widget (
eSlider) fully implemented:- Horizontal/vertical orientation
- Properties:
Value,Min,Max,Step,Orientation - Supports gradients, pixmap, alpha test, borders
- Listbox enhancements:
selectionZoom– zoom effect on the selected item (insGraphicListbox)scrollbarBackgroundGradientandscrollbarForegroundGradientfor listbox scrollbars
- Gradient support for any widget (via base
sAttribute–BackgroundGradient,ForegroundGradient)
Fixes & Improvements
- Fixed
NullReferenceExceptioninsAttributeWidgetwhen converter node has notypeattribute. - Fixed
ArgumentNullExceptioninClockToText.getTextwhenSourceis null ortime_seckey missing. - Fixed compilation error CS0019 (
bool?operator) insAttributeWidgetconstructor. - Enhanced corner‑radius mask handling in
sGraphicRectangel– raw values like"30;topLeft,topRight"are preserved and rendered correctly. - Improved
cDataBase.getPathto handle empty/null paths gracefully. - Fixed
cDataBase.rescaleLocationsto use the new resolution forposition="center". - Replaced all
Hashtable.Addcalls with indexer to prevent duplicate key exceptions. - Removed duplicate field declarations in
sAttributeListboxand added missing properties. - General code cleanup: removed unused variables, redundant comments, silenced unnecessary message boxes.
- Full compatibility with existing skins (gradients stored in
backgroundColororbackgroundGradient).
Example of a modern skin using new features:
<!-- Clock with 12‑hour format and lowercase am/pm -->
<widget source="global.CurrentTime" render="Label" position="100,100" size="300,50">
<convert type="ClockToText">Format%l:%M %P</convert>
</widget>
<!-- Service name with channel number -->
<widget source="session.CurrentService" render="Label" position="100,160" size="400,50">
<convert type="ServiceName">ChannelNumberAndName</convert>
</widget>
<!-- Slider with gradient -->
<widget render="eSlider" position="100,220" size="400,30" orientation="horizontal" min="0" max="100" value="50" step="5" foregroundGradient="blue,cyan,white,horizontal" />
<!-- Listbox with selection zoom and scrollbar gradient -->
<widget render="Listbox" position="100,280" size="300,200" selectionZoom="20" scrollbarForegroundGradient="#ffaa00,#ff8800,#ff5500,vertical" />This release focuses on stability, robustness and full compatibility with existing skins, fixing several edge‑case crashes and improving error handling.
Fixes and improvements:
- Fixed
NullReferenceExceptioninsAttributeLabelconstructor when window style or color tables are missing. - Added robust fallback colors (
LabelForeground,LabelBackground,Background) when the skin’s<windowstyle>is incomplete or absent. - Secured the
<convert>node parsing with try‑catch and null checks – malformed converter entries no longer crash the designer. - Ensured safe access to
pWindowStyle.pColorsusingContainsKeybefore direct indexing. - Corrected implicit progress widget detection (
IsImplicitProgressWidget) for better compatibility with old skins. - Enhanced corner‑radius mask handling in
sGraphicRectangel– raw values like"30;topLeft,topRight"are preserved and displayed correctly (partial rounding). - Fixed compilation error CS0019 (
bool?operator) insAttributeWidgetconstructor by adding explicitpRender != nullcheck. - Improved
cDataBase.getPathto handle empty or null paths gracefully (avoidsNotSupportedException). - Fixed
cDataBase.rescaleLocationsto use the new resolution forposition="center"– elements stay centred after resolution change. - Replaced all
Hashtable.Addcalls with the indexer to prevent duplicate key exceptions. - Removed duplicate field declarations in
sAttributeListbox(pListboxMarked*,pscrollbarRadius) and added missing properties (sAttributeProgress.Foreground,sAttributeListbox.ItemCornerRadiusSelected). - Added helper methods
SetOrCreateAttributeandRemoveAttributeIfExistsfor safer XML attribute handling. - General code cleanup: removed unused variables, redundant comments and improved naming consistency.
- Full compatibility with skins that store gradients either in
backgroundColororbackgroundGradient.
Example of a working corner‑radius mask in a screen:
<screen name="Test_All_Features" position="0,0" size="1920,1080" backgroundColor="transparent" flags="wfNoBorder">
<!-- 1. Label with VERTICAL gradient and masked cornerRadius (top corners only) -->
<eLabel backgroundColor="red,green,blue,vertical" cornerRadius="30;topLeft,topRight" position="50,50" size="800,150" text="VERTICAL GRADIENT + TOP CORNERS" font="Regular; 28" foregroundColor="white" halign="center" valign="center" zPosition="1" backgroundGradient="red,green,blue,vertical" />
<!-- 2. Label with HORIZONTAL gradient and full cornerRadius (all corners) -->
<eLabel backgroundColor="#ff8800,#ffff00,#00ff00,horizontal" cornerRadius="40" position="50,220" size="800,150" text="HORIZONTAL GRADIENT + FULL CORNERS" font="Regular; 28" foregroundColor="white" halign="center" valign="center" zPosition="1" backgroundGradient="#ff8800,#ffff00,#00ff00,horizontal" />
<!-- 3. Listbox in GRID mode with item gradients, colored scrollbar, selection zoom -->
<!-- Note: items are generated automatically (pPreviewEntries) -->
<widget render="Listbox" position="44,416" size="900,480" font="Regular; 22" itemHeight="160" itemWidth="280" itemSpacing="15,15" listOrientation="grid" selectionZoom="20" selection="2" enableWrapAround="true" scrollbarMode="showAlways" scrollbarWidth="18" scrollbarOffset="6" scrollbarRadius="10" scrollbarForegroundGradient="#ffaa00,#ff8800,#ff5500,vertical" scrollbarSliderForegroundColor="gold" scrollbarSliderBackgroundColor="#333333" scrollbarSliderBorderColor="white" scrollbarSliderBorderWidth="2" itemGradient="#222222,#444444,#222222,vertical" itemGradientSelected="#ffaa00,#ffcc00,#ffaa00,horizontal" itemCornerRadius="15" itemCornerRadiusSelected="25" backgroundColor="#1a1a1a" foregroundColor="#eeeeee" backgroundColorSelected="#000000" foregroundColorSelected="#ffcc00">
<!-- The listbox will automatically display sample entries (List entry 1,2,...) -->
</widget>
<!-- 4. Progress with foreground gradient -->
<widget render="Progress" position="928,904" size="921,50" backgroundColor="grey_tux" foregroundColor="red,orange,green,horizontal" cornerRadius="25" zPosition="1" />
<!-- 5. Progress with pixmap (if image exists, otherwise gradient is used) -->
<widget render="Progress" position="931,965" size="919,50" backgroundColor="#444444" foregroundColor="blue,cyan,white,horizontal" pixmap="progress_bg.png" cornerRadius="15" zPosition="1" />
<!-- 6. Label widget with data source and converter (ClockToText) -->
<widget source="global.CurrentTime" render="Label" position="1154,109" size="500,60" font="Regular; 36" halign="center" valign="center" transparent="1" foregroundColor="white" backgroundColor="transparent">
<convert type="ClockToText">Format:%H:%M:%S</convert>
</widget>
<!-- 7. Static label example for alignment verification -->
<widget render="Label" position="1200,220" size="400,150" text="Static Label with gradients" font="Regular; 28" halign="center" valign="center" transparent="1" backgroundColor="red,blue,black,vertical" foregroundColor="white" cornerRadius="30;bottomLeft,bottomRight" zPosition="1" backgroundGradient="red,blue,black,vertical" />
<!-- 8. Widget using "Label" render and a dummy source (to test preview text) -->
<widget source="session.Event_Now" render="Label" position="1000,400" size="800,80" font="Regular; 24" halign="center" valign="center" transparent="1" foregroundColor="white" backgroundColor="black,black,black,vertical" backgroundGradient="black,black,black,vertical">
<convert type="EventName">Name</convert>
</widget>
</screen>This MOD continues from the stable 4.2.0.0 feature set.
It includes a couple of new features i.e.:
- includes
- panels
- colored tree view
- screen search
- fold/unfold xml code
- quick add buttons (add screen, panel, widget, label, pixmap; delete item)
- simple autocomplete in code
- toggle conditional hiding element (show all, none, random, default)
- toggle markers (border indicators of elements)
- position replacement to 'center' disabled
- bugfixes
- etc.
Added/updated support includes:
- v4.2.1.0 MOD by Lululla
-
- Refactored gradients: unified into single properties (BackgroundColor, ForegroundGradient) for Label, Progress, Listbox
-
- Removed duplicate properties (backgroundGradient1/2/3, orientation) and unused fields
-
- Added Source, Render, and exposed CornerRadius as a property
-
- Fixed 'center' calculation when rescaling resolution
-
- Added Text, Valign, Halign, noWrap properties for Label in sAttributeWidge
-
- Integrated automatic fallback from foregroundColor to foregroundGradient
-
- Unified font setters using helper method
-
- Fixed CS0246 error (RenderConverter) with full type reference
-
- Prepared support for WQHD and UHD resolutions"
created by popking159 **thanks for Lululla Added
- Added support for Enigma2-style backgroundColor gradients on eLabel.
- Added support for 3-part gradient syntax:
- backgroundColor="#00101010,#00303030,vertical"
- backgroundColor="red,green,vertical"
- backgroundColor="#00ff0000,#0000ff00,vertical"
- Added support for preserving extended cornerRadius syntax:
- cornerRadius="30;topLeft,topRight"
- cornerRadius="30;bottomLeft,bottomRight"
- cornerRadius="30;left"
- cornerRadius="30;right"
** This MOD focuses on compatibility with newer Enigma2 skin syntax while keeping the original OpenSkin Designer workflow.
eLabelbackgroundColorgradients using 3-part syntax:startColor,endColor,direction- HEX gradient values such as
backgroundColor="#00101010,#00303030,vertical" - Named-color gradients such as
backgroundColor="red,green,vertical" cornerRadiusmasks such ascornerRadius="30;topLeft,topRight"- Correct saving of raw gradient and corner-radius mask values without reducing them to simple colors/numbers
- Preview rendering that respects partial rounded corners, for example top-left and top-right only
Example:
<eLabel position="100,100" size="300,80" text="Gradient label" backgroundColor="#00101010,#00303030,vertical" cornerRadius="30;topLeft,topRight" />Changed
- Improved color parsing so comma-separated gradient values are no longer treated as invalid single colors.
- Updated eLabel background handling so backgroundColor can be used for both normal colors and gradients.
- Updated cornerRadius handling to save the original raw value instead of reducing it to a plain numeric radius.
- Improved preview rendering so corner-radius edge masks are respected visually.
Fixed
- Fixed saving of backgroundColor="#00101010,#00303030,vertical".
- Fixed saving of backgroundColor="red,green,vertical".
- Fixed saving of backgroundColor="#00ff0000,#0000ff00,vertical".
- Fixed saving of cornerRadius="30;topLeft,topRight".
- Fixed preview issue where cornerRadius="30;topLeft,topRight" was displayed as rounded on all four corners.
created by Humaxx
- Focus remains in the selected property grid value
- Added some new attributes for eLabels like backgroundGradient, cornerRadius
- Added some new attributes for render listBox like itemCornerRadius
created by Humaxx
- Drawing without color, now using fallback color
created by Humaxx
- Fixed unhandeld Exception (ignoring 'templates')
created by Humaxx
- Fixed typos
- Added dutch translation --> thanks to 'lk1zhm'
- Added new 'Converter.xml and 'simpleConverter.xml'
- Fixed some unhandled Exception when no converter was found
created by Humaxx
- Fixed the display of the error message
created by Humaxx
- Added an option to hide attribut-list in code-editor
- Updated language-files
- After opening the skin, the main node is displayed in the code editor
- Bugfix: Notification about unsafed changes, hasn't work in every case
created by Humaxx
- Undo application termination if a '.svg' graphic is used in the 'borderset's
- If '.svg' graphic is used, the application searches for a corresponding '.png' graphic'
created by Humaxx
- Fixed borderset - bug
- application will be terminated if a '.svg' graphic is used in the 'borderset's
created by Humaxx
- Fixed unhandled Exception when borderset path has not been specified
created by Humaxx
- Support for resolution 3200 x 1800
- Fixed unhandled Exception when borderset has no filename
created by Humaxx Support for QHD (WQHD) and 4K UHD (Ultra HD)
created by Humaxx
- Add an option to not replace color beginning with '#'
created by Humaxx
- Bugfix: Selected Treeviewnode was deleted when pressing any key in Designer-Mode
created by Humaxx
- Bugfix: fixed unhandled exception if using delete - key without selected item
- Bugfix: using delete-key no longer deletes a selected item in propertygrid
created by Humaxx
- Added an option for linewrapping in code-editor
- Typos
- Added missing translations
created by Humaxx
- Bugfix: fixed unhandled exception if file (include) was not found
- Bugfix: fixed unhandled exception if * is used for integer value
- Added an example in converterSimple.xml for converter-preview-text
created by Humaxx
- Added 'experimental delete-mode'
- Bugfix: Don't delete root-node
- Bugfix: 'Color-Dialog': changed 'Change'-button to 'Rename'-button
- Bugfix: 'Color-Dialog': changing a color now triggers unsafed-changes-notification
- Closing 'Color-Dialog' instead of hiding
- Changes in 'Color-Dialog' now take immediatly effect without the need to save and reload
- Nomore saveing and reloading needed if a color is defined two times.
created by Humaxx
- Using 'delete'-key to delete select element
created by Humaxx
- Add options to show notifications about unsafed changes
- Added missing translations
- Bugfix: Now also a notification is shown, if colors are changed
- Added 'ExtEvent' to converter.xml
created by Humaxx
- Add albanian language (thanks to 'kqiqi1')
- Fixed polish language
- Added missing translations
- Bugfix: now displaying an error message if a font is not valid
created by Humaxx
- Fixed unhandled exception when using right-click in designer
- Add turkish language (thanks to 'audi06)
- Bugfix: restoring language only searches for first language file in languages-directory
- Translate existing element-items after changing language
created by Humaxx
- Displaying the name of the loaded skin.
created by Humaxx
- Added missing translation
created by Humaxx
- Multilanguage support
- Added missing translation
- Settings are now saved
created by Humaxx
- Upgraded search-function
- Added missing translation
- Fixed text from 'Open-Button' in 'Open-Dialog'
created by Humaxx
- Add search for searching text in code editor
created by Humaxx
- Fixed typos
- Fixed unhandled exception in 'Color Dialog'
- Allow only valid characters in Textboxes in 'Color Dialog'
- Support for language file (CustomLanguage.lng) in 'xml'-diretory
created by Humaxx
- Fixed an unhandled exception if image is corrupt
- Only take 'jpg'; 'jpeg' and 'png' for random picture selection
created by Humaxx
- Added render 'ChamaeleonRunningText'
- If pixmap have a path without specified filename, take random image
- Bugfix: pixmap path
- Added all renders containing 'runningtext'
- Handling all renders containing 'list' as listbox
- Notifying about unsafed changes
created by Humaxx
- Fixed path not found exception
- Updated converter.xml
- Added speedyAXBlueRunningText
- Removed doubled attributs
- Added some entries to attribut-list like 'foregroundColors' 'options' 'pixmaps' and more
- Added a option to enable showing full attribut-list
- Autocomplete attribut list - max preview set to 15 instead of 5
created by Humaxx
- Fixed unhandled exception if no Font is declared or only alias - then using 'lcd.ttf'
- Fixed unhandled exceptions if a color is missing or declared with 'foregroundColors'
- Ask to show messageboxes again or not
- Bugfix: show picon also when a path is set
- Added option to set 'Fallback-Color', which is used for previewing some text
created by Humaxx
- Added more sources rendered as listbox
- Fixed unhandled exception if source = null
created by Humaxx
- Undefined colors are added alternatively ('#' is not replaced by 'un')'
- Added a option how to add undefined colors (with '#' or with 'un')
- Fixed unhandled exception if a borderset-file isn't existing
- Fixed unhandled exception in 'Windowstyle-preview' if no borderstyle is declared in skin.xml
- Bug fix in 'Windowstyle-preview': Now displaying correct borderset and filename
- Fixed a bug that probably exists since 3.1.0.3. Font preview is now again working
- Editor: now showing up to 99999 line numbers instead of max 999
- Editor: background color changed for better contrast
- Text-preview: using lcd.ttf if declared font is not found
- Added VTi-Fonts
- Converter bug fixes: 'TimeshiftService' added to prevent a exception in 'Timeshiftstate'
- Corrected xhdpicon.png for building in visual studio
created by Scrounger
- cConverterSimplePresets added
- Alias font bug fixes -> gobal loading / usage added
- Fonts sorting added
- Label: font bug fix property grid -> change font or fontsize
- ListBox font added to property grid
- Show font style and size for listboxes
- Font bug fix -> catch exception if font is not defined or exist
- ListBox: Show entries added
- Label metrixreloadedvrunningtext added
- ListBox: count of entries to show bug fixed
- sAttributePixmap: element with attribute 'path' -> bug fix if skinPath is part of attribute path
- converterSimple.xml: MetrixReloaded converters added
created by Scrounger
- Converter: support for 'FullDescription' added
- Resize picon on element size change
- Use attribute scale for ePixmap & widget which have 'pixmap' attribute.
- Converter MovieInfo added
- Show images for widgets with any render and 'path' attribute
- Show EventImage if render attribute contains 'eventimage'
- Show XHDPicon if render attribute contains 'xhdpicon'
- Show images with 'pixmaps' attribute





