xPopup Docs Version 1.3
Latest released xPopup Version 1.3

Global Settings:
Global Settings - Customized (Sub)PopupMenus - Special Quicklauch Mode
General PopupMenu Settings

Popup BG Setup:
OverlayPopup Setup - Popup Background Settings

Entry State Settings:
OverlayEntry Setup
Title/Bottom Background Settings
Entry Background Settings - Entry Icon Settings - Entry Font Settings

Bangs And Events :
Bangs - Events

Dynamic xPopup Content:
Dynamic Evars - Dynamic Popup Loading

*Popup SubFolder Configuration

Exported Variables
Special Folders
Info Entry(xLabel)
Module Hooking
Special Features
Contact

Global Settings

xPopupCachelevel INT
The INT value specifies the level of the subfolder caching.
0: Nothing (Default)
1: *Popup "Folder" !Popup... Folders are cached
2: SubFolders of 1 are cached
...
TasksFolders aren't precached!
Positive: You will never have to wait for the first creation.
Negative: More Resources are used.

xPopupNoLoadingPopup BOOL
Disables the Loading Popups.

You can now set your specific MultiMonitor Settings and override the internals!

xPopupScreenX INT
"Minimum x-Coordinate based on your MultiMonitor Layout"

xPopupScreenY INT
"Minimum y-Coordinate based on your MultiMonitor Layout"

xPopupScreenWidth INT
"Virtual ScreenWidth (all Monitors together)"

xPopupScreenHeight INT
"Virtual ScreenHeight (all Monitors together)"

Short Default Settings:

xpopupusesolidcolors
xpopupuseentrysolidcolors
xpopupentryfontleftborder 20
xpopuptopborder 20

With these 5 Settings you have a simple, but useable xPopup to start with.

Customized (Sub)PopupMenus

TopLevel Customization

One major addition to the Default *Popup PopupMenu definitions is the ability to setup different PopupStyles (Settings) for each defined PopupMenu!
Currently you define a new PopupMenu with the following:

*Popup "Caption/Title" !New !PopupBang

This makes PopupMenu based on xPopup... Settings

xPopupEntryImage entry.png
...

Now you can add another Option to make PopupMenu's which are based on QuickPopup... Settings for instance.

QuickPopupEntryImage entry.png
...

Example:

*Popup "Caption/Title" !New !PopupBang quickpopup

The default for (PopupName)AddToGroup is "xPopup".

(PopupName)AddToGroup "xPopup"

If you want a totally different PopupLayout then set

(PopupName)AddToGroup ""

You need to setup the whole Popup with the new prefix (all settings starting with "xPopup", if you set (PopupName)AddToGroup ""!

Not so hard to understand, or? As always the LS-Universe.info Forum is open for questions :)

Global SubFolder Customization

Global Custom SubMenu Setup (ALL Submenus of EVERY Popup (with matching settingsprefix "xPopup") get that SubmenuLayout!)
*(PopupName)CustomSubFolder PREFIX
The first lines specifies the first subfolder level
The second line lines specifies the second subfolder level
...

The default is always the direct Parent Popup. If you want another DefaultGroup then use the AddToGroup setting with the correct PREFIX!

Specific SubFolder Customization

That means, that you can use a different setup for specific (manually defined) subfolders.
Supported Folder Definitions:

Folder (with ~Folder)
!PopupDynamicFolder:...
!PopupFolder:...
!PopupActionFolder:...
!PopupDynamicActionFolder:...
... Everything that makes a subfolder

Those entries support now %%PREFIX%DEFAULTFORPREFIX%% as a very last setting (both parts are optional)

*Popup "Folder" !PopupFolder:"c:\Litestep" %%mylayout%mylayoutdefault%%
*Popup "Folder" !PopupFolder:"c:\Litestep" %%mylayout%%
*Popup "Folder" !PopupFolder:"c:\Litestep"

First (after %%) is the Layout, second (after %) the Default for that Layout. At the end a %% to close the setup.

Special Quicklauch Mode

Overview

The Quicklaunch Mode is very simple, because there are better modules for that purpose!
You can only use a PopupMenu with the following mentioned lines for the "Quicklaunch Mode":

*Popup "Quicklaunch" !new !popupquicklaunch quicklaunch
   *Popup "!insertFolder:$quicklaunch$"

   *Popup "q1" "!PopupDynamicFolder:$quicklaunch$"
   *Popup "q2" "!PopupFolder:$quicklaunch$"
   *Popup "Folder" folder
      *Popup "Normal" !alert "my quicklaunch"

   *Popup ~folder
   *Popup "Normal Entry" !alert "my quicklaunch entry"
*popup ~new

A short explanation of the lines:
Just the start of a new Popup, important is quicklaunch (or any other name you want) at the end. Since your Quicklaunch menu shall probably have another look as your normal xPopup Popupmenus.

*Popup "Quicklaunch" !new !popupquicklaunch quicklaunch

One more multiple lines of the above kind, like in normal PopupMenus!

The end of the PopupMenu.

*popup ~new

Now the needed (my opinion) settings for a very basic Horizontal Quicklaunch Menu:

quicklaunchAddToGroup ""
quicklaunchQuicklaunchMode ".horizontal"
quicklaunchQuicklaunchItemSize 32
quicklaunchEntryUseBigIcon
quicklaunchEntryIconSize 32
quicklaunchxSpacing 4
quicklaunchySpacing 4
quicklaunchLeftBorder 4
quicklaunchRightBorder 4
quicklaunchTopBorder 4
quicklaunchBottomBorder 4
quicklaunchUseSolidColors
quicklaunchSolidColors c0c0c0 000000
quicklaunchSolidBevelSize 1

The Colors, Images, Icon Settings, Spacings, ... can naturally be adapted to your personal taste ;)
Hope this short explanations are enough to show you how to make use of the "QuicklaunchMode" ;)

Settings

QuicklaunchMode ".horizontal", ".vertical" or ".none"
If set to ".horizontal", the Popup gets a horizontal ICON only Layout with Tooltips.
If set to ".vertical", the Popup gets a vertical ICON only Layout with Tooltips.
Icon Direction is always left->right / top->bottom and cannot be changed.
WrapDirection is always right / bottom and cannot be changed.
Default is naturally ".none"!

QuicklaunchItemSize INT
Defines the Square Size of one QuicklaunchItem, Default is 32 -> 32x32

QuicklaunchOpenTo ".right", ".left" in Horizontal or ".top", ".bottom" in Vertical Mode
Defines the Direction to which the Quicklaunch show open SubFolders, Default is ".top", ".right"!

QuicklaunchWrapCount INT
Defines the Count of Items till a Wrap is performed, Default is unlimited (100).

General PopupMenu Settings

Key:
* PlaceHolder, must be replaced with the xPopup Configname. Default is "xPopup".
INT = Integer or whole number
BOOL = Boolean Value (true or false)
COLOR = Color in Hex (FFFFFF = White, 000000 = Black, ...)
ACTION = Bang Commands, Applications, all Litestep can execute.

TooltipMode ".none", ".defined" or ".all"
If set, the PopupEntries have Tooltips, either use ".all" for all entries, or ".defined" for only those which are explict defined (recommended). Linebreak is possible with "\n"
You assign a tooltip to an entry, by adding it after a "|" in the caption:

*popup "Trashcan|Click here to open Trashcan!" explorer.exe $bitbucket$

BalloonTooltip [TITLE(string)] [ICON(int)]
Gives you a big BalloonTooltip with optional Info/Warning/Error Icon with Bold Title and "Normal" Tooltip Info.
You can use:

xPopupBalloonTooltip --> BallonTooltip without Title and Icon
xPopupBalloonTooltip true --> BallonTooltip without Title and Icon
xPopupBalloonTooltip "Info:" 1 --> BallonTooltip with Title "Info:" and Info Icon
xPopupBalloonTooltip "Entry Info:" --> BallonTooltip with Title "Entry Info:" and No Icon
xPopupBalloonTooltip "Entry Info:" 0 --> BallonTooltip with Title "Entry Info:" and No Icon
...

TITLE is a plain title text.
ICON is an INT value:

0 = No Icon
1 = Info Icon
2 = Warning Icon
3 = Error Icon

TooltipDurations INT INT
The first INT value specifies in ms, how long the mouse must remain stationary within an entry for the tooltip to show up.
The second INT value specifies in ms, how long the toolwindow is shown. ( Minimum: 1000(ms) )

TooltipColor COLOR
Color of the Tooltip and BalloonTooltip background.

TooltipTextColor COLOR
Color of the the Tooltip and BalloonTooltip Text.

AutoHide BOOL
If set, the Popup hides as soon as the HideDelay Timer checks and the cursor doesn't hover over a Popup! You might need bigger values for "xPopupHideDelay", if you really want to use this feature.

HideDelay INT
Popuphide Delay (Checking Interval), if PopupMenu must be hidden.
Default is 250(ms), if this is too long for someone, set this maybe to 100.

FolderOpenDelay INT
FolderOpen Delay, specifies how long must the mouse be over the Folderentry till the SubFolder is opened.
Default is 1(ms)

MultiPartScrollDelay INT
If you hover over the TopBorder or BottomBorder of a MultiPart PopupMenu the different parts "scroll" (better said switch) after the specified Delay. Default Delay is 2000ms.

TasksUpdateInterval INT
UpdateInterval for Pinned TasksPopup or Dynamic Content Menus.
Default is 5000(ms)

AddToGroup POPUPGROUP
By default ALL Popups are in the "xPopup" Group, so most of the time you don't need to add this setting!
If you have another xPopupCfg with the Prefix "work" it looks exactly like the "xPopup" PopupMenu as long as you don't add other specific settings for your "Work" Cfg.

AutoMenuBreak BOOL
If set, the PopupMenu automatically makes a new Column instead of the MultiPart implementation.

MaxEntryWidth INT
Sets the maximum horizontal size of a single PopupMenu Entry. This must be an absolute value.

MinEntryWidth INT
Sets the minimum horizontal size of a single PopupMenu Entry. This must be an absolute value.

MinWidth INT
Sets the minimum horizontal size of the Popup. This must be an absolute value.

MinHeight INT
Sets the minimum vertical size of the Popup. This must be an absolute value. Default is bigger one of "TopBorder+BottomBorder" or "ImageTopEdge+ImageBottomEdge".

MaxWidth INT
Sets the maximum horizontal size of the Popup. This must be an absolute value.

MaxHeight INT
Sets the maximum vertical size of the Popup. This must be an absolute value.

WorkArea LEFT RIGHT TOP BOTTOM
Can be used to set a Custom WorkArea for the SnapFeature, all Coordinate Helpers work ('-', '~', 'c')
Default is the Normal Desktop as before.

RestrictToWorkArea BOOL
If set, the Popup is shown only inside the WorkArea (see above) and cannot be moved, sized or repositioned outside!

OpenToLeft BOOL
If set, all Folders open by Default to the Left instead of to the Right.

PinnedPopupNotOnTop BOOL
If this command is present, then the Pinned Popup's won't be AlwaysOnTop.

ManualUnPin BOOL
Default TRUE, if set to FALSE, you cannot close PopupMenus with LeftDoubleClick,....
Means, you cannot remove Pinned Popups, without calling it again or use !(PopupName)Unpin.

EnableDragnDrop BOOL
Simple Explorer-Style Drag'n'Drop Support inside xPopups :)
You can Drag'n'Drop Files and Folders inside xPopups.
(Only single plain existing Files and Folders and no joined folders or such which use *.mp3!!)
They are moved! to their new position like in Explorer Startmenu.

Usage:
Choose a File or a complete Folder, press the LeftButton DOWN, HOLD it down and navigate to the Popup/Folder/... to which you want to move it. As long as you hold the button pressed you can do whatever you want, you can even use a totally different (pinned) xPopup.
If you're over the desired (Sub)Folder! release the button.
Done.

If the Source was a valid File/Folder and the Destination was a valid Folder, the File(s) are moved after a confirmation.
(Since this "Moves Real Files" on your HardDisk you should check it!).

Moveable BOOL
Default TRUE, if set to FALSE, you cannot move PopupMenus with TopBorder or BottomBorder.

PinOnMove BOOL
Default TRUE, if set to FALSE, SubFolders, which are Dragged away from their Parent aren't automatically Pinned.

Shadeable BOOL
Default TRUE, if set to FALSE, you cannot shade PopupMenus with RightClick on TopBorder.

DropShadow BOOL
If this command is present then the Popup will have the "DropShadow" invented with WinXP.
Caution: This works only under WinXP!

AlphaMap BOOL
If this command is present then the Popup uses a given AlphaChannel in the PNG images for painting per-pixel alphatransparency.
Caution:
This won't work on WinME or Win9x!
Using AlphaMap doesn't support:
!Hook (does not hook other modules!)

AlphaTransparency INT
The command makes the Popup really alphatransparent (eg. you will see the background or a window shine through).
Caution:
This won't work on WinME or Win9x!
Valid values are 0-255, where 0 is totally transparent and 255 is opaque.
Default is 255.

AlphaFade ".mainpopups", ".allpopups" or BOOL
If this command is present then the Popup will be fade in/out on Show/Hide.
TRUE or ".allpopups" would fade all Popups.
".mainpopups" would only fade the TopLevel Popup
Caution:
This won't work on WinME or Win9x!

CustomAlphaFade (stepsize) (delay)
If this command is present then the Popup will be fade in/out on Show/Hide with the given settings.
Caution:
This won't work on WinME or Win9x!

AutoSeparator BOOL or INT
Show a automatically added !Separator in !PopupDynamicFolder, !PopupFolder, ... Entry's.
o "0" or "false":
No AutoSeparator Feature. Default!
o "1" or "true":
AutoSeparator between Folders and Files in !popup(Dynamic)Folder (and subfolders)
o "2" :
AutoSeparator between Title and Folders/Files and
AutoSeparator between Folders and Files in !popup(Dynamic)Folder (and subfolders)
o "3" :
AutoSeparator between Title and Folders/Files and
AutoSeparator between Folders and Files in !popup(Dynamic)Folder (and subfolders) and
AutoSeparator at the end of a Popup.

OverlapX INT
Determines how much a sub-menu will overlap its parent menu in horizontal direction.
If no value is provided then the default is 0.

OverlapY INT
Determines how much a sub-menu will overlap its parent menu in vertical direction.
If no value is provided then the default is "-TOPBORDER".

EntryHeight INT
This will set the Height of each Popup Entry (Entry and ActiveEntry).
If no value is provided then the default is the Height of the used Image.
If SolidColors are used the default is 20.

FolderHeight INT
This will set the Height of each Popup Entry (Folder and ActiveFolder).
If no value is provided then the default is the Height of the used Image.
If SolidColors are used the default is "EntryHeight".

InfoHeight INT
This will set the Height of each !Info Entry.
If no value is provided then the default is "EntryHeight".

SeparatorHeight INT
This will set the Height of each Separator Entry.
If no value is provided then the default is the Height of the used Image.
If SolidColors are used the default is 2.

EntryShowText BOOL
ActiveEntryShowText BOOL
FolderShowText BOOL
ActiveFolderShowText BOOL
Show Text in Popup Entrys, optional per State setup. Default is TRUE.

EntryShowIcon BOOL
ActiveEntryShowIcon BOOL
FolderShowIcon BOOL
ActiveFolderShowIcon BOOL
Show Icons in Popup Entrys, optional per State setup. Default is TRUE.

EntryUseBigIcon BOOL
ActiveEntryUseBigIcon BOOL
FolderUseBigIcon BOOL
ActiveFolderUseBigIcon BOOL
Use 32x32 Icons in Popup Entrys instead of the 16x16 Icons, optional per State setup. Default is FALSE.

DefaultIcon ICON
Use this Icon in Popup Entrys, if no Icon is found.

FolderIcon ICON
Use this Icon in Popup Folder Entrys, which havn't set a custom (.icon=) Icon.

ShowExtensions BOOL or "ExclusionList"
Shows Extension of Popup Entrys. If the ExclusionList is set, the specified Extensions will never be shown, all others will be displayed!
ExclusionList Syntax:
".lnk|.bat|.pif"

ShowCaption ".none", ".top" and ".bottom"
Shows Title/Caption either at TOP or BOTTOM or none at all.

FolderOpenOnClick BOOL
If set, SubFolders open only on definite "Click" no longer on "Hover".

CloseAfterAction BOOL
Default is TRUE, same behaviour as before!
If set to FALSE, Popups stay open after clicking an Entry to allow multiple actions at once without Pinning or the need to open the Popup again.
If you Press CTRL during the Click you can change the Default temporary to the opposite!
So, if you want quickly open 3 programs in a PopupFolder simply Press CTRL during the Clicks and the popup stays open.
If you have set xPopupCloseAfterAction FALSE and want the Popup to close after the Click Press CTRL as above.

TopBorder INT
Sets the number of pixels on the top edge to reserve as a border to Popup Entrys. If no value is provided then the default is 0.
Attention:
This is also used for the "Title" (if "ShowCaption" is set to ".top") and for Moving! If you want to move the Popup or want a "Top"Title, you should set your "TitleHeight" here.

BottomBorder INT
Sets the number of pixels on the bottom edge to reserve as a border to Popup Entrys. If no value is provided then the default is 0.
Attention:
This is also used for the "Title" (if "ShowCaption" is set to ".bottom") and for Moving! If you want to move the Popup or want a "Bottom", you should set your "BottomHeight" here.

LeftBorder INT
Sets the number of pixels on the left edge to reserve as a border to Popup Entrys.
If no value is provided then the default is 0.

RightBorder INT
Sets the number of pixels on the right edge to reserve as a border to Popup Entrys.
If no value is provided then the default is 0.

XSpacing INT
X Space between Popup Entrys, after a "Menubreak".
If no value is provided then the default is 0.

YSpacing INT
Y Space between Popup Entrys.
If no value is provided then the default is 0.

SeparatorySpacing INT
You can specify a different ySpacing between Entrys and Separators, with this setting.
The minimum value is -xPopupySpacing, so you can "remove" the spacing.
The SeparatorySpacing is always ADDED to the ySpacing!
The default is 0 (same space as between every other entry).

OverlayPopup Setup

Overview

First of all, a "OverlayPopup" isn't a normal Popup, it's only a plain "Image Overlay"!
You can use OverlayPopups for AlphaMap Overlays, Texture Overlays, Colorizing, ...
You can combine as many OverlayPopups as you want, they can overlap each other, ...

How To Create A New OverlayPopup

*(PopupName)OverlayPopup x y width height "SettingsPrefix" #a (0-255)

x, y, width and height
All position and sizing options of the normal xPopup is available to setup the position and size of the OverlayPopup.
For a complete and automatically adapted Overlay use for instance:

*xPopupOverlayPopup 0 0 100% 100% ghost #

or for a 20 Pixel Border on the right side without Overlay:

*xPopupOverlayPopup 0 0 -20 100% ghost #

...

"SettingsPrefix"
For all OverlayPopup settings you need the "SettingsPrefix", which works exactly like the "xPopup Name" for normal xPopups!
Syntax:

*xPopupOverlayPopup 10 10 24 24 ghost #

The correct Syntax for the OverlayPopup settings are now:

GhostImage "ghost.png"
GhostSaturationIntensity 75
...

Flags
The "a" after the # specifies that THE OVERLAY! uses an AlphaMap Image!

Last Value
The last Value specifies the overall Alpha Value for the Overlay!

Supported Settings For An OverlayPopup

All SolidColors or Image Settings are valid to setup your OverlayPopup Overlay!

SettingsPrefixImage
...

SettingsPrefixSolidColors
...

Simply look in the following Section of the ReadMe.

Popup Background Settings

General Setup

BorderMethod ".none", "raised", "etched", "sunken", "bump"
Draws a rectangular border with the specified style around the Popup. Best for SolidColors, and only for rectangular BG Images.

Normal Images Setup

Image IMAGE
Sets the name of the continuous Popup BG Image. This file must be in BMP or PNG format format.
If no value is provided then the Popup is displayed True Transparent.

ImageMode "stretch", "tile", "tile-horizontal", "tile-vertical"
Sets the method used to scale the continuous Popup BG Image.
If no value is provided then the default is "stretch".

ImageLeftEdge INT
Sets the number of pixels on the left edge of the continuous Popup BG Image that will not be stretched or tiled.
If no value is provided then the default is 0.

ImageRightEdge INT
Sets the number of pixels on the right edge of the continuous Popup BG Image that will not be stretched or tiled.
If no value is provided then the default is 0.

ImageTopEdge INT
Sets the number of pixels on the top edge of the continuous Popup BG Image that will not be stretched or tiled.
If no value is provided then the default is "xPopupTopBorder".

ImageBottomEdge INT
Sets the number of pixels on the bottom edge of the continuous Popup BG Image that will not be stretched or tiled.
If no value is provided then the default is "xPopupBottomBorder".

HueColor COLOR
This command specifies the blended in color.
You cannot use Grayscale Colors, like FFFFFF, c0c0c0, 888888, 000000, ...., because they don't have a color!
If no value is provided then the default is "FFFFFF".

HueIntensity INT
This command specifies the color of the pixel or the blended in color if HueIntensity is smaller then 100. (ONLY THE MAIN POPUP BG).
Minimum: 0 -> Nothing (Default)
Maximum: 100

MixColor COLOR
This command specifies the mixed in color.
Same as the former HueColor!
If no value is provided then the default is "FFFFFF".

MixIntensity INT
This command specifies the amount of the mixed in color. (ONLY THE MAIN POPUP BG).
Same as the former HueIntensity (with maximum 100 instead of 255)!
Minimum: 0 -> Nothing (Default)
Maximum: 100

LuminanceIntensity INT
This command specifies the luminance of the Popup image (ONLY THE MAIN POPUP BG).
Minimum: -100 -> Black
Maximum: 100 -> White
Default: 0

SaturationIntensity INT
This command specifies the color saturation of the Popup. (ONLY THE MAIN POPUP BG).
Minimum: 0 -> Grayscale
Maximum: 100 -> Full Colored (Default)

Values between 101-200 override the original Saturation of the Pixel!
This way you can colorize Grayscale Images.

Solid Image Setup

Attention: Only valid, if "UseSolidColors" is set!

UseSolidColors BOOL
If set, the SolidColor Settings are enabled.

SolidColors (bgcolor) [(lightbevelcolor)] [(darkbevelcolor)]
Sets the colors of the Popup BG, first the BGColor, then optional Light and Dark BevelColors

SolidBevelSize LEFT RIGHT TOP BOTTOM or (LEFT/RIGHT) (TOP/BOTTOM) or (LEFT/RIGHT/TOP/BOTTOM)
Accepts 4, 2 or 1 INT Value(s), which define the size of the different bevel sides.
Sets the size of the painted Bevels in pixels.

!xPopupSolidBevelSize 1 sets all borders to 1px
!xPopupSolidBevelSize 1 0 sets left/right borders to 1px and top/bottom borders to 0px
!xPopupSolidBevelSize 1 0 2 1 sets left/right/top/bottom border to the defined values

If no value is provided then the default is 0.

SolidGradientColors (color) [(color)] [(color)] ...
If defined, a Gradient is Painted with the BackgroundColor and the specified Gradient Colors.
(NO GRADIENT PAINTED ON BORDER!).

SolidGradientType TYPE
TYPE can be:
".none" (Default: Oldstyle with (possible) multiple Gradient Colors)
".horizontal";
".vertical"
".radial"
".diagonal"
".fdiagonal"
".bdiagonal2
RESTRICTION: ONLY A TWO COLOR GRADIENT IS POSSIBLE!

SolidTransformationType TYPE
TYPE can be:
".none" (Default)
".caricature"
".fisheye"
".swirled"
".cylinder"
".shift"
RESTRICTION: ONLY VALID WITH SolidGradientType <> ".none"!

SolidGradientVertical BOOL
If set, the Gradient is painted vertical instead of horizontal.

SolidGradientRepeated INT
The Gradient colors are repeated in an endless loop over the whole xPopup size.
INT specifies how big (in pixels) each plain color of the gradient shall be.

OverlayEntry Setup

Overview

First of all, a "OverlayEntry" isn't a normal PopupEntry, it's only a plain "Image Overlay" over the existing ones!
You can use OverlayEntrys for AlphaMap Overlays, Texture Overlays, Colorizing, ...
You can combine as many OverlayEntrys as you want, they can overlap each other, ...

How To Create A New OverlayEntry

*(PopupName)OverlayEntry x y width height "SettingsPrefix" #a

x, y, width and height
All position and sizing options of the normal xPopupEntries are available to setup the position and size of the OverlayEntry.
The Overlay is always relative to the current EntrySize, so most of the time you will probably use "100%" for width and height!
For a complete and automatically adapted Overlay use for instance:

*xPopupOverlayEntry 0 0 100% 100% OverlayEntry #

or for a 20 Pixel Border on the right side without Overlay:

*xPopupOverlayEntry 0 0 -20 100% OverlayEntry #

This would display an OverlayEntry which is 6 pixel bigger then the normal entry ("Glow Effect")

*xPopupOverlayEntry ~6 ~6 100%+12 100%+12 testoverlay #a

...

SettingsPrefix
For all OverlayEntry settings you need the "SettingsPrefix", which works exactly like the "xPopup Name" for normal xPopups!
Attention: If you don't set a specific State Overlay, the Overlay of this state is not the Default!, so you can for instance apply an Overlay only for the Active State.
Syntax:

*xPopupOverlayEntry 10 10 24 24 OverlayEntry #

The correct Syntax for the OverlayEntry settings are now:

OverlayEntryEntryImage "ghost_n.png"

OverlayEntryActiveEntryImage "ghost_a.png"
...

Flags
The "a" after the # specifies that THE OVERLAY! uses an AlphaMap Image!

Supported Settings For An OverlayEntry

All SolidColors or Image Settings are valid to setup your OverlayEntry Overlay!

SettingsPrefixEntryImage
...

SettingsPrefixEntrySolidColors
...

Simply look in the following Section(s) of the ReadMe.

Optional Title/Bottom Images Setup

You define the TitleHeight with "xPopupTopBorder" and the BottomHeight with "xPopupBottomBorder"!

General Setup

("Title"/"Bottom")TrueTransparent BOOL
If set "Magic Pink" in IMAGES will be considered as TRUE TRANSPARENT
-> You see the the "Desktop", instead of the MainPopupBG (if used!)

So you can make better mixtures between Real Transparency and MainPopupBG. Till now, only "Magic Pink" in MainPopupBG was Real Transparent all others usages only showed the MainPopupBG (if used!).

xPopup("Title"/"Bottom")TrueTransparent has with ALPHAMAP ENABLED, a different function as with normal images!
If set, the EntryImageAlphaMap REPLACES the MainPopup BG and it's AlphaMap completely.
If not set (Default), the EntryImageAlphaMap IS PAINTED WITH THEIR AlphaMap ONTO the MainPopup BG.

This is a quite important difference, as some people already have discovered, so check out which method is better to achieve your goals.

("Title"/"Bottom")BorderMethod ".none", "raised", "etched", "sunken", "bump"
Draws a rectangular border with the specified style around the specified EntryType. Best for SolidColors, and only for rectangular Entry Images.

("Title"/"Bottom")AlphaTransparency INT
If defined, the "Title"/"Bottom" has the specified AlphaTransparency.
Attention:
Do not use this without a Popup BG, otherwise MagicPink shines through. Either use a BG or a AlphaMap Popup with a fully transparent Popup BG.

Normal Image Setup

("Title"/"Bottom")Image IMAGE
Sets the name of the Popup Entry Image. This file must be in BMP or PNG format format.
If no value is provided then the Popup is displayed with the Popup background.

("Title"/"Bottom")ImageLeftEdge INT
Sets the number of pixels on the left edge of the Popup Entry Image that will not be stretched or tiled.
If no value is provided then the default is 0.

("Title"/"Bottom")ImageTopEdge INT
Sets the number of pixels on the top edge of the Popup Entry Image that will not be stretched or tiled.
If no value is provided then the default is 0.

("Title"/"Bottom")ImageRightEdge INT
Sets the number of pixels on the right edge of the Popup Entry Image that will not be stretched or tiled.
If no value is provided then the default is 0.

("Title"/"Bottom")ImageBottomEdge INT
Sets the number of pixels on the bottom edge of the Popup Entry Image that will not be stretched or tiled.
If no value is provided then the default is 0.

("Title"/"Bottom")ImageMode "stretch", "tile", "tile-horizontal" or "tile-vertical"
Sets the method used to scale the Popup Entry Image.
If no value is provided then the default is "stretch".

("Title"/"Bottom")HueColor COLOR
This command specifies the blended in color.
You cannot use Grayscale Colors, like FFFFFF, c0c0c0, 888888, 000000, ...., because they don't have a color!
If no value is provided then the default is "FFFFFF".

("Title"/"Bottom")HueIntensity INT
This command specifies the color of the pixel or the blended in color if HueIntensity is smaller then 100.
Minimum: 0 -> Nothing (Default)
Maximum: 100

("Title"/"Bottom")MixColor COLOR
This command specifies the mixed in color.
Same as the former HueColor!
If no value is provided then the default is "FFFFFF".

("Title"/"Bottom")MixIntensity INT
This command specifies the amount of the mixed in color.
Same as the former HueIntensity (with maximum 100 instead of 255)!
Minimum: 0 -> Nothing (Default)
Maximum: 100

("Title"/"Bottom")LuminanceIntensity INT
This command specifies the luminance of the entry.
Minimum: -100 -> Black
Maximum: 100 -> White
Default: 0

("Title"/"Bottom")SaturationIntensity INT
This command specifies the color saturation of the entry.
Minimum: 0 -> Grayscale
Maximum: 100 -> Full Colored (Default)

Values between 101-200 override the original Saturation of the Pixel!
This way you can colorize Grayscale Images.

Solid Image Setup

Attention: Only valid, if "xPopupUse("Title"/"Bottom")SolidColors" is set!

Use("Title"/"Bottom")SolidColors BOOL
If set, the SolidColor Settings for this State are enabled.
Example: "xPopupUseTitleEntrySolidColors"

("Title"/"Bottom")SolidColors (bgcolor) [(lightbevelcolor)] [(darkbevelcolor)]
Sets the colors of the Popup Entry, first the BGColor, then optional Light and Dark BevelColors

("Title"/"Bottom")SolidBevelSize LEFT RIGHT TOP BOTTOM or (LEFT/RIGHT) (TOP/BOTTOM) or (LEFT/RIGHT/TOP/BOTTOM)
Accepts 4, 2 or 1 INT Value(s), which define the size of the different bevel sides.
Sets the size of the painted Bevels in pixels.

xPopup("Title"/"Bottom")SolidBevelSize 1 sets all borders to 1px
xPopup("Title"/"Bottom")SolidBevelSize 1 0 sets left/right borders to 1px and top/bottom borders to 0px
xPopup("Title"/"Bottom")SolidBevelSize 1 0 2 1 sets left/right/top/bottom border to the defined values

If no value is provided then the default is 0.

("Title"/"Bottom")SolidGradientColors (color) [(color)] [(color)] ...
If defined, a Gradient is Painted with the BackgroundColor and the specified Gradient Colors.
(NO GRADIENT PAINTED ON BORDER!).

("Title"/"Bottom")SolidGradientType TYPE
TYPE can be:
".none" (Default: Oldstyle with (possible) multiple Gradient Colors)
".horizontal";
".vertical"
".radial"
".diagonal"
".fdiagonal"
".bdiagonal2
RESTRICTION: ONLY A TWO COLOR GRADIENT IS POSSIBLE!

("Title"/"Bottom")SolidTransformationType TYPE
TYPE can be:
".none" (Default)
".caricature"
".fisheye"
".swirled"
".cylinder"
".shift"
RESTRICTION: ONLY VALID WITH SolidGradientType <> ".none"!

("Title"/"Bottom")SolidGradientVertical BOOL
If set, the Gradient is painted vertical instead of horizontal.

("Title"/"Bottom")SolidGradientRepeated INT
The Gradient colors are repeated in an endless loop over the whole entry size.
INT specifies how big (in pixels) each plain color of the gradient shall be.

Popup Entry State Settings

Entry Background Settings

Overview

ActiveFolderUseFolderDefault BOOL
If set, the Default for "ActiveFolder" Settings are "Folder" Settings instead od "ActiveEntry" Settings.
This setting affects "ActiveFolder" Default for ALL specific settings (Texture, Font and Icon!)

The "(Entry Type)" in front of each setting means, that every setting can be:
Entry, ActiveEntry, Folder, ActiveFolder or Info
If you set a setting with "Entry", then, THIS becomes Default for all other States except "Info"! If you set a setting with "ActiveEntry" then, THIS becomes Default for "ActiveFolder", if you specify "xPopupActiveFolderUseFolderDefault", "Folder" is used as default for "ActiveFolder"!

Example:

xPopupEntrySaturationIntensity 70

All Popup Entry States have a SaturationIntensity of 70!

xPopupActiveEntrySaturationIntensity 70

Only Active Popup Entrys have a SaturationIntensity of 70!

"Separator" and "Arrow", "ActiveArrow" are special!
The "Separator" Prefix allows you to setup a Separator Image, which is painted at !separator lines.
The "Arrow" and "ActiveArrow" Prefixes are limited to (Entry Type)Image IMAGE and are for Custom Folder Indicators and are only painted on Folder Entry's ("Arrow" is Default for "ActiveArrow"!)
You can use Magic Pink in all Images!

Arrow Image Setup

ArrowImage IMAGE
Sets the name of the Folder Arrow Image. This file must be in BMP or PNG format format.
If no value is provided, then no Arrow is painted.

ArrowOffset INT
Specifies the distance between the Entry Border and the ArrowImage.
If no value is provided, then the default is 4.

ArrowOnLeft BOOL
If set, the Arrow is painted on the left Side of the Entry instead of the right Side.

ActiveArrowImage IMAGE
Sets the name of the Active Folder Arrow Image. This file must be in BMP or PNG format format.
If no value is provided, then no ActiveArrow is painted.

ActiveArrowOffset INT
Specifies the distance between the Entry Border and the ActiveArrowImage.
If no value is provided, then the default is "ArrowOffset".

ActiveArrowOnLeft BOOL
If set, the ActiveArrow is painted on the left Side of the Entry instead of the right Side.
If no value is provided, then the default is "ArrowOnLeft".

General Setup

(Entry Type)TrueTransparent BOOL
If set "Magic Pink" in IMAGES will be considered as TRUE TRANSPARENT
-> You see the the "Desktop", instead of the MainPopupBG (if used!)

So you can make better mixtures between Real Transparency and MainPopupBG. Till now, only "Magic Pink" in MainPopupBG was Real Transparent all others usages only showed the MainPopupBG (if used!).

xPopup(EntryType)TrueTransparent has with ALPHAMAP ENABLED, a different function as with normal images!
If set, the EntryImageAlphaMap REPLACES the MainPopup BG and it's AlphaMap completely.
If not set (Default), the EntryImageAlphaMap IS PAINTED WITH THEIR AlphaMap ONTO the MainPopup BG.

This is a quite important difference, as some people already have discovered, so check out which method is better to achieve your goals.

(EntryType)BorderMethod ".none", "raised", "etched", "sunken", "bump"
Draws a rectangular border with the specified style around the specified EntryType. Best for SolidColors, and only for rectangular Entry Images.

(EntryType)AlphaTransparency INT
If defined, the Entry has the specified AlphaTransparency.
Attention:
Do not use this without a Popup BG, otherwise MagicPink shines through. Either use a BG or a AlphaMap Popup with a fully transparent Popup BG.

Normal Image Setup

(Entry Type)Image IMAGE
Sets the name of the Popup Entry Image. This file must be in BMP or PNG format format.
If no value is provided then the Popup is displayed with the Popup background.

(Entry Type)ImageLeftEdge INT
Sets the number of pixels on the left edge of the Popup Entry Image that will not be stretched or tiled.
If no value is provided then the default is 0.

(Entry Type)ImageTopEdge INT
Sets the number of pixels on the top edge of the Popup Entry Image that will not be stretched or tiled.
If no value is provided then the default is 0.

(Entry Type)ImageRightEdge INT
Sets the number of pixels on the right edge of the Popup Entry Image that will not be stretched or tiled.
If no value is provided then the default is 0.

(Entry Type)ImageBottomEdge INT
Sets the number of pixels on the bottom edge of the Popup Entry Image that will not be stretched or tiled.
If no value is provided then the default is 0.

(Entry Type)ImageMode "stretch", "tile", "tile-horizontal" or "tile-vertical"
Sets the method used to scale the Popup Entry Image.
If no value is provided then the default is "stretch".

(Entry Type)HueColor COLOR
This command specifies the blended in color.
You cannot use Grayscale Colors, like FFFFFF, c0c0c0, 888888, 000000, ...., because they don't have a color!
If no value is provided then the default is "FFFFFF".

(Entry Type)HueIntensity INT
This command specifies the color of the pixel or the blended in color if HueIntensity is smaller then 100.
Minimum: 0 -> Nothing (Default)
Maximum: 100

(Entry Type)MixColor COLOR
This command specifies the mixed in color.
Same as the former HueColor!
If no value is provided then the default is "FFFFFF".

(Entry Type)MixIntensity INT
This command specifies the amount of the mixed in color.
Same as the former HueIntensity (with maximum 100 instead of 255)!
Minimum: 0 -> Nothing (Default)
Maximum: 100

(Entry Type)LuminanceIntensity INT
This command specifies the luminance of the entry.
Minimum: -100 -> Black
Maximum: 100 -> White
Default: 0

(Entry Type)SaturationIntensity INT
This command specifies the color saturation of the entry.
Minimum: 0 -> Grayscale
Maximum: 100 -> Full Colored (Default)

Values between 101-200 override the original Saturation of the Pixel!
This way you can colorize Grayscale Images.

Solid Image Setup

Attention: Only valid, if "xPopupUse(Entry Type)SolidColors" is set!

Use(Entry Type)SolidColors BOOL
If set, the SolidColor Settings for this State are enabled.
Example: "xPopupUseActiveEntrySolidColors"

(Entry Type)SolidColors (bgcolor) [(lightbevelcolor)] [(darkbevelcolor)]
Sets the colors of the Popup Entry, first the BGColor, then optional Light and Dark BevelColors

(Entry Type)SolidBevelSize LEFT RIGHT TOP BOTTOM or (LEFT/RIGHT) (TOP/BOTTOM) or (LEFT/RIGHT/TOP/BOTTOM)
Accepts 4, 2 or 1 INT Value(s), which define the size of the different bevel sides.
Sets the size of the painted Bevels in pixels.

xPopup(Entry Type)SolidBevelSize 1 sets all borders to 1px
xPopup(Entry Type)SolidBevelSize 1 0 sets left/right borders to 1px and top/bottom borders to 0px
xPopup(Entry Type)SolidBevelSize 1 0 2 1 sets left/right/top/bottom border to the defined values

If no value is provided then the default is 0.

(Entry Type)SolidGradientColors (color) [(color)] [(color)] ...
If defined, a Gradient is Painted with the BackgroundColor and the specified Gradient Colors.
(NO GRADIENT PAINTED ON BORDER!).

(Entry Type)SolidGradientType TYPE
TYPE can be:
".none" (Default: Oldstyle with (possible) multiple Gradient Colors)
".horizontal";
".vertical"
".radial"
".diagonal"
".fdiagonal"
".bdiagonal2
RESTRICTION: ONLY A TWO COLOR GRADIENT IS POSSIBLE!

(Entry Type)SolidTransformationType TYPE
TYPE can be:
".none" (Default)
".caricature"
".fisheye"
".swirled"
".cylinder"
".shift"
RESTRICTION: ONLY VALID WITH SolidGradientType <> ".none"!

(Entry Type)SolidGradientVertical BOOL
If set, the Gradient is painted vertical instead of horizontal.

(Entry Type)SolidGradientRepeated INT
The Gradient colors are repeated in an endless loop over the whole entry size.
INT specifies how big (in pixels) each plain color of the gradient shall be.

Entry Icon Settings

Overview

ActiveFolderUseFolderDefault BOOL
If set, the Default for "ActiveFolder" Settings are "Folder" Settings instead od "ActiveEntry" Settings.
This setting affects "ActiveFolder" Default for ALL specific settings (Texture, Font and Icon!)

The "(Entry Type)" in front of each setting means that every setting can be:
Entry, ActiveEntry, Folder or ActiveFolder
If you set a setting with "Entry", then, THIS becomes Default for all other States! If you set a setting with "ActiveEntry" then, THIS becomes Default for "ActiveFolder", if you specify "xPopupActiveFolderUseFolderDefault", "Folder" is used as default for "ActiveFolder"!

Example:

xPopupEntryIconX 5

All Popup Entry States have a IconX Position of 5!

xPopupActiveEntryIconX 5

Active Popup Entrys have a IconX Position of 5!

You have additionally two extra Settings for "(Entry Type)" in front of each setting:
"Title" and "Pinned"

"Title":
All following Icon Settings are valid for an Icon which indicates the ParentPopupEntry Icon in the "Caption"
Must be enabled with:

xPopupTitleShowIcon

"Pinned":
All following Icon Settings are valid for an Icon which indicates the Pinned State in the "Caption".
Must be enabled with:

xPopupPinnedShowIcon

and requires a valid IconResource in:

xPopupPinnedIconPath "$ThemeDir$mypinnedicon.ico"

PinnedIconPath "ICO, EXE, DLL, ..."
Defines the Icon which should be used for the "Pinned" Icon.

Icon Settings

(Entry Type)IconX INT
Sets the horizontal position of the icon in the Popup Entry. If the value is positive then it is relative to the left side of the Popup Entry, if negative then to the right side. Additionally you can make the position relative to the center of the Popup Entry by appending the character 'c' after the number ("32c", "-128c").

(Entry Type)IconY INT
Sets the vertical position of the icon in the Popup Entry. If the value is positive then it is relative to the top side of the Popup Entry, if negative then to the bottom side. Additionally you can make the position relative to the center of the Popup Entry by appending the character 'c' after the number ("32c", "-128c").

(Entry Type)IconSize INT
This command specifies the Size (Width/Height) of the displayed Icon.
Minimum: 8
Maximum: 32
If no value is provided then the default is 16.

(Entry Type)IconHueColor COLOR
This command specifies the blended in color.
You cannot use Grayscale Colors, like FFFFFF, c0c0c0, 888888, 000000, ...., because they don't have a color!
If no value is provided then the default is "FFFFFF".

(Entry Type)IconHueIntensity INT
This command specifies the color of the pixel or the blended in color if HueIntensity is smaller then 100.
Minimum: 0 -> Nothing (Default)
Maximum: 100

(Entry Type)IconMixColor COLOR
This command specifies the mixed in color.
Same as the former HueColor!
If no value is provided then the default is "FFFFFF".

(Entry Type)IconMixIntensity INT
This command specifies the amount of the mixed in color.
Same as the former HueIntensity (with maximum 100 instead of 255)!
Minimum: 0 -> Nothing (Default)
Maximum: 100

(Entry Type)IconLuminanceIntensity INT
This command specifies the luminance of the entry.
Minimum: -100 -> Black
Maximum: 100 -> White
Default: 0

(Entry Type)IconSaturationIntensity INT
This command specifies the color saturation of the entry icon.
Minimum: 0 -> Grayscale
Maximum: 100 -> Full Colored (Default)

Values between 101-200 override the original Saturation of the Pixel!
This way you can colorize Grayscale Icons.

Font Settings

Overview

ActiveFolderUseFolderDefault BOOL
If set, the Default for "ActiveFolder" Settings are "Folder" Settings instead od "ActiveEntry" Settings.
This setting affects "ActiveFolder" Default for ALL specific settings (Texture, Font and Icon!)

The "(Entry Type)" in front of each setting means that every setting can be:
Title, Entry, ActiveEntry, Folder, ActiveFolder or Info
If you set a setting with "Entry", then, THIS becomes Default for all other States except "Title" and "Info"! If you set a setting with "ActiveEntry" then, THIS becomes Default for "ActiveFolder", if you specify "xPopupActiveFolderUseFolderDefault", "Folder" is used as default for "ActiveFolder"!

Example:

xPopupEntryFontHeight 20

All Popup Entry States have a FontHeight of 20!

xPopupActiveEntryFontHeight 20

Active Popup Entrys have a Text FontHeight of 20!

"Arrow" and "ActiveArrow" are special!
The "Arrow" and "ActiveArrow" Prefixes are for Custom Folder Text Indicators and are only painted on Folder Entry's ("Arrow" is Default for "ActiveArrow"!)
You can setup the Arrow and ActiveArrow Font with all normal Font settings. Simply set at (Entrytype) the Prefixes "Arrow" and "ActiveArrow"!

Text Arrow Setup

UseTextArrow BOOL
If set, the TextArrows are enabled.

ArrowText STRING
The String which is painted as the Normal Folder TextArrow.

ActiveArrowText STRING
The String which is painted as the Active Folder TextArrow.

Font Settings

(Entry Type)Font FONT
Sets the name of the font used to display text. If no value is provided then the default is "Arial".

(EntryType)FontCharSet CHARSET
Sets the used CharSet of the font.
ANSI_CHARSET
BALTIC_CHARSET
CHINESEBIG5_CHARSET
DEFAULT_CHARSET
EASTEUROPE_CHARSET
GB2312_CHARSET
GREEK_CHARSET
HANGUL_CHARSET
MAC_CHARSET
RUSSIAN_CHARSET
SHIFTJIS_CHARSET
SYMBOL_CHARSET
TURKISH_CHARSET
VIETNAMESE_CHARSET
JOHAB_CHARSET
ARABIC_CHARSET
HEBREW_CHARSET
THAI_CHARSET
OEM_CHARSET
If no value is provided then the default is DEFAULT_CHARSET.

(EntryType)FontSmoothing BOOL
If set to "FALSE", you can use Text without ANY Background (MainPopupBG and EntryBG) and don't have PinkOutlines (from Smoothing).
Default is "TRUE".

(EntryType)FontCleartype BOOL
"ClearType" Font Rendering (just better AntiAliasing, only for WinXP).
If no value is provided then the default is TRUE.

(Entry Type)FontHeight INT
Sets the height of the font used to display the text in pixels.
If no value is provided then the default is 15.

(Entry Type)FontLeftBorder INT
Sets the number of pixels on the left edge of the Popup Entry to reserve as a border.
If no value is provided then the default is 0.

(Entry Type)FontRightBorder INT
Sets the number of pixels on the right edge of the Popup Entry to reserve as a border.
If no value is provided then the default is 0.

(Entry Type)FontTopBorder INT
Sets the number of pixels on the top edge of the Popup Entry to reserve as a border.
If no value is provided then the default is 0.

(Entry Type)FontBottomBorder INT
Sets the number of pixels on the bottom edge of the Popup Entry to reserve as a border.
If no value is provided then the default is 0.

(Entry Type)FontColor COLOR
If no value is provided then the default is 000000.

(Entry Type)FontBold BOOL
If this command is present then the font will be bold.

(Entry Type)FontItalic BOOL
If this command is present then the font will be italic.

(Entry Type)FontUnderline BOOL
If this command is present then the font will be underlined.

(Entry Type)FontAlign "left", "right" or "center"
Sets the horizontal text alignment.
If no value is provided then the default is "left".

(Entry Type)FontVertAlign "top", "bottom" or "center"
Sets the vertical text alignment.
If no value is provided then the default is "center".

(Entry Type)FontShadow BOOL
If this command is present then the font will be shadowed.
You can either use Shadow or OutLine, not both at the same time! Outline overrides Shadow.

(Entry Type)FontShadowColor COLOR
Sets the color used to display the text shadow.
If no value is provided then the default is dark gray (808080).

(Entry Type)FontShadowX INT
Sets the number of pixels in the horizontal direction that the shadow is offset from the rest of the text; this can be negative.
If no value is provided then the default is 1.

(Entry Type)FontShadowY INT
Sets the number of pixels in the vertical direction that the shadow is offset from the rest of the text; this can be negative.
If no value is provided then the default is 1.

(Entry Type)FontOutline BOOL
If this command is present then the text will be Outlined.
You can either use Shadow or OutLine, not both at the same time! Outline overrides Shadow.

(EntryType)FontOutLineExtra BOOL
If set, the Outline is painted fully around the text, otherwise it's painted only at the 4 sides. That's just a minor visual difference, but now you can choose, which one is more your taste.

(Entry Type)FontOutlineColor COLOR
Sets the color used to display the text Outline.
If no value is provided then the default is dark gray (808080).

Bang Commands And Events

Bangs

You can call every Popup Bang instead of:

!Popupname x y anchor

with the anchor directly after the Bang:

!Popupname anchor

!Popup [x] [y] ["anchor"]
Calls the first defined Popup menu on the Screen (at Current Mouse Pos or manually at the defined Position [x] and [y].
"anchor" is the Cursor, relative to the displayed Popup, it can be:
topleft DEFAULT
topcenter
topright
centerleft
centercenter
centerright
bottomleft
bottomcenter
bottomright

!PopupLoadCFG "*Prefix" "FilePath"
This would create/replace all defined Popups starting with "*Prefix" in the rc-File "FilePath"
See Dynamic Popup Loading for details.

!PopupRescan
This Bang completely Resets xPopup and Reloads ALL settings from Step.
Purpose:
You don't need to UnLoad <-> Reload xPopup, if you want to make changes to the *Popup lines or major settings in general.

Attention:
The Bang automatically calls a !reload, so "Manually Set Evars" get lost!! But this happens always. if you try to reload saved settings :)

!PopupDynamicFolder "Full Path" [x] [y] ["anchor"]
Calls a Popup menu with the specified RootFolder on the Screen without the need to define *Popup CFG (at Current Mouse Pos or manually at the defined Position [x] and [y].
"anchor" is the Cursor, relative to the displayed Popup, it can be:
topleft DEFAULT
topcenter
topright
centerleft
centercenter
centerright
bottomleft
bottomcenter
bottomright

!PopupTasks [x] [y] ["anchor"]
Calls a PopupMenu with the current running Tasks on the Screen without the need to define *Popup CFG (at Current Mouse Pos or manually at the defined Position [x] and [y].
"anchor" is the Cursor, relative to the displayed Popup, it can be:
topleft DEFAULT
topcenter
topright
centerleft
centercenter
centerright
bottomleft
bottomcenter
bottomright

!PopupControlPanel [x] [y] ["anchor"]
!PopupMyComputer [x] [y] ["anchor"]
!PopupNetwork [x] [y] ["anchor"]
!PopupPrinters [x] [y] ["anchor"]
!PopupRecentDocuments [x] [y] ["anchor"]
!PopupRecycleBin [x] [y] ["anchor"]
Calls a Shell Folder PopupMenu on the Screen without the need to define *Popup CFG (at Current Mouse Pos or manually at the defined Position [x] and [y].
"anchor" is the Cursor, relative to the displayed Popup, it can be:
topleft DEFAULT
topcenter
topright
centerleft
centercenter
centerright
bottomleft
bottomcenter
bottomright

There are only the Bangs available you have defined Popup Menu's for.
The following Bangs are only defined for TopLevel Popups, such you have defined with "!new" - "~new"!

!(PopupMenuName) [x] [y] ["anchor"]
Calls the Popup menu on the Screen (at Current Mouse Pos or manually at the defined Position [x] and [y].
"anchor" is the Cursor, relative to the displayed Popup, it can be:
topleft DEFAULT
topcenter
topright
centerleft
centercenter
centerright
bottomleft
bottomcenter
bottomright

!(PopupMenuName)Reposition (x-coordinate) (y-coordinate) [width] [height] [anchor]
Repositions (Moves and/or Resizes) the PopupMenu.
Accepts now an additional anchor "topleft", "topcenter", "topright", "centerleft", "centercenter", "centerright", "bottomleft", "bottomcenter", "bottomright", which sets where the new position is relative to the Popup.
You need either 2 (x,y), 3 (x,y,anchor), 4(x,y,w,h) or 5(x,y,w,h,anchor) values!
!(PopupMenuName)Reposition accepts for x and y values "CurrentX" and "CurrentY", which will be replaced with the actual Position, so you don't need to use xLabel(light)'s !ParseEvars to get/keep the current position!

!(PopupMenuName)Pin
Pins & Shows the Popup at the current position. Call a !(popupname)Reposition before!

!(PopupMenuName)UnPin
UnPins & Hides the Popup.

!(PopupMenuName)Toggle
Toggles the Popup between visible and not visible.

!(PopupMenuName)TogglePin
Toggles (Pins/UnPins - Shows/Hides) the Popup.

!(PopupMenuName)ToggleShade
Shades/UnShades the Popup.

Events

Title Mouse Actions:
Title is only the "TopBorder"!

"Action" in the following can be:
".none" -> Does nothing
".pin" -> Pins the Popup
".unpin" -> UnPins (and Closing) the Popup
".togglepin" -> Pin and UnPins (and Closing) the Popup
".toggleshade" -> Toggles the ShadeMode
".toggleontop" -> IF PINNED, changes the OnTop State of the Pinned Popup On-The-Fly.
".move" -> Defines the MoveButton
".close" -> Closes the PopupMenu (and UnPins it)
".pageup" -> Display the previous Part in MultiPart Popups.
".pagedown" -> Display the next Part in MultiPart Popups.

OnTitleLeftClick "Action"
Default is ".move"

OnTitleMiddleClick "Action"
Default is ".none" (Scroll is still possible)

OnTitleRightClick "Action"
Default is ".toggleshade"

Bottom Mouse Actions:
Bottom is only the "BottomBorder"!

"Action" in the following can be:
".none" -> Does nothing
".pin" -> Pins the Popup
".unpin" -> UnPins (and Closing) the Popup
".togglepin" -> Pin and UnPins (and Closing) the Popup
".toggleshade" -> Toggles the ShadeMode
".toggleontop" -> IF PINNED, changes the OnTop State of the Pinned Popup On-The-Fly.
".move" -> Defines the MoveButton
".close" -> Closes the PopupMenu (and UnPins it)
".pageup" -> Display the previous Part in MultiPart Popups.
".pagedown" -> Display the next Part in MultiPart Popups.

OnBottomLeftClick "Action"
Default is ".none"

OnBottomMiddleClick "Action"
Default is ".none" (Scroll is still possible)

OnBottomRightClick "Action"
Default is ".none"

Actions:
OnFolderDoubleClick "Action"
If a Folder is DoubleClicked with the Left MouseButton the ACTION is executed with the appended FolderPath.
Default is Explorer.exe with Folder Tree Layout.

OnDrop "MOVE", "COPY", or "SHORTCUT"
Move: Moves the dropped File to the Folder on which it was dropped.
Copy: Copies the dropped File to the Folder on which it was dropped.
Shortcut: Makes a shortcut to the dropped File in the Folder on which it was dropped. This one is normally the best solution for a PopupMenu/Quicklaunch

OnOpen ACTION
The ACTION is executed, if a TOPLEVEL Popup is shown.
Inside of the ACTION "%[popupname]% or "%{popupname}%" ( due to possible interactions with xLabels !ParseEvars ) is replaced with the "PopupName" (The Bang without "!").

OnClose ACTION
The ACTION is executed, if a TOPLEVEL Popup is closed.
Inside of the ACTION "%[popupname]% or "%{popupname}%" ( due to possible interactions with xLabels !ParseEvars ) is replaced with the "PopupName" (The Bang without "!").

OnShade ACTION
The ACTION is executed, if a TOPLEVEL Popup is shaded.
Inside of the ACTION "%[popupname]% or "%{popupname}%" ( due to possible interactions with xLabels !ParseEvars ) is replaced with the "PopupName" (The Bang without "!").

OnUnShade ACTION
The ACTION is executed, if a TOPLEVEL Popup is unshaded.
Inside of the ACTION "%[popupname]% or "%{popupname}%" ( due to possible interactions with xLabels !ParseEvars ) is replaced with the "PopupName" (The Bang without "!").

The following SoundEvents ("OpenSound" / "CloseSound") are only defined for TopLevel Popups, such you have defined with "!new" - "~new"!
xLabel or xLabel(Light) >= v3.0 must have been loaded!

OpenSound "SoundFile"
Played, if a Main Popup menu has been opened.

CloseSound "SoundFile"
Played, if a Main Popup menu has been closed.

SwitchSound "SoundFile"
Played, if a different Entry has been selected.

ActionSound "SoundFile"
Played after a Action (LeftClick) on an Entry has been performed and the Popup closes.

Dynamic Evars

"Dynamic Evars" are possible in all *Popup definition lines.

What are "Dynamic Evars"?
A dynamic Evar is an Evar, which can change during runtime, without the need to !reload or !recycle Litestep!
Therefore the content of a Popup can react directly on changed settings.

Do i need "Dynamic Evars"?
Probably not, it's a special feature for themers, which want to create "interactive" Theme Popups.

How do i use them?
If you want to use "dynamic evars" you enclose them in "%#" instead of "$"! If they change, the xPopup updates it's content automatically.
You can use as many as you want, in the *Popup line or the complete Popup definition.
You can change evars with xLabel's "!setevar"

Restrictions:
If a real change occurs (and only then), xPopup must rescan all existing subfolders of this Popup.
Pinned (visible) Popups don't update automatically! Hide and Show them!
You cannot make the ".icon=" part "dynamic" only the part after the ".icon="

*popup .icon=%#myicon%# "BlaBla" !action <- This works
*popup %#myicon%# "BlaBla" !action <- This works NOT!
*popup %#mycontent%# <- If a custom icon is wanted, this works NOT!

Example Popup Defintion:

*Popup "My Dynamic Popup" !new !mydynamicpopup
*Popup .icon=%#popupentrycontent%# <- ".icon=" is needed if you want to customize the icon! See Restrictions!
*Popup "Dynamic Action" %#actionevar%# <- The Click Action can be change be changing $actionevar$ with !setevar
*Popup .icon="%#iconevar%#" "%#captionevar%#" %#actionevar%#
*Popup ~new

Just try it out, and if you find a good example add it at http://www.xdocs.ls-universe.info/.

Dynamic Popup Loading

!PopupLoadCFG "*Prefix" "FilePath"
This would create/replace all defined Popups starting with "*Prefix" in the rc-File "FilePath"

Dynamic loading of "*Popup" definitions only if they are really needed, no permanent "include" needed!.
You can also partly load different Popup Definitions then "*Popup" out of the same file.
Loaded lines aren't saved in the internal LS Evar table (Less RAM needed with many Popups).
Changes in a newly (re)loaded Popup update/replace existing Popups (with the same Bang Command)

The following lines are in a file myPopup.rc, which IS NOT "included":

*fruit "TestPopup" !new !testpopup
*fruit !info test
*fruit "Apple" !apple
*fruit "Grape" !grape
*fruit ~new

*xpopup "TestPopup" !new!testpopup
*xpopup !info test
*xpopup ~new

*vegetable "TestPopup" !new !testpopup
*vegetable !info test
*vegetable "Carrot" !carrot
*vegetable "Peas" !peas
*vegetable ~new

Now you can load the PopupCfg for the Popup !testpopup with the following Bangs for "*fruit", "*xpopup" or "*vegetable".

!PopupLoadCFG "*fruit" "$configdir$myPopup.rc" or
!PopupLoadCFG "*xpopup" "$configdir$myPopup.rc" or
!PopupLoadCFG "*vegetable" "$configdir$myPopup.rc"

Just try it out, and if you find a good example add it at http://www.xdocs.ls-universe.info/.

*Popup SubFolder Configuration

Popup2 Compatible Configuration

!PopupFolder:FOLDER
This creates a static subfolder that displays the contents of the specified drive or directory.
The contents of the directory are loaded at startup, and can only be updated by !Recycling LiteStep.

!PopupDynamicFolder:FOLDER
!DynamicFolder:FOLDER
This creates a dynamic subfolder with the contents of the specified drive or directory.
Dynamic folders differ from static folders in that the Popup folder will automatically update when the directory is updated, meaning that a !Recycle is not necessary to see changes.

Note:
You can limit the content for a PopupFolder by using pattern matching.
If the PopupFolder contains another folder, that folder must match your pattern in order to be displayed.

Example:

*Popup "My Documents" !PopupFolder:"C:\My Documents\*.doc"

*Popup "My Documents" !PopupDynamicFolder:"C:\My Documents\*.doc"

Multiple directories can be placed in the same PopupFolder by using the pipe character, "|", to separate them.
Subfolders with the same name will be merged as well.

Example:

*Popup "LiteStep" !PopupFolder:"C:\LiteStep"|$ModuleDir$
*Popup "LiteStep" !PopupDynamicFolder:"C:\LiteStep"|$ModuleDir$

Note:
By right-clicking on the folder, or any sub-menu, you can open the context menu for the directory. This is similar to the functionality in the Start Menu of Windows Explorer.

Action Popup Folder Configuration

!PopupActionFolder:ACTION:FOLDER
This creates a static subfolder that displays the contents of the specified drive or directory.
The contents of the directory are loaded at startup, and can only be updated by !Recycling LiteStep.

OnClick the ACTION is executed with the FILEPATH as an argument!!

Restriction:
SubFolders are not visible!!
If you want to see ONLY folders (ThemeSwitcher), with their FULL Path as action, then use this "Escape Sequence":

*Popup "ActionFolder" !PopupActionFolder:!alert:"$themesdir$*"

The Important Part is the "*" at the end!

!PopupDynamicActionFolder:ACTION:FOLDER
This creates a dynamic subfolder that displays the contents of the specified drive or directory.
Dynamic folders differ from static folders in that the Popup folder will automatically update when the directory is updated, meaning that a !Recycle is not necessary to see changes.

OnClick the ACTION is executed with the FILEPATH as an argument!!

Restriction:
SubFolders are not visible!!
If you want to see ONLY folders (ThemeSwitcher), with their FULL Path as action, then use this "Escape Sequence":

*Popup "ActionFolder" !PopupActionFolder:!alert:"$themesdir$*"

The Important Part is the "*" at the end!

Example:

*popup "MyActionFolder" !popupactionfolder:!alert:"$desktopdir$"

This would display your Desktop in a folder, but if you click an entry the "action" (!alert) is executed
with the filepath as quoted argument. You can (probably) use any action, not only Litestep Bangs!

This is a feature for theme scripting with *.rc files or maybe for Copy/Move (File actions which need the filepath.)

Just try it out, and if you find a good example add it at http://www.xdocs.ls-universe.info/.

Exported Variables

(Note that you will need to define dummy variables if you include these in scripts/rc files with standard $evar$ syntax, since when LiteStep reads these files xPopup has not yet added them, causing LS to think the variables are undefined.)

Only useful if used in HANDTYPED BANGS (LSXCommand) or if you use it in mzscripts or with "xLabels" special "!ParseEvars" Bang Command!
To use $evars$ in Bangs, which contain the "CURRENT" value, use the escape code %# and prefix the "!ParseEvars" Bang!
$mypopupcurrentwidth$ becomes %#mypopupcurrentwidth%# and so on ...

Only TopLevel Popups export now their Current Position and Size. If the Popup is called with !MyPopup then it's current Position and Size is exported with the Prefix "MyPopup".

$(popupname)CurrentX$
The current horizontal position of the Popup.

$(popupname)CurrentY$
The current vertical position of the Popup.

$(popupname)CurrentWidth$
The current width of the Popup.

$(popupname)CurrentHeight$
The current height of the Popup.

Special Folder Support

ShellFolders Support

ShellFolders work as in Popup2, as there are:
!PopupControlPanel
!PopupMyComputer
!PopupNetwork
!PopupPrinters
!PopupRecentDocuments
!PopupRecycleBin

Tasks Folder Support

TaskFolders work as in Popup2, with additional Application ContextMenu on RightClick:
!PopupTasks

xLabel(Light) Info Entry

You can use and display all Info, which "xLabel" can display inside of a Popup Entry (Painted on Popup BG or on InfoBG, if specified). Just load xLabel and use the following "special" Syntax.

*Popup !info "xLabel(Light) Text Escape Sequence"

Example:
To create a clock like with !datetime, make this entry

*Popup !info "[time('hh:nn:ss')]"

You can setup a EntryTexture with the "Info" Prefix like the other Entry Image Settings.

xPopupInfoImage info.png
xPopupInfoTrueTransparent ...

You can setup the Font with the "Info" Prefix like the other Fontsettings.

xPopupInfoFontHeight 20
xPopupInfoFontColor ff0000 ...

Module Hooking Support

You can hook every Module into your PopupMenu, but due to the circumstances the CFG is not as easy as above :P

*Popup !hook:LeftBorder:RightBorder:ModuleWidth:ModuleHeight !Modulebang (Userdata_1 ...) %%BANG TO MOVE MODULE%%

Ok, that was hard, now the explanation:
LeftBorder: The number of Pixels from the LeftSide of the Popup, at which the Hooked Module should start.
RightBorder: The number of Pixels from the RightSide of the Popup, till the Hooked Module should end.
ModuleWidth: The Width of the Hooked Module.
ModuleHeight: The Height of the Hooked Module.

!Modulebang Userdata1 (... UserdataN): Same as with every Hooking Process (e.g. !labellsboxhook testlabel)

Now, the tricky point:
For the correct positioning (y-Coordinate) xpopup must know with which Bang it can move the Module! So, if there's such a Bang available just specify it here. Otherwise YOU must calculate the correct y-Coordinate in the module Settings!

%%!commandmove%%,for instance. It's important that you make the DOUBLE %% before and after %% the MoveBang!

If you set "!hook:0:0:0:0 !Modulebang Userdata1 (... UserdataN)" --> WITH 4 TIMES 0, the module will only be hooked and you can Size and Position it MANUALLY where you want it in the PopupMenu! It won't be condidered as an Entry that needs Place.

Special Features

Popup Menu Consisting Of Only One Folder

*Popup "Caption/Title" !new !popupBANG "Syntax prefix to use"
*Popup "Invisible" !PopupFolder:$Litestepdir$
*Popup ~new

You can use all SubFolder creating methods!

!PopupFolder:...
!PopupDynamicFolder:...
!PopupActionFolder:...
!PopupDynamicActionFolder:...
!PopupTasks
!PopupControlPanel
...

Or, with the following Bang:

!PopupDynamicFolder "Full Path" [x] [y] ["anchor"]

Explanation see Bangs!

Or, you use this special Feature of xPopup:

!insertfolder as Extra Setup Feature

The Folder(s) Content is inserted directly at(after) this Line, NOT in a SubFolder! Piping and Wildcards are allowed.

Example:

*Popup !insertfolder:"$startmenu$"

This would add the complete $startmenu$ at(after) this line.

Multiple Popup Columns

To create a new Column in a PopupMenu use:

*Popup Menubreak

After that entry the PopupMenu starts a new Column from the Top!

Or use the automatic method:

xPopupAutoMenubreak

Which automatically makes new Columns, if required, instead of the MultiPart implementation.

Custom Sorting In PopupFolders

Custom Item Sorting via User Modified Filenames.
You can add [xx] before the Filename to enable sorting based on the 2-digit number (xx), the "[xx]" before the Filename won't be displayed.
These Files will be displayed first sorted with growing numbers.

[00]IrfanView.lnk -> IrfanView.lnk
[02]ZOrdertest.lnk -> ZOrdertest.lnk
[20]AdAware.lnk -> AdAware.lnk
Another.lnk
BasicFiles.lnk
...

Custom Icons For Entry's

You can set (or remove) Custom Icons for every Defined PopupEntry.

*Popup .icon="..." "MyEntry" "Action"

Defines the custom icon. Supports plain .ico files and extraction:
c:\win2k\explorer.exe
c:\win2k\explorer.exe,2
Supports ".none".
Supports generic icon file associations. Syntax: *.extension

Shading Popups

To Toggle Shaded Popups, simply RightClick on the Title/Caption(/TopBorder). The ShadedMode only consists of the Title(TopBorder) of the Popup and the BottomBorder, all Entrys are removed.
This would be the best for Pinned Popups, but it works for normal Popups or SubPopups the same.
Shaded Popups stay shaded, till you "unshade" them!

Start Pinned To Desktop

To make a PopupMenu visible and pinned on the Desktop, just do this:

*xPopupStartPinned !(PopupBang) x y ["anchor"]

x and y are the Position value and support standard positioning syntax as '-', '~' or 'c'.
Accepts now optional "AnchorPoint", where "anchor" can be:
topleft DEFAULT
topcenter
topright
centerleft
centercenter
centerright
bottomleft
bottomcenter
bottomright

Pin To Desktop

To Separate a PopupMenu and make it stay on the Desktop:
Just Press CTRL+SHIFT and Press Down-Arrow or, if it's a SubFolder, simply Drag it away from the Parent.
To Kill it:
Hover over the Popup and press CTRL+SHIFT and Up-Arrow or make a LeftDoubleClick on the Popup BG (on the TopBorder or BottomBorder!).

Keyboard Navigation

You can navigate through the PopupMenus with the Keyboard.
Simply use UP, DOWN, LEFT and RIGHT ArrowKeys to switch between Entry's and use RETURN to execute or ESCAPE to Close.
As alternative xPopup supports & "Ampersand" in Captions to define a "JumpKey"
-> jumps to this entry if this key is pressed.
If none is defined or you're navigating through SubMenus the first entry which Caption starts with that Key is selected.

To escape this feature and display a literal ampersand in captions, use "&&".

If you have a Mouse with Additional MouseButtons, the 4th should work as the LEFT Key pressed and the 5th as the RIGHT Key pressed (or maybe vice versa) :)

"Chording" (only the first 2 chars!)

If you quickly press another Key after the first, the first both Keys matching Entry will be selected. So, of you have many Entrys with "A" and you want "Animation", simply press "A" and then quick "N".

Manual Update

Pressing F5 updates the Popup, if the automatic Update on subfolders doesn't work or if you want to update the RootPopup (for people who use !insertfolder).

Scroll Through Entry's

You can scroll Up and Down through the Entry's either with your MouseWheel or by Pressing the MiddleButton or Keyboard (see above).
To "Scroll/Switch" between Complete Part use "PageUp" and PageDown" Keys or Press CTRL during MouseWheel Scroll.

To open a SubFolder after Scrolling through the Entrys simply perform a LeftClick on the current Folder!

Multi Part PopupMenu's

If you have set MaxHeight or the PopupMenu doesn't fit on the whole screen it will be divided in visible Parts. You can access "hidden" parts by scrolling with Keyboard (PageUp, PageDown, Up, Down), MouseWheel or MiddleClick Up or Down till the last visible Entry, after that the next part will be displayed in the PopupMenu.

Contact

Please report bugs, if there should be any, to:
andymon at ls-universe dot info

Btw.: I'm native German, so everyone who's also German mustn't write me in English ;)

Homepage:
Here you find News, Updates, and some more.
http://www.ls-universe.info/