It is currently May 3rd, 2024, 5:32 am

Simple countdown timer

Get help with creating, editing & fixing problems with skins
User avatar
Yincognito
Rainmeter Sage
Posts: 7190
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: Simple countdown timer

Post by Yincognito »

death.crafter wrote: August 2nd, 2021, 1:09 pmBy mistake I scrolled on 00.
Your mistake, not mine - I can't help if you're unable to domesticate that little mouse... :sly:
death.crafter wrote: August 2nd, 2021, 1:09 pmThe stress was on a longer formula :rofl: btw.
I'm not stressed when writing such formulas - it's others being stressed when "only" reading them. 8-)
Yes, I know what you meant, but fortunately I avoided doing so this time, I let you triple the total formula (and the code) length. :lol:
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
User avatar
sl23
Posts: 1140
Joined: February 17th, 2011, 7:45 pm
Location: a Galaxy S7 far far away

Re: Simple countdown timer

Post by sl23 »

Yincognito wrote: August 2nd, 2021, 12:52 pm Correct. It's actually $MouseX:%$, because then you don't depend on knowing the exact pixels and you can play with more or less approximate percents. These will still depend on the font characteristics and spacing, so if there is a flaw to it, this is it. It's not a big one though, and since sl23 refused the resizing feature, I reckon he won't dynamically change fonts every time the skin is running, so it's a "calculated risk", if you like.

Actually, that's more or less intentional, and a very nice side effect, IMHO. But then, since you don't like the minute changing to the next when the seconds get past 60, the fact that you don't like this effect either goes without saying. :p
It was more that I don't need it to resize as this skin will be combined into another clock skin. :D

Tbh, I thought that was a good idea, about the timer changing when seconds reach 60, or minutes reach 60.

I've almost done in a few hours what took many days with balala's code. I think you're right about being quicker to recreate than learn someone else's code. But it was definitely interesting even if a little frustrating at times :lol:

Only one thing remains, I'd like the Hours, Minutes and Seconds Meter to highlight each on MouseOver. I got this working on balala's code by separating the Measure into 3 Meters. Can this be done here? If it's too much, then don't worry, It's just something I do in all my skins to show it's clickable or scrollable.

I can do the highlighting, it's the splitting of the current Uptime meter into 3 parts that looks like it'll break something. No harm trying I suppose!

EDIT: Hmm... Seems I have to split the Uptime Measure too!
- MuLab -
User avatar
Yincognito
Rainmeter Sage
Posts: 7190
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: Simple countdown timer

Post by Yincognito »

sl23 wrote: August 2nd, 2021, 9:16 amConsidering I used to love maths at school, and was pretty good too, that's quite bad! :oops:
I did as well, just didn't like my high school teacher: she gave only bad grades cause I didn't like to do the math she wanted me to and did my own instead. Oh and never did my homework either. Eventually got a maximum grade when presenting my polinomial / 2D / 3D / polar function graph program ... but at computer science, not math. If she only knew... :Whistle
sl23 wrote: August 2nd, 2021, 1:58 pmIt was more that I don't need it to resize as this skin will be combined into another clock skin. :D Tbh, I thought that was a good idea, about the timer changing when seconds reach 60, or minutes reach 60.
I know, I prefer it this way as well - and it was easier for me too without the resizing. ;-)
sl23 wrote: August 2nd, 2021, 1:58 pmI've almost done in a few hours what took many days with balala's code. I think you're right about being quicker to recreate than learn someone else's code. But it was definitely interesting even if a little frustrating at times :lol:
Told you. ;-) I never said you couldn't learn from working with someone else's code, no matter who he is - I only said it's easier/quicker to start from scratch, because of the reasons I already mentioned AND the fact that you can then go in smaller steps, bit by bit - something you also noticed now. In other words, you don't have to deal with everything (and more complex things) at once, as own code is an "evolution" from simple to more complex, and that is smoother for everyone, not just for newbies. In the end, just like for everything, a balance between the two approaches is the most feasible, depending on the scenario.
sl23 wrote: August 2nd, 2021, 1:58 pmOnly one thing remains, I'd like the Hours, Minutes and Seconds Meter to highlight each on MouseOver. I got this working on balala's code by separating the Measure into 3 Meters. Can this be done here? If it's too much, then don't worry, It's just something I do in all my skins to show it's clickable or scrollable.
Yes, it can be done - I knew you'd want that, as the effect is really good looking indeed. That being said, as far as I can see, death.crafter already did that, as he took my code as a base. I did notice a side effect in his code though, not sure if that's intentional: when resetting, it always resets to the initial 1 minute and not to the "last" time value before the timer was last run.

Let's see what he says as well, and if it will be needed, I'll do it - I don't mind at all, and it's not too much. It's a legit goal to achieve. ;-)
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
User avatar
Yincognito
Rainmeter Sage
Posts: 7190
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: Simple countdown timer

Post by Yincognito »

sl23 wrote: August 2nd, 2021, 1:58 pmI can do the highlighting, it's the splitting of the current Uptime meter into 3 parts that looks like it'll break something. No harm trying I suppose!

EDIT: Hmm... Seems I have to split the Uptime Measure too!
Actually, splitting Uptime is not really needed. You can create 3 String measures where you separately capture the H, M, S and then use them in corresponing meters. Just make sure those new measures belong to the TimerGroup as well, so that they are updated and all when the other two are.
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
User avatar
sl23
Posts: 1140
Joined: February 17th, 2011, 7:45 pm
Location: a Galaxy S7 far far away

Re: Simple countdown timer

Post by sl23 »

Clearly you're better at maths than me! :oops:

I never noticed DeathCrafters code! I'll see if I can find it. Did you mean the code posted about 10 pages ago? Or more recent?

Fingers crossed then as I think it looks much better too :D
- MuLab -
User avatar
death.crafter
Rainmeter Sage
Posts: 1399
Joined: April 24th, 2021, 8:13 pm

Re: Simple countdown timer

Post by death.crafter »

Yincognito wrote: August 2nd, 2021, 2:30 pm Yes, it can be done - I knew you'd want that, as the effect is really good looking indeed. That being said, as far as I can see, death.crafter already did that, as he took my code as a base. I did notice a side effect in his code though, not sure if that's intentional: when resetting, it always resets to the initial 1 minute and not to the "last" time value before the timer was last run.
I didn't indulge much in to working of the skin so I didn't notice that.
Yincognito wrote: August 2nd, 2021, 2:30 pm Let's see what he says as well, and if it will be needed, I'll do it - I don't mind at all, and it's not too much. It's a legit goal to achieve. ;-)
Let's see:

Code: Select all

[Variables]
; Background's stroke colors (0 = mouse leave color, 1 = mouse hover color)
StrokeColor0=255,255,255,60
StrokeColor1=0,255,255,255
StrokeColorIndex=0

; The time at which the timer / stopwatch is set or reset, in seconds (>0 for a timer, 0 for a stopwatch)
DefaultSeconds=00
DefaultMinutes=8
DefaultHours=00

; Seconds left to pass (for a timer), or seconds passed (for a stopwatch)
Seconds=([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)

; The amount of seconds by which the timer / stopwatch changes (<0 for a timer, >0 for a stopwatch)
Direction=-1

; Temporarily set to 1 when the timer / stopwatch is reset so the OnChangeAction below doesn't alter the Seconds above
Reset=0

[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
OnRefreshAction=[!PauseMeasureGroup TimerGroup]

---Measures---

[Time]
Group=TimerGroup
Measure=Time
Format=%H:%M %S
OnChangeAction=[!SetVariable Seconds (#Seconds#+#Direction#*(1-#Reset#))]
DynamicVariables=1

[Uptime]
Group=TimerGroup
Measure=Uptime
SecondsValue=#Seconds#
Format="%3!02i!:%2!02i! %1!02i!"
MaxValue=([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)
IfCondition=(#CURRENTSECTION#<=0) && (Sgn(#Direction#)=-1)
IfTrueAction=[!PauseMeasureGroup TimerGroup]
IfConditionMode=1
DynamicVariables=1

---Styles---

[TextStyle]
FontFace=Aller
FontSize=16
FontColor=255,255,255,200
StringEffect=Shadow
FontEffectColor=0,0,0,150
SolidColor=0,0,0,1
Padding=0,0,0,0
AntiAlias=1

[RoundlineStyle]
LineStart=14
LineLength=18
StartAngle=(Rad(270))
Antialias=1
Solid=1
X=160
Y=33

---Meters---

[Background]
Meter=Shape
Shape=Rectangle 1,1,220,65,5 | Fill Color 0,0,0,130 | StrokeWidth 2 | Stroke Color [#StrokeColor[#StrokeColorIndex]]
UpdateDivider=-1
MouseOverAction=[!SetVariable StrokeColorIndex (1-#StrokeColorIndex#)][!UpdateMeter #CURRENTSECTION#][!Redraw]
MouseLeaveAction=[!SetVariable StrokeColorIndex (1-#StrokeColorIndex#)][!UpdateMeter #CURRENTSECTION#][!Redraw]
DynamicVariables=1

[UptimeText]
Meter=String
MeterStyle=TextStyle
X=25
Y=20
FontWeight=650
MeasureName=Uptime
Text=%1
InlineSetting=Size | 10
InlinePattern=^.*(\s.*)$
InlineSetting2=Weight | 800
InlinePattern2=^.*(\s.*)$
InlinePattern3=^$
InlineSetting3=Color | #StrokeColor1#
DynamicVariables=1

[Hours]
Meter=Image
H=25
W=25
X=25
Y=25
SolidColor=0,0,0,1
MouseOverAction=[!SetOption UptimeText InlinePattern3 "^(\d{2})"][!UpdateMeter UptimeText][!Redraw]
MouseLeaveAction=[!SetOption UptimeText InlinePattern3 "^$"][!UpdateMeter UptimeText][!Redraw]
MouseScrollUpAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultHours]+1,0,99))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
MouseScrollDownAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultHours]-1,0,99))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
MouseActionCursor=0
DynamicVariables=1

[Minutes]
Meter=Image
X=5R
MouseOverAction=[!SetOption UptimeText InlinePattern3 "^.*:(\d{2})"][!UpdateMeter UptimeText][!Redraw]
MouseLeaveAction=[!SetOption UptimeText InlinePattern3 "^$"][!UpdateMeter UptimeText][!Redraw]
MouseScrollUpAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultMinutes]+1,0,59))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
MouseScrollDownAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultMinutes]-1,0,59))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
MeterStyle=Hours

[Seconds]
Meter=Image
H=22
X=4R
Y=28
MouseOverAction=[!SetOption UptimeText InlinePattern3 "^.*\s(\d{2})"][!UpdateMeter UptimeText][!Redraw]
MouseLeaveAction=[!SetOption UptimeText InlinePattern3 "^$"][!UpdateMeter UptimeText][!Redraw]
MouseScrollUpAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultSeconds]+1,0,59))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
MouseScrollDownAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultSeconds]-1,0,59))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
MeterStyle=Hours

[RoundBarBackground]
Meter=RoundLine
MeterStyle=RoundlineStyle
LineColor=255,255,255,20

[RoundBarForeground]
Meter=RoundLine
MeterStyle=RoundlineStyle
LineColor=#StrokeColor1#
LineWidth=4
MeasureName=Uptime

[Play]
Meter=String
FontFace=Segoe MDL2 Assets
Text=[\xE768]
FontSize=12
FontColor=255,255,255,200
X=160
Y=34
FontWeight=600
AntiAlias=1
StringAlign=CenterCenter
Group=PlayPause
LeftMouseUpAction=[!UnpauseMeasureGroup TimerGroup][!ToggleMeterGroup PlayPause][!Redraw]

[Pause]
Meter=String
Text=[\xE769]
Hidden=1
LeftMouseUpAction=[!PauseMeasureGroup TimerGroup][!ToggleMeterGroup PlayPause][!Redraw]
MeterStyle=Play

[Stop]
Meter=String
FontFace=Segoe MDL2 Assets
Text=[\xE72C]
FontSize=11
FontColor=255,255,255,200
X=190
Y=34
FontWeight=600
AntiAlias=1
StringAlign=LeftCenter
DynamicVariables=1
LeftMouseUpAction=[!WriteKeyValue Variables DefaultSeconds [#DefaultSeconds]][!WriteKeyValue Variables DefaultMinutes [#DefaultMinutes]][!WriteKeyValue Variables DefaultHours [#DefaultHours]][!Refresh]
If you change the code a bit you can get Yincognito's implementation of continuous increment-decrement.
from the Realm of Death
User avatar
sl23
Posts: 1140
Joined: February 17th, 2011, 7:45 pm
Location: a Galaxy S7 far far away

Re: Simple countdown timer

Post by sl23 »

WOW! You guys are amazing how quick you write this stuff! :thumbup: :thumbup: :thumbup:
It'd take me a day just to figure how to separate the UptimeText meter so I could use the highlight on it! :oops:
- MuLab -
User avatar
sl23
Posts: 1140
Joined: February 17th, 2011, 7:45 pm
Location: a Galaxy S7 far far away

Re: Simple countdown timer

Post by sl23 »

death.crafter wrote: August 2nd, 2021, 2:50 pmIf you change the code a bit you can get Yincognito's implementation of continuous increment-decrement.
I'm sure you could, but tbh honest, I'm happy with what you two have done, thank you so much :thumbup:
- MuLab -
User avatar
death.crafter
Rainmeter Sage
Posts: 1399
Joined: April 24th, 2021, 8:13 pm

Re: Simple countdown timer

Post by death.crafter »

sl23 wrote: August 2nd, 2021, 2:57 pm WOW! You guys are amazing how quick you write this stuff! :thumbup: :thumbup: :thumbup:
It'd take me a day just to figure how to separate the UptimeText meter so I could use the highlight on it! :oops:
I didn't separate the uptime text.

I have 3 image meters I use for scrolling(to change hours, minutes and seconds). I just added 8 lines and edited one.

What I am doing is changing the inline pattern on mouse over.

For hour: ^(\d{2})
For minute: ^.*:(\d{2})
For second: ^.*\s(\d{2}) (could be (\d{2})$)
from the Realm of Death
User avatar
sl23
Posts: 1140
Joined: February 17th, 2011, 7:45 pm
Location: a Galaxy S7 far far away

Re: Simple countdown timer

Post by sl23 »

Just so you can see what I've done with the code, which is pretty much the same as I did with Balala's really, but here it is anyway... (It has been altered quite a lot though)

Code: Select all

[Variables]
; Background's stroke colors (0 = mouse leave color, 1 = mouse hover color)
StrokeColor0=255,255,255,60
StrokeColor1=0,255,255,255
StrokeColorIndex=0

; The time at which the timer / stopwatch is set or reset, in seconds (>0 for a timer, 0 for a stopwatch)
DefaultSeconds=10
DefaultMinutes=00
DefaultHours=00

; Seconds left to pass (for a timer), or seconds passed (for a stopwatch)
Seconds=([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)

; The amount of seconds by which the timer / stopwatch changes (<0 for a timer, >0 for a stopwatch)
Direction=-1

; Temporarily set to 1 when the timer / stopwatch is reset so the OnChangeAction below doesn't alter the Seconds above
Reset=0

Color1=255,255,255,200
Color2=128,255,0
Color3=255,255,0

Alarm=Alarm.wav

CloseApps=!CommandMeasure mClose Run
APP1=Dolphin.exe
APP2=pcsx2.exe
APP3=rpcs3.exe
APP4=retroarch.exe
APP5=cemu.exe

Hibernate=rundll32.exe powrprof.dll,SetSuspendState
Shutdown=shutdown.exe -s -t 5 -f
Lock=rundll32.exe user32.dll, LockWorkStation

Act=#CloseApps#

[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
OnRefreshAction=[!PauseMeasureGroup TimerGroup]

========================================
; MEASURES
========================================
[mTime]
Group=TimerGroup
Measure=Time
Format=%H:%M %S
OnChangeAction=[!SetVariable Seconds (#Seconds#+#Direction#*(1-#Reset#))]
DynamicVariables=1

[mUptime]
Group=TimerGroup
Measure=Uptime
SecondsValue=#Seconds#
Format="%3!02i!:%2!02i! %1!02i!"
MaxValue=([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)
IfCondition=(#CURRENTSECTION#<=0) && (Sgn(#Direction#)=-1)
IfTrueAction=[!PauseMeasureGroup TimerGroup][#Act#]
IfConditionMode=1
DynamicVariables=1

[mClose]
Measure=Plugin
Plugin=RunCommand
Program=PowerShell
Parameter=taskkill /IM #APP1#;taskkill /IM #APP2#;taskkill /IM #APP3#;taskkill /IM #APP4#;taskkill /IM #APP5#

========================================
; STYLES
========================================
[sAllText]
FontFace=Aller
StringStyle=Bold
StringAlign=Left
FontSize=16
FontColor=#Color1#
FontWeight=650
StringEffect=Shadow
FontEffectColor=0,0,0,150
SolidColor=0,0,0,1
AntiAlias=1
DynamicVariables=1

[RoundlineStyle]
LineStart=14
LineLength=18
StartAngle=(Rad(270))
Antialias=1
Solid=1
X=160
Y=33

[sHighlight]
MouseOverAction=[!SetOption #CURRENTSECTION# FontColor "#Color2#"] [!UpdateMeter #CURRENTSECTION#] [!Redraw]
MouseLeaveAction=[!SetOption #CURRENTSECTION# FontColor "#Color1#"] [!UpdateMeter #CURRENTSECTION#] [!Redraw]

========================================
; Meters
========================================
[Bg]
Meter=Shape
Shape=Rectangle 1,1,220,65,5 | Fill Color 0,0,0,130 | StrokeWidth 2 | Stroke Color [#StrokeColor[#StrokeColorIndex]]
UpdateDivider=-1
MouseOverAction=[!SetVariable StrokeColorIndex (1-#StrokeColorIndex#)][!UpdateMeter #CURRENTSECTION#][!Redraw]
MouseLeaveAction=[!SetVariable StrokeColorIndex (1-#StrokeColorIndex#)][!UpdateMeter #CURRENTSECTION#][!Redraw]
DynamicVariables=1

[UptimeText]
Meter=String
MeasureName=mUptime
MeterStyle=sAllText
Text=%1
InlineSetting=Size | 10
InlinePattern=^.*(\s.*)$
InlineSetting2=Weight | 800
InlinePattern2=^.*(\s.*)$
InlinePattern3=^$
InlineSetting3=Color | #Color2#
Group=Start
X=25
Y=20

[Hours]
Meter=Image
SolidColor=0,0,0,1
MouseOverAction=[!SetOption UptimeText InlinePattern3 "^(\d{2})"][!UpdateMeter UptimeText][!Redraw]
MouseLeaveAction=[!SetOption UptimeText InlinePattern3 "^$"][!UpdateMeter UptimeText][!Redraw]
MouseScrollUpAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultHours]+1,0,99))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
MouseScrollDownAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultHours]-1,0,99))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
DynamicVariables=1
H=25
W=25
X=25
Y=25

[Minutes]
Meter=Image
MeterStyle=Hours
MouseOverAction=[!SetOption UptimeText InlinePattern3 "^.*:(\d{2})"][!UpdateMeter UptimeText][!Redraw]
MouseLeaveAction=[!SetOption UptimeText InlinePattern3 "^$"][!UpdateMeter UptimeText][!Redraw]
MouseScrollUpAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultMinutes]+1,0,59))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
MouseScrollDownAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultMinutes]-1,0,59))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
X=5R

[Seconds]
Meter=Image
MeterStyle=Hours
MouseOverAction=[!SetOption UptimeText InlinePattern3 "^.*\s(\d{2})"][!UpdateMeter UptimeText][!Redraw]
MouseLeaveAction=[!SetOption UptimeText InlinePattern3 "^$"][!UpdateMeter UptimeText][!Redraw]
MouseScrollUpAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultSeconds]+1,0,59))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
MouseScrollDownAction=[!SetVariable Default[#CURRENTSECTION] (Clamp([#DefaultSeconds]-1,0,59))][!SetVariable Seconds ([#DefaultSeconds]+[#DefaultMinutes]*60+[#DefaultHours]*3600)][!SetVariable Reset 1][!UnpauseMeasureGroup TimerGroup][!UpdateMeasureGroup TimerGroup][!PauseMeasureGroup TimerGroup][!SetVariable Reset 0][!UpdateMeter *][!Redraw]
H=22
X=4R
Y=28

[RoundBarBack]
Meter=RoundLine
MeterStyle=RoundlineStyle
LineColor=#StrokeColor0#

[RoundBarFore]
Meter=RoundLine
MeterStyle=RoundlineStyle
LineColor=#StrokeColor1#
LineWidth=4
MeasureName=mUptime

========================================
; Controls
========================================
[sControls]
FontFace=Segoe MDL2 Assets
FontSize=12
StringAlign=CenterCenter
X=160
Y=34

[Play]
Meter=String
MeterStyle=sAllText | sControls | sHighlight
Text=[\xE768]
LeftMouseUpAction=[!UnpauseMeasureGroup TimerGroup][!ToggleMeterGroup PlayPause][!SetOptionGroup Start FontColor "#Color3#"][!HideMeter Reset][!HideMeter Set][!Redraw]
Group=PlayPause | Start

[Pause]
Meter=String
MeterStyle=sAllText | sControls | sHighlight
Text=[\xE769]
LeftMouseUpAction=[!PauseMeasureGroup TimerGroup][!ToggleMeterGroup PlayPause][!SetOptionGroup Start FontColor "#Color1#"][!ShowMeter Reset][!ShowMeter Set][!Redraw]
Group=PlayPause | Start
Hidden=1

[Reset]
Meter=String
MeterStyle=sAllText | sControls | sHighlight
Text=[\xE72C]
FontSize=11
LeftMouseUpAction=!Refresh
Hidden=1
X=195
Y=34

[Set]
Meter=String
MeterStyle=sAllText | sControls | sHighlight
Text=[\xE713]
FontSize=11
LeftMouseUpAction=[!HideMeter Set][!HideMeter Reset][!ShowMeter OK][!SetOptionGroup Button Hidden "0"] [!UpdateMeter *][!Redraw]
X=195
Y=54

[OK]
Meter=String
MeterStyle=sAllText | sControls | sHighlight
Text=[\xE73E]
FontSize=11
LeftMouseUpAction=[!HideMeter OK][!ShowMeter Reset][!ShowMeter Set][!SetOptionGroup Button Hidden "1"] [!UpdateMeter *][!Redraw]
Hidden=1
X=195
Y=54

========================================
; Buttons
========================================
[sButton]
Shape=Rectangle 0,0,10,10,50 | Extend FillAlpha | StrokeWidth 2 | Extend StrokeAlpha
FillAlpha=FillColor #StrokeColor0#
StrokeAlpha=StrokeColor 128,255,0,0
MouseOverAction=[!SetOption #CURRENTSECTION# StrokeAlpha "StrokeColor 255,255,0,255"] [!UpdateMeter *][!Redraw]
MouseLeaveAction=[!SetOption #CURRENTSECTION# StrokeAlpha ""] [!UpdateMeter *] [!Redraw] 
DynamicVariables=1
Group=Button
Hidden=1
UpdateDivider=-1
X=20r
Y=0r

[Button1]
Meter=Shape
MeterStyle=sButton
LeftMouseUpAction=[!SetOptionGroup Button FillAlpha "FillColor #StrokeColor0#"][!SetOption #CURRENTSECTION# FillAlpha "FillColor #Color2#"][!SetVariable Act "#CloseApps#"] [!UpdateMeter *][!Redraw]
ToolTipText=Close Apps
X=15
Y=12

[Button2]
Meter=Shape
MeterStyle=sButton
LeftMouseUpAction=[!SetOptionGroup Button FillAlpha "FillColor #StrokeColor0#"][!SetOption #CURRENTSECTION# FillAlpha "FillColor #Color2#"][!SetVariable Act "#Hibernate#"] [!UpdateMeter *][!Redraw]
ToolTipText=Hibernate

[Button3]
Meter=Shape
MeterStyle=sButton
LeftMouseUpAction=[!SetOptionGroup Button FillAlpha "FillColor #StrokeColor0#"][!SetOption #CURRENTSECTION# FillAlpha "FillColor #Color2#"][!SetVariable Act "#Shutdown#"] [!UpdateMeter *][!Redraw]
ToolTipText=Shutdown

[Button4]
Meter=Shape
MeterStyle=sButton
LeftMouseUpAction=[!SetOptionGroup Button FillAlpha "FillColor #StrokeColor0#"][!SetOption #CURRENTSECTION# FillAlpha "FillColor #Color2#"][!SetVariable Act "#Lock#"] [!UpdateMeter *][!Redraw]
ToolTipText=Lock

[Button5]
Meter=Shape
MeterStyle=sButton
LeftMouseUpAction=[!SetOptionGroup Button FillAlpha "FillColor #StrokeColor0#"][!SetOption #CURRENTSECTION# FillAlpha "FillColor #Color2#"][!SetVariable Act ""] [!UpdateMeter *][!Redraw]
ToolTipText=Off
When I finally get it put into the clock skin I'll upload that too. But first I need to speak to dvo about using the SimplyRound skin. Not sure if that's going to be ok, If not I'll make my own. :D
- MuLab -