It is currently April 25th, 2024, 2:07 am

String that goes narrower in the distance?

Get help with creating, editing & fixing problems with skins
User avatar
deXxterlab97
Posts: 93
Joined: February 5th, 2017, 4:50 am

String that goes narrower in the distance?

Post by deXxterlab97 »

I have a picture of a railroad that goes narrower in the distance and I would like to add text along it

I know string can be rotated and moved but is it possible for them to be big on one end and smaller on the other end?

Something like this http://imgur.com/a/7Q9t8

I want it to be a string so I can easily modify. Of course I can create an image of that text but would want to see if it's possible with a string or something similar first.
Last edited by deXxterlab97 on July 15th, 2017, 3:56 pm, edited 1 time in total.
deXxterlab97
User avatar
deXxterlab97
Posts: 93
Joined: February 5th, 2017, 4:50 am

Re: String that goes narrower in the distance?

Post by deXxterlab97 »

deXxterlab97 wrote:I have a picture of a railroad that goes narrower in the distance and I would like to add text along it

I know string can be rotated and moved but is it possible for them to be big on one end and smaller on the other end?

Something like this http://imgur.com/a/7Q9t8

I want it to be a string so I can easily modify. Of course I can create an image of that text but would want to see if it's possible with a string or something similar first.
Also this is the snippet of my button

I found out about Inline options and I can make each fontsize larger than the previous one but how would I also do it for the button (mouse over)

Code: Select all

[Play]
Meter=String
Text="Play"
FontFace=#FF#
FontColor=#FC#
FontSize=#FS#
AntiAlias=1
LeftMouseUpAction=!CommandMeasure "MusicCover" "Play"
MouseOverAction=[!SetOption Play Text "Play*"][!RainmeterRedraw]
MouseLeaveAction=[!SetOption Play Text "Play"][!RainmeterRedraw] 
X=120r
SolidColor=0,0,0,1
deXxterlab97
User avatar
balala
Rainmeter Sage
Posts: 16168
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: String that goes narrower in the distance?

Post by balala »

deXxterlab97 wrote:I know string can be rotated and moved but is it possible for them to be big on one end and smaller on the other end?

Something like this http://imgur.com/a/7Q9t8
I also tried a few times to achieve something like this, but finally I came to the conclusion that unfortunately this is not possible. In my opinion, the only possibility would be the TransformationMatrix option, applied to the string meter, but according to the Help! It's not working! section of the Transformation Matrix Guide:
Remember what transformations you're restricted to: scale, skew and rotate. That means that while you can get some interesting effects, there is no way whatsoever that you can get a trapezoid. That is, whatever the left and right sides originally were will always be parallel to one another and will always have the same length. The same goes for top and bottom.
So, probably not possible. Sorry...
deXxterlab97 wrote:I found out about Inline options and I can make each fontsize larger than the previous one but how would I also do it for the button (mouse over)
If you're using a string meter placed above the button, the same way. But the posted code doesn't does what you've described, it has no InlineSettings. Not very clear what is the question.
Besides, don't use the deprecated !Rainmeter... bang prefix. [!RainmeterRedraw] should be simply [!Redraw].
User avatar
deXxterlab97
Posts: 93
Joined: February 5th, 2017, 4:50 am

Re: String that goes narrower in the distance?

Post by deXxterlab97 »

balala wrote:I also tried a few times to achieve something like this, but finally I came to the conclusion that unfortunately this is not possible. In my opinion, the only possibility would be the TransformationMatrix option, applied to the string meter, but according to the Help! It's not working! section of the Transformation Matrix Guide:

So, probably not possible. Sorry...

If you're using a string meter placed above the button, the same way. But the posted code doesn't does what you've described, it has no InlineSettings. Not very clear what is the question.
Besides, don't use the deprecated !Rainmeter... bang prefix. [!RainmeterRedraw] should be simply [!Redraw].
The above code was to demonstrate how it would work normally

This what I come up with, is there anyway to improve it?

I haven't added MouseOver options.

Code: Select all


[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1

[TestPrev]
Measure=String
String=Previous

[TestPrev2]
Meter=String
MeasureName=TestPrev
SolidColor=0,0,0,1
FontFace=Dudu Calligraphy
FontColor=255,255,255,255
AntiAlias=1
Angle=(Rad(10))

InlineSetting=Size | 20
InlinePattern=P

InlineSetting2=Size | 24
InlinePattern2=r

InlineSetting3=Size | 28
InlinePattern3=e

InlineSetting4=Size | 32
InlinePattern4=v

InlineSetting5=Size | 36
InlinePattern5=i

InlineSetting6=Size | 40
InlinePattern6=o

InlineSetting7=Size | 44
InlinePattern7=u

InlineSetting8=Size | 48
InlinePattern8=s

X=120
Y=0
W=200
H=120

deXxterlab97
User avatar
deXxterlab97
Posts: 93
Joined: February 5th, 2017, 4:50 am

Re: String that goes narrower in the distance?

Post by deXxterlab97 »

[quote="balala"
Besides, don't use the deprecated !Rainmeter... bang prefix. [!RainmeterRedraw] should be simply [!Redraw].[/quote]
I will keep in mind. Thanks.
deXxterlab97
User avatar
balala
Rainmeter Sage
Posts: 16168
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: String that goes narrower in the distance?

Post by balala »

deXxterlab97 wrote:This what I come up with, is there anyway to improve it?
I'd replace the InlinePattern options with something to tell the string meter not the concrete letters, but which letter of the string would I like to set the appropriately:

Code: Select all

[TestPrev2]
Meter=String
...
InlineSetting=Size | 20
InlinePattern=^.{0}(.).*$
InlineSetting2=Size | 24
InlinePattern2=^.{1}(.).*$
InlineSetting3=Size | 28
InlinePattern3=^.{2}(.).*$
InlineSetting4=Size | 32
InlinePattern4=^.{3}(.).*$
InlineSetting5=Size | 36
InlinePattern5=^.{4}(.).*$
InlineSetting6=Size | 40
InlinePattern6=^.{5}(.).*$
InlineSetting7=Size | 44
InlinePattern7=^.{6}(.).*$
InlineSetting8=Size | 48
InlinePattern8=^.{7}(.).*$
InlinePattern is related to the first letter of the string (because before the captured letter are no other letters - in fact I said there are 0 letters). InlinePattern2 is related to the second letter and so on.
Using concrete letters in the InlinePattern options will make these options to not work at all with another string, or even worse, to not work well.
User avatar
Mordasius
Posts: 1173
Joined: January 22nd, 2011, 4:23 pm
Location: GMT +8

Re: String that goes narrower in the distance?

Post by Mordasius »

There again you can always go the hard route and use ImageMagic

https://forum.rainmeter.net/viewtopic.php?f=5&t=17687&p=97384&hilit=image#p97384
User avatar
deXxterlab97
Posts: 93
Joined: February 5th, 2017, 4:50 am

Re: String that goes narrower in the distance?

Post by deXxterlab97 »

balala wrote:I'd replace the InlinePattern options with something to tell the string meter not the concrete letters, but which letter of the string would I like to set the appropriately:

Code: Select all

[TestPrev2]
Meter=String
...
InlineSetting=Size | 20
InlinePattern=^.{0}(.).*$
InlineSetting2=Size | 24
InlinePattern2=^.{1}(.).*$
InlineSetting3=Size | 28
InlinePattern3=^.{2}(.).*$
InlineSetting4=Size | 32
InlinePattern4=^.{3}(.).*$
InlineSetting5=Size | 36
InlinePattern5=^.{4}(.).*$
InlineSetting6=Size | 40
InlinePattern6=^.{5}(.).*$
InlineSetting7=Size | 44
InlinePattern7=^.{6}(.).*$
InlineSetting8=Size | 48
InlinePattern8=^.{7}(.).*$
InlinePattern is related to the first letter of the string (because before the captured letter are no other letters - in fact I said there are 0 letters). InlinePattern2 is related to the second letter and so on.
Using concrete letters in the InlinePattern options will make these options to not work at all with another string, or even worse, to not work well.
Lastly, how would asterisk work in this situation?

I am thinking of using showmeter/hidemeter when you hover the buttons so then it will show the button with the asterisk at the end, I tried "*" and just * but it doesn't work with inline pattern. Is there a better way of doing so?

I just want to replicate this bit of code but for the new inlinepattern

Code: Select all

MouseOverAction=[!SetOption Play Text "Play*"][!RainmeterRedraw]
MouseLeaveAction=[!SetOption Play Text "Play"][!RainmeterRedraw] 
I guess I can use the relative patter as u suggested above.
deXxterlab97
User avatar
deXxterlab97
Posts: 93
Joined: February 5th, 2017, 4:50 am

Re: String that goes narrower in the distance?

Post by deXxterlab97 »

Mordasius wrote:There again you can always go the hard route and use ImageMagic

https://forum.rainmeter.net/viewtopic.php?f=5&t=17687&p=97384&hilit=image#p97384
ImageMagick is nice, but it limites editebility. I can't edit on it. Well I can but I have to make seperate image for it.
deXxterlab97
User avatar
deXxterlab97
Posts: 93
Joined: February 5th, 2017, 4:50 am

Re: String that goes narrower in the distance?

Post by deXxterlab97 »

balala wrote:I'd replace the InlinePattern options with something to tell the string meter not the concrete letters, but which letter of the string would I like to set the appropriately:

Code: Select all

[TestPrev2]
Meter=String
...
InlineSetting=Size | 20
InlinePattern=^.{0}(.).*$
InlineSetting2=Size | 24
InlinePattern2=^.{1}(.).*$
InlineSetting3=Size | 28
InlinePattern3=^.{2}(.).*$
InlineSetting4=Size | 32
InlinePattern4=^.{3}(.).*$
InlineSetting5=Size | 36
InlinePattern5=^.{4}(.).*$
InlineSetting6=Size | 40
InlinePattern6=^.{5}(.).*$
InlineSetting7=Size | 44
InlinePattern7=^.{6}(.).*$
InlineSetting8=Size | 48
InlinePattern8=^.{7}(.).*$
InlinePattern is related to the first letter of the string (because before the captured letter are no other letters - in fact I said there are 0 letters). InlinePattern2 is related to the second letter and so on.
Using concrete letters in the InlinePattern options will make these options to not work at all with another string, or even worse, to not work well.
one more question and I am done.

I am used to use SolidColor=0,0,0,1 to make transparent parts clickable but since the area that SolidColor is covered by a rectangle not the angled text what would the best alternative? I am thinking of making another transparent shape behind it but that's seems bit cluttered
deXxterlab97