Table of Contents

xPopup Version 2.x Documentation

Latest version of xPopup is 2.1

This is xPopup-2.1, a LiteStep module used to display a popup menu used to launch programs.

You need to load xPaintClass-1.0 before xPopup, otherwise xPopup won't load! xPopup can also use the features of xStatsClass. If you want to use those features you need to load xStatsClass before xPopup.

You can also simply put xPaintClass-1.0 in your LiteStep folder.

You can download the latest xPaintClass-1.0.dll at: www.ls-universe.info

Overview

Add some new LoadModule lines somewhere in your theme configuration, similar to the following (this assumes that xPopup-2.1.dll resides in "C:\Litestep\Modules"):

LoadModule "C:\Litestep\Modules\xPaintClass-1.0.dll"
LoadModule "C:\Litestep\Modules\xStatsClass-1.1.dll"

LoadModule "C:\Litestep\Modules\xPopup-2.1.dll"

or the newer *NetLoadModule lines:

*NetLoadModule xPaintClass-1.0
*NetLoadModule xStatsClass-1.1

*NetLoadModule xPopup-2.1

To make the newest version available for your theme, you should probably add the following lines somewhere in your theme configuration:

*NetLoadModuleSite "http://www.modules.shellfront.org/"
*NetLoadModuleSite "http://www.modules.ls-universe.info/modules/"
*NetLoadModuleSite "http://www.modules.nbi-studio.com/"

*NetloadModuleSite "http://www.ls-themes.org/modules/download/"

The following commands are typically placed somewhere in your theme configuration. See the LiteStep documentation for help modifying these files.

All commands must be prefixed with the name of the popup, normally this is xPopup. Any mention of (popup-name) should also be replaced by the actual name of the popup.

There are also mentions of (popup-bang) at a few places in this documentation. (popup-bang) should be replaced with the Bang command you use to display the popup but without the exclamation mark, "!".


So if you have something like this:

*Popup "PopupTitle" !New !MyPopup TestPopup

(popup-name) is TestPopup and (popup-bang) is MyPopup.


If it looks like this:

*Popup "PopupTitle" !New !MyPopup

(popup-name) gets its default value, which is xPopup.

Legend

[ ]
Values between [ and ] are optional
ACTION
Bang commands, applications, everything LiteStep can execute
BOOL
Boolean value (true or false)
COLOR
Color in Hex (FFFFFF = White, 000000 = Black, …)
COORDINATE
X or Y coordinate on the screen
If the value is positive, then it is relative to the top/left of the parent (desktop or parent module).
If the value is negative, then it is relative to the bottom/right of the parent (desktop or parent module).
You can make the position relative to the center of the parent (desktop or parent module) by appending the character 'c' after the number ("32c", "-128c")
You can use "real negative values" by adding a '~' before the number ("~10").
Additionally you can use percent values of the parent (desktop or parent module) ("50%", "75%") and you can combine those percent values with further positioning ("20%-20", "80%+5", "100%+20").
You can position xPopup on multi monitor systems with:
1@
Relative to primary monitor
2@
Relative to secondary monitor
3@
Relative to third monitor (untested)
v@
Relative to virtual screen (all monitors combined)
DIMENSION
A number of pixels
If the value is positive then its an absolute size in pixels
If the value is negative then its the parent (desktop or parent module) width/height minus the specified value.
Additionally you can make the size relative to a percentage of the parent (desktop or parent module) width/height by appending the character '%' after the number ("50%", "-20", "50%-20", "75%+40").
You can size xPopup relative to monitors on multi monitor systems using the same syntax as for COORDINATE (1@, 2@, etc)
INT
A number
SPECIALACTION
The different actions that can happen when clicking on the title or the bottom of the popup.
The following actions are possible:
.none
Does nothing.
.pin
Pins the popup.
.unpin
Unpins (and closes) the popup.
.togglepin
Pins or unpins (and shows/closes) the popup.
.toggleshade
Toggles the shade mode. Shaded means that only the title is visible.
.toggleontop
Changes the on-top state of the popup if it is pinned.
.move
Makes the popup follow your mouse so that you can move it.
.close
Closes the popup menu (and unpins it).
.pageup
Display the previous part in a multi part popup.
.pagedown
Display the next part in a multi part popup.
STRING
A word, usually beginning with a period (.) or a quoted text

Default Configurations

To help reduce redundant configuration commads xPopup supports default settings. By prepending "Global" (without the quotes) to the name of the setting you can make defaults that applies to all popups. By prepending the name of a popup group to the name of settings you can make defaults that apply to all popups belonging to the given popup group.

AddToGroup STRING [STRING] [STRING] […]
This command is used to add a popup to one or more popup groups.
By default all popups are in the "xPopup" group, so most of the time you don't need this setting.

Configuration Values

Overview

The following commands are typically placed somewhere in your theme configuration. See the LiteStep documentation for help modifying these files.

All commands must be prefixed with the popup's name.

Example:
To hide the icons in the popup named "MyPopup" the actual command you would put in the theme configuration file would be

MyPopupShowIcons false

but the command shown in this documentation would be something like this:

ShowIcon BOOL
Controls the visibility of the icons in popup entries.
If no value is provided, then the default is true.

Size and Position

MaxEntryWidth INT
Sets the maximum horizontal size of a popup menu entry. Can only be a pure INT value. Something like 50% will not work.
MinEntryWidth INT
Sets the minimum horizontal size of a popup menu entry. Can only be a pure INT value. Something like 50% will not work.
MinWidth INT
Sets the minimum horizontal size of the popup menu. Can only be a pure INT value. Something like 50% will not work.
MinHeight INT
Sets the minimum vertical size of the popup menu. Can only be a pure INT value. Something like 50% will not work. The default is the biggest one of TopBorder + BottomBorder and ImageTopEdge+ImageBottomEdge.
MaxWidth INT
Sets the maximum horizontal size of the popup menu. Can only be a pure INT value. Something like 50% will not work.
MaxHeight INT
Sets the maximum vertical size of the popup menu. Can only be a pure INT value. Something like 50% will not work.

Moving

Moveable BOOL
If this command is set to false you cannot move popup menus with TopBorder or BottomBorder as you would otherwise be able to do.
PinOnMove BOOL
If this command is set to false sub folders that are dragged away from their parent popup menu aren't automatically pinned.

Docking

SnapTo INT [STRING]
The parameters are distance snapobject
snapobject can be all, desktop, or popups.
By default popups snap to each other and to the desktop borders (WorkArea) with a distance of 10 pixels.
With this setting you can deactivate this feature (set distance to 0) or only use the two special SnapTo options.

Examples:

; Completely deactivate snapping

xPopupSnapTo 0
; Only snap to other popups with a snap distance of 15 pixels.
xPopupSnapTo 15 popups
; Only snap to the WorkArea with a snap distance of 5 pixels.
xPopupSnapTo 5 desktop
WorkArea COORDINATE COORDINATE COORDINATE COORDINATE
The parameters are left right top bottom
Can be used to set a custom work area for the snap feature.
Default is the normal desktop area as set by your desktop module (like xDesk or jDesk).
RestrictToWorkArea BOOL
If this command is present the popup is shown only inside the WorkArea and cannot be moved, sized or repositioned outside.

Layout

ShowCaption STRING
STRING can be .none, .top or .bottom.
Shows title/caption either at the top of the popup, at the bottom of the popup, or not at all.
TopBorder INT
Sets the number of pixels on the top edge to reserve as a border to popup entries.
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 "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 entries.
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 entries.
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 entries.
If no value is provided, then the default is 0.
EntryHeight INT
This will set the height of each popup entry ("Entry" and "ActiveEntry").
If no value is provided, then the default is 18.
FolderHeight INT
This will set the height of each popup entry ("Folder" and "ActiveFolder").
If no value is provided, then 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 5.
XSpacing INT
Horizontal spacing between popup entries, after a "menu break".
If no value is provided, then the default is 0.
YSpacing INT
Vertical spacing between popup entries.
If no value is provided, then the default is 0.
SeparatorYSpacing INT
You can specify a different YSpacing between entries and separators with this setting.
The SeparatorYSpacing is always added to the YSpacing.
The minimum value is -YSpacing so you can "remove" the spacing.
The default is 0 (same space as between every other entry).
AutoSeparator BOOL
AutoSeparator INT
Show an automatically added !Separator in !PopupDynamicFolder, !PopupFolder, … entries.
0 or false
No AutoSeparator feature. This is the default.
1 or true
AutoSeparator between folders and files in !PopupFolder and !PopupDynamicFolder (and subfolders)
2
AutoSeparator between Title and folders/files and AutoSeparator between folders and files in !PopupFolder and !PopupDynamicFolder (and subfolders)
3
AutoSeparator between Title and folders/files and AutoSeparator between folders and files in !PopupFolder and !PopupDynamicFolder (and subfolders) and AutoSeparator at the end of a popup.
OverlapX INT
Determines how much a sub-menu will overlap its parent menu in the 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 the vertical direction.
If no value is provided, then the default is -TopBorder.
OpenToLeft BOOL
If this command is present all folders open to the left instead of to the right by default.
AutoMenuBreak BOOL
If this command is present the popup menu automatically makes a new column instead of the MultiPart implementation.

Tooltips

TooltipMode STRING
STRING can be .none, .defined, or .all.
If set, the popup entries have tooltips, either use .all for all entries, or .defined for only those which are explicit defined (recommended). A line break is possible with "\n".
You assign a tooltip to an entry by adding it after a "|" in the caption.

Example:

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

Additionally all xPaintTooltip settings are valid for the xPopup tooltips.

The needed xPaintTooltip prefix is (popup-name) which most likely is "xPopup".

Transparency Features

AlphaTransparency INT
Sets the alpha transparency of the popup (eg. you will see the background or a window you drag below the popup shine through).
Valid values are 0-255, where 0 is totally transparent and 255 is opaque.
If no value is provided, then the default is 255.
OS requirement: Windows 2000 or newer.
AlphaMap BOOL
If this command is present the popup uses real per-pixel alpha transparency used in PNG images.
Caution: !Hook lines don't work with alphamapped popups.
OS requirement: Windows 2000 or newer.
AlphaFade BOOL
AlphaFade STRING
STRING can be .mainpopups or .allpopups.
If this command is present the popup will be fade in/out on show/hide.
true or .allpopups would fade in/out all popups.
.mainpopups would only fade in/out the top level popups.
OS requirement: Windows 2000 or newer.
CustomAlphaFade INT INT
The parameters are: stepsize delay
Makes the popup fade in/out on show/hide.
stepsize is the number of transparency steps to take when animating (range 0 - 255).
delay is the time in ms to pause at each step.
OS requirement: Windows 2000 or newer.
DropShadow BOOL
If this command is present the popup will have the "drop shadow" invented with Windows XP.
OS requirement: Windows XP or newer.

Other

PinnedPopupNotOnTop BOOL
If this command is present the pinned popups will not allways be on top of other windows.
ManualUnPin BOOL
If this command is set to false, you cannot close popup menus by double clicking them.
This means that you cannot remove pinned popups without displaying it again or using !(popup-name)Unpin.
EnableDragnDrop BOOL
Simple Explorer-style drag 'n' drop support inside xPopups.
You can drag 'n' drop files and folders inside xPopups. (Only single basic existing files and folders and no joined folders or folders useing filters like *.mp3.)
The dragged item is really moved on the hard drive to their new position just like in the Explorer start menu.
Usage: Choose a file or a complete folder, keep the left mouse button down on it, hold the mouse button down and navigate to the popup or popup-folder you want to move it to and release the button. As long as you keep the button pressed you can do whatever you want, you can even use a totally different (pinned) popup.
If the item you dragged was a valid file/folder and the destination was a valid folder the file(s) are moved after a confirmation. (Since this really moves real files on your hard disk you need to confirm that this is really what you want to do.)
Shadeable BOOL
If this command is set to false, you cannot shade popup menus by right clicking on the TopBorder.
FolderOpenOnClick BOOL
If this command is present sub folders needs to be clicked on to open. The default is to open when they are hovered on.
CloseAfterAction BOOL
Default is true.
If this command is set to false, popups stay open even after clicking an entry. The purpose is to allow multiple actions at once without needing to pin the popup or opening it again.
Press CTRL during the click use the opposite mode of what this is set to.
So if you want to quickly open three programs in a popup folder simply press CTRL during the clicks and the popup stays open.
If you have set CloseAfterAction to false and want the popup to close after the click press CTRL as above.
IgnoreHiddenAttribute STRING
STRING can be .none, .folders, .files, or .all.
Ignores the attribute hidden of files/folders, if set. That means hidden folders and files are displayed in the popup.
AutoHide BOOL
If this command is present the popup hides as soon as the HideDelay timer times out and the cursor doesn't hover over a popup. You might need a bigger value for HideDelay, if you really want to use this feature.
ExportHoverState BOOL
If this command is present the caption and action of the hovered entry is exported.
See Exported Variables for more information.

Icon

ShowIcon BOOL
Controls the visibility of the icons in popup entries.
If no value is provided, then the default is true.
Keep in mind that you can disable single states inside the xPaintIcon class.
LargeIconChangeAt INT
The parameter is threshold
If the IconSize (of the xPaintIcon class) is equal to or bigger than threshold a large icon is extracted and used.
Default is 32 (32x32 Icon)
Minimum value is 17
DefaultIcon STRING
Use this icon in popup entries that don't have their own icon.
FolderIcon STRING
Use this icon in popup folder entries that don't have a custom icon set (by using .icon=).

Text

ShowText BOOL
Controls the visibility of the text in popup entries.
If no value is provided, then the default is true.
Keep in mind that you can disable single states inside the xPaintText class.
ShowExtensions BOOL
ShowExtensions STRING
The STRING is an "exclusion list"
Shows extension of popup entries. If the exclusion list is set the specified extensions will never be shown, all others will be displayed.

Example:

; Don't show .lnk, .bat, or .pif file extensions
ShowExtensions ".lnk|.bat|.pif"

Timers

HideDelay INT
Popup hide delay (checking interval), if popup menu should be hidden.
If no value is provided, then the default is 250 (ms), if this is too long for someone, set this maybe to 100.
FolderOpenDelay INT
This command specifies how long the mouse must be over a folder entry before the sub folder is opened.
If no value is provided, then the default is 1 (ms).
MultiPartScrollDelay INT
If you hover over the TopBorder or BottomBorder of a multi part popup menu the different parts "scroll" (or, better said, switch) after the specified delay.
If no value is provided, then the default is 2000 (ms).
TasksUpdateInterval INT
Update interval for pinned tasks popup or dynamic content menus.
If no value is provided, then the default is 5000(ms).

xPopup Background Setup

All xPaintTexture settings are valid for the xPopup background.

The needed xPaintTexture prefix is (popup-name), normally "xPopup".

OverlayPopup Setup

Overview

First of all, an overlay popup isn't a normal popup, it's only a plain image overlay. You can use overlay popup for alpha map overlays, texture overlays, colorizing, … You can combine as many overlay popups as you want and they can overlap each other.

Syntax

*(popup-name)OverlayPopup COORDINATE COORDINATE DIMENSION DIMENSION STRING #[STRING]
The parameters are x y width height settingsprefix flags
All position and sizing options of the normal xPopup is available to setup the position and size of the overlay popup.
settingsprefix is needed in all overlay settings and works just like (popup-name) for normal xPopups.
flags can be a or empty. a means that the overlay uses an alpha mapped image.

Examples:

; For a complete and automatically adapted overlay use for instance:
*xPopupOverlayPopup 0 0 100% 100% ghost #
; For a 20 pixel border on the right side without overlay:
*xPopupOverlayPopup 0 0 -20 100% ghost #
*xPopupOverlayPopup 10 10 24 24 ghost # ; settingsprefix is now "ghost"
 
; The correct syntax for the overlay popup settings are now:

GhostPaintingMode        ".image"
GhostImage               "image.png"
GhostSaturationIntensity 75

Settings

All xPaintTexture settings are valid for the overlay popup.

The needed xPaintTexture prefix is settingsprefix as defined in your *(popup-name)OverlayPopup line.

Entry State Setup

There are seven different types of entries: Entry, ActiveEntry, Folder, ActiveFolder, Info, ActiveInfo, and Separator.

Entry
This is the basic type. Entry is used for example for a shortcut to a program or a command to execute.
ActiveEntry
This is an entry that is currently active, most likely because the user is holding his/her mouse over it.
Folder
This is the second most common entry. Folder entries are used for folders and sub folders in the popup menu.
ActiveFolder
This is a folder that is open or in some other way selected.
Info
This is an entry that displays info to the user. Like the time of the day for example.
ActiveInfo
This is an info entry that is currently active, most likely because the user his holding his/her mouse over it.
Separator
This is a visual separator between different parts of the popup menu.
Title
This is the entry at the top of the popup. It is used to display the popup title and to be able to drag the popup around.
Bottom
This entry is displayed at the bottom of the popup. The popup can be dragged around by this entry.
Arrow
You can display an arrow next to folders. This entry is used to configure how that arrow looks.
ActiveArrow
The arrow displayed on active folders.

The type of entry you want to configure will be referenced as (entry-type) later in this documentation.

If you set a setting for Entry this setting becomes the default for ActiveEntry, Folder, ActiveFolder, Title, Bottom, Arrow, and ActiveArrow. If you set a setting for ActiveEntry this becomes the default for ActiveFolder. If you specify ActiveFolderUseFolderDefault, Folder is used as default for ActiveFolder.

Examples:

; All popup entry types gets a saturation intensity of 70.
xPopupEntrySaturationIntensity 70
; Only active popup entries get a saturation intensity of 70.

xPopupActiveEntrySaturationIntensity 70

Default Setup

ActiveFolderUseFolderDefault BOOL
If this command is present the ActiveFolder entry settings uses the Folder settings as defaults.
This setting affects ActiveFolder defaults for all specific settings (Texture, Font and Icon).

Entry Texture Settings

All xPaintTexture settings are valid for the popup entries.

The needed xPaintTexture prefix is (popup-name)+(entry-type). (popup-name) is normally "xPopup".

Example:

xPopupEntryPaintingMode       .image
xPopupEntryImage              popup_entry.bmp
 
xPopupActiveEntryPaintingMode .image
xPopupActiveEntryImage        popup_activeentry.bmp

Special Arrow Setup

The Arrow and ActiveArrow xPaintClasses are only displayed on Folder entries. Arrow is Default for ActiveArrow.

Arrow and ActiveArrow have the following extra settings:

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 this command is present the arrow is painted on the left side of the entry instead of the right side.
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 this command is present 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.

Entry Icon Settings

All xPaintIcon settings are valid for the popup entry icons.

The needed xPaintIcon prefix is (popup-name)+(entry-type).

You can not use Bottom, Arrow, or ActiveArrow for (entry-type) since these entries doesn't have an icon. Extra settings are needed to use the Title entry type and the special Pinned entry type.

Example:

; All popup entry states have a horizontal icon position of 5.
xPopupEntryIconX 5
; Active popup entries have a vertical icon position of 5.
xPopupActiveEntryIconX 5

Special Title and Pinned Entry Settings

TitleShowIcon BOOL
This command is needed to enable the Title entry type in the icon configuration.
PinnedShowIcon BOOL
This command enables a new entry type you can use with xPaintIcon.
Using this command together with PinnedIconPath lets you define an icon to show on pinned popups.
PinnedIconPath STRING
The parameter is path
Defines the icon that will be used to mark a pinned popup.
path should define a full path to an icon. The icon can be a .ico file or an icon embedded in a dll or exe file.

Entry Font Settings

All xPaintText settings are valid for the popup entries.

The needed xPaintText prefix is (popup-name)+(entry-type). (popup-name) is normally "xPopup".

Examples:

; All popup entry states will have a font height of 20.
xPopupEntryFontHeight 20
; Active popup entries will have a font height of 22.
xPopupActiveEntryFontHeight 22

Special Text Arrow Setup

UseTextArrow BOOL
If this command is present the text arrows are enabled.
ArrowText STRING
STRING defines the text that will be used as the folder text arrow.
ActiveArrowText STRING
STRING defines the text that will be used as the active folder text arrow.

OverlayEntry Setup

Overview

First of all, an overlay entry isn't a normal popup entry, it's only a plain image overlay over the existing entries. You can use overlay entries for alpha map overlays, texture overlays, colorizing, … You can combine as many overlay entries as you want and they can overlap each other.

Syntax

*(popup-name)OverlayEntry COORDINATE COORDINATE DIMENSION DIMENSION STRING #STRING
The parameters are x y width height settingsprefix flags
All position and sizing options of the normal popup entries are available to setup the position and size of the overlay entries.
x sets the horizontal position of the overlay relative to its parent.
y sets the vertical position of the overlay relative to its parent.
width and height sets the size of the overlay entry. The overlay is always relative to the current entry size, so most of the time you will probably use "100%" for width and height.
settingsprefix works just like (popup-name) for normal popups. Place settingsprefix in front of any settings you want to apply to your overlay entry.
flags can be a or empty. a means that the overlay uses an alpha mapped image.

Settings

All xPaintTexture settings are valid for the overlay entries.

(entry-type) used below is a place holder and can be one of the following:

Entry
Default value for all states
ActiveEntry
ActiveEntry state
Folder
Folder entry state
ActiveFolder
ActiveFolder entry state
Info
Info entry state
ActiveInfo
ActiveInfo entry state
Title
Title of the popup
Bottom
Bottom of the popup
Separator
Separator entry

The needed xPaintTexture prefix is settingsprefix+(entry-type). settingsprefix is defined in your *(popup-name)OverlayEntry line.

Examples

; For a complete and automatically adapted overlay use for instance:
*xPopupOverlayEntry 0 0 100% 100% OverlayEntry #
; For a 20 pixel border on the right side that the overlay 

; doesn't cover use something like
*xPopupOverlayEntry 0 0 -20 100% OverlayEntry #
; This would display an overlay entry which is 6 pixel bigger 
; than the normal entry ("glow effect")

*xPopupOverlayEntry ~6 ~6 100%+12 100%+12 testoverlay #a
*xPopupOverlayEntry 10 10 24 24 Overlay # ; settingsprefix is now Overlay

 
; The correct syntax for the overlay entry settings are:
OverlayEntryPaintingMode       ".image"
OverlayEntryImage              "ghost_n.png"
OverlayActiveEntryPaintingMode ".image"
OverlayActiveEntryImage        "ghost_a.png"

Bang Commands

!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 [STRING]
The parameter is reload
This Bang command completely resets xPopup and reloads its settings.
If you set the optional reload to "reload" xPopup will actually be unloaded from memory and then loaded again. This causes a loss of manually set evars. A plain !PopupRescan does not cause the loss of evars from memory.
With this command you don't need to unload and then reload xPopup if you want to make changes to the *Popup lines or some appearance setting. For example, doing !SetEvar xPopupShowIcon false and then !PopupRescan will result in turning off icons on the fly. (Note: !SetEvar is an xLabel Bang command.)
!Popup [COORDINATE] [COORDINATE] [STRING]
!Popup [STRING]
The parameters are x y anchor or anchor
Shows the first defined popup menu on the screen (at the current mouse position or at the defined position x and y).
anchor is the position of the displayed popup relative to the mouse cursor or the specified x and y coordinates. It can be:
  • topleft (this is the default)
  • topcenter
  • topright
  • centerleft
  • centercenter
  • centerright
  • bottomleft
  • bottomcenter
  • bottomright
!PopupDynamicFolder STRING
!PopupDynamicFolder STRING [COORDINATE] [COORDINATE] [STRING]
!PopupDynamicFolder STRING [STRING]
The parameters are path or path x y anchor or path anchor
Shows a popup menu with the specified path on the screen without the need to define/configure it in your rc-files.
The popup will be shown at the current mouse position or at the defined x and y coordinates.
anchor is the position of the displayed popup relative to the mouse cursor or the specified x and y coordinates. It can be:
  • topleft (this is the default)
  • topcenter
  • topright
  • centerleft
  • centercenter
  • centerright
  • bottomleft
  • bottomcenter
  • bottomright
!PopupTasks [COORDINATE] [COORDINATE] [STRING]
!PopupTasks [STRING]
Shows a popup menu with the currently running tasks on the screen without the need to define/configure it in your rc-files.
The popup menu will be shown at the current mouse position or at the defined x and y coordinates.
anchor is the position of the displayed popup relative to the mouse cursor or the specified x and y coordinates. It can be:
  • topleft (this is the default)
  • topcenter
  • topright
  • centerleft
  • centercenter
  • centerright
  • bottomleft
  • bottomcenter
  • bottomright
!PopupControlPanel [COORDINATE] [COORDINATE] [STRING]
!PopupControlPanel [STRING]
!PopupMyComputer [COORDINATE] [COORDINATE] [STRING]
!PopupMyComputer [STRING]
!PopupNetwork [COORDINATE] [COORDINATE] [STRING]
!PopupNetwork [STRING]
!PopupPrinters [COORDINATE] [COORDINATE] [STRING]
!PopupPrinters [STRING]
!PopupRecentDocuments [COORDINATE] [COORDINATE] [STRING]
!PopupRecentDocuments [STRING]
!PopupRecycleBin [COORDINATE] [COORDINATE] [STRING]
!PopupRecycleBin [STRING]
Shows a shell folder popup menu on the screen without the need to define/configure it in your rc-files.
The popup menu will be shown at the current mouse position or at the defined x and y coordinates.
anchor is the position of the displayed popup relative to the mouse cursor or the specified x and y coordinates. It can be:
  • topleft (this is the default)
  • topcenter
  • topright
  • centerleft
  • centercenter
  • centerright
  • bottomleft
  • bottomcenter
  • bottomright

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

!(popup-bang) [COORDINATE] [COORDINATE] [STRING]
The parameters are x y anchor
Shows the popup menu defined as (popup-bang) on the screen.
The popup menu will be shown at the current mouse position or at the defined x and y coordinates
anchor is the position of the displayed popup relative to the mouse cursor or the specified x and y coordinates. It can be:
  • topleft (this is the default)
  • topcenter
  • topright
  • centerleft
  • centercenter
  • centerright
  • bottomleft
  • bottomcenter
  • bottomright
!(popup-bang)Reposition [COORDINATE] [COORDINATE]
!(popup-bang)Reposition [COORDINATE] [COORDINATE] [STRING]
!(popup-bang)Reposition [COORDINATE] [COORDINATE] [DIMENSION] [DIMENSION]
!(popup-bang)Reposition [COORDINATE] [COORDINATE] [DIMENSION] [DIMENSION] [STRING]
The parameters are x y or x y anchor or x y width height or x y width height anchor
Repositions (moves and/or resizes) the popup menu.
anchor is the position of the displayed popup relative to the mouse cursor or the specified x and y coordinates. It can be:
  • topleft (this is the default)
  • topcenter
  • topright
  • centerleft
  • centercenter
  • centerright
  • bottomleft
  • bottomcenter
  • bottomright
The x and y values can take the special values "CurrentX" and "CurrentY", which will be replaced with the actual position of the popup.
!(popup-bang)Pin
Pins and shows the popup at the current position. Call !(popup-bang)Reposition before calling this Bang command.
!(popup-bang)UnPin
Unpins and hides the popup.
!(popup-bang)Toggle
Toggles the popup between visible and not visible.
!(popup-bang)TogglePin
Toggles between pinned and unpinned. When pinning the popup it will also be shown, when unpinning the popup it will also be hidden.
!(popup-bang)ToggleShade
Shades/unshades the popup. (Shaded means that you only see the title.)

Events

Title and Bottom mouse actions

The size of the title is configured with the TopBorder command.

The size of the bottom area is configured with the BottomBorder command.

OnTitleLeftClick SPECIALACTION
Default is .move
OnTitleMiddleClick SPECIALACTION
Default is .none (Scrolling with the middle mouse button is still possible)
OnTitleRightClick SPECIALACTION
Default is .toggleshade
OnBottomLeftClick SPECIALACTION
Default is .none
OnBottomMiddleClick SPECIALACTION
Default is .none (Scrolling with the middle mouse button is still possible)
OnBottomRightClick SPECIALACTION
Default is .none

Events

OnFolderDoubleClick ACTION
If a folder is double-clicked with the left mouse button the ACTION is executed with the path of the folder appended to the ACTION command.
Default is Explorer.exe with a folder tree layout.
OnDrop STRING
STRING can be 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 popup menu/quicklaunch
OnOpen ACTION
OnClose ACTION
OnShade ACTION
OnUnShade ACTION
The ACTION is executed when a toplevel popup is shown.
Inside of the ACTION "%[popupname]%" and "%{popupname}%" will be replaced with the actual name of the popup. (Both %[popupname]% and %{popupname}% are used due to possible interactions with xLabel's !ParseEvars)

SoundEvents

The "OpenSound" and "CloseSound" events are only defined for top level popups. (Popups you have defined with "!new" - "~new".)

xLabel or xLabelLight >= v3.0 must have been loaded for these commands to work.

OpenSound STRING
The parameter is soundfile
Played when a popup menu has been opened with a Bang command.
CloseSound STRING
The parameter is soundfile
Played when a popup menu has been closed.
SwitchSound STRING
The parameter is soundfile
Played when a different entry has been selected.
ActionSound STRING
The parameter is soundfile
Played after an action (left click) on an entry has been performed and the popup closes.

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 xLabel has not yet added them, causing LS to think the variables are undefined.

Only useful, if used in handtyped Bang commands (LSXCommand), or if you use it in mzscripts, or with "my" special !ParseEvars Bang command. To use $evars$ in Bang commands, which contain the "current" value, use the escape code %# and prefix the Bang command you want to use with !ParseEvars. $MyPopupCurrentWidth$ becomes %#MyPopupCurrentWidth%# and so on …

Only top level popups exports their current position and size. If the popup is called with !MyPopup then its current position and size is exported with the prefix "MyPopup".

$(popup-bang)CurrentX$
The current horizontal position of the popup.
$(popup-bang)CurrentY$
The current vertical position of the popup.
$(popup-bang)CurrentWidth$
The current width of the popup.
$(popup-bang)CurrentHeight$
The current height of the popup.
$(popup-bang)ExportedHoverCaption$
The current caption of the hovered entry.
ExportHoverState needs to be enabled to use this exported variable.
$(popup-bang)ExportedHoverAction$
The current action of the hovered entry.
ExportHoverState needs to be enabled to use this exported variable.

General Settings

(popup-name)CacheLevel INT
The INT value specifies the level of the subfolder caching upon startup.
0
Nothing (default)
1

The following folders are cached:

*Popup Folder ? *Popup ~folder

!PopupFolder, !PopupDynamicFolder

2
Subfolders of the above (level 1) are cached.
TasksFolders aren't precached!
Positive effect of caching: You will never have to wait for the first creation.
Negative effect of caching: More resources are used.
(popup-name)NoLoadingPopup BOOL
If this command is present it disables the "Loading…" popups.

Customized popup menus

TopLevel Customization

*Popup STRING !new !STRING [STRING]
The parameters are title (popup-bang) (popup-name)
This command defines a new popup. The popup can be shown by using the Bang command !(popup-bang). By specifying the optional (popup-name) you can customize the look and behavior of this specific popup menu.

Examples:

; This creates a popup menu based on "xPopup..." settings:
*Popup "Caption/Title" !New !PopupBang

*Popup ~New
 
xPopupEntryPaintingMode .image
xPopupEntryImage        "entry.png"
;xPopup...
; Specifying a (popup-name) you can for example create a 
; popup menu that is based on "CustomPopup..." settings.

*Popup "Caption/Title" !New !PopupBang CustomPopup
*Popup ~New
 
CustomPopupPaintingMode .image
CustomPopupEntryImage   "customentry.png"

;CustomPopup...

Important:
No matter what (popup-name) you specify the popup will be part of the "xPopup" group. To change this you have to explicitly tell the popup what group(s) it should be part of by using AddToGroup. You need to configure the whole popup with the new prefix (all settings starting with "xPopup") if you set (popup-name)AddToGroup "".

Global Subfolder Customization

Global custom subfolder setup (all subfolders of every popup get the configured subfolder layout.)

*xPopupCustomSubFolder STRING
The parameter is settingsprefix
settingsprefix is used like (popup-name) to specify settings for the sub folders.
The first *xPopupCustomSubFolder line specifies the first subfolder level, the second *xPopupCustomSubFolder line specifies the second subfolder level, etc.

Now you can add another option to create a popup menu which is for instance based on "Level1" settings.

; This makes the first level subfolders in the popup menu based on "Level1" settings
*xPopupCustomSubFolder Level1
 
Level1EntryPaintingMode .image

Level1EntryImage        "level1entry.png"
;Level1...

Important: The default for any *xPopupCustomSubFolder groups is to be added to the parent popup group. If you want it to be part of another group you'll have to use the AddToGroup setting with the correct prefix. You can also remove it from any groups by calling AddToGroup with an empty string as the parameter.

; This will remove Level1 from all groups
Level1AddToGroup ""

Specific SubFolder Customization

Using this you can have a different setup for specific (manually defined) subfolders. Supported folder definitions:

These entries support %%Prefix%DefaultForPrefix%% as a very last argument (both parts are optional).

First value (after %%) is the layout prefix, the second (after %) the default for that layout. At the end follows a %% to close the setup.

; This makes a popup menu based on "MyLayout..." settings
*Popup "Folder" !PopupFolder:"c:\Litestep" %%MyLayout%%
 
MyLayoutPaintingMode .image

MyLayoutEntryImage   "entry.png"
; MyLayout...

Important:
All subfolder specification groups are by default part of the xPopup group.

; This makes a popup menu based on "MyLayout..." settings with the 
; default "MyLayoutDefault..."

*Popup "Folder" !PopupFolder:"c:\Litestep" %%MyLayout%MyLayoutDefault%%
 
MyLayoutPaintingMode .image
MyLayoutEntryImage   "entry.png"
; MyLayout...

It might be worth noting that

*Popup "Folder" !PopupFolder:"c:\Litestep" %%MyLayout%MyLayoutDefault%%

is the same as

*Popup "Folder" !PopupFolder:"c:\Litestep" %%MyLayout%%
MyLayoutAddToGroup   "MyLayoutDefault"

Special Quicklauch Mode

Overview

The Quicklaunch mode is very simple, because there are better modules for this purpose! You can only use a popup menu 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 you probably don't want your quicklaunch menu to look the same as your normal xPopup popup menus.

*Popup "Quicklaunch" !new !popupquicklaunch quicklaunch

One or more lines like the one below, just like in normal popup menus.

*Popup ...

The end of the popup menu.

*popup ~new

Now the needed (my opinion) settings for a very basic horizontal Quicklaunch menu:

quicklaunchAddToGroup          ""
quicklaunchQuicklaunchMode     .horizontal
quicklaunchQuicklaunchItemSize 32
quicklaunchEntryIconSize       32
quicklaunchxSpacing            4
quicklaunchySpacing            4

quicklaunchLeftBorder          4
quicklaunchRightBorder         4
quicklaunchTopBorder           4
quicklaunchBottomBorder        4
quicklaunchPaintingMode        .multicolor
quicklaunchColors              c0c0c0 000000

quicklaunchBevels              1

The colors, images, icon settings, spacings etc can naturally be adapted to your personal taste. Hope this short explanations are enough to show you how to make use of the quicklaunch mode.

Settings

QuicklaunchMode STRING
STRING can be .horizontal, .horizontal+text, .vertical, .vertical+text 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.
If set to .horizontal+text, the popup gets a horizontal layout with tooltips.
If set to .vertical+text, the popup gets a vertical layout with tooltips.
Icon direction is always left?right / top?bottom and cannot be changed.
Wrap direction is always right / bottom and cannot be changed.
Default is .none.
QuicklaunchItemSize INT
Defines the square size of one QuicklaunchItem.
Default is 32, which means the item will be 32x32 pixels.
QuicklaunchOpenTo STRING
The parameter is direction
Defines the direction to which the Quicklaunch will open sub folders.
direction can be ".right" or ".left" in horizontal mode.
direction can be ".top" or ".bottom" in vertical mode.
Default is ".top" or ".right".
QuicklaunchWrapCount INT
Defines the amount of items to show before wrapping to a new line.
Default is 100 (almost unlimited).

Dynamic Evars

Dynamic evars are evars that can change value during runtime, without the need to !reload or !recycle LiteStep. Therefore the content of a popup can react directly on changed settings.

Dynamic evars are a special feature for themers wanting to create "interactive" popups.

If you want to use dynamic evars you enclose them in "%#" instead of "$" (as you would do with normal evars). If the dynamic evars 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 update the evars with xLabel's !SetEvar Bang command.

There are a few limitations:

*popup .icon=%#myicon%# "BlaBla" !action ; This works.
*popup %#myicon%# "BlaBla" !action       ; This does not work.

*popup %#mycontent%#                     ; If a custom icon is wanted, 
                                         ; this does not work.

Example popup definition:

*Popup "My Dynamic Popup" !new !mydynamicpopup

*Popup .icon=%#popupentrycontent%#      ; ".icon=" is needed if you want to customize 
                                        ; the icon.
 
*Popup "Dynamic Action" %#actionevar%#  ; The click action can be changed by changing

                                        ; $actionevar$ with !SetEvar
 
*Popup .icon="%#iconevar%#" "%#captionevar%#" %#actionevar%#
*Popup ~new

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

Dynamic Popup Loading

!PopupLoadCFG STRING STRING
The parameters are name path
This would create all popups defined in the file path starting with name.
name should be the prefix you used for the popup, including the *.
path is the path to the file containing the popup definition.

Use this for dynamic loading of "*Popup" definitions only when they are really needed. No permanent "include" needed.

Loaded lines aren't saved in the internal LS Evar table (less RAM needed with many popups). Changes in a newly (re)loaded Popup updates/replaces 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 popup config for the popup !testpopup with the following Bang commands 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, please 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.

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$

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
!PopupDynamicActionFolder:ACTION:FOLDER
This creates a 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 path of the clicked item as an argument.
Restriction: Subfolders are not visible.

If you only want to see folders (for example to build a theme switcher), with their full path as action, then use this escape sequence: (The important part is the "*\" at the end.)

*Popup "ActionFolder" !PopupActionFolder:!alert:"$ThemesDir$*\"

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 Bang commands.

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/.

Special Folder Support

ShellFolders Support

ShellFolders work as in Popup2. The supported folders are:

Tasks Folder Support

TaskFolders work as in Popup2, with the addition of application context menus on RightClick:

xStatsClass Info Entry

You can use and display all sort of text information inside of a popup entry. You can display everything supported by "xStatsClass". The information is painted on the popup background or on the info background, if specified. Just load xStatsClass-1.x.dll before xPopup-2.0.5 and use the following syntax.

*Popup !info STRING
The parameter is xstatsclassescape
xstatsclassescape is an xStatsClass text escape sequence.

Example: To create a clock, use this:

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

You can setup an entry texture 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 font settings.

xPopupInfoFontHeight 20
xPopupInfoFontColor ff0000

See xStatsClass for more information and a list of all the supported escape sequences.

Module Hooking Support

You can hook every module into your popup menu, but unfortunately the syntax isn't very nice.

*Popup !hook:LeftBorder:RightBorder:ModuleWidth:ModuleHeight !ModuleHookBang BangArg1 BangArg2 … %%BANG TO MOVE MODULE%%
Hooks a module in to the popup.

Ok, that was quite the mouthful, now the explanation:

LeftBorder: The number of pixels from the left side of the popup, at which the hooked module should start. RightBorder: The number of pixels from the right side of the popup, at which the hooked module should end. ModuleWidth: The width of the hooked module. ModuleHeight: The height of the hooked module.

!ModuleBang BangArg1 BangArg2 …: The Bang command the module you want to hook uses for hooking and that Bang command's arguments. You will have to look this Bang command up in the documentation of the module you want to hook inside the popup.

For the correct positioning (y-coordinate) xPopup must know what Bang command to use to move the module. So, if there is such a Bang command available just specify it here. Otherwise you must calculate the correct y-coordinate in the module settings. A Bang command like this can for example be %%!CommandMove%%. It's important that you remember the double %% before and after the Bang command.

If you set all of LeftBorder, RightBorder, ModuleWidth, and ModuleHight to 0, the module will only be hooked and not positioned. This means you can size and position it manually exactly where you want it in the popup menu. It will not be considered as an entry that needs free space.

Example:

; Hooking the xLabel "MyLabel"
*Popup !hook:0:0:100:20 !LabelLSBoxHook MyLabel %%!LabelMove MyLabel%%

Special Features

Popup Menu Consisting Of Only One Folder

*Popup "Caption/Title" !new !PopupBang "SyntaxPrefixToUse"

    *Popup "Invisible" !PopupFolder:$Litestepdir$
*Popup ~new

You can use all SubFolder creating methods.

Or, with the following Bang command (for an explanation, see Bang commands ):

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

Or, you use this special feature of xPopup: !InsertFolder:"full path"

The folder's content is inserted directly at (after) this line, not in a sub folder. Pipes and wildcards are supported.

Example:

; This will add the complete $startmenu$ at (after) this line.
*Popup !InsertFolder:"$startmenu$"

Multiple Popup Columns

To create a new column in a popup menu use:

*Popup Menubreak

After that entry the popup menu starts a new column from the top.

Or use the automatic method:

xPopupAutoMenubreak BOOL
If this command is present xPopup automatically makes new columns, if required, instead of scrolling the menu.

Custom Sorting In Folders

You can add [##] before the filename to enable sorting based on the 2-digit number (##), the "[##]" before the filename will not be displayed. These files will be displayed first sorted with growing numbers.

Filename              Displayed name
------------------------------------
[00]IrfanView.lnk     IrfanView.lnk
[02]ZOrdertest.lnk    ZOrdertest.lnk
[20]AdAware.lnk       AdAware.lnk
Another.lnk           Another.lnk
BasicFiles.lnk        BasicFiles.lnk
...                   ...

Custom Icons For Entries

You can set (or remove) custom icons for every defined popup entry.

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

"…" defines the custom icon.

Shading Popups

To toggle shaded popups, simply right-click on the title/caption(/top border). When the popup is shaded only the title (top border) and the bottom border is shown, all entries are removed. This is intended to be used with pinned popups, but it works for normal popups and sub-popups too.

Shaded popups stay shaded, until you "unshade" them.

Start Pinned To Desktop

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

*xPopupStartPinned !(popup-bang) [COORDINATE] [COORDINATE] [STRING]
The parameters are: popup-bang x y anchor
x and y are the position of the popup and they support standard positioning syntax like '-', '~' or 'c'.
anchor is the position of the displayed popup relative to the specified x and y coordinates. It can be any of the following:
  • topleft (this is the default)
  • topcenter
  • topright
  • centerleft
  • centercenter
  • centerright
  • bottomleft
  • bottomcenter
  • bottomright

Pin To Desktop

To separate a popup menu and make it stay on the desktop, just press CTRL+SHIFT and press down-arrow or, if it's a sub folder, simply drag it away from the parent.

To kill it, hover over the popup and press CTRL+SHIFT and up-arrow or make a left double-click on the popup top border or bottom border.

Keyboard Navigation

You can navigate through the popup menus with the keyboard.

Simply use up, down, left and right arrow keys to switch between entries and use return to execute or escape to close.

As alternative xPopup supports & (ampersand) in manually entered captions to define a "jump key". Use this key to jumps to this entry. If no jump key is defined the first entry whose caption starts with that key gets selected.

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

If you have a mouse with additional mouse buttons, the 4th should work as the left arrow key and the 5th as the right arrow key (or maybe vice versa).

Chording (only the first two characters)

If you quickly press another key after the first, the first entry matched by both keys will be selected. So, of you have many entries with "A" and you want "Animation", simply press "A" and then quickly thereafter "N".

Scroll Through Entries

You can scroll up and down through the entries in the popup either with your mouse wheel, by pressing the middle mouse button, or by using the keyboard (see above).

To scroll/switch between complete parts of the popup use PageUp and PageDown keys or press CTRL during mouse wheel scroll.

To open a sub folder after scrolling through the entries simply perform a left click on the current folder.

Multi Part Popup Menus

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