Something like this? Or, you can check the skins that provided the basis for this here (credit to the Rainmeter Team). In the interest of simplicity, I removed the ActionTimer system and used TransformationMatrix instead, adding the menu / collapseable like functionality. The names of variables and sections must stay the same since I extensively used the #CURRENTSECTION# built-in variable and they match the names of the icons in the @Resources subfolder, but one can add or improve this by copy pasting and changing indexes and such. I didn't place icons in arcs, use labels, rotate the elements or use animations, just kept it simple. Applications with spaces in their paths obviously need to be enclosed in quotes. The entire code is this:AlphaRomeo wrote: ↑March 16th, 2022, 12:52 am Just came across something very similar on Reddit Anyone trying to achieve it,
https://www.reddit.com/r/Rainmeter/comments/3mpawd/how_to_make_a_collapseable_icon/
https://www.reddit.com/r/Rainmeter/comments/3mga9t/can_anyone_help_me_with_this/
Goodluck
Adios
Code: Select all
[Variables]
ScaleIconPlain=1;0;0;1;0;0
ScaleIconSmall=(#*ScaleSmall*#);0;0;(#*ScaleSmall*#);((1-#*ScaleSmall*#)*([#*CURRENTSECTION*#:X]+[#*CURRENTSECTION*#:W]/2));((1-#*ScaleSmall*#)*([#*CURRENTSECTION*#:Y]+[#*CURRENTSECTION*#:H]/2))
ScaleIconLarge=(#*ScaleLarge*#);0;0;(#*ScaleLarge*#);((1-#*ScaleLarge*#)*([#*CURRENTSECTION*#:X]+[#*CURRENTSECTION*#:W]/2));((1-#*ScaleLarge*#)*([#*CURRENTSECTION*#:Y]+[#*CURRENTSECTION*#:H]/2))
ScaleSmall=0.75
ScaleLarge=1.25
DockBackColor=0,0,0,128
ItemBackColor=0,0,0,1
NoTintColor=255,255,255,255
TintedColor=128,128,128,255
Indent=10
IconSize=48
DockIndex=1
DockCount=5
ItemCount1=2
ItemCount2=0
ItemCount3=1
ItemCount4=3
ItemCount5=1
DockIcon1Set=[!SetVariable DockIndex 1][!UpdateMeterGroup ItemIconGroup][!Redraw]
DockIcon2Set=[!SetVariable DockIndex 2][!UpdateMeterGroup ItemIconGroup][!Redraw]
DockIcon3Set=[!SetVariable DockIndex 3][!UpdateMeterGroup ItemIconGroup][!Redraw]
DockIcon4Set=[!SetVariable DockIndex 4][!UpdateMeterGroup ItemIconGroup][!Redraw]
DockIcon5Set=[!SetVariable DockIndex 5][!UpdateMeterGroup ItemIconGroup][!Redraw]
DockIcon1Run=[!ToggleMeterGroup ItemIconGroup][!UpdateMeterGroup ItemIconGroup][!Redraw]
DockIcon2Run=[!ToggleMeterGroup ItemIconGroup][!UpdateMeterGroup ItemIconGroup][!Redraw]
DockIcon3Run=[!ToggleMeterGroup ItemIconGroup][!UpdateMeterGroup ItemIconGroup][!Redraw]
DockIcon4Run=[!ToggleMeterGroup ItemIconGroup][!UpdateMeterGroup ItemIconGroup][!Redraw]
DockIcon5Run=[!ToggleMeterGroup ItemIconGroup][!UpdateMeterGroup ItemIconGroup][!Redraw]
ItemIcon1Run=[#*DockIcon[#*DockIndex*]ItemIcon1App*]
ItemIcon2Run=[#*DockIcon[#*DockIndex*]ItemIcon2App*]
ItemIcon3Run=[#*DockIcon[#*DockIndex*]ItemIcon3App*]
ItemIcon4Run=[#*DockIcon[#*DockIndex*]ItemIcon4App*]
ItemIcon5Run=[#*DockIcon[#*DockIndex*]ItemIcon5App*]
DockIcon1ItemIcon1App=["C:\Program Files\Google\Chrome\Application\chrome.exe"]
DockIcon1ItemIcon2App=[msedge.exe]
DockIcon3ItemIcon1App=[notepad.exe]
DockIcon4ItemIcon1App=[wmplayer.exe]
DockIcon4ItemIcon2App=[mspaint.exe]
DockIcon4ItemIcon3App=[taskmgr.exe]
DockIcon5ItemIcon1App=["C:\Program Files\Rainmeter\Rainmeter.exe" !Manage]
[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
MouseLeaveAction=[!HideMeterGroup ItemIconGroup][!Redraw]
---Measures---
---Styles---
[sIcon]
W=(#IconSize#)
H=(#IconSize#)
ImagePath=#@#Images\
PreserveAspectRatio=1
ImageTint=#TintedColor#
UpdateDivider=-1
MouseOverAction=[!SetOption #CURRENTSECTION# TransformationMatrix "#ScaleIconLarge#"][!SetOption #CURRENTSECTION# ImageTint "#NoTintColor#"][!UpdateMeter *][!Redraw][#[#CURRENTSECTION]Set]
MouseLeaveAction=[!SetOption #CURRENTSECTION# TransformationMatrix "#ScaleIconPlain#"][!SetOption #CURRENTSECTION# ImageTint "#TintedColor#"][!UpdateMeter *][!Redraw]
LeftMouseDownAction=[!SetOption #CURRENTSECTION# TransformationMatrix "#ScaleIconSmall#"][!UpdateMeter *][!Redraw]
LeftMouseUpAction=[!SetOption #CURRENTSECTION# TransformationMatrix "#ScaleIconLarge#"][!UpdateMeter *][!Redraw][#[#CURRENTSECTION]Run]
DynamicVariables=1
[sDockIcon]
Group=DockIconGroup
X=(#Indent#)R
Y=(0)r
ImageName=#CURRENTSECTION#.png
[sItemIcon]
Group=ItemIconGroup
Hidden=1
X=(0)r
Y=(#Indent#)R
ImageName=DockIcon#DockIndex##CURRENTSECTION#.png
---Meters---
[DockBackground]
Meter=Image
W=((#IconSize#+#Indent#)*#DockCount#+#Indent#)
H=((#IconSize#+#Indent#)*1+#Indent#)
SolidColor=#DockBackColor#
UpdateDivider=-1
MouseLeaveAction=[!SetOptionGroup DockIconGroup TransformationMatrix "#ScaleIconPlain#"][!UpdateMeterGroup *][!Redraw]
DynamicVariables=1
[DockIcon1]
Meter=Image
MeterStyle=sIcon | sDockIcon
X=(#Indent#)r
Y=(#Indent#)r
[DockIcon2]
Meter=Image
MeterStyle=sIcon | sDockIcon
[DockIcon3]
Meter=Image
MeterStyle=sIcon | sDockIcon
[DockIcon4]
Meter=Image
MeterStyle=sIcon | sDockIcon
[DockIcon5]
Meter=Image
MeterStyle=sIcon | sDockIcon
[ItemBackground]
Group=ItemIconGroup
Hidden=1
Meter=Image
X=((#IconSize#+#Indent#)*(#DockIndex#-1))
Y=(#Indent#)R
W=((#IconSize#+#Indent#)*1+#Indent#)
H=((#IconSize#+#Indent#)*[#ItemCount[#DockIndex]]+#Indent#*Sgn([#ItemCount[#DockIndex]]))
SolidColor=#ItemBackColor#
UpdateDivider=-1
MouseLeaveAction=[!SetOptionGroup ItemIconGroup TransformationMatrix "#ScaleIconPlain#"][!UpdateMeterGroup *][!Redraw]
DynamicVariables=1
[ItemIcon1]
Meter=Image
MeterStyle=sIcon | sItemIcon
X=(#Indent#)r
Y=(#Indent#)r
[ItemIcon2]
Meter=Image
MeterStyle=sIcon | sItemIcon
[ItemIcon3]
Meter=Image
MeterStyle=sIcon | sItemIcon
[ItemIcon4]
Meter=Image
MeterStyle=sIcon | sItemIcon
[ItemIcon5]
Meter=Image
MeterStyle=sIcon | sItemIcon
![Big Grin :D](./images/smilies/ag.gif)
P.S. Other types of collapsibles, unrelated necessarily to icons, here.