
	Objectiv'D
	 Smurth 2009



Installation:
- Extract where you want
- Run "Objectiv'D.exe"
- Right-click on the tray icon on check "Start with Windows"



Uninstall:
- Make sure "Start with Windows" is not checked
- Quit Objectiv'D
- Delete it's folder



Key remaping:
- Easy Wheel: On wheel up/down, focus is given to the window/control under the
mouse, which greatly improve productivity.
- Easy Window Move/Resize: By holding down the "Windows" key, you can left-click
on a corner/border of a window to resize it. Click in the middle of that window
to move it.
- "Control+Backspace": delete the last word in an edit box, even in applications
which normaly don't support this feature.



Explorer key remaping et shortcuts:
Adress bar should be visible for most of these tricks to work correctly (but you can
move it to the far end of the toolbar and forget it)

- F2: rename a file without selecting the extension.



Desktop icons:
Icons can be add to the desktop. You can use all type of image supported by GDI+:
PNG, JPG, BMP, GIF, ICO, CUR, ANI, TIF, Exif, WMF, and EMF.
Images can be positionned anywhere on the screen and each can have its own size.
Of course, user defined icons react to events: OnMouseEnter, OnMouseLeave,
OnLeftClick, OnMiddleClick, OnRightClick.
Actions can be any executable or one of the internal function.
All actions can be chained by using "&&".
Look at the .ini for examples.



Menus:
You can easily create custom menus. Look at the .ini for examples.
Syntax:
*menu Displayed item=command (executable or internal functions); may use "&&".
*menu Displayed item=>sub-menu name (sub-menu should be defined before.
*menu Displayed item==conditional function. This feature will mark as "checked"
the menu item if the conditional function succed (see below).



Internal functions:

ToggleAutoStart:
This allow to toggle weither or not Objectiv'D will start with Windows.
Now, you can add this command on your own menus.


Shutdown <cmd>:
Can be one of the following: shutdown, reboot, logoff, suspend, monitoroff,
scrblank (darken the screen without turning it off), scrsaver (start the default
screensaver).


DoubleClick <action>:
Launch <action> on DoubleClick instead of SingleClick.
Example:
ONLEFTUP=DoubleClick Shutdown monitoroff


Menu <menuname> <cmd>:
Execute commands relative to menus:
; Popup (show) the menu <menuname>
Menu <menuname> Show
eg.: ONRIGHTUP=Menu Shutdown Show

; Toggle the "checked" mark of the calling menu item
Menu <menuname> ToggleCheck
eg.: *menu Start with windows=Menu TRAY ToggleCheck && ToggleAutostart

; Check or uncheck one or more menu items
Menu <menuname> Check <displayed item>[,<displayed item2>][,etc...]
Menu <menuname> Uncheck <displayed item>[,<displayed item2>][,etc...]


MenuFolder <dir1:dir2:...> | [<options]
Build a menu representing one or more folders, and show it.
Directories can be merged, separated by ":".
Directories should contain a file mask (eg. *.lnk)
<options>: Hex value describing the desired options. You can combine options by
adding them.
0x0100: Show sub-directories. If ommited, only files be will listed.
0x0200: Hide file extension.
0x0400: Show file size.
0x0800: Skip hidden files.
0x1000: Show last modification date.
0x00xx: Limit the menu width to xx characters.
Example:
ONRIGHTUP=MenuFolder DesktopCommon\*.*:Desktop\*.*| 0x1F00
Popup a menu representing the desktop's content (with all options activated)


TrashEmpty:
Empty the trash


BalloonTip <text> | [<title>] | [<icon>] | [<duration>]
title, icon, duration are optional. If you want to specify a duration but no title, use
something like this: BalloonTip text|||10000
<icon>: 0: None, 1:Info, 2: Warning, 3: Error. n > 3: assumed to be an hIcon.
<duration>: in milliseconds (as usual)


ThumbnailSize <size>
Change the size of the thumbnails in Explorer.
Adress bar should be visible to allow changing the size of the topmost explorer
windoow (otherwise, you must open a new explorer window).



Conditional functions:

These functions can be used in menus to conditionaly check some menu entries.
But they mostly will be use in chained commands to continue or break the chain.


MouseIsOver <timeout> | [<hwnd>]
Wait until timeout or cursor is no more over the icon/window it was when this
function was called.
<hwnd> is an optional window handle (you surely won't need this)
Example:
ONENTER=MouseIsOver 1000 && BalloonTip  Hello World
Wait 1s then popup "Hello Word" if the cursor is still over the same icon.


RegCheck RootKey, SubKey, valuename[, result]
Check if the value exist in the registry, or if the value equal "result" (if specified).
Rootkey: one of the following: HKLM (HKEY_LOCAL_MACHINE),
HKCU (HKEY_CURRENT_USER), HKU (HKEY_USERS), HKCR (HKEY_CLASSES_ROOT),
or HKCC (HKEY_CURRENT_CONFIG).
SubKey: The name of the subkey (e.g. Software\SomeApplication).



Variables:
Function calls can use variables enclosed in ""
Example:
ONENTER=MouseIsOver 1000 && BalloonTip Hour:Min
Wait 1s then popup the current time.

YYYY:				Current 4-digit year (e.g. 2009)
MM: 				Current 2-digit month (01-12)
DD:					Current 2-digit day of the month (01-31). Synonymous with A_MDay. 
MMMM:				Current month's full name in the current user's language, e.g. July
MMM:				Current month's abbreviation in the current user's language, e.g. Jul
DDDD:				Current day of the week's full name in the current user's language, e.g. Sunday 
DDD:				Current day of the week's 3-letter abbreviation in the current user's language, e.g. Sun 
WDay:				Current 1-digit day of the week (1-7). 1 is Sunday in all locales. 
YDay:				Current day of the year (1-366). 
YWeek:				Current year and week number (e.g. 200453) according to ISO 8601.
Hour:				Current 2-digit hour (00-23) in 24-hour time (for example, 17 is 5pm).
Min:				Current 2-digit minute (00-59).
Sec:					Current 2-digit second (00-59). 
MSec:				Current 3-digit millisecond (000-999).
Now:				The current local time in YYYYMMDDHH24MISS format.
NowUTC:			The current Coordinated Universal Time (UTC) in YYYYMMDDHH24MISS format. UTC is essentially the same as Greenwich Mean Time (GMT). 
TickCount:			The number of milliseconds since the computer was rebooted.
TimeIdle:			The number of milliseconds that have elapsed since the system last received keyboard, mouse, or other input.

TrashCount:			A string representing the number of items stored in the trash.
Temp:				The full path and name of the folder designated to hold temporary files.
Language:			The system's default language (4-digit codes). 
ComputerName:		The name of the computer as seen on the network.  
UserName:			The logon name of the user who launched this script.  
WinDir:				The Windows directory. For example: C:\Windows 
ProgramFiles:		The Program Files directory.
AppData:			The full path and name of the folder containing the current user's application-specific data. 
AppDataCommon:	The full path and name of the folder containing the all-users application-specific data. 
Desktop:			The full path and name of the folder containing the current user's desktop files. 
DesktopCommon:	The full path and name of the folder containing the all-users desktop files. 
StartMenu:			The full path and name of the current user's Start Menu folder. 
StartMenuCommon:	The full path and name of the all-users Start Menu folder. 
Programs:			The full path and name of the Programs folder in the current user's Start Menu. 
ProgramsCommon:	The full path and name of the Programs folder in the all-users Start Menu. 
Startup:				The full path and name of the Startup folder in the current user's Start Menu. 
StartupCommon:		The full path and name of the Startup folder in the all-users Start Menu. 
MyDocuments:		The full path and name of the current user's "My Documents" folder.
IsAdmin:			If the current user has admin rights, this variable contains 1. Otherwise, it contains 0.
ScreenWidth
ScreenHeight:		The width and height of the primary monitor, in pixels.
IPAddress1-4 :		The IP addresses of the first 4 network adapters in the computer. 




Todo:
- Add Virtual Desktops.
- Add support for removable drives icons.
- Replace regular desktop menu.



History:
090708: version 0.2: now everything can be customized (even the tray functions)
 - add: CLEARRECENTONEXIT
 - add: CLEARTEMPONEXIT
 - add: DESKTOPAREA
 - add: NOTASKBARICON
 - add! MenuFolder, RegCheck, ThumbnailSize and ToggleAutoStart
 - add: menu items Checking/Unchecking
090706: version 0.1: a lot of improvements (user icons and menu, events)
090703: first public release
