home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
hensa
/
windows
/
b100_1
/
!MultiScrn
/
!Help
< prev
next >
Wrap
Text File
|
1993-10-05
|
11KB
|
236 lines
!MultiScrn
==========
© 1993 Michael R. Ellis
How to use !MultiScrn
=====================
!MultiScrn provides up to ten views of the RISC OS desktop. Each view
can be displayed singly, or all ten views can be displayed simultaneously. It
is also possible to remove all windows so that pinboard items can be accessed
easily.
When !MultiScrn is first started it selects the first view, known as
"Screen 1", and all the windows visible are automatically placed onto this
screen. A row of buttons is added to the iconbar, and it is through these
that other screens may be selected.
Basic Operation
===============
!MultiScrn can operate in three distinct modes, namely Selected, All
and None. The names are pretty self-explanatory - Selected mode displays the
selected screen while All and None modes are used to display, respectively,
all and none of the available screens.
When first started, !MultiScrn is in the Selected mode. To select a
different screen you can either double-click Select over one of the buttons
above the iconbar or, alternatively, you can use ⇧^f1 (Shift-Control-f1) to
⇧^f10 to select screen 1 to 10 respectively. In Selected mode, each screen
can have a different screen mode and palette which will be set up when that
screen is selected. To change the screen mode and/or palette, simply use the
palette application (or any other, similar utility) as normal. To override
the automatic mode and palette change hold down Control while double-clicking
the appropriate button - it is not possible to override the mode change when
using the keyboard shortcuts.
Double-clicking on the currently depressed button will change
!MultiScrn into None mode. While in None mode all windows will be moved off
screen, the screen mode and palette will remain unchanged and any windows
created will be assigned to the screen in effect before None mode was entered.
Double-clicking any button with Adjust or pressing ⇧^f11 will change
!MultiScrn in All mode - the screen mode and palette will be those in effect
when All mode was entered. Any windows created while in All mode will be
assigned to all the screens.
Clicking Menu over the buttons produces a menu which can give
information about !MultiScrn, quit !MultiScrn or change the text displayed in
the button: !MultiScrn will automatically shorten the name to fit the available
space if necessary.
Advanced Operation
==================
Moving Windows around
---------------------
There comes a time when you want to move a window from one screen to
another, and !MultiScrn allows you to do this in several different ways which
are outlined below. All of the operations are based upon the filer methods of
moving and copying files around - it is much easier to understand the
descriptions if this is remembered.
Moving a single window is always done by dragging from a button on the
button-bar to a window. Two things must also be remembered. First, there is
only ever one copy of a window - if that copy is closed (using the normal
'close' icon on the window) then the window will disappear from all the screens
it appeared on. Second, iconised windows, backdrop windows and panes are
never affected by !MultiScrn.
Dragging with Select copies the window to the screen associated with
the button. This is similar to the method used by the filer to copy a file
from one place to another except that the drag occurs in the 'wrong' direction.
To move a window to a specific screen, shift-drag with Select just as
if you were going to copy a window as described above. The window will
disappear from all the screens it appears on and will re-appear on the
destination screen.
Dragging with Adjust instead will copy the window onto all the screens.
Shift-dragging with Adjust will attempt to remove the window from the currently
displayed screen. Note that !MultiScrn will not allow you to remove the window
from the last screen it appears on.
Moving Screens around
---------------------
It is possible to move all the windows on a screen to another screen by
dragging between two buttons on the button-bar. Dragging and shift-dragging
with Select both work as expected - the former copies all the windows while the
latter moves the windows. Note that in this case the drag works 'right way
round' - the windows are copied/moved from the screen you drag from and to the
screen you drag to.
Dragging and shift-dragging with Adjust is a little more complicated.
The former moves any window which currently appears on all screens to all
screens, the net result of which is that it does nothing! The latter moves
any window which currently appears on all screens to the destination screen.
Command-line Operation
----------------------
To ease the setting up of screens, a means is provided whereby the
currently selected screen and the names of any of the screens may be set from
the command line or an 'Obey' file. This is done by the "WIMP Messenger"
module included with MultiScrn. The commands recognised are :-
SendMessage MultiScrn Name <screen> <name>
SendMessage MultiScrn Set <screen>
where <screen> is a number between 1 and 10 (out of range values are ignored)
and <name> is a text string to be used as the name. The "Set" command also
understands the screen known as 'all'.
Note that there is a "bug" (feature) in all current version of the RISC OS
filer which prevents the Filer_OpenDir and Filer_CloseDir commands from working
properly within scripts: all Filer_ commands are "saved up" until the end of
the obey script and are then executed in reverse order. This means that...
SendMessage MultiScrn Set 1
Filer_OpenDir adfs::0.$.Dir1
SendMessage MultiScrn Set 2
Filer_OpenDir adfs::0.$.Dir2
...will actually open both Dir1 and Dir2 on screen 2 with Dir1 on top of Dir2.
Sorry, but there really is nothing I can do about this without re-writing the
entire filer.
Known Bugs and 'Features'
=========================
!MultiScrn assumes that you have the wimpflags (set using !Configure or
the "*configure wimpflags" command) set to allow windows to be dragged off the
right and bottom of the visible screen.
Acknowledgements and Historical Information
===========================================
The original idea for !MultiScrn can be traced back to the excellent
"screen" program in the UNiX (® AT&T Labs) public domain: screen allows the
user to switch quickly between up to ten different tasks on a single textual
terminal with a couple of keystrokes. While this approach is not really valid
in a graphical environment, the principal was extended in several of the
X-Windowing System window managers (in particular MOTiF and Open-Look Windows)
which implement a system of "rooms" for the various windows.
The Archimedes followed with the excellent !Larger, which allowed the
idea of "rooms" coupled to a large, scrolling virtual desktop. However,
after only a relatively brief exposure to !Larger, I found the virtual desktop
to be rather confusing: it seemed very easy to lose a window, and the
familiarity I had with the UNiX "screen" program was missing.
!MultiScrn is my answer to the problem - it implements "rooms", called
"screens", without the complexity and confusion surrounding the virtual
desktop. Hot keys are provided to switch quickly between various screens even
when the button bar is hidden, and it is possible to move all the windows
off-screen so as to reveal all the items pinned to the pinboard.
!MultiScrn is written using some functions from DeskLib, a FreeWare
RISC OS Wimp library moderated by Jason Williams.
The WIMPMessenger module was written by Michael R. Ellis and is similar
in operation to the "Dialogue" module provided with StrongEd II (V2.50) by
Guttorm Vik/Stallion Software. WIMPMessenger was written from scratch and has
several improvements over the Dialogue module.
Thanks to Simon Lockhart for many suggestions and ideas, some of which
have been included in this version of !MultiScrn. Simon also found a few small
bugs in !MultiScrn, but I'm not going to thank him for that! (-:
"!Larger", by Robin Watts, has now moved into the commercial domain.
Version History
===============
0.xx 18/07/93 Prototype versions - many with bugs and/or missing
to 08/08/93 features. None were released.
1.00 10/08/93 New version, completely re-written and greatly improved
1.01 11/08/93 Some small bugs fixed.
1.02 31/08/93 Added the facility to have a window on all screens.
1.03 01/09/93 Improved the action on QUIT and upon multiple invocation
1.04 04/09/93 Added WIMPMessenger facilities.
1.05 08/09/93 Minor bug fixed - "thanks" Si!!!
1.06 13/09/93 Changed the user interface and added facilities for a
window to appear on an arbitary set of screens.
First official release version.
Author's Note and Licence
=========================
The code and other files of !MultiScrn remain the copyright © 1993 of
the author, Michael R. Ellis. No part of the code nor the supporting files
may by modified in any way without the prior written permission of the author.
No warranty, express or implied, is given with this software - you use it at
your own risk.
However, this licence allows the distribution of !MultiScrn in an
unaltered form as FreeWare by anyone provided that :-
* No charge is levied other than reasonable cost to cover
distribution and/or copying costs. I regard more than £2 (or local
equivalent) as unreasonable (1993 prices).
* All files in the !MultiScrn directory are provided unaltered.
WIMPMessenger is freeware in its own right and may be used in your own
products provided that it is acknowledged in the !Help file of the application
and that the application is distributed as FreeWare. WIMPMessenger may not be
used in commercial applications. It is strongly recommended that the first
parameter in any command issued via WIMPMessenger is the name of the
application and that any application recognising the name should claim the
message to prevent multiple actions from a single command.
Bug reports and comments may be sent to me at the address below - I
will attempt to fix any bugs found and incorporate any good ideas for
improvements, but I can make no promises. If you supply a blank, E-formatted
disc and a post-paid reply envelope, I will return your disc with the most up
to date version of !MultiScrn and any other FreeWare products I have written.
My address is :-
Michael R. Ellis,
33, Barnfield Avenue,
Kingston upon Thames,
Surrey, KT2 5RD,
England.
Note: The Author can also be contacted by eMail:
mikee@dd.eng.bbc.co.uk