Latest version of xPopup is 2.2
This is xPopup-2.2, 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
Add some new LoadModule lines somewhere in your theme configuration, similar to the following (this assumes that xPopup-2.2.dll resides in "C:\Litestep\Modules"):
LoadModule "C:\Litestep\Modules\xPaintClass-1.0.dll" LoadModule "C:\Litestep\Modules\xStatsClass-1.1.7.dll" LoadModule "C:\Litestep\Modules\xPopup-2.2.dll"
or the newer *NetLoadModule lines:
*NetLoadModule xPaintClass-1.0 *NetLoadModule xStatsClass-1.1.7 *NetLoadModule xPopup-2.2
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.
true
or false
)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.
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:
true
. TopBorder
+ BottomBorder
and ImageTopEdge
+ImageBottomEdge
.false
you cannot move popup menus with TopBorder
or BottomBorder
as you would otherwise be able to do.false
sub folders that are dragged away from their parent popup menu aren't automatically pinned.distance
snapobject
snapobject
can be all
, desktop
, or popups
.distance
of 10 pixels.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
left
right
top
bottom
.none
, .top
or .bottom
.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.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.EntryHeight
.EntryHeight
.YSpacing
between entries and separators with this setting.SeparatorYSpacing
is always added to the YSpacing
.YSpacing
so you can "remove" the spacing.false
true
TopBorder
..none
, .defined
, or .all
..all
for all entries, or .defined
for only those which are explicit defined (recommended). A line break is possible with "\n".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".
.mainpopups
or .allpopups
.true
or .allpopups
would fade in/out all popups..mainpopups
would only fade in/out the top level popups.stepsize
delay
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.false
, you cannot close popup menus by double clicking them.!(popup-name)Unpin
.false
, you cannot shade popup menus by right clicking on the TopBorder
.true
.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.CloseAfterAction
to false
and want the popup to close after the click press CTRL as above..none
, .folders
, .files
, or .all
.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.Exported Variables
for more information.true
.threshold
IconSize
(of the xPaintIcon class) is equal to or bigger than threshold
a large icon is extracted and used..icon=
).true
.Example:
; Don't show .lnk, .bat, or .pif file extensions ShowExtensions ".lnk|.bat|.pif"
TopBorder
or BottomBorder
of a multi part popup menu the different parts "scroll" (or, better said, switch) after the specified delay. All xPaintTexture settings are valid for the xPopup background.
The needed xPaintTexture prefix is (popup-name)
, normally "xPopup".
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.
x
y
width
height
settingsprefix
flags
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
All xPaintTexture settings are valid for the overlay popup.
The needed xPaintTexture prefix is settingsprefix
as defined in your *(popup-name)OverlayPopup
line.
There are seven different types of entries: Entry, ActiveEntry, Folder, ActiveFolder, Info, ActiveInfo, and Separator.
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
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
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
.ArrowOnLeft
.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
PinnedIconPath
lets you define an icon to show on pinned popups.path
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.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
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.
x
y
width
height
settingsprefix
flags
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.All xPaintTexture settings are valid for the overlay entries.
(entry-type)
used below is a place holder and can be one of the following:
The needed xPaintTexture prefix is settingsprefix
+(entry-type)
. settingsprefix
is defined in your *(popup-name)OverlayEntry
line.
; 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"
reload
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.!SetEvar xPopupShowIcon false
and then !PopupRescan
will result in turning off icons on the fly. (Note: !SetEvar
is an xLabel Bang command.)x
y
anchor
or anchor
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:path
or path
x
y
anchor
or path
anchor
path
on the screen without the need to define/configure it in your rc-files.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: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: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: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"!
x
y
anchor
(popup-bang)
on the screen.x
and y
coordinatesanchor
is the position of the displayed popup relative to the mouse cursor or the specified x
and y
coordinates. It can be:x
y
or x
y
anchor
or x
y
width
height
or x
y
width
height
anchor
anchor
is the position of the displayed popup relative to the mouse cursor or the specified x
and y
coordinates. It can be: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)Reposition
before calling this Bang command.
The size of the title is configured with the TopBorder
command.
The size of the bottom area is configured with the BottomBorder
command.
.move
.none
(Scrolling with the middle mouse button is still possible).toggleshade
.none
.none
(Scrolling with the middle mouse button is still possible).none
move
, copy
or shortcut
.
!ParseEvars
)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.
soundfile
soundfile
soundfile
soundfile
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".
ExportHoverState
needs to be enabled to use this exported variable.ExportHoverState
needs to be enabled to use this exported variable.The following folders are cached:
*Popup Folder ? *Popup ~folder
!PopupFolder, !PopupDynamicFolder
title
(popup-bang)
(popup-name)
!(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 custom subfolder setup (all subfolders of every popup get the configured subfolder layout.)
settingsprefix
settingsprefix
is used like (popup-name)
to specify settings for the sub folders.*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 ""
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"
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.
.horizontal
, .horizontal+text
, .vertical
, .vertical+text
or .none
.horizontal
, the popup gets a horizontal, icon only, layout with tooltips..vertical
, the popup gets a vertical, icon only, layout with tooltips..horizontal+text
, the popup gets a horizontal layout with tooltips..vertical+text
, the popup gets a vertical layout with tooltips..none
.direction
direction
can be ".right" or ".left" in horizontal mode.direction
can be ".top" or ".bottom" in vertical mode.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/.
name
path
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/.
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.
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/.
ShellFolders work as in Popup2. The supported folders are:
TaskFolders work as in Popup2, with the addition of application context menus on RightClick:
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.
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.
You can hook every module into your popup menu, but unfortunately the syntax isn't very nice.
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%%
*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$"
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:
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 ... ...
You can set (or remove) custom icons for every defined popup entry.
" " defines the custom icon.
.none
.
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.
To make a popup menu visible and pinned on the Desktop, just do this:
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: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.
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).
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".
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.
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.