OverView
Another xModule: xPopup is starting!
You will say, "Another Popup Module, Why That?"
Well, let's enumerate some main features:
- Multiple Syntax for unlimited different Popups (each popup can have it's unique look).
- Continuous BG Picture (Popup can have ANY shape you wish)
- AlphaFading and AlphaTransparent Popups
- All Icons and Images can have different Saturation and Hueing
- All Text, Icon, Image, Gradient features you know from xLabel or xTaskbar
- Dynamic Info Entrys, which can provide ANY Info xLabel(Light) can serve (if loaded of course ;))
- General Module Hooking Support: You can hook LsxCommand in the Popup or the complete xTaskbar
- Compatible to *Popup settings in Compatibility Mode, so you don't have to change your settings in the Personal Folder. If you want to, you can load Popup2 and xPopup at the same time without problems.
If you combine all these things, you'll get even more possibilities.
But (There's always a "But"), some things are currently not supported! They will naturally be parsed out, they won't bother someone to remove them manually :)
Some Special abilities of Popup2 are obsolete due to "Dynamic Info Entrys" and "Module Hook Support", as there are:
!datetime, !remoteamp, !popupimage and !popuprun.
Also the special Popup Folders aren't implemented atm, as there are:
!PopupTasks, !PopupMyComputer, !PopupNetwork, !PopupControlPanel, !PopupPrinters, !PopupRecycleBin, !PopupRecentDocuments and !PopupDesktops
Start your engines =)
Main Settings
xPopupCompatibilityMode BOOL
If this is set xPopup reads the *Popup lines instead of it's own *xPopup lines.
This should allow you to use your old *Popup Menu Definitions, if you should switch completely to xPopup!
One major addition to the Default *(x)Popup PopupMenu definitions is the ability to setup different PopupStyles (Settings) for each defined PopupMenu!
Currently you define a new PopupMenu with the following:
*(x)Popup "Caption/Title" !New !PopupBang
This makes PopupMenu based on xPopup... Settings (xPopupEntryImage entry.png and so on).
Now you can add another Option to make PopupMenu's which are based on QuickPopup... Settings for instance (QuickPopupEntryImage entry.png and so on).
Example:
*(x)Popup "Caption/Title" !New !PopupBang quickpopup
Not so hard to understand, or? As always the LS-Universe Forum is open for questions :)
Settings
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.
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.
PinnedPopupNotOnTop BOOL
If this command is present, then the Pinned Popup's won't be AlwaysOnTop.
DropShadow BOOL
If this command is present then the Popup will have the "DropShadow" invented with WinXP.
Caution: This works only under WinXP!
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
If this command is present then the Popup will be fade in/out on Show/Hide.
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
Show a automatically added !Separator between Folders and Files in !PopupDynamicFolder and !PopupFolder Entry's.
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".
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.
DefaultFolderIcon ICON
Use this Icon in Popup Folder Entrys if no Icon is defined. If no value is provided then the default is "DefaultIcon".
ShowExtensions BOOL
Shows Extension of Popup Entry.
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".
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"Title, you should set your "TitleHeight" 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.
YSpacing INT
Y Space between Popup Entrys.
If no value is provided then the default is 0.
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 0.
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 0.
SaturationIntensity INT
This command specifies the color saturation of the continuous Popup BG Image (ONLY THE MAIN POPUP BG).
Minimum: 0 -> Grayscale
Maximum: 255 -> Full Colored (Default)
HueIntensity INT
This command specifies the amount of the, in the continuous Popup BG Image, blended in color (ONLY THE MAIN POPUP BG).
Minimum: 0 -> Nothing (Default)
Maximum: 255
HueColor COLOR
This command specifies the blended in color.
Default: FFFFFF
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 INT
Sets the size of the painted bevel in pixels.
Default: 0
SolidGradientColors (color) [(color)] [(color)] ...
If defined, a Gradient is Painted with the BackgroundColor and the specified Gradient Colors.
(NO GRADIENT PAINTED ON BORDER!).
SolidGradientVertical BOOL
If set, the Gradient is painted vertical instead of horizontal.
Popup Entry State Settings
Overview "Popup Entry Image Settings"
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 "Folder" then, THIS becomes Default for "ActiveFolder"!
"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!
Example:
xPopupEntrySaturationIntensity 70
All Popup Entry States have a SaturationIntensity of 70!
xPopupActiveEntrySaturationIntensity 70
Only Active Popup Entrys have a SaturationIntensity of 70!
Popup Entry Image Settings
Normal Images 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)SaturationIntensity INT
This command specifies the color saturation of the Popup Entry.
Minimum: 0 -> Grayscale
Maximum: 255 -> Full Colored (Default)
(Entry Type)HueIntensity INT
This command specifies the amount of the, in the Popup Entry, blended in color.
Minimum: 0 -> Nothing (Default)
Maximum: 255
(Entry Type)HueColor COLOR
This command specifies the blended in color.
Default: FFFFFF
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 INT
Sets the size of the painted bevel in pixels.
Default: 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)SolidGradientVertical BOOL
If set, the Gradient is painted vertical instead of horizontal.
Overview "Icon Settings"
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 "Folder" then, THIS becomes 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!
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)IconSaturationIntensity INT
This command specifies the color saturation of the icon.
Minimum: 0 -> Grayscale
Maximum: 255 -> Full Colored (Default)
(Entry Type)IconHueIntensity INT
This command specifies the amount of the, in the icon, blended in color.
Minimum: 0 -> Nothing (Default)
Maximum: 255
(Entry Type)IconHueColor COLOR
This command specifies the blended in color.
Default: FFFFFF
Overview "Font Settings"
The "(Entry Type)" in front of each setting means that every setting can be:
Title, Entry, ActiveEntry, Folder or ActiveFolder
If you set a setting with "Entry", then, THIS becomes Default for all other States except "Title"! If you set a setting with "Folder" then, THIS becomes 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!
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".
(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.
(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
Bangs
There are only the Bangs available you have defined Popup Menu's for.
!xPopup [x] [y]
or !Popup [x] [y]
in CompatibilityMode
Calls the first defined Popup menu on the Screen (at Current Mouse Pos or manually at the defined Position [x] and [y].
!(PopupMenuName) [x] [y]
Calls the Popup menu on the Screen (at Current Mouse Pos or manually at the defined Position [x] and [y].
Tips 'n Tricks
Compatible Popup2 Settings
You can use the following Popup2 Special Settings in *(x)Popup lines!
!Separator
!PopupFolder:[FOLDER]
!PopupDynamicFolder:[FOLDER]
!DynamicFolder:[FOLDER]
Popup Menu consisting of only one Folder
*(x)Popup "Caption/Title" !new !popupBANG "Syntax prefix to use"
*(x)Popup "Caption/Title" !popupfolder:$Litestepdir$
*(x)Popup ~new
xLabel(Light) Info Entry
You can use and display all Info, which "xLabel(Light)" can display inside of a Popup Entry (Painted on Popup BG). Just load xLabel(Light) and use the following "special" Syntax.
*(x)popup !info "xLabel(Light) Text Escape Sequence"
Example: To create a clock like with !datetime, make this entry
*(x)popup !info "[time('hh:nn:ss')]"
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
*(x)popup !hook:LeftBorder:RightBorder:Width of the Module:Height of the Module !Modulebang Userdata_1 (... Userdata_N) %%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.
Width of the Module: The Width of the Hooked Module.
Height of the Module: The Height of the Hooked Module.
!Modulebang Userdata_1 (... Userdata_N): 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!
Special Features
Pin To Desktop from Startup
To make a PopupMenu stay on the Desktop from start, just do this.
*xPopupStartPinned !(PopupBang) x y
x and y are the Position value and support standard positioning syntax as '-', '~' or 'c'.
Pin To Desktop
To Separate a PopupMenu and make it stay on the Desktop, just Press CTRL+SHIFT and Press Down-Arrow.
To Kill it: Hover over the Popup and press CTRL+SHIFT and Up-Arrow or make a DoubleClick on the Popup BG (Inactive 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.
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).
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, 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@ls-universe.info
If you have wishes for xPopup tell them also, maybe I can realize them =)
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.
www.LS-Universe.info