Unit AppBar

***************************************************************************} { } { TAppBar Class v1.4 } { implements Application Desktop Toolbar } { (based on J.Richter's CAppBar MFC Class) } { } { Copyright (c) 1997/98 Paolo Giacomuzzi } { e-mail: paolo.giacomuzzi@usa.net } { http://www.geocities.com/SiliconValley/9486 } { } {

Classes

TAppBar - TAppBar class ////////////////////////////////////////////////////////////

Functions

Types

TAppBarEdge
TAppBarFlag
TAppBarFlags
TAppBarMessage
TAppBarSettings
TAppBarSettingsLocation
TAppBarTaskEntry

Constants

AB_DEF_DOCK_SIZE
AB_DEF_KEY_NAME
AB_DEF_ROOT_KEY
AB_DEF_SIZE_INC
SLIDE_DEF_TIMER_INTERVAL
WM_APPBARNOTIFY

Variables


Functions


Types


TAppBarEdge = (abeLeft, abeTop, abeRight, abeBottom, abeUnknown, abeFloat);
An AppBar can be in one of 6 states shown in the table below: State Description ----------- ----------------------------------------------------- ABE_UNKNOWN The Appbar is in an unknown state (usually during construction/destruction) ABE_FLOAT The AppBar is floating on the screen ABE_LEFT The Appbar is docked on the left edge of the screen ABE_TOP The Appbar is docked on the top edge of the screen ABE_RIGHT The Appbar is docked on the right edge of the screen ABE_BOTTOM The Appbar is docked on the bottom edge of the screen The ABE_edge state constants are defined in SHELLAPI.PAS as follows: ABE_LEFT = 0; ABE_TOP = 1; ABE_RIGHT = 2; ABE_BOTTOM = 3; The ABE_UNKNOWN and ABE_FLOAT constants are defined here as follows: ABE_UNKNOWN = 4; ABE_FLOAT = 5; The following enumerated type defines the constants in the table (Values are mutually exclusive
TAppBarFlag = (abfAllowLeft, abfAllowTop, abfAllowRight, abfAllowBottom,
                 abfAllowFloat);
An AppBar can have several behavior flags as shown below: Flag Description --------------------------- ----------------------------------- ABF_ALLOWLEFT Allow dock on left of screen ABF_ALLOWRIGHT Allow dock on right of screen ABF_ALLOWTOP Allow dock on top of screen ABF_ALLOWBOTTOM Allow dock on bottom of screen ABF_ALLOWFLOAT Allow float in the middle of screen The following enumerated type defines the constants in the table
TAppBarFlags = set of TAppBarFlag

TAppBarMessage = (abmNew, abmRemove, abmQueryPos, abmSetPos, abmGetState,
                    abmGetTaskBarPos, abmActivate, abmGetAutoHideBar,
                    abmSetAutoHideBar, abmWindowPosChanged);
You can send to the Windows shell one of the following messages: Message Description -------------- -------------------------------------------------- ABM_NEW Register a new AppBar to the system ABM_REMOVE Remove a previously created AppBar from the system ABM_QUERYPOS Query the AppBar position ABM_SETPOS Set the AppBar position ABM_GETSTATE Get the edge the Appbar is docked to ABM_GETTASKBARPOS Get the Explorer Taskbar position ABM_ACTIVATE Activate the AppBar ABM_GETAUTOHIDEBAR Query if AppBar has Auto-hide behavior ABM_SETAUTOHIDEBAR Set the AppBar's Auto-hide behavior The ABM_message constants are defined in SHELLAPI.PAS as follows: ABM_NEW = $00000000; ABM_REMOVE = $00000001; ABM_QUERYPOS = $00000002; ABM_SETPOS = $00000003; ABM_GETSTATE = $00000004; ABM_GETTASKBARPOS = $00000005; ABM_ACTIVATE = $00000006; ABM_GETAUTOHIDEBAR = $00000007; ABM_SETAUTOHIDEBAR = $00000008; ABM_WINDOWPOSCHANGED = $00000009; The following enumerated type defines the constants in the table
TAppBarSettings = record
cbSize : DWORD;
abEdge : TAppBarEdge;
abFlags : TAppBarFlags;
bAutohide : Boolean;
bAlwaysOnTop : Boolean;
bSlideEffect : Boolean;
nTimerInterval : Integer;
szSizeInc : TSize;
szDockSize : TSize;
rcFloat : TRect;
nMinWidth : Integer;
nMinHeight : Integer;
nMaxWidth : Integer;
nMaxHeight : Integer;
szMinDockSize : TSize;
szMaxDockSize : TSize;
abTaskEntry : TAppBarTaskEntry;
end;
The record below contains all of the AppBar settings that can be saved/loaded in/from the Registry
TAppBarSettingsLocation = record
nRootKey : Integer;
KeyName : String;
end;
The record below contains the settings location in the registry
TAppBarTaskEntry = (abtShow, abtHide, abtFloatDependent);
The following enumerated type defines the AppBar behavior in the Taskbar

Constants

AB_DEF_DOCK_SIZE = 32

AB_DEF_KEY_NAME = 'Software\AppBar\1.4\Delphi'

AB_DEF_ROOT_KEY = HKEY_CURRENT_USER

AB_DEF_SIZE_INC = 1

milliseconds Defaults

SLIDE_DEF_TIMER_INTERVAL = 400

Timer interval

WM_APPBARNOTIFY = WM_USER + 100

AppBar's user notification message

Variables