Recent changes:

* The default OneClickActivation YES enable 'one click activation' (ie: the apps/document are launched as soon as you release the mouse). Activation is cancelled if you wait on the tile until the tip goes visible (so you can see file path of tile without activating it). This feature is experimental.
* Save position of docks

My e-mail is <stark@easynet.fr>



As I really miss the NeXT/OPENSTEP dock, I took a week-end to build mine.



Features:

* Tiles of any size (automagically antialiased)
* Any number of tiles (but it have to be configured by hand, which is a bug)
* Launched/unlauched apps get their little dot
* Possibility to put non application files on the dock (so it can serves as a poor man shelf)
* Drag file onto an app is 'open with'
* And more...

Minimal use of it:

* The little bar at the bottom left of the screen is the dock. It is divided in a certain amount of little squares, that are called the tiles. Tiles can be empty (they get a little bezel and a darker background) or filled (the icon of the item appear on the shelf)

* If you drag an application (or regular file) from anywhere to an empty tile, it is added to the dock (any manipulation on the dock is instantaneously saved. Docks are located in '~/Library/DaffyDocks'

* Double-clicking on a non empty-tile open the file/application represented there.

* You can empty a tile by dragging its content more than 64 pixels away (you can re-organisate your dock this way too).

* If you drag a file on a tile containing an application, it will be opened with this application (even if it is not supposed to be openable with it. This way you can drag/drop executable shell scripts onto edit, or '.png' files onto Preview). If the tile is not an application, then the dragged file is opened by the application that the workspace would use to open the file in the tile (This is intended so you can keep your dock small. If you always want project builder to open a specific project at startup, like the app you are working on, then you can put only the PB.project in the dock and use it as a proxy to PB, if you want to open other files with PB [as TextEdit.app is a real crap, I open almost all text files with PB. Anyone ready to write a Edit.app replacement ?]).

* If the item represents an application that is not launched, then little 'dots' appear on the lower left corner of the tile. It'll disappear when the application is launched. There are bugs if you have multiple copies of the same app running.

* If you double-click on an edge of the dock, you'll collapse it. Double-clicking on it again will uncollapse it

* There is an app menu that enable to choose tile size.

More advanced use:

* If you click on a tile and keep the button pressed for one second, a little message appear telling your the path of the file stored here. This is usefull if you have dock elements that looks alike (folders, for instance)

* If you hold the alternate key while double-clicking on a tile, all running apps will be hidden before launching the tile application.

* If you hold the alternate key while dragging from the dock, the file will not be removed from the dock (so you can use it a system-wide file shelf)

* If you drag a file on the collapsed dock, it'll open so you can interact with it and close shorty after. Such 'temporary un-collapsed' dock have an ugly color to distinguate it from normal state.

* If you move the mouse on top of a collapsed dock and press the control key, it'll open so you can interact with it and close shorty after your mouse get away from it. I'm loving this feature.

* If you control-click on a dock tile, you'll have a contextual menu with the folowwing options:
- Open: Simulate a double-click on the tile
- Remove: Empties the tile
- Copy path: copies the represented path in the pasteboard. Usefull for pasting in Terminal.app
- Kill: kills all running instances of this application. Does not ask for confirmation.
- Force launch: allows to run a second copy of an application (double-clicking would only activate it)
- Select in Workspace: selects the tile content in the workspace
- Add... : brings an open panel so you can choose a file to put on the tile (only works on empty tiles)
- Size submenu : enables you to choose a suitable size for the dock tiles.

Forthcoming features, if I have time (which I doubt, unless I have report from users):

* Resize of the dock to add/remove tiles (actually, you can do this by editing the ~/Library/DaffyDocks/*.dock files)

* Multiple dock. You can already create multiple docks by duplication of the existing one in ~/Library/DaffyDocks/. I should save dock position in files.

* Dragging multiple files is not implemented yet (what should it do ? Put them in several tiles or put them all in one tile ? Or let the user choose ?)

* Vertical layout

* Color.

* Automatic dock: icons could be added/removed to represent running applications, mounted volumes. This way we could drag files onto running applications, like we used to do with OS42.

* Special tile to represent the trash. This way, I could remove the stupid screen-shelf of the Viewer.app .

* Keep standard output of launched apps separate, so it would not go into the sluggish workspace console. I could highlight tiles that have pending output

* Have a way to put UNIX commands in tiles and have a way to add custom icons to them.

Bugs (many):

* OmniWeb is not handled correctly because the running application is not OmniWeb.app/OmniWeb, but OmniWeb.app/OmniWeb.app/OmniWeb. I refuse to work around this (ie: a kludge to work around a kludge)

* Sometimes un-collapsed dock don't re-collapse automatically.

* There are still warnings in the code (this is just a week-end hack, after all)

* Did not try to port it to windows (it should probably be done very differently on windows)

