home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computerworld 1996 March
/
Computerworld_1996-03_cd.bin
/
idg_cd3
/
utility
/
freedk25
/
history.txt
< prev
next >
Wrap
Text File
|
1996-02-14
|
13KB
|
225 lines
History of development of FreeDock
==================================
1.01 alpha - First release to Angus, Neil & Martin
1.02 alpha - Fixed 2 bugs discovered by Martin :
1) I windows directory is a SUBST'd drive, when the dock
creates the path name to the program manager for files
which have no icons (.PIF, .COM etc.) the path was incorrect
since it contained an extra \ i.e. p:\\progman.exe, this
has been corrected by checking for the presence of a
trailing \ and only adding one if required.
2) When starting a DOS session from a .PIF file, with a
stored window position, the FreeDock window was moved to
the stored position & size, this was caused by getting the
active window too soon. It was solved by adding a loop which
retries 25 times to get the active window which is not the
dock window, if this fails it does not try to position the
window.
1.03 - Added the ability to drag slots around the dock, dropping a slot
in an empty position moves the slot to that position. Dropping
a slot in an occupied position swaps the location of the two
slots. Dragging a slot off the dock, indicated by the cursor
changing to a skull and crossbones removes the slot from the
dock.
Removed save option, .ini file now saved after any changes made.
Removed confirmation dialog from Exit Dock & remove slot options.
1.04 - Fixed bug which was only partly fixed in 1.02 (1), the fix
prevoiusly provided correctly for .PIF, .COM & .BAT files, but
not for DOS .EXE files, this has now been corrected.
1.05 - Improved slot moving, icons do not now flicker when being moved,
and picking up a slot now causes it to be picked up from the dock
instead of only picking up a copy as was the case before.
1.06 - Added Choose Icon option which displays all icons in a file in
pages of 50 icons at a time and allow the user to click on the
icon they wish to choose.
Added Browse options to the App name and Iconfile fields, selecting
a new app results in the icon file being changed to match the app
,if it contains any icons, otherwise the icons file is set to the
program manager & Icon 2 is selected. If the App contains icons,
the first icon in the file is selected.
1.06a - Minor addition, when files are associated, in the program manager,
with an executable which is given as prog.exe (i.e. only the name
and not a full path) the dock would fail to find the exe correctly
and therefore be able to get the icon required. This has been
solved by doing a searchpath() on all exe's for associated files.
1.06b - Minor modification to the logic which detects when a slot has been
dragged off the dock, to stop all slot redraws whilst it is not
visible (i.e. outside the dock) this also had the effect of
stopping the skull & crossbones (Slot Remove Cursor) from
flickering.
1.06c - Minor modification to the logic for detecting the diference
between the first click of a double-click and a click or button
down prior to dragging. Problem was causing icon to jump around
in the dock when it was doubleclicked, this was caused by it
momentarily being picked up and then dropped as the first click
of the double click was processed. This has now been fixed.
1.07 - Tidied up for first release.
1.08 - Fixed a bug which meant that if multiple files were dropped on an app in
FreeDock the filenames were cat'd together & passed to the app. Now separates
the filenames correctly with a space char.
Added feature which allows the user to right click on an empty slot & have
an empty slot dialog pop-up which can then be filled in with app details.
This version was only released to eff who promptly found a bug in it.
1.09 - Fixed bug in 1.08 which resulted in the change dock position option not
working correctly. Rewrote positioning code so that the dock is now
repositioned as the user clicks the [top|bottom|left|right] radio buttons
on the main dock options dialog. Dock pos is also stored at this point to
allow it to be restored if the user selects cancel.
Fixed a minor bug which resulted in changes made in the main dock options
dialog not being saved (Spotted by Brian Duncan).
1.10 - Dock can now be dragged around like any other window, position
is saved in .ini file. Dock position option in main options
dialog now only has 2 options (horizontal & Vertical) for the
orientation of the dock.
Dock Size can now be adjusted in the Main options Dialog,
slots which are not displayed because the dock is too small are
not lost, they are still stored in the .ini file.
User can now select to launch an application in a slot with
a single click (in main options dialog).
1.11 - (Not Realeased, just an archive point)
Ported Freedock to NT, compiling with MS VC v1.5 & v2.0, Freedock
now comes in 2 forms, 16 & 32 Bit (FREEDK16.EXE, FREEDK32.EXE).
Tidied up the code a bit (not much :-) Added an entry to each slot
to allow it's icon to be stored in the slot, these are still
read from the original files at startup.
Added a startup option to allow any application in the dock to be
started as "Always On Top". Integrated the Choose Icon button
into the Icon display in the Application Options Window, now you
just click on the current icon in the Application Options dialog
to get the Choose an Icon dialog.
There is a minor problem with the way NT handles GetCapture which
means that to grab a window, you must keep the right mouse button
held down, position the grabber icon over the window to grab and
then left click. This can be fixed by redoing the mechanism so
that a grabber tool is dragged from the Application Options window
and dropped on the desired window. Ala MSVC v2.0 Spy++ grabber.
1.20 - Reworked the mechanism for Caching Icons, there is now only a
single bitmap and hdc into which all the icons are stored at
various locations (Slot.IconIndex is the X coordinate of the Icon
within the IconCache with Y always 0). This method saves on
resources (handles the DC's & Bitmaps).
Reworked the Window Grabber tool so that it is now dragged from
the Application Options dialog box (which automatically hides
itself) onto the window whose size and location is to be grabbed.
This gets around NT's method of handling the GetCapture() call.
I suspect there may still be a resource leak of some kind in
Freedock, but I cannot track it down at present.
1.20a - Added OS dependent Title Icon, now shows which version of Freedock
is running (16 or 32 bit)
1.20b - Fixed a problem with the spawning of programs which had command
lines (NT Only). Speeded up saving code by making it only update
the slot which had changed. Tried to solve resource leak problem
but it still seems to be present, still minor at the moment.
1.21 - Added conditional code for positioning of stored window positions
under NT, fixed a bug in the reading of the .ini file which meant
that the dock orientaion was always horizontal. Added calls to
FindExecutable to resolve location of progman.exe when searching
for it to load the default icon from it.
1.21a - Added a debug window which displays the IconCache, since this
cannot be viewed in a debugger, the window also shows the
contents of the DockOptions and Slot[] data structures. The code
for the debug window can be conditionally compiled by setting or
commenting out the #define DEBUGGING_ON line in debug.h. When the
code is compiled in, the debugging window is activated by starting
Freedock with a /DEBUG command line option. Added code to update
slot's entry in the ini file when they are dragged about the dock
this was missed when I changed the method of updating the Ini file
to selectively update changed slots instead of just saving the
entire data structure. The debugging window is a hack and can
have side effects so don't use it unless you have to.
1.30 - Added a preview button to the Application Options dialog, this
allows the user to preview or edit the stored window position /
size for an application in the dock.
1.40 - Bug fixes to slot dragging/saving code and some conditional
NT code
2.00 - Debugged code ready for release.
2.01 - Not quite debugged enough yet....
2.02 - Tidied up NT Application execution code, made it easier to add
applications to the dock by right clicking on an empty slot,
entering the app name (with or without path) an select OK. The
Runtime Dir, Icon File and full pathname are setup automatically.
Added an About button to the Main Application Options Dialog.
Runtime dir is checked for existance before an application is
started.
2.03 - Corrected wrong text in an error message.
2.03a - Oops, I had an incorrect definition in the resource file which
effectively stopped the Main Options "Always on Top" option
from working.
2.05 - Added ability to scale the entire dock from x2 down to 8th size.
Maximum Dock size is now controlled via the MaxDockSize variable
in the [Main Options] section of the .ini file.
Added an NT application start-up option for "Start in separate
memory".
2.05a - Added hand cursor when dragging slots around in the dock.
Grabber Tool is now "Dragged-off" the Grabber Button & the user
has the option to hide the Application Options Dialog during the
grabbing.
Added support for separate .INI files for the 16 & 32 bit versions
of FreeDock, these are called FreeDK16.ini & FreeDK32.ini.
2.5 - Restuctured all internal data to facilitate incorporation of
sub-dock feature at a later date.
Added ability to lock the dock to stop slots accidentally being
dragged off the dock.
fixed a few bugs in the 2.5beta.
2.5a - Ooops, a few bugs crept into the last set of changes, these were
1) dock failed to save main options when OK clicked,
2) dragging a slot around a magnified dock didn't work properly
(Error in size of bitmap cache)
3) Options for Exit Windows & Mail box didn't appear.
Things still to be done
=======================
1) [Most important] Write the manual !
2) Consider idea for having slots which are groups, this causes the associated
icons to pop out at 90 degrees to the dock when the slot is selected.
Problems : How to add/move/remove slots in a group ?
I have tinkered around with this problem and I think that inorder to do
it properly it will probably take a while & may be best written in C++.
3) Addability to add/remove special built-in slots in the current session,
i.e. don't need to restart FreeDock to get built-ins to appear.
[Not terribly important]
4) Discover how to implement the Max View option which would allow the dock
to control the maximising of other windows to enable it always to be
visible (if selected by user).