I'd like to share these ScrollBar Templates for future reference.
Features:
Instructions:
Example1.gif
The package includes two example skins, a single meter and a multi meter example. It also includes both vertical and horizontal scroll bars by themselves as separate skins.Features:
- Configurable
- Thumb resizes depending on content.
- All mouse actions included
- Mouse draggable
- Optional arrows
- Easy to implement
- Scrollbars hide automatically if the content is shorter than the container
ScrollBarTemplates_1.0.rmskin
Instructions:
Each scroll bar depends on two main variables, content and container width or height, depending on if it's Horizontal or Vertical.
So for this, let's set both scroll bars on a single meter skin, for simplicity.
First you have to create a Container meter, which will be... the container
. You can call it whatever, I'll call it.. Container
.
Set W and H to #ContainerW# and #ContainerH# and Group to SBY|SBX.
Add #SBYUpAction#[!UpdateMeterGroup SBY][!Redraw] and #SBYDownAction#[!UpdateMeterGroup SBY][!Redraw] to the Mouse Scroll Actions:
Now use that as the container of your Content meter. Also add Group=SBY|SBX
The formulas on X and Y help the text to be "Attached" to the container, especially when the skin is "Resizable", however the only part that is really necessary is -#SBXScroll# and -#SBYScroll#. However I recommend leaving the formula as is.
I set a pretty long text on the Text option as example.
Now, copy and paste the following variables to the [Variables] section:
These variables are for you to tweak the scroll bar size and aspect. The SBArrows variable allows you to choose between using arrows or not. If you don't want arrows then set it to 0.
Important Note:
All variables start with SB which means ScrollBar.
A means Arrows
T means Track
Th means ThumbNow copy and paste these variables:
These are pretty important, set ContentH to the Height of the [Content] meter and ContentW to its Width.
If you have multiple meters, then those variables have to equal the total Width and Height of those meters, plus the spaces between them (there's an example of that on the package).
Set ContainerW and ContainerH to the size you want the container to be, you can use formulas or hard coded numbers. I'll use hard coded numbers for this example (the package has an example with formulas).
Now copy and paste these variables.
On color you can set the colors for the Scroll bars, the rest of the formulas don't need to be tweaked at all.
Important Note:
Variables with Y refer to the vertical and with X to the horizontal scrollbar.Now copy and paste these Mouse Measures (Mouse Plugin is required, which is included on the package).Finally copy and paste these meters after the [Content] meter.
All you need to tweak here are the X and Y options on SBYTrack and SBXTrack meters, by default they will be right next to the Container.
And that's it. Now you have a completely functional set of Scroll bars.
So for this, let's set both scroll bars on a single meter skin, for simplicity.
First you have to create a Container meter, which will be... the container


Set W and H to #ContainerW# and #ContainerH# and Group to SBY|SBX.
Add #SBYUpAction#[!UpdateMeterGroup SBY][!Redraw] and #SBYDownAction#[!UpdateMeterGroup SBY][!Redraw] to the Mouse Scroll Actions:
Code:
[Container]Meter=ImageGroup=SBY|SBXW=#ContainerW#X=0Y=0H=#ContainerH#SolidColor=0,0,0DynamicVariables=1MouseScrollUpAction=#SBYUpAction#[!UpdateMeterGroup SBY][!Redraw]MouseScrollDownAction=#SBYDownAction#[!UpdateMeterGroup SBY][!Redraw]
The formulas on X and Y help the text to be "Attached" to the container, especially when the skin is "Resizable", however the only part that is really necessary is -#SBXScroll# and -#SBYScroll#. However I recommend leaving the formula as is.
I set a pretty long text on the Text option as example.
Code:
[Content]Group=SBY|SBXMeter=StringContainer=ContainerStringAlign=LeftX=(Clamp(Max((#ContainerW#-#ContentW#),0)-#SBXScroll#,Min((#ContainerW#-#ContentW#),0),0))Y=(Clamp(Max((#ContainerH#-#ContentH#),0)-#SBYScroll#,Min((#ContainerH#-#ContentH#),0),0))FontSize=9AntiAlias=1Text=The Charge of the Light Brigade#CRLF#by Alfred, Lord Tennyson#CRLF##CRLF#Half a league, half a league,#CRLF#Half a league onward,#CRLF#All in the valley of Death#CRLF#Rode the six hundred.#CRLF#Forward, the Light Brigade!#CRLF#Charge for the guns! he said:#CRLF#Into the valley of Death#CRLF#Rode the six hundred.#CRLF##CRLF#Forward, the Light Brigade!#CRLF#Was there a man dismayed?#CRLF#Not though the soldier knew#CRLF#Some one had blundered:#CRLF#Their's not to make reply,#CRLF#Their's not to reason why,#CRLF#Their's but to do and die:#CRLF#Into the valley of Death#CRLF#Rode the six hundred.#CRLF##CRLF#Cannon to right of them,#CRLF#Cannon to left of them,#CRLF#Cannon in front of them#CRLF#Volleyed and thundered;#CRLF#Stormed at with shot and shell,#CRLF#Boldly they rode and well,#CRLF#Into the jaws of Death,#CRLF#Into the mouth of Hell#CRLF#Rode the six hundred.#CRLF##CRLF#Flashed all their sabres bare,#CRLF#Flashed as they tuned in air#CRLF#Sabring the gunners there,#CRLF#Charging an army, while#CRLF#All the world wondered:#CRLF#Plunged in the battery-smoke#CRLF#Right through the line they broke;#CRLF#Cossack and Russian#CRLF#Reeled from the sabre-stroke#CRLF#Shattered and sundered.#CRLF#Then they rode back, but not#CRLF#Not the six hundred.#CRLF##CRLF#Cannon to right of them,#CRLF#Cannon to left of them,#CRLF#Cannon behind them#CRLF#Volleyed and thundered;#CRLF#Stormed at with shot and shell,#CRLF#While horse and hero fell,#CRLF#They that had fought so well#CRLF#Came through the jaws of Death,#CRLF#Back from the mouth of Hell,#CRLF#All that was left of them,#CRLF#Left of six hundred.#CRLF##CRLF#When can their glory fade?#CRLF#Oh the wild charge they made!#CRLF#All the world wondered.#CRLF#Honour the charge they made!#CRLF#Honour the Light Brigade,#CRLF#Noble six hundred!FontColor=255,255,255SolidColor=0,0,0DynamicVariables=1
These variables are for you to tweak the scroll bar size and aspect. The SBArrows variable allows you to choose between using arrows or not. If you don't want arrows then set it to 0.
Important Note:
All variables start with SB which means ScrollBar.
A means Arrows
T means Track
Th means Thumb
Code:
;Scroll Bar - General OptionsSBArrows=1SBTSize=15SBTCorners=0SBThSize=(#SBTSize#*0.5)SBThCorners=(#SBThSize#/2)SBASize=#SBThSize#
These are pretty important, set ContentH to the Height of the [Content] meter and ContentW to its Width.
If you have multiple meters, then those variables have to equal the total Width and Height of those meters, plus the spaces between them (there's an example of that on the package).
Set ContainerW and ContainerH to the size you want the container to be, you can use formulas or hard coded numbers. I'll use hard coded numbers for this example (the package has an example with formulas).
Code:
;ContentContentH=[&Content:H]ContentW=[&Content:W];ContainerContainerW=150ContainerH=300
On color you can set the colors for the Scroll bars, the rest of the formulas don't need to be tweaked at all.
Important Note:
Variables with Y refer to the vertical and with X to the horizontal scrollbar.
Code:
;ColorSBTColor=25,25,25SBButtonsColor=75,75,75SBButtonsColor2=125,125,125;Vertical Scroll Bar Options;GeneralSBYT=(#ContainerH#-(#SBArrows#=0?0:#SBTSize#*2))SBYTh=(Clamp(Round(Clamp([#*ContainerH*]/([#*ContentH*]+0.000001),0,1)*[#*SBYT*]),[#*SBThSize*]*3,[#*SBYT*]))SBYThPos=(Clamp(([#*SBYScroll*])/([#*ContentH*]-[#*ContainerH*]+0.000001),0,1)*([#*SBYT*]-[#*SBYTh*]));ScrollingSBYScroll=0SBYScrollMin=0SBYScrollMax=(#ContentH#-#ContainerH#)SBYScrollSteps=10;Actions;Scroll Up and Down ActionsSBYUpAction=[!SetVariable SBYScroll "(Clamp([#*SBYScroll*]-[#*SBYScrollSteps*],[#*SBYScrollMin*],[#*SBYScrollMax*]))"]SBYDownAction=[!SetVariable SBYScroll "(Clamp([#*SBYScroll*]+[#*SBYScrollSteps*],[#*SBYScrollMin*],[#*SBYScrollMax*]))"];Horizontal Scroll Bar Options;GeneralSBXT=(#ContainerW#-(#SBArrows#=0?0:#SBTSize#*2))SBXTh=(Clamp(Round(Clamp([#*ContainerW*]/([#*ContentW*]+0.000001),0,1)*[#*SBXT*]),[#*SBThSize*]*3,[#*SBXT*]))SBXThPos=(Clamp(([#*SBXScroll*])/([#*ContentW*]-[#*ContainerW*]+0.000001),0,1)*([#*SBXT*]-[#*SBXTh*]));ScrollingSBXScroll=0SBXScrollMin=0SBXScrollMax=(#ContentW#-#ContainerW#)SBXScrollSteps=10;Actions;Scroll Up and Down ActionsSBXUpAction=[!SetVariable SBXScroll "(Clamp([#*SBXScroll*]-[#*SBXScrollSteps*],[#*SBXScrollMin*],[#*SBXScrollMax*]))"]SBXDownAction=[!SetVariable SBXScroll "(Clamp([#*SBXScroll*]+[#*SBXScrollSteps*],[#*SBXScrollMin*],[#*SBXScrollMax*]))"]
Code:
[SBYMouse]Disabled=1Group=MouseMeasure=PluginPlugin=MouseLeftMouseDragAction=[!SetOption SBYTh Fill "Fill Color #SBButtonsColor2#"][!SetVariable SBYScroll "(clamp(round(#SBYScrollMin#+(clamp(#InitialThumbY#+$MouseY$-#InitialMouseY#-[SBYTrack:Y],0,(#SBYT#-#SBYTh#))/(#SBYT#-#SBYTh#))*(#SBYScrollMax#-#SBYScrollMin#)),#SBYScrollMin#,#SBYScrollMax#))"][!UpdateMeterGroup SBY][!Redraw]LeftMouseUpAction=[!EnableMouseAction SBYTh MouseLeaveAction ][!SetOption SBYTh Fill "Fill Color #SBButtonsColor#"][!UpdateMeter SBYTh][!Redraw][!CommandMeasure SBYMouse "Stop"][!DisableMeasureGroup Mouse]RequireDragging=1RelativeToSkin=1DynamicVariables=1[SBXMouse]Disabled=1Group=MouseMeasure=PluginPlugin=MouseLeftMouseDragAction=[!SetOption SBXTh Fill "Fill Color #SBButtonsColor2#"][!SetVariable SBXScroll "(clamp(round(#SBXScrollMin#+(clamp(#InitialThumbX#+$MouseX$-#InitialMouseX#-[SBXTrack:X],0,(#SBXT#-#SBXTh#))/(#SBXT#-#SBXTh#))*(#SBXScrollMax#-#SBXScrollMin#)),#SBXScrollMin#,#SBXScrollMax#))"][!UpdateMeterGroup SBX][!Redraw]LeftMouseUpAction=[!EnableMouseAction SBXTh MouseLeaveAction ][!SetOption SBXTh Fill "Fill Color #SBButtonsColor#"][!UpdateMeter SBXTh][!Redraw][!CommandMeasure SBXMouse "Stop"][!DisableMeasureGroup Mouse]RequireDragging=1RelativeToSkin=1DynamicVariables=1
All you need to tweak here are the X and Y options on SBYTrack and SBXTrack meters, by default they will be right next to the Container.
Code:
[SBYTrack]Group=SBYHidden=(#ContentH#<=#ContainerH#?1:0)Meter=ShapeShape=Rectangle 0,0,#SBTSize#,(#SBYT#+(#SBArrows#=0?0:#SBTSize#*2)),#SBTCorners# | StrokeWidth 0 | Fill Color #SBTColor#DynamicVariables=1MouseScrollUpAction=#SBYUpAction#[!UpdateMeterGroup SBY][!Redraw]MouseScrollDownAction=#SBYDownAction#[!UpdateMeterGroup SBY][!Redraw]LeftMouseDownAction=[!SetOption SBYTh Fill "Fill Color #SBButtonsColor2#"][!SetVariable SBYScroll "(#SBYScrollMin#+(clamp($MouseY$-(#SBArrows#=0?0:#SBTSize#)-#SBYTh#/2,0,(#SBYT#-#SBYTh#))/(#SBYT#-#SBYTh#))*(#SBYScrollMax#-#SBYScrollMin#))"][!UpdateMeterGroup SBY][!Redraw]X=[Container:XW]Y=[Container:Y][SBYAUp]Meter=ShapeMeterStyle=SBYTrackHidden=(#SBArrows#=0?1:(#ContentH#<=#ContainerH#?1:0))Shape=Rectangle 0,0,#SBTSize#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2 = Path Path1 | StrokeWidth 0 | Offset ((#SBTSize#-10)/2),((#SBTSize#-10)/2) | Extend SBYAScale | Rotate 180 | Extend FillPath1 = 3.7, 9.2 | LineTo 0.2, 2.1 | CurveTo 1.5, 0, -0.3, 1.1, 0.4, 0 | LineTo 8.6, 0 | CurveTo 9.9, 2.1, 9.7, 0, 10.4, 1.1 | LineTo 6.3, 9.2 | CurveTo 3.7, 9.2, 5.8, 10.3, 4.3, 10.3 | ClosePath 1SBYAScale=Scale (#SBASize#/10),(#SBASize#/10)Fill=Fill Color #SBButtonsColor#LeftMouseDownAction=[!SetOption #CurrentSection# SBYAScale "Scale ((#SBASize#*0.8)/10),((#SBASize#*0.8)/10)"]#SBYUpAction#[!UpdateMeterGroup SBY][!Redraw]LeftMouseUpAction=[!SetOption #CurrentSection# SBYAScale "Scale (#SBASize#/10),(#SBASize#/10)"][!UpdateMeter #CurrentSection#][!Redraw]MouseOverAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor2#"][!UpdateMeter #CurrentSection#][!Redraw]MouseLeaveAction=[!SetOption #CurrentSection# SBYAScale "Scale (#SBASize#/10),(#SBASize#/10)"][!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor#"][!UpdateMeter #CurrentSection#][!Redraw][SBYADown]Meter=ShapeMeterStyle=SBYTrack|SBYAUpShape=Rectangle 0,(#SBTSize#+#SBYT#),#SBTSize#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2 = Path Path1 | StrokeWidth 0 | Offset (#SBTSize#-10)/2,(#SBTSize#+#SBYT#+(#SBTSize#-10)/2) | Extend SBYAScale | Rotate 0 | Extend FillLeftMouseDownAction=[!SetOption #CurrentSection# SBYAScale "Scale ((#SBASize#*0.8)/10),((#SBASize#*0.8)/10)"]#SBYDownAction#[!UpdateMeterGroup SBY][!Redraw][SBYTh]Meter=ShapeMeterStyle=SBYTrackShape=Rectangle 0,(#SBYThPos#+(#SBArrows#=0?0:#SBTSize#)),#SBTSize#,#SBYTh#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2=Rectangle ((#SBTSize#-#SBThSize#)/2),(#SBYThPos#+(#SBArrows#=0?0:#SBTSize#)),#SBThSize#,#SBYTh#,#SBThCorners# | StrokeWidth 0 | Extend FillFill=Fill Color #SBButtonsColor#LeftMouseDownAction=[!DisableMouseAction #CurrentSection# MouseLeaveAction][!SetVariable InitialThumbY "(#SBYThPos#)"][!SetVariable InitialMouseY $MouseY$][!UpdateMeasure SBYMouse][!EnableMeasure SBYMouse][!CommandMeasure SBYMouse "Start"]MouseOverAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor2#"][!UpdateMeter #CurrentSection#][!Redraw]MouseLeaveAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor#"][!UpdateMeter #CurrentSection#][!Redraw][SBXTrack]Group=SBXHidden=(#ContentW#<=#ContainerW#?1:0)Meter=ShapeShape=Rectangle 0,0,(#SBXT#+(#SBArrows#=0?0:#SBTSize#*2)),#SBTSize#,#SBTCorners# | StrokeWidth 0 | Fill Color #SBTColor#DynamicVariables=1MouseScrollUpAction=#SBXUpAction#[!UpdateMeterGroup SBX][!Redraw]MouseScrollDownAction=#SBXDownAction#[!UpdateMeterGroup SBX][!Redraw]LeftMouseDownAction=[!SetOption SBXTh Fill "Fill Color #SBButtonsColor2#"][!SetVariable SBXScroll "(#SBXScrollMin#+(clamp($MouseX$-(#SBArrows#=0?0:#SBTSize#)-#SBXTh#/2,0,(#SBXT#-#SBXTh#))/(#SBXT#-#SBXTh#))*(#SBXScrollMax#-#SBXScrollMin#))"][!UpdateMeterGroup SBX][!Redraw]X=[Container:X]Y=[Container:YH][SBXAUp]Meter=ShapeMeterStyle=SBXTrackHidden=(#SBArrows#=0?1:(#ContentW#<=#ContainerW#?1:0))Shape=Rectangle 0,0,#SBTSize#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2 = Path Path1 | StrokeWidth 0 | Offset ((#SBTSize#-10)/2),((#SBTSize#-10)/2) | Extend SBXAScale | Rotate 90 | Extend FillPath1 = 3.7, 9.2 | LineTo 0.2, 2.1 | CurveTo 1.5, 0, -0.3, 1.1, 0.4, 0 | LineTo 8.6, 0 | CurveTo 9.9, 2.1, 9.7, 0, 10.4, 1.1 | LineTo 6.3, 9.2 | CurveTo 3.7, 9.2, 5.8, 10.3, 4.3, 10.3 | ClosePath 1SBXAScale=Scale (#SBASize#/10),(#SBASize#/10)Fill=Fill Color #SBButtonsColor#LeftMouseDownAction=[!SetOption #CurrentSection# SBXAScale "Scale ((#SBASize#*0.8)/10),((#SBASize#*0.8)/10)"]#SBXUpAction#[!UpdateMeterGroup SBX][!Redraw]LeftMouseUpAction=[!SetOption #CurrentSection# SBXAScale "Scale (#SBASize#/10),(#SBASize#/10)"][!UpdateMeter #CurrentSection#][!Redraw]MouseOverAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor2#"][!UpdateMeter #CurrentSection#][!Redraw]MouseLeaveAction=[!SetOption #CurrentSection# SBXAScale "Scale (#SBASize#/10),(#SBASize#/10)"][!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor#"][!UpdateMeter #CurrentSection#][!Redraw][SBXADown]Meter=ShapeMeterStyle=SBXTrack|SBXAUpShape=Rectangle (#SBTSize#+#SBXT#),0,#SBTSize#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2 = Path Path1 | StrokeWidth 0 | Offset (#SBTSize#+#SBXT#+(#SBTSize#-10)/2),(#SBTSize#-10)/2 | Extend SBXAScale | Rotate 270 | Extend FillLeftMouseDownAction=[!SetOption #CurrentSection# SBXAScale "Scale ((#SBASize#*0.8)/10),((#SBASize#*0.8)/10)"]#SBXDownAction#[!UpdateMeterGroup SBX][!Redraw][SBXTh]Meter=ShapeMeterStyle=SBXTrackShape=Rectangle (#SBXThPos#+(#SBArrows#=0?0:#SBTSize#)),0,#SBXTh#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2=Rectangle (#SBXThPos#+(#SBArrows#=0?0:#SBTSize#)),((#SBTSize#-#SBThSize#)/2),#SBXTh#,#SBThSize#,#SBThCorners# | StrokeWidth 0 | Extend FillFill=Fill Color #SBButtonsColor#LeftMouseDownAction=[!DisableMouseAction #CurrentSection# MouseLeaveAction][!SetVariable InitialThumbX "(#SBXThPos#)"][!SetVariable InitialMouseX $MouseX$][!UpdateMeasure SBXMouse][!EnableMeasure SBXMouse][!CommandMeasure SBXMouse "Start"]MouseOverAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor2#"][!UpdateMeter #CurrentSection#][!Redraw]MouseLeaveAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor#"][!UpdateMeter #CurrentSection#][!Redraw]
example.gif
Complete code:Code:
[Variables];Scroll Bar - General OptionsSBArrows=1SBTSize=15SBTCorners=0SBThSize=(#SBTSize#*0.5)SBThCorners=(#SBThSize#/2)SBASize=#SBThSize#;ContentContentH=[&Content:H]ContentW=[&Content:W];ContainerContainerW=150ContainerH=300;ColorSBTColor=25,25,25SBButtonsColor=75,75,75SBButtonsColor2=125,125,125;Vertical Scroll Bar Options;GeneralSBYT=(#ContainerH#-(#SBArrows#=0?0:#SBTSize#*2))SBYTh=(Clamp(Round(Clamp([#*ContainerH*]/([#*ContentH*]+0.000001),0,1)*[#*SBYT*]),[#*SBThSize*]*3,[#*SBYT*]))SBYThPos=(Clamp(([#*SBYScroll*])/([#*ContentH*]-[#*ContainerH*]+0.000001),0,1)*([#*SBYT*]-[#*SBYTh*]));ScrollingSBYScroll=0SBYScrollMin=0SBYScrollMax=(#ContentH#-#ContainerH#)SBYScrollSteps=10;Actions;Scroll Up and Down ActionsSBYUpAction=[!SetVariable SBYScroll "(Clamp([#*SBYScroll*]-[#*SBYScrollSteps*],[#*SBYScrollMin*],[#*SBYScrollMax*]))"]SBYDownAction=[!SetVariable SBYScroll "(Clamp([#*SBYScroll*]+[#*SBYScrollSteps*],[#*SBYScrollMin*],[#*SBYScrollMax*]))"];Horizontal Scroll Bar Options;GeneralSBXT=(#ContainerW#-(#SBArrows#=0?0:#SBTSize#*2))SBXTh=(Clamp(Round(Clamp([#*ContainerW*]/([#*ContentW*]+0.000001),0,1)*[#*SBXT*]),[#*SBThSize*]*3,[#*SBXT*]))SBXThPos=(Clamp(([#*SBXScroll*])/([#*ContentW*]-[#*ContainerW*]+0.000001),0,1)*([#*SBXT*]-[#*SBXTh*]));ScrollingSBXScroll=0SBXScrollMin=0SBXScrollMax=(#ContentW#-#ContainerW#)SBXScrollSteps=10;Actions;Scroll Up and Down ActionsSBXUpAction=[!SetVariable SBXScroll "(Clamp([#*SBXScroll*]-[#*SBXScrollSteps*],[#*SBXScrollMin*],[#*SBXScrollMax*]))"]SBXDownAction=[!SetVariable SBXScroll "(Clamp([#*SBXScroll*]+[#*SBXScrollSteps*],[#*SBXScrollMin*],[#*SBXScrollMax*]))"][SBYMouse]Disabled=1Group=MouseMeasure=PluginPlugin=MouseLeftMouseDragAction=[!SetOption SBYTh Fill "Fill Color #SBButtonsColor2#"][!SetVariable SBYScroll "(clamp(round(#SBYScrollMin#+(clamp(#InitialThumbY#+$MouseY$-#InitialMouseY#-[SBYTrack:Y],0,(#SBYT#-#SBYTh#))/(#SBYT#-#SBYTh#))*(#SBYScrollMax#-#SBYScrollMin#)),#SBYScrollMin#,#SBYScrollMax#))"][!UpdateMeterGroup SBY][!Redraw]LeftMouseUpAction=[!EnableMouseAction SBYTh MouseLeaveAction ][!SetOption SBYTh Fill "Fill Color #SBButtonsColor#"][!UpdateMeter SBYTh][!Redraw][!CommandMeasure SBYMouse "Stop"][!DisableMeasureGroup Mouse]RequireDragging=1RelativeToSkin=1DynamicVariables=1[SBXMouse]Disabled=1Group=MouseMeasure=PluginPlugin=MouseLeftMouseDragAction=[!SetOption SBXTh Fill "Fill Color #SBButtonsColor2#"][!SetVariable SBXScroll "(clamp(round(#SBXScrollMin#+(clamp(#InitialThumbX#+$MouseX$-#InitialMouseX#-[SBXTrack:X],0,(#SBXT#-#SBXTh#))/(#SBXT#-#SBXTh#))*(#SBXScrollMax#-#SBXScrollMin#)),#SBXScrollMin#,#SBXScrollMax#))"][!UpdateMeterGroup SBX][!Redraw]LeftMouseUpAction=[!EnableMouseAction SBXTh MouseLeaveAction ][!SetOption SBXTh Fill "Fill Color #SBButtonsColor#"][!UpdateMeter SBXTh][!Redraw][!CommandMeasure SBXMouse "Stop"][!DisableMeasureGroup Mouse]RequireDragging=1RelativeToSkin=1DynamicVariables=1[Container]Meter=ImageGroup=SBY|SBXW=#ContainerW#X=0Y=0H=#ContainerH#SolidColor=0,0,0DynamicVariables=1MouseScrollUpAction=#SBYUpAction#[!UpdateMeterGroup SBY][!Redraw]MouseScrollDownAction=#SBYDownAction#[!UpdateMeterGroup SBY][!Redraw][Content]Group=SBY|SBXMeter=StringContainer=ContainerStringAlign=LeftX=(Clamp(Max((#ContainerW#-#ContentW#),0)-#SBXScroll#,Min((#ContainerW#-#ContentW#),0),0))Y=(Clamp(Max((#ContainerH#-#ContentH#),0)-#SBYScroll#,Min((#ContainerH#-#ContentH#),0),0))FontSize=9AntiAlias=1Text=The Charge of the Light Brigade#CRLF#by Alfred, Lord Tennyson#CRLF##CRLF#Half a league, half a league,#CRLF#Half a league onward,#CRLF#All in the valley of Death#CRLF#Rode the six hundred.#CRLF#Forward, the Light Brigade!#CRLF#Charge for the guns! he said:#CRLF#Into the valley of Death#CRLF#Rode the six hundred.#CRLF##CRLF#Forward, the Light Brigade!#CRLF#Was there a man dismayed?#CRLF#Not though the soldier knew#CRLF#Some one had blundered:#CRLF#Their's not to make reply,#CRLF#Their's not to reason why,#CRLF#Their's but to do and die:#CRLF#Into the valley of Death#CRLF#Rode the six hundred.#CRLF##CRLF#Cannon to right of them,#CRLF#Cannon to left of them,#CRLF#Cannon in front of them#CRLF#Volleyed and thundered;#CRLF#Stormed at with shot and shell,#CRLF#Boldly they rode and well,#CRLF#Into the jaws of Death,#CRLF#Into the mouth of Hell#CRLF#Rode the six hundred.#CRLF##CRLF#Flashed all their sabres bare,#CRLF#Flashed as they tuned in air#CRLF#Sabring the gunners there,#CRLF#Charging an army, while#CRLF#All the world wondered:#CRLF#Plunged in the battery-smoke#CRLF#Right through the line they broke;#CRLF#Cossack and Russian#CRLF#Reeled from the sabre-stroke#CRLF#Shattered and sundered.#CRLF#Then they rode back, but not#CRLF#Not the six hundred.#CRLF##CRLF#Cannon to right of them,#CRLF#Cannon to left of them,#CRLF#Cannon behind them#CRLF#Volleyed and thundered;#CRLF#Stormed at with shot and shell,#CRLF#While horse and hero fell,#CRLF#They that had fought so well#CRLF#Came through the jaws of Death,#CRLF#Back from the mouth of Hell,#CRLF#All that was left of them,#CRLF#Left of six hundred.#CRLF##CRLF#When can their glory fade?#CRLF#Oh the wild charge they made!#CRLF#All the world wondered.#CRLF#Honour the charge they made!#CRLF#Honour the Light Brigade,#CRLF#Noble six hundred!FontColor=255,255,255SolidColor=0,0,0DynamicVariables=1[SBYTrack]Group=SBYHidden=(#ContentH#<=#ContainerH#?1:0)Meter=ShapeShape=Rectangle 0,0,#SBTSize#,(#SBYT#+(#SBArrows#=0?0:#SBTSize#*2)),#SBTCorners# | StrokeWidth 0 | Fill Color #SBTColor#DynamicVariables=1MouseScrollUpAction=#SBYUpAction#[!UpdateMeterGroup SBY][!Redraw]MouseScrollDownAction=#SBYDownAction#[!UpdateMeterGroup SBY][!Redraw]LeftMouseDownAction=[!SetOption SBYTh Fill "Fill Color #SBButtonsColor2#"][!SetVariable SBYScroll "(#SBYScrollMin#+(clamp($MouseY$-(#SBArrows#=0?0:#SBTSize#)-#SBYTh#/2,0,(#SBYT#-#SBYTh#))/(#SBYT#-#SBYTh#))*(#SBYScrollMax#-#SBYScrollMin#))"][!UpdateMeterGroup SBY][!Redraw]X=[Container:XW]Y=[Container:Y][SBYAUp]Meter=ShapeMeterStyle=SBYTrackHidden=(#SBArrows#=0?1:(#ContentH#<=#ContainerH#?1:0))Shape=Rectangle 0,0,#SBTSize#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2 = Path Path1 | StrokeWidth 0 | Offset ((#SBTSize#-10)/2),((#SBTSize#-10)/2) | Extend SBYAScale | Rotate 180 | Extend FillPath1 = 3.7, 9.2 | LineTo 0.2, 2.1 | CurveTo 1.5, 0, -0.3, 1.1, 0.4, 0 | LineTo 8.6, 0 | CurveTo 9.9, 2.1, 9.7, 0, 10.4, 1.1 | LineTo 6.3, 9.2 | CurveTo 3.7, 9.2, 5.8, 10.3, 4.3, 10.3 | ClosePath 1SBYAScale=Scale (#SBASize#/10),(#SBASize#/10)Fill=Fill Color #SBButtonsColor#LeftMouseDownAction=[!SetOption #CurrentSection# SBYAScale "Scale ((#SBASize#*0.8)/10),((#SBASize#*0.8)/10)"]#SBYUpAction#[!UpdateMeterGroup SBY][!Redraw]LeftMouseUpAction=[!SetOption #CurrentSection# SBYAScale "Scale (#SBASize#/10),(#SBASize#/10)"][!UpdateMeter #CurrentSection#][!Redraw]MouseOverAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor2#"][!UpdateMeter #CurrentSection#][!Redraw]MouseLeaveAction=[!SetOption #CurrentSection# SBYAScale "Scale (#SBASize#/10),(#SBASize#/10)"][!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor#"][!UpdateMeter #CurrentSection#][!Redraw][SBYADown]Meter=ShapeMeterStyle=SBYTrack|SBYAUpShape=Rectangle 0,(#SBTSize#+#SBYT#),#SBTSize#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2 = Path Path1 | StrokeWidth 0 | Offset (#SBTSize#-10)/2,(#SBTSize#+#SBYT#+(#SBTSize#-10)/2) | Extend SBYAScale | Rotate 0 | Extend FillLeftMouseDownAction=[!SetOption #CurrentSection# SBYAScale "Scale ((#SBASize#*0.8)/10),((#SBASize#*0.8)/10)"]#SBYDownAction#[!UpdateMeterGroup SBY][!Redraw][SBYTh]Meter=ShapeMeterStyle=SBYTrackShape=Rectangle 0,(#SBYThPos#+(#SBArrows#=0?0:#SBTSize#)),#SBTSize#,#SBYTh#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2=Rectangle ((#SBTSize#-#SBThSize#)/2),(#SBYThPos#+(#SBArrows#=0?0:#SBTSize#)),#SBThSize#,#SBYTh#,#SBThCorners# | StrokeWidth 0 | Extend FillFill=Fill Color #SBButtonsColor#LeftMouseDownAction=[!DisableMouseAction #CurrentSection# MouseLeaveAction][!SetVariable InitialThumbY "(#SBYThPos#)"][!SetVariable InitialMouseY $MouseY$][!UpdateMeasure SBYMouse][!EnableMeasure SBYMouse][!CommandMeasure SBYMouse "Start"]MouseOverAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor2#"][!UpdateMeter #CurrentSection#][!Redraw]MouseLeaveAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor#"][!UpdateMeter #CurrentSection#][!Redraw][SBXTrack]Group=SBXHidden=(#ContentW#<=#ContainerW#?1:0)Meter=ShapeShape=Rectangle 0,0,(#SBXT#+(#SBArrows#=0?0:#SBTSize#*2)),#SBTSize#,#SBTCorners# | StrokeWidth 0 | Fill Color #SBTColor#DynamicVariables=1MouseScrollUpAction=#SBXUpAction#[!UpdateMeterGroup SBX][!Redraw]MouseScrollDownAction=#SBXDownAction#[!UpdateMeterGroup SBX][!Redraw]LeftMouseDownAction=[!SetOption SBXTh Fill "Fill Color #SBButtonsColor2#"][!SetVariable SBXScroll "(#SBXScrollMin#+(clamp($MouseX$-(#SBArrows#=0?0:#SBTSize#)-#SBXTh#/2,0,(#SBXT#-#SBXTh#))/(#SBXT#-#SBXTh#))*(#SBXScrollMax#-#SBXScrollMin#))"][!UpdateMeterGroup SBX][!Redraw]X=[Container:X]Y=[Container:YH][SBXALeft]Meter=ShapeMeterStyle=SBXTrackHidden=(#SBArrows#=0?1:(#ContentW#<=#ContainerW#?1:0))Shape=Rectangle 0,0,#SBTSize#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2 = Path Path1 | StrokeWidth 0 | Offset ((#SBTSize#-10)/2),((#SBTSize#-10)/2) | Extend SBXAScale | Rotate 90 | Extend FillPath1 = 3.7, 9.2 | LineTo 0.2, 2.1 | CurveTo 1.5, 0, -0.3, 1.1, 0.4, 0 | LineTo 8.6, 0 | CurveTo 9.9, 2.1, 9.7, 0, 10.4, 1.1 | LineTo 6.3, 9.2 | CurveTo 3.7, 9.2, 5.8, 10.3, 4.3, 10.3 | ClosePath 1SBXAScale=Scale (#SBASize#/10),(#SBASize#/10)Fill=Fill Color #SBButtonsColor#LeftMouseDownAction=[!SetOption #CurrentSection# SBXAScale "Scale ((#SBASize#*0.8)/10),((#SBASize#*0.8)/10)"]#SBXUpAction#[!UpdateMeterGroup SBX][!Redraw]LeftMouseUpAction=[!SetOption #CurrentSection# SBXAScale "Scale (#SBASize#/10),(#SBASize#/10)"][!UpdateMeter #CurrentSection#][!Redraw]MouseOverAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor2#"][!UpdateMeter #CurrentSection#][!Redraw]MouseLeaveAction=[!SetOption #CurrentSection# SBXAScale "Scale (#SBASize#/10),(#SBASize#/10)"][!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor#"][!UpdateMeter #CurrentSection#][!Redraw][SBXARight]Meter=ShapeMeterStyle=SBXTrack|SBXALeftShape=Rectangle (#SBTSize#+#SBXT#),0,#SBTSize#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2 = Path Path1 | StrokeWidth 0 | Offset (#SBTSize#+#SBXT#+(#SBTSize#-10)/2),(#SBTSize#-10)/2 | Extend SBXAScale | Rotate 270 | Extend FillLeftMouseDownAction=[!SetOption #CurrentSection# SBXAScale "Scale ((#SBASize#*0.8)/10),((#SBASize#*0.8)/10)"]#SBXDownAction#[!UpdateMeterGroup SBX][!Redraw][SBXTh]Meter=ShapeMeterStyle=SBXTrackShape=Rectangle (#SBXThPos#+(#SBArrows#=0?0:#SBTSize#)),0,#SBXTh#,#SBTSize#,0 | StrokeWidth 0 | Fill Color 255,0,0,1Shape2=Rectangle (#SBXThPos#+(#SBArrows#=0?0:#SBTSize#)),((#SBTSize#-#SBThSize#)/2),#SBXTh#,#SBThSize#,#SBThCorners# | StrokeWidth 0 | Extend FillFill=Fill Color #SBButtonsColor#LeftMouseDownAction=[!DisableMouseAction #CurrentSection# MouseLeaveAction][!SetVariable InitialThumbX "(#SBXThPos#)"][!SetVariable InitialMouseX $MouseX$][!UpdateMeasure SBXMouse][!EnableMeasure SBXMouse][!CommandMeasure SBXMouse "Start"]MouseOverAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor2#"][!UpdateMeter #CurrentSection#][!Redraw]MouseLeaveAction=[!SetOption #CurrentSection# Fill "Fill Color #SBButtonsColor#"][!UpdateMeter #CurrentSection#][!Redraw]
Statistics: Posted by RicardoTM — January 28th, 2025, 11:11 pm — Replies 14 — Views 319