home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 2: PC
/
frozenfish_august_1995.bin
/
bbs
/
d09xx
/
d0947.lha
/
ScreenSelect
/
Docs
/
ScreenSelect.doc
next >
Wrap
Text File
|
1993-12-20
|
22KB
|
601 lines
ScreenSelect
************
Version: 2.1 , Release date: 03-Oct-93
Copyright (C) 1992,1993 Markus Aalto (1)
---------- Footnotes ----------
(1) This program is freeware. You may freely distribute it as long
as you don't charge more than nominal fee for copying it (max 3 US$)
and no deletions is made to the original package. You may also include
it to freely distributable disks such as Fred Fish collection.
This program is distributed without warranty of any kind. So I take
no responsibility about this program, its documentation, functionality
or damages it may cause.
Introduction
************
In version 2 of
Amiga
operating system was introduced a concept of
Public Screens. These screens can be shared by application programs
just like Workbench screen has been in previous OS versions. Although
they bring a great addition to Amiga they also introduce a problem to
users which have Workbench, several Public and propably a few custom
screens open at the same time. And the problem is - "How to get that xxx
screen to front quickly without traversing through 5 other screens with
left-amiga m
?". Well,
ScreenSelect
is answer to that question
because it opens a small window to the active screen after hotkey
selection where you can select the new frontmost screen with just a
click of the mouse. Also you can make hotkey bindings to any screens
(not just Public ones as in older versions) and for example get
Workbench screen frontmost with only one key press. And the only
requirement is that you have
Kickstart 2.04
(V37) or greater.
Installation
************
I have provided a script for Commodore's
Installer
program so if
you have it then you should propably use it. Otherwise you can do
following actions.
* Move
ScreenSelect
to
WBStartup
directory.
* Move
ScreenSelectPrefs
to
Prefs
directory.
* Move one of the doc files anywhere you normally store document
files.
ToolTypes and CLI usage
***********************
ScreenSelect
recognizes normal commodity tooltypes and one of
its own.
CX_POPUP
This switch enables
ScreenSelect
to open its window when it's
started. Default is no popup.
CX_PRIORITY=xxx
This is
ScreenSelect
's priority as commodity. Here
xxx
is
decimal number. Default is 0.
CX_POPKEY=HOTKEY
Default is
shift esc
. For example you could use
CX_POPKEY=alt
shift del to change hotkey. If you specify popkey here you
override the settings you have made with
ScreenSelectPrefs
program.
PREFSPROGRAM=PATH
This is the path where preferences program is to be found. This
name must include the name of the preferences program. Default
PATH is
SYS:Prefs/ScreenSelectPrefs
. see Preferences.
Main Window
***********
You can see the main selection window for
ScreenSelect
by pressing
the user configurable hotkey. This brings you a small window with few
buttons and a listview with names of open screens. Public screens all
have identifiable names but there are programs which use custom screens
and doesn't specify any name for it. Screens like that are shown as
(Nameless Screen)
.
Quit
By pressing button (or
Q
) you can remove
ScreenSelect
and any
patches it has installed.
About
This gives you a small info about this program and its author
(that's me :^).
Prefs
This one opens the separate preferences program you can use to
modify
ScreenSelect
's behaviour. All changes come active
instantly after you have exited preferences program with pressing
either
Save
or
Use
buttons.
Update
This one updates the listview and default pubscreen texts to
reflect current system state. This is only usefull if you haven't
installed
Auto Update
patches. You can install the patches with
ScreenSelectPrefs
program. see Preferences.
Listview gadget
Click any of the names to get that screen to front. Single click
just activates the name which you can then activate with
Activate
gadget. Double click makes an instant activation.
You can also use cursor keys to move up and down in listview.
Activation can be made from keyboard with
a
or
return
keys.
Default PubScreen
This one shows the name of the default pubscreen. If you have
installed the
Change Default PubScreen
hotkey you can use it to
select active public screen as your default public screen.
Activate
Activates the current listview selection and closes the window.
Cancel
Closes the window and returns back to the screen where hotkey
selection was made.
General Info
************
There are few special options you can change with preferences
program. Here are brief explanations about them. see Preferences
Screen Types
Currently
ScreenSelect
can show only Public screens or all
screens.
AutoUpdate Patches
This patches 4 Intuition functions to achieve automatic update in
listview and in Default PubScreen textgadget. Patched functions
are: OpenScreen, OpenScreenTagList, CloseScreen and
SetDefaultPubScreen.
Window Position Modes
You can control the position of
ScreenSelect
's main window with
three possible options:
Fixed
,
Relative
and
SmartPointer
.
Fixed
mode forces window to always open to some predefined
coordinates.
Relative
always tries to position the window so that pointer
is over the
Activate
gadget.
SmartPointer
first tries to position the window so that
pointer is over the last selected screen name. If this isn't
possible it then forces pointer to move there.
Window Autoactivation
You can set few options to control
ScreenSelect
's behaviour with
window activation.
If you have
Window AutoActivation
mode ON, it tries to activate
window from screen you are changing to. It doesn't work most of
the times because it just examines the windows and tries to be
smart when deciding which window to activate.
If also
InputHandler
is ON, then
ScreenSelect
'hears' all the
changes with window actications. This helps you only with changes
through
ScreenSelect
. If you change screen with
left-amiga
m
ScreenSelect
has no way of knowing that you have switched to
new screen except if you have added
LoadView
patch.
If
LoadView
patch is active then
ScreenSelect
can hear all the
screen changes and can always change new active window. As this
one says it installs a patch to
LoadView
function in
graphics.library. It's a very time critical place and while I
haven't confronted any problems, it might be a source of problem
for users with heavy animation needs. If you encounter any
problems with animations you should first try to take this off
before starting to look problems elsewhere.
So lets go all modes through one more time.
Window
AutoActivation activates autoactivation mode.
InputHandler
option enables
ScreenSelect
to remember all changes with screens
active windows and
LoadView Patch
enables to hear all the
frontmost screen changes. For best possible operation I suggest
you to select them all.
Preferences
***********
Main Prefs
==========
After you have started
ScreenSelectPrefs
you get a window very
similar to the system preferences program. All the actions from menus
and
Save
,
Use
and
Cancel
buttons are exactly the same as in
system programs so they are not explained here. Please consult your
AmigaDOS manual for more info.
However there are two buttons labeled as Options and Hotkeys. These
are the buttons you should press to get one of the real preferences
change windows.
Options
=======
In this window are all the options settings.
Screen Types
Selects one of the operation modes. In
Public Only
mode
ScreenSelect
uses only Public screens. In
All
mode all
screens are used.
Add AutoUpdate Patches
Toggles the state of AutoUpdate patches.
Window Position
Changes window position mode. Possible modes are
Fixed
,
Relative
and
SmartPointer
. In
Fixed
mode you can set the
coordinate values to
Left
and
top
numeric gadgets.
Window AutoActive Options
You can select which level of AutoActivation you want. If you
specify all three of them you get complete automatic window
activation in your system. If Window AutoActivation is OFF then
you can't select either
Add InputHandler
or
Add LoadView
Patch.
OK
This ones confirms all the changes and returns back to Preferences
main window. Note that these changes are not used yet. You have to
make global confirm with
Save
or
Use
buttons.
Cancel
This one cancels all the changes.
Hotkeys
=======
In this window are all the hotkey settings.
PopUp Key
Used as hotkey for
ScreenSelect
. You can override this setting
with CX_POPKEY tooltype.
Use Default PubScreen Key
Use the CheckBox gadget to toggle whether you want to use Default
PubScreen key. If you do then write the hotkey to string gadget in
right.
Add
Used to add new Screen Quickkey.
Delete
Used to delete selected Screen QuickKey.
Screen QuickKeys
List of screens you have set a Screen QuickKey for. Names can
contain AmigaDOS patterns. For example
TERM?
can mean
TERM1
or
possibly
TERM2
. All standard AmigaDOS patterns are accepted.
This is great help when trying to make a QuickKey for some old
programs using custom screens.
QuickKey
Hotkey for selected Screen QuickKey.
OK
Confirm changes.
Cancel
Cancel changes.
StickySelect
************
I have had several requests to enchange the interface to do some
operations differently. Because some of these have been contradictory
or in my opinion not something I like to add to
ScreenSelect
I have
made it possible for external programs to use
ScreenSelect's
selection mechanism. Now everybody can write a replacement for
ScreenSelect's interface.
The first program to utilize this possiblity is
StickySelect
which
opens a small window to any public screen with a list of selectable
names - just like the one in
ScreenSelect's
interface. However this
window doesn't go away when you make a selection. Instead it just sits
there and wait's for new selection. You can open as many as you like to
different public screens as long as
ScreenSelect
is started before
StickySelect
. Here are the parameters.
PUBSCREEN=<>
Name of the Public screen you want
StickySelect
to open.
LEFT=<>
Window left edge position.
TOP=<>
Window top edge position.
WIDTH=<>
Window width.
HEIGHT=<>
Window height.
If you would like to implement your own interface to communicate with
ScreenSelect
you can contact me to obtain programming info and C
source for
StickySelect
. see Contact address.
Misc
****
This is a common procedure
ScreenSelect
makes when it hears about
hotkey selection.
if hotkey pressed then
if active screen is public screen then
lock it and open
ScreenSelect
window into it.
else
lock default public screen and open window to it.
So this means that
ScreenSelect
window isn't opened to foreign
applications screen. It's only opened to public screens. This may annoy
some users but I made this decision to make
ScreenSelect
more system
friendly. Remember that if you select new frontmost screen then there
really isn't much harm done. And even if you just press
Cancel
gadget
you get always back to your old frontmost screen.
ScreenSelect
also tries to make sure that all screen pointers
passed back to OS, are always valid. This is easy with public screens
but requires little more work with normal screens. I hope I got it
right!
History
*******
Version 1.0
===========
First release 07-Sep-1992.
Version 1.1
===========
This version was not released. Compilation date was 14-Sep-1992.
* Changed
Workbench
tooltypes
CX_POPUP
and
ALLSCREENS
to
simple switches. They are normally OFF, but if you specify one of
them then that option comes ON.
* Added
SMARTPOINTER
option. When this one is active
ScreenSelect
always tries to position mouse pointer over
previous screen selection. This makes it very easy to bounch
between two screens.
[ Suggested by Sfefan Boberg ]
* Added
QUICKKEYS
. Now you can bind own hotkey to every public
screen. This should be used only with public screens. Although it
might work with all screens I don't support it.
[ Suggested by Stefan Boberg ]
* Now if
ScreenSelect's
window is active (open) when hotkey is
pressed then that window's screen is brought to front.
* Added menus to
ScreenSelect's
window. Now most of the features
are selectable with Menu command keys.
* Added
About
window to show some information.
* Now previous screen's name is shown in listview gadgets selection
area automatically. This makes screen bounching very easy as
SMARTPOINTER
option does.
* Now
Activate
and
Cancel
gadgets have keyboard shortcuts.
[ Keyboard shortcuts were suggested by David Corn ]
Version 1.1a
============
Compilation date was 23-Sep-1992.
* Fixed a bug which happened when
SMARTPOINTER
option was ON and
screen font was too big to be used in
ScreenSelect's
window and
we had to use topaz80. This caused pointer to be moved to wrong
position.
Version 1.1b
============
Compilation date was 13-Oct-1992.
* Just changed a initial window height from 94 pixels to 96. Now
normal topaz80 font shouldn't cause window resizing when only
Workbench (or screen names of similar lenght) is in a list.
Version 1.2
===========
Compilation date was 07-Dec-1992.
* Previously
ScreenSelect
exited when it couldn't find screens.
This made it impossible to put it in
Startup-Sequence
or
User-Startup
file before
Workbench
screen is opened.
[ Reported by Andreas M. Kirchwitz ]
* From now on, version number format should be Amiga Style Guide
compliant.
* Added
AUTOACTIVATE
option.
* Added
SCREENKEY
option which allows easy default public screen
selection with hotkey.
* Added
Default PubScreen
text gadget.
* First version compiled with SAS/C V6.1. Size reduced almost 2k
compared to V1.1b.
Version 1.3
===========
Compilation date was 27-Jan-1993. Not a public release.
* Now listview is opened as wide as widest screen name. This works
correctly with proportional fonts too.
Version 1.4
===========
Compilation date was 02-Feb-1993. Not released.
* Now gadget sizes are calculated before window is opened. So now
ScreenSelect
window opens to the correct size initially.
* Added
LEFT
and
TOP
tooltypes and CLI-parameters.
* Now if
SMARTPOINTER
option is ON then
ScreenSelect
tries to
position window according to the mouse pointer. And only if it
fails to properly do so it moves mouse pointer to the correct
position.
* Now
ScreenSelect
installs a input-handler to watch for
WINDOWACTIVE messages, and we can properly activate right window
when new screen is brought to front by
ScreenSelect
.
Version 2.0
===========
Compilation date was 08-Aug-1993. Major update.
* Whole interface code rewritten.
* Moved settings to separate preferences program.
* Added support for AmigaDOS patterns in QuickKey screen names.
* Added Relative Window Position mode.
* Moved all the patches to main program. Now patches are removable.
* Added LoadView patch.
* Added support for StickySelect.
* Possibly forgotten something, but changes were too big to describe
them fully in here.
Version 2.1
===========
Compilation date was 03-Oct-1993. Mainly bugfixes.
* Fixed an enforcer hit in AutoActivation checking code.
* Screens with empty Title names (not NULL, but filled with spaces)
made ScreenSelect to crash. Yes, I know, this sounds unbelievable!
* If popup hotkey is pressed when ScreenSelect window is already open
then ScreenSelect window is activated.
* If LoadView patch was installed and hotkey was pressed in
non-public screen, then ScreenSelect window didn't stay active
after it was opened.
* Added keyboard support for ScreenSelect's listview gadget. Return
activates selection and cursor keys are used to change selection.
* If QuickKey is pressed while ScreenSelect window is open, then
screen name binded to that QuickKey is selected in listview.
* If AutoUpdate patches are not active internal Screen list is
updated everytime QuickKey is pressed. This fixes problems with
QuickKeys and screens opened after last ScreenSelect activation.
* Now ScreenSelect window is closed before we select new frontmost
screen. This fixes a problem introduced by 4th fix (LoadView patch
fix) in this release.
* Fixed a bug with SMARTPOINTER option, which happened with similar
screen names which contain characters out of range of ordinary
alphabets. This bug was introduced because of
AmigaDOS
pattern
matching routine not handling characters as '(C)' and didn't
happen before version 2.0 of ScreenSelect.
* Added changes to internal string handling. Now it will be very easy
to add localization support.
Contents of ScreenSelect distribution
*************************************
Here are listed all files and directories in current version 2.1
distribution. These files should always be present when
ScreenSelect
is distributed.
ScreenSelect (dir)
Docs (dir)
ScreenSelect.doc
ScreenSelect.doc.info
ScreenSelect.dvi
ScreenSelect.dvi.info
ScreenSelect.guide
ScreenSelect.guide.info
StickySelect (dir)
StickySelect
StickySelect.info
Docs.info
StickySelect.info
ScreenSelect
ScreenSelect.info
ScreenSelectPrefs
ScreenSelectPrefs.info
Read_Me
Read_Me.info
Install.info
ScreenSelect.Install
ScreenSelect.info
Contact address
***************
If you really think that this program is great and you use it
extensively then you can make me very happy by sending me something for
a return. If you are for example a author of some software package
(Commercial, Shareware, Giftware or anything) you could send me a free
program as an exchange of this program. If you don't feel like it, it
doesn't really matter. It would just make me more enthusiastic as I
continue to implement new versions. Then again if you feel like sending
a donation in US$, Deutch Marks or Finnish Marks I even might have
afford to join Commodore's official developer program someday and you
might get Localisation, Online-help support etc... implemented to
ScreenSelect
much faster that otherwise. Anyway, thank you for
using this program!
For suggestions, bug reports etc... You can reach me at
* Internet
s37732v@vipunen.hut.fi
* SnailMail
Markus Aalto, Muurahaisentie 11a, 01490 VANTAA, FINLAND
Future
******
I have noticed that several people asked me to implement a window
selector to
ScreenSelect
. This is propably coming in next major
release along with AmigaGuide online-help and localization.
But if you need window selector now I suggest you take a look at
Yass
(Yet Another Screen Selector) from
Albert Schweizer
. It
supports window selection as well as screen selection, but
unfortunately it lacks the QuickKeys and automatic window activation.
If you are willing to do the locale translation for future versions
of
ScreenSelect
please contact me with EMail. There aren't many
strings to translate. see Contact address. You are also welcome to
translate the documentation for current and future versions. Again
contact me with EMail to obtain the TeXinfo file.