/*
 * ************************************** 
 * 2xExplorer v0.99 by N.A.Bozinis
 * --------------------------------------
 * PROGRAM FEATURES AND BRIEF DESCRIPTION
 * **************************************
 */
 
In the good old days of MS/DOS some people had a strange fascination
with a program called NC. I openly admit being one of this group. In
fact I was missing it so much that I have decided it's high time I
built it's equivalent for the Windows 95 environment.

2xExplorer is similar to the standard Explorer, the main file management 
utility shipped with Windows 95, both in function and "feel" (looks).
The main difference and advantage of 2xExplorer is that TWO folders can
be displayed simultaneously, enabling the head to head comparison of
their contents. This is an indispensable feature for people constantly
on the move, like myself.

2xExplorer was developed with the "advanced" user in mind. Programs that
are meant to be used day in and day out, have to stand the test of time
beyond the first impressions. As I see it, a long lasting "relationship"
can only be sustained if all the operations are just an arm's length
away, and all the main controls and status indicators are concise and
clear. Why bother with target practising or do battles with clogged up
and foul mouse roller balls, when all you want to do can be performed
with the keyboard? Moreover all the program settings, even down to the
width of each column in the "Details" view, are persistent properties.
So each time you restart 2xExplorer it's like you pick it up where you 
last left it---no messing about with resetting your favourite options.

At the same time, less experienced users won't be driven/scared away.
In most respects this is another Windows 95 Explorer, and whoever is 
familiar with that, will feel immediately at home using 2xExplorer. Most
of the suggested protocols have been adhered to, including browsing
of "special" folders like the "Desktop" and "My Computer". The look is
not far off the standard Explorer either; one will even see the same
"animations" in Copying operations. Description of commands is readily
available in the form of explanatory text on the status bar and/or
tooltips popping out of toolbar buttons. Dialog windows have embedded
brief instructions of use---with complimentary icons too. ;-)


/////////////////////// FEATURES OF 2xExplorer ///////////////////////

* TWIN FOLDER VIEW
  The contents of two folders are visible at any given time. The main
  advantage here is that the contents can be compared and ultimately
  "synchronized", i.e. having all files in both folders identical.
  The Windows 95 Briefcase is meant to offer a similar capability but
  it is badly constrained by binding to two SPECIFIC and fixed folders.
  2xExplorer overcomes this limitation and assists the updating of 
  projects shared between computers (usually via an intermediate copy
  to a floppy disk). 

  Each of the two "panes" behaves similarly to the right hand side pane
  of the standard Explorer. Except for allowing two different folders to
  be browsed at once, the existence of two panes can be utilized in many
  ways, since they can be configured completely separately in all property
  departments (e.g. view style, sorting method etc.)


* ONE-STOP COPY/MOVE OPERATIONS
  Items can be copied or moved between panes with a single command, as
  opposed to a Copy/Cut followed by a Paste (double the trouble) that 
  has to be the case with the standard Explorer. The presence of two 
  panes in the 2xExplorer on the other hand, provides straightforward 
  target and source folders for these operations. The active pane (be
  it the left or right one) is always the source folder. The target will
  usually be the "other" (opposite) pane; however, an alternative folder
  can be specified if necessary. Note that whole directory sub-trees can
  be copied/moved whenever a folder item is selected.


* EMBEDDED EDITOR/VIEWER
  The contents of each file can be examined without resorting to the
  default associated application, by either viewing or editing it as
  "text" (naturally the double-click mechanizm is still supported). 
  This feature in a sense provides a second "association" for each
  file. Since the editor is embedded in 2xExplorer, it provides access
  to the file contents much faster than e.g. using Notepad.

  The embedded editor/viewer is packed with features and is perhaps
  what Microsoft should have done with the Notepad in the first place.
  The improvements include Font selection, powerful Search and Replace
  commands, Insert/Overwrite mode, etc. The programmers out there will
  benefit from many small yet important commands (too many to list here).
  Moreover, when viewing files it is possible to switch to Hexadecimal
  mode, where even non-text file contents can be examined---one for the
  hackers out there. Finally, the edit/view sessions are independent of
  the main program, so one is free to go back there mid-way, perhaps to
  simultaneously view another file (or two).


* COMPATIBILITY WITH EXPLORER
  I strongly believe that the Win95 Explorer is a most impressive
  application, perhaps the best thing to come out from the Microsoft's
  lair (second only to Visual C++). Hence 2xExplorer tries to stay close
  to it. Each one of the panes in 2xExplorer behaves similarly to the 
  right hand side pane in the Explorer. All four views are supported,
  namely large and small icons, list and details. The contents can be 
  sorted by the usual methods (name, size, etc.). The list header in the
  details view can be clicked for quick sorting, as an alternative to
  selecting the respective menu command. By the way, sorting "by Type"
  in 2xExplorer means "alphabetically by file Extension", as it should be
  ---no more .INI files before .BMP ones, what's the story Microsoft?
  
  The visual compatibility is completed by a similarly looking toolbar
  and status bar. The menus however differ due to the different
  functionality offered by 2xExplorer. Finally, many keyboard shortcuts
  are retained unchanged (e.g. Alt+Enter invokes the item Properties
  page, Backspace moves to the parent folder, etc.).
  
  In many respects, 2xExplorer relies on the natural MS/DOS file 
  extensions being visible in its panes. Note that this "reliance" is
  too strong a word to use, since the program will run flawlessly 
  without any file extensions shown. However, in such cases a number
  of operations offered may seem "mysterious" as e.g. the "Sort by
  Extension" command. Moreover, in the detailed item view there is no
  fourth column for the Win95 file types, since that information is
  basically intrinsic in the file extension. That is why sometimes
  2xExplorer will show a message on the status bar (when first started)
  suggesting the user to turn MS/DOS extensions on, using the relevant
  option from the standard Explorer. Still the program will function 
  properly even without these extensions.


///////////////////////// ADVANCED FEATURES /////////////////////////

As mentioned, 2xExplorer was developed for non-frustrating everyday use
in mind. Following is a list of features that will be appreciated under
this light, by all people poised with seeking maximum efficiency and
optimization in their lives---some jealous and/or incompetent folk would
maliciously use the term "control freaks" here. ;-)


* SWIFT SELECTION OF FOLDER TO BE BROWSED
  Unlike Explorer, the folder selection drop-down combo box on the 
  toolbar of 2xExplorer can be EDITED, i.e. one can go to any folder
  with a valid name. Either absolute or relative paths are accepted, 
  including any combinations of the parent ("..") and root ("\") folder
  specifiers---which Microsoft seem to have "forgotten". In my personal
  experience it is much faster to type a known folder name rather than 
  furiously clicking here and there, especially if the target folder is
  more than a single step away in the hierarchy tree.

  Apart for accepting path names, the same combo box can be used to 
  specify the filter of the files to be displayed in the pane, e.g. 
  restricting the view to cover only "*.cpp" files. Hence a single 
  multi-purpose box can be used either for path or filter selection,
  or even both at the same time. Many similar applications provide a 
  separate command for setting the filter, which is bound to be time
  consuming in comparison.

  The drop-down portion of the folder selection combo lists the names
  of the folders that have been recently visited. This allows rapid
  switching backwards and forwards between folders, if need be.
  The functionality of the Explorer drop down toolbar control ("Goto a
  different folder") is provided via an alternative route, the "Select 
  Drive" command (Alt+F1/F2). Here it is possible to move quickly to 
  any disk drive unit available on the computer.

  Finally, it should be noted that all the boxes that accept paths in
  2xExplorer (throughout the application, as e.g. in the Copy dialog),
  have similar "smart" parsers supporting them, and are fully path-
  "conscious", both for relative and absolute paths. For instance the
  difference between "C:" and "C:\" is properly resolved.


* COMPREHENSIVE ITEM SELECTION MECHANIZMS
  In a sense, 2xExplorer is mainly an item selection engine. Any 
  operations like Delete, Copy, etc. require a selection to act upon.
  As the folder contents seem to be steadily increasing nowadays, a smart
  selection procedure is an indispensable tool. 2xExplorer offers two 
  levels of screening. The view filter mentioned in the previous section
  is the first level, helping to narrow down the items shown in a pane 
  to those conforming to a traditional DOS pattern (using the "wild" 
  characters '*' and '?').

  Items shown in any pane can be further "Marked" as selected using a
  variety of alternative routes. Items can be selected or unselected 
  using a wild pattern (different than the view filter), the selection
  can be inverted, etc. Individual items can be selected with the mouse
  as in the Explorer, by clicking on them while holding down the Control
  key. "Lasso" selection is also possible, as is selection using the
  arrow keys while holding down the Shift key. A nice little number is
  the selection of a file by entering the first character (or even sub-
  string) of its name---this admittedly is standard behaviour, but how
  many people are there being aware of it?

  Slightly more "upmarket" is the capability to mark files that contain
  some user-supplied text. This is similar to an option in the Win95 
  "Find" utility (contained in the "Advanced" page), although in 
  2xExplorer the command accepts a larger degree of tweaking (e.g. case
  sensitivity, option to skip binary files, etc.). Unfortunately in the
  present version the string searched for is fixed, i.e. no regular
  expressions are recognized---as e.g. in the "grep" command. But I urge
  you to watch this space...
  
  Except for the regular operations on selected files/folders, there is
  a special "treat" for all the old hands out there, that most probably
  would have wished for a similar capability all those years back in 
  the dark (isn't it normal for places without windows?) DOS ages. Enter
  the batch file generator. Using a command template with special 
  characters for the path/filename/extension, it is possible to apply
  the same series of commands on each selected item with minimum effort.


* SMART KEYBOARD SHORTCUTS
  A design specification of 2xExplorer is to provide keyboard shortcuts
  for all important and commonly used commands. Most accelerators are
  shown next to the respective menu command and are also included in
  the tooltips, acting as a quick reminder.

  The really useful attribute here is that the Control key can be used
  to modify the scope of an accelerated command. For instance, the F5
  key used for copying will normally summon a dialog box, requesting 
  the target folder for the operation. Although the "opposite" pane
  folder name will be usually pre-selected, and the only action required
  from the user would be a single Return key press for acceptance,
  wouldn't it be better if one could do away with the dialog box 
  altogether? That is exactly what the Control key does as a modifier 
  to commands like Copy (F5): pressing Control+F5 will result in an
  IMMEDIATE copy, dispensing with the dialog. All commands that use an
  intermediate dialog box and could somehow accept a default answer 
  without any user intervention can be similarly modified using the 
  Control key.


* GENERAL USABILITY
  The author has pledged for the utmost usability of this program---
  or your money back! ;-)  All dialog boxes offer reasonable suggestions
  so that you won't have to do much typing yourself. Even in case you
  do need a bit of typing, the most appropriate field will be usually
  pre-selected so one can start altering the information immediately
  and mouse-free. Another anti-typing measure is the maintenance of
  history items, so there is no need to re-type what you just entered
  a short while ago. As a matter of course, most boxes meant for 
  keyboard editing will have a drop-down part carrying the recent 
  history information (combo boxes).

  All this history information is saved when you quit 2xExplorer, and is
  made available next time you restart the program. This holds true for
  all the properties that affect the operation, as e.g. the overwrite
  confirmation in the Copy/Move dialog box. Incidentally I believe that
  all such properties should be accessible from the place they are used
  from---not from a general property-page type of dialog encompassing 
  all the program properties, completely out of context. That's why one
  won't come across many property pages in this program...


* FOLDER SUBTREE DATA
  Inquisitive minds will surely find the summary information offered by
  a standard property page of any folder to be rather on the brief and
  utterly unsatisfying side. 2xExplorer provides detailed information 
  about a folder including detailed breakdown of the included files and
  sub-folders (and the respective storage space occupied) all the way
  down to the last sub-folder in the hierarchy tree.


* EXTENDED FILE DATE INFORMATION
  All 3 pieces of file date/time information available (last Modified,
  first Created and last Accessed) are available in the details view---
  by selecting the relevant property from Options page---unlike the 
  Explorer where only the last modified time can be seen. This feature,
  except for allowing easy access to file time stamp information, also 
  enables the sorting of files using dates other than the modification 
  one. This is useful in many cases where one would like to detect e.g.
  files that have been recently accessed (without being modified).


////////////////////////// KEYBOARD SHORTCUTS /////////////////////////

In addition to the shortcuts shown next to each command in the menus of
2xExplorer, the following accelerators are also available:

ACCELERATOR    DESCRIPTION OF COMMAND
-----------------------------------------------------------------------
Tab            Cycle between left/right panes
Shift + Tab    Jump to the folder history drop-down combo box
Esc            (from within the folder combo box) Return to active pane

Shift + Del    Delete the selected items immediately without transfer
               to the Recycle bin (CAUTION:this action can't be undone)
Alt + F1       Select drive for the left pane
Alt + F2       Select drive for the right pane
Ctrl + F5      Direct copy of selected items to the opposite pane
Ctrl + F6      Direct move of selected items to the opposite pane
Ctrl + Grey[+] Direct marking of items using the last selection pattern
Ctrl + Grey[-] Direct unmarking of items using the last pattern
Ctrl + Bksp    Direct browse (go to) shell's root folder (Desktop)

Return         Browse for folder or execute the file under the cursor
Alt + Return   View/Change the properties of the selected item 
Insert         Mark the item under the (focus) cursor and move down
Arrow keys     Move the selection cursor to the respective direction   (*)
Home/End       Move the selection cursor to the beginning/end of list  (*)
PgUp/PgDn      Move the selection cursor a "page" (screenful) up/down  (*)

Double-Click   (equivalent to Return)
Shift + Click  Extend the selection up to the clicked item
Ctrl + Click   Select/Unselect an individual item, without affecting
               the selection state of the remaining items
-----------------------------------------------------------------------
(*) NOTE: Care should be exercised when using the arrow keys and the 
    other cursor relocating keys (Home etc.) on their own, since any 
    unqualified key-press will UNSELECT all items except the one that 
    the cursor will eventually end upon---hence running the risk of
    destroying a selection pattern in a swift stroke, which is 
    definitely not amusing at all. Unfortunately this is the standard 
    behaviour of the Windows95 List Control and there is no simple way 
    around this "problem". However, it is possible to move around using 
    the arrow keys and protect the selection state at the same time, if
    the CONTROL key is simultaneously kept pressed. Technically this 
    causes the relocation of the focus item only, i.e. the one that has
    a dotted rectangle drawn around it (the so called focus rectangle).


//////////////////////////// C R E D I T S /////////////////////////////

2xExplorer was developed using Visual C++ v4.0 by Nikos Bozinis in 1999.
Should you want to contact the author for any comments, suggestions,
bug reports or just for a pat on the back, the details follow:

CONTACT DETAILS --------------

(Mr.) Nikos Bozinis
1E Northstead Road, Tulse Hill
London SW2 3JN, United Kingdom

e-mail: n.bozinis@ic.ac.uk
 