I revamped it somewhat to something simpler.
I am having trouble formatting the text and container shape relative to each other from what was originally designed:
Code: Select all
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[Rainmeter]
Update = 1000
DefaultUpdateDivider = -1
DynamicWindowSize = 1
AccurateText = 1
Group = Scrollie
[variables]
Spacing = 21
MaxListings = 16
StartY = 33
Padding = 6
Width = 300
; Change the file to your rainmeter settings file. If you don't do this it won't work.
; Unless your name is also Charlotte, in which case you're good.
; Change UpdateDivider to a bigger number if it's causing lag.
[RainmeterSettings]
Measure = WebParser
URL = file://C:\Users\Morbane\AppData\Roaming\Rainmeter\Rainmeter.ini
CodePage = 1200
RegExp = (?s)(.*)
UpdateDivider = 5
UpdateRate = 1
FinishAction = [!UpdateMeasure GetConfigName][!UpdateMeterGroup ShowIt][!Redraw]
; WebParser is actually bad at parsing the web so we use a string measure
; instead and delete all the stuff we don't want.
; We need to deal with spaces somehow probably since it might mess up the text wrapping
; And spaces haven't caused a problem yet
[GetConfigName]
Measure = String
String = [RainmeterSettings]
DynamicVariables = 1
RegExpSubstitute = 1
Substitute = "(?s).*?(\[[^\n]*?\])..Active=[^0]" : "\1", "(?s)([^\n]*]).*" : "\1", "\[(.*?)]" : "\1#CRLF#"
; Draw the title and the actual stuff
[Title]
Meter = string
StringAlign = Left
Text = Active Configs:
X = 5
Fontcolor = 125,100,25,250
FontFace = Testamentos-Jed@
StringStyle = Normal
SolidColor = 0,0,0,1
FontSize = 12
[Container]
Meter = Shape
DynamicVariables = 1
Shape = Rectangle 0, 34, #Width#, (#Spacing# * #MaxListings#+#Padding#), 20 | Extend MyModifiers1
MyModifiers1 = FillColor 25,50,25,255 | StrokeWidth 6 | Stroke Color 255,220,165,255
[Show]
Meter = string
Group = ShowIt
StringAlign = Left
text = [GetConfigName]
X = 5
Y = #StartY#
W = #Width#
Container = Container
FontFace = Segoe UI
FontColor = 255,220,135,255
SolidColor = 0,0,0,1
MouseOverAction=[!SetOption #CURRENTSECTION# SolidColor 25,50,25,100][!UpdateMeter #CURRENTSECTION#][!Redraw]
MouseLeaveAction=[!SetOption #CURRENTSECTION# SolidColor 25,50,25,50][!UpdateMeter #CURRENTSECTION#][!Redraw]
FontSize = 12
DynamicVariables = 1
; This converts the mouse's Y coordinates to the line clicked on
; If you use a bigger font, you need to change the 18
; Later on I'll programmatically determine the lineheight but I need to figure out
; a good way to count the number of active skins first. Which I might never do.
; It's easy to do it in a bad way though.
MouseScrollDownAction = [!SetOption #CURRENTSECTION# Y (([#CURRENTSECTION#:H]-#StartY#+[#CURRENTSECTION#:Y]-#Padding#)<(#Spacing#*#MaxListings#+#Padding#)?[#CURRENTSECTION#:Y]:([#CURRENTSECTION#:Y]-#Spacing#))][!UpdateMeter #CURRENTSECTION#][!UpdateMeter Slider][!Redraw]
MouseScrollUpAction = [!SetOption #CURRENTSECTION# Y ((([#CURRENTSECTION#:Y]+#Spacing#)>#StartY#?#StartY#:([#CURRENTSECTION#:Y]+#Spacing#)))][!UpdateMeter #CURRENTSECTION#][!UpdateMeter Slider][!Redraw]
; This converts the 3.233772 that we get into something usable in an 'array'
; Then it grabs the value of that element from the ClickedConfig 'array'
; Then it refreshes that config.
[GetMouseY]
Measure = Calc
Group = NoUpdate
Disabled = 1
Formula = (Ceil(#MouseY#) - 1) = -1 ? 0 : (Ceil(#MouseY#) - 1)
DynamicVariables = 1
; Something every skin needs. Enables the previously disabled measures and disables itself.
; Allows you to have OnUpdateActions not get fired on loading very very easily.
[NoUpdate]
Measure = Calc
OnUpdateAction = [!EnableMeasureGroup NoUpdate][!DisableMeasure NoUpdate]
Yep, that's all I'm trying to do, but everything seems to move together or not go right.
Any help is appreciated.