Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add files via upload #3

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added Drag&Drop.dll
Binary file not shown.
Binary file added EXpandExplore_.rmskin
Binary file not shown.
Binary file modified EXpandable.ini
Binary file not shown.
15 changes: 8 additions & 7 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# EXpandable Folder
Skin for [Rainmeter](https://www.rainmeter.net/)
- Thumbnail picture of image files
- Drag and Drop capabilities
- Navigation through child and parent folders
- File and folder Context Menu
- No need to specifies path in variables.inc file

Demo: https://youtu.be/WEQzOHPr5ho
Third party program and plugin are needed to be installed:

Grab latest version from [Releases tab](https://github.com/juh9870/EXpandableFolder/releases/latest)
## Configuration
Edit `@Resources/variables.inc`

`Path` variable must be specified before usage, all other options are cosmetic.
-ImageMagick program (magick.exe)

-Drag&Drop plugin (Drag&Drop.dll)
5 changes: 5 additions & 0 deletions Readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Hi. Excellent work and idea here, thank youjuh9870. I just molded your code and now it has Drag&Drop capabilities and the ability to go back to previous folder with middle mouse action in directory icon or forward to show child folders. It means that you can go from c:\ to any child folder with left mouse action and return to its parents directories all the way back to c:\ or even to "My Computer" again. You can still use right mouse action to open folder in explorer window or left mouse action to execute a file or program. Now it also shows thumbnail pictures tiles for image files and not its program icon. there is no need now for the user to specifies a path in variables.inc
A little problem though, there is a bug especially when changing disks when you go back to "My Computer" root directory and pick other disk, but once you go back to %USERPROFILE%, it then behaves normally. It started to happen when I integrated back and forward functionality and only few times when you go all the way back to "My Computer" or going to windows directory. It doesn't happen all the time, just once on a while. At one point or another it will either not show all items in the folder, show too many, or create incrementally more icons than needed.
It might be the follow path approach or something from the Lua scripts, I'm not sure.

You need to install ImageMagick https://imagemagick.org/
129 changes: 129 additions & 0 deletions tiles.inc.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
[Variables]
//
; INDEX_%%={((%%+1)+Clamp(((%%+1)-#Root_Position#),0,1))-1+#Index_Offset#}
TILE_%%_X_O={(#PX#+#Tiles_Step_X#*( (((%%+1)+Clamp(((%%+1)-#Root_Position#),0,1))-1+#Index_Offset#) % #Tiles_Len#))}
TILE_%%_Y_O={(#PY#+#Tiles_Step_Y#*Floor( (((%%+1)+Clamp(((%%+1)-#Root_Position#),0,1))-1+#Index_Offset#) / #Tiles_Len#))}
TILE_%%_X=({#TILE_F_X#}+(#TILE_%%_X_O#-{#TILE_F_X#})*[MeasureTimerCalc:])
TILE_%%_Y=({#TILE_F_Y#}+(#TILE_%%_Y_O#-{#TILE_F_Y#})*[MeasureTimerCalc:])
TILE_%%_SELECTION=0//
TILE_F_SELECTION=0
Update_Tiles=//[!UpdateMeter "MeterTile%%"][!UpdateMeter "MeterTileIcon%%"][!UpdateMeter "MeterTileText%%"][!UpdateMeter "MeterTileSelection%%"][!UpdateMeter "MeterTileHitbox%%"]//
Update=[!UpdateMeasure "MeasureSlide"][!UpdateMeasure "MeasureTimerCalc"][!UpdateMeter "MeterHitbox"]#Update_Tiles#[!Redraw]
FullyOppened=//[!UpdateMeter "MeterTileHitbox%%"]//[!Redraw]
ClosingStart=//[!UpdateMeter "MeterTileHitbox%%"]//[!Redraw]
//
TILE_F_X_O={#TILE_F_X#}
TILE_F_Y_O={#TILE_F_Y#}

[MeasureFilePath%%]
Measure=Plugin
Plugin=FileView
Path=[MeasureFolder]
Index={%%+1}
Type=FilePath

[MeasureFileType%%]
Measure=Plugin
Plugin=FileView
Path=[MeasureFolder]
Index={%%+1}
Type=FileType
IfMatch=(?i)^(?:png|jpg|jpeg|bmp|gif|tif|webP|ico)$
; --- Rainmeter ---
; IfMatchAction=[!SetOption MeterTileIcon%% MeasureName "MeasureFilePath%%"]
; IfNotMatchAction=[!SetOption MeterTileIcon%% MeasureName "MeasureFileIcon%%"]
; --- Magick Meter ---
; IfMatchAction=[!SetOption MeasureFileMagM%% Image "File [MeasureFilePath%%] | Resize 48,48"][!SetOption MeterTileIcon%% MeasureName "MeasureFileMagM%%"]
; IfNotMatchAction=[!SetOption MeasureFileMagM%% Image ""][!SetOption MeterTileIcon%% MeasureName "MeasureFileIcon%%"]
--- Magick Run ---
IfMatchAction=[!CommandMeasure MeasureFileMagR%% "Run"]

[MeasureFileIcon%%]
Measure=Plugin
Plugin=FileView
Path=[MeasureFolder]
Index={%%+1}
Type=Icon
IconSize=Large
; --- Rainmeter ---
; (nothing)
; --- Magick Meter ---
; (nothing)
--- Magick Run ---
OnChangeAction=[!SetOption MeterTileIcon%% MeasureName "MeasureFileIcon%%"]

; --- Rainmeter ---
; (nothing)
; --- Magick Meter ---
; [MeasureFileMagM%%]
; Measure=Plugin
; Plugin=MagickMeter.dll
--- Magick Run ---
[MeasureFileMagR%%]
Measure=Plugin
Plugin=RunCommand
Program=C:\Program Files\ImageMagick-7.1.0-Q16-HDRI\magick.exe
Parameter="[MeasureFilePath%%]" -resize 48x48 #CURRENTPATH#icon{%%+1}.ico
State=Hide
DynamicVariables=1

[MeasureFileName%%]
Measure=Plugin
Plugin=FileView
Path=[MeasureFolder]
Index={%%+1}
Type=FileName
OnChangeAction=[!SetOption MeterTileText%% Text [MeasureFileName%%]]

[MeterTile%%]
Meter=Shape
Shape=Rectangle #TILE_%%_X#,#TILE_%%_Y#,{#Tile_Width#},{#Tile_Height#} | Fill Color 0,0,0,(255*[MeasureTimerCalc:]) | Stroke Color 0, 0, 0, (255*[MeasureTimerCalc:])
DynamicVariables=1

[MeterTileHitbox%%]
Meter=Shape
Shape=Rectangle #TILE_%%_X_O#,#TILE_%%_Y_O#,{#Tile_Width#},{#Tile_Height#} | Fill Color 0,0,0,1 | Stroke Color 0, 0, 0, 1
Hidden=(Clamp(Floor(1-[MeasureTimerCalc:]*2),0,1))
DynamicVariables=1

[MeterTileSelection%%]
Meter=Shape
Shape=Rectangle (#TILE_%%_X#+(#Tile_Width#-#Tiles_Selection_Width#)/2),#TILE_%%_Y#,(#Tiles_Selection_Width#),(#Tiles_Text_OY#+[MeterTileText%%:H]) | Fill Color #Hover_Selection_Color#,(#Hover_Selection_Opacity#*#TILE_%%_SELECTION#*[MeasureTimerCalc:]) | Stroke Color #Hover_Selection_Color#, (#Hover_Selection_Border_Opacity#*#TILE_%%_SELECTION#*[MeasureTimerCalc:])
DynamicVariables=1
Hidden=(Floor(1-[MeasureTimerCalc:]))
Group=SelectionGroup
MouseOverAction=[!SetVariable TILE_%%_SELECTION 1][!UpdateMeter "MeterTileSelection%%"][!Redraw]
MouseLeaveAction=[!SetVariable TILE_%%_SELECTION 0][!UpdateMeter "MeterTileSelection%%"][!Redraw]
LeftMouseUpAction=["[MeasureFilePath%%]"]
MiddleMouseUpAction=[!CommandMeasure "MeasureFilePath%%" "FollowPath"][!WriteKeyValue "Variables" "Path" "[MeasureFolderPath]" "#@#Variables.inc"][!Refresh]#Update#
RightMouseUpAction=[!CommandMeasure MeasureFilePath%% "ContextMenu"]

[MeterTileIcon%%]
Meter=Image
MeasureName=MeasureFileIcon%%
X=(#TILE_%%_X#+#Tiles_Icon_OX#)
Y=(#TILE_%%_Y#+#Tiles_Icon_OY#)
W=#Tiles_Icon_Size#
H=#Tiles_Icon_Size#
Container=MeterTile%%
DynamicVariables=1
PreserveAspectRatio=1

[MeterTileText%%]
Meter=String
Text=[MeasureFileName%%]
X=(#TILE_%%_X#+#Tiles_Text_OX#)
Y=(#TILE_%%_Y#+#Tiles_Text_OY#)
ClipStringW=#Tiles_Text_Width#
ClipStringH=#Tiles_Text_Height#
FontColor=255,255,255,255
StringAlign=CenterTop
ClipString=2
FontSize=9.5
AntiAlias=0
; FontFace=Segoe UI
StringEffect=Shadow
FontEffectColor=0,0,0,255
Container=MeterTile%%
DynamicVariables=1
//