Often you will want to use a symbol in your skin design, perhaps for a media player like ▶ or ⏸, a language character like ඌ or 乫, or other UI elements like ↻ or ☑ or even just a degree symbol like °.
These can be hard to code into your skin, as while the font you are using in your skin may support all of them, your text editor may well not, which can make things confusing and annoying.
In addition, using icons from specialized fonts like FontAwesome was difficult to impossible to use in your skins.
We have added new inline Character Reference Variables, which will allow you to create plain-text references to the Unicode values for these symbols and icons.
In short, you simply find the numeric (hex or decimal) Unicode value for the character you want, and code it as:
[\x2622] : hexadecimal Unicode value. Allowed range is x0-xFFFE.
[\9762] : decimal Unicode value. Allowed range is 0-65536.
In this example, either variant will produce the ☢ character.
Details at Character Reference Variables.
Note that these are designed with the [] "Nested Variables" syntax, as all future new variable types will be, to enable nesting with other variables.
So Text=[\x[#SomeVariable]] or Text=[\[&MeasureName]] will work.
It is currently September 18th, 2024, 12:03 pm
Character Reference Variables
-
- Developer
- Posts: 22745
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
-
- Posts: 660
- Joined: June 25th, 2015, 7:02 pm
- Location: The Sky, USA
Re: Character Reference Variables
I believe I have discovered a bug. If you set the value of a standard variable to a CR variable, then reference it using the alternative syntax, the character variable does not get translated to the actual character. See this example:
I set the value of the 'degreeSign' variable as the reference variable for a degree sign. When used with the original syntax, everything is fine, but when referenced using the new variable syntax, it fails.
Code: Select all
[Rainmeter]
MiddleMouseDownAction=[!Refresh]
AccurateText=1
[Variables]
degreeSign=[\176]
[StyleString]
FontFace=Roboto
FontSize=10
FontColor=240,240,240
X=7
Y=3R
Antialias=1
[Background]
Meter=Shape
Shape=Rectangle 2,2,100,50,1 | Fill Color 15,15,15 | Stroke Color 50,50,50 | StrokeWidth 1
[MeterStandardString]
Meter=String
MeterStyle=StyleString
Y=5
Text="Standard#degreeSign#C"
[MeterNestedString]
Meter=String
MeterStyle=StyleString
Text="Nested[#degreeSign]C"
You do not have the required permissions to view the files attached to this post.
-
- Developer
- Posts: 2732
- Joined: November 24th, 2011, 1:42 am
- Location: Utah
Re: Character Reference Variables
Thank you for reporting this bug. This has been fixed for the next beta.raiguard wrote:I believe I have discovered a bug.
-Brian
-
- Posts: 660
- Joined: June 25th, 2015, 7:02 pm
- Location: The Sky, USA
Re: Character Reference Variables
Brian wrote:Thank you for reporting this bug. This has been fixed for the next beta.
-Brian
-
- Posts: 919
- Joined: January 30th, 2017, 2:01 am
- Location: Greece
Re: Character Reference Variables
I downloaded:
Google Material Icons
Download site: https://github.com/google/material-design-icons/tree/master/iconfont
Reference site: https://material.io/icons/
but codes do not seem to work... According to wikipedia, #5107B is the code for play symbol, but when I try this:
Code: Select all
[MeterChars]
Meter=String
FontSize=20
FontWeight=500
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
AntiAlias=1
FontFace=MaterialIcons-Regular
Text=[#5107B]
NOTE: I have included the font in #@#Fonts
You do not have the required permissions to view the files attached to this post.
-
- Developer
- Posts: 22745
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: Character Reference Variables
You use hex values in Character Reference Variables as:kyriakos876 wrote:I downloaded:
Google Material Icons
Download site: https://github.com/google/material-design-icons/tree/master/iconfont
Reference site: https://material.io/icons/
but codes do not seem to work... According to wikipedia, fontex.png
#5107B is the code for play symbol, but when I try this:
It does not work... I tried [\#5107B] as well but nothing. What am I doing wrong?Code: Select all
[MeterChars] Meter=String FontSize=20 FontWeight=500 FontColor=255,255,255,255 SolidColor=47,47,47,255 Padding=5,5,5,5 AntiAlias=1 FontFace=MaterialIcons-Regular Text=[#5107B]
NOTE: I have included the font in #@#Fonts
[\xe037]
Never use the # character in them. Without the x you are referencing the decimal value, and with x you are referencing the hex value.
Now about that value... Neither [\x5107B] or [\5107B] are valid Unicode characters. In any case, if you are using the Material Icons font from Google, you don't use a number that references a standard character supported by Unicode. The way these icon fonts work is that they "replace" a codepoint, one of the characters in the Unicode Basic Multilingual Plane, with their own glyph. So you need to use a reference to the icon in Material Icons, get the numeric codepoint value, and use that in conjunction with using the font in FontFace= or Inline Setting=Face.
Looks like Google has made it a bit harder to find those numeric codes than they used to, as they are focusing their support on using the font in a browser, where you can just use the string "name" or "ligature" of the character. Sigh... to find the right numeric value, get the "name" from https://material.io/tools/icons/ and then go here:
https://github.com/google/material-design-icons/blob/master/iconfont/codepoints
That is a reference to the numeric codepoints based on the "name".
So the "name" of the character you want is play_arrow, and the numeric codepoint is e037.
NOTE: The "Preferred Family Name" of the font face is FontFace=Material Icons, NOT FontFace=MaterialIcons-Regular. That is the name of the font "file", and has nothing to do with it.
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
[Variables]
[MeterOne]
Meter=String
FontFace=Material Icons
FontSize=20
FontWeight=400
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
AntiAlias=1
Text=[\xe037]
You do not have the required permissions to view the files attached to this post.
-
- Posts: 919
- Joined: January 30th, 2017, 2:01 am
- Location: Greece
Re: Character Reference Variables
Oh I tried [play_arrow] and [play_arrow e037] but didn't think of [\xe037] at all... no I see that I need x as well...jsmorley wrote:...
So the "name" of the character you want is play_arrow, and the numeric codepoint is e037.
...
Oh I see... I got it now. Thanks!jsmorley wrote: ...
NOTE: The "Preferred Family Name" of the font face is FontFace=Material Icons, NOT FontFace=MaterialIcons-Regular. That is the name of the font "file", and has nothing to do with it.
...
-
- Developer
- Posts: 22745
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: Character Reference Variables
Yes, Google only provides the numeric codepoints in hex, which in this case is e037, or [\xe037]. In decimal it would be 57399 or [\57399], but there is no advantage at all to using decimal in these things.kyriakos876 wrote:Oh I tried [play_arrow] and [play_arrow e037] but didn't think of [\xe037] at all... no I see that I need x as well...
Oh I see... I got it now. Thanks!
-
- Developer
- Posts: 22745
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: Character Reference Variables
So some common "media player" characters using Material Icons might be:
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
[Variables]
[MeterOne]
Meter=String
FontFace=Material Icons
FontSize=20
FontWeight=400
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
AntiAlias=1
Text=[\xe044] [\xe045] [\xe01f] [\xe020] [\xe037] [\xe034] [\xe047] [\xe04f] [\xe04e] [\xe04d] [\xe050] [\xe255]
You do not have the required permissions to view the files attached to this post.
-
- Developer
- Posts: 22745
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: Character Reference Variables
I really can't recommend enough that you consider using the free dp4 Font Viewer utility to manage all this...
https://us.fontviewer.de/
It gives you one, simple, consistent way to find the hex codepoint values for any glyph in any font. Every one of these "icon fonts" have their own "references" to the value for the glyphs, and they are all different, and some easier to use than others. Google's Material Icons is actually a bit of a pain in the ass...
https://us.fontviewer.de/
It gives you one, simple, consistent way to find the hex codepoint values for any glyph in any font. Every one of these "icon fonts" have their own "references" to the value for the glyphs, and they are all different, and some easier to use than others. Google's Material Icons is actually a bit of a pain in the ass...
You do not have the required permissions to view the files attached to this post.