home *** CD-ROM | disk | FTP | other *** search
- ScreenSelect
- ************
-
- Version: 2.2 , Release date: 30-Jan-94
-
- Copyright (C) 1992,93,94 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 5 US$)
- and no deletions is made to the original package. You may also include
- it to freely distributable disks such as Fred Fish collection.
-
- You may also review this program in Amiga specific magazines and add
- it to the accompaning disks if the disk doesn't cost any extra to the
- magazine byers.
-
- 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 screen and
- for example get Workbench screen frontmost with only one key press. You
- can also select a new active window and get it to front from selected
- screen, change default public screen either with hotkey or let
- ScreenSelect to change every new frontmost public screen as
- default public screen automatically.
-
- And the only requirement is that you have Kickstart 2.04 (V37) or
- greater. Some features (not all are visible to the user) take advantage
- of later kickstarts. Most important is the support for localisation.
-
- The ScreenSelect main window uses PopUpMenu BOOPSI gadget class
- designed by me for free distribution. For those of you who are
- interested in using it in your own programs grab the PopUpMenuC_1.1.lha
- packet from Aminet ftp sites or write to me sending 5 US$ (or 15 FIM)
- for postage & handling. see Contact address.
-
- 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.
-
- * If you want to use (Requires KS V38+) localisation feature, then
- copy the language dirs you want to use from Catalogs directory to
- LOCALE:Catalogs directory.
-
- ToolTypes and CLI usage
- ***********************
-
- ScreenSelect recognizes normal commodity tooltypes and one of
- its own. (1)
-
- CX_POPUP=<YES|NO>
- This 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.
-
- ---------- Footnotes ----------
-
- (1) By using Install script provided with this release, you can set
- all the tooltypes at the installation phase.
-
- 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. If you have installed Auto
- Update patches then ListView gadget, where the screen names are
- located is updated automatically. However, the Window
- Selector gadget isn't so you might need to use this feature more
- than in previous releases. 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.
-
- Window selector gadget
- After you have selected a screen (with one click in Listview
- gadget) this gadget shows all the windows from that screen. If you
- press the gadget container a new menu is popped up and you can
- select one of the windows title names to get that window activated
- after the screen you have selected is brought to front. Selected
- window will be frontmost and if it's state was zoomed then it's
- unzoomed automatically.
-
- Default PubScreen
- This one shows the name of the default pubscreen. You can use the
- Preferences program to change the behaviour of Default Public
- Screen change feature. see Options
-
- 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. (1)
-
- 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 Detect ActiveWindow Changes is ON, then
- ScreenSelect 'hears' all the window activation changes. 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 a new screen except if you have added
- Detect Frontmost Screen Changes patch.
-
- If Detect Frontmost Screen Changes patch is active then
- ScreenSelect can hear all the screen changes and can always
- change new active window. This option 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. Detect
- ActiveWindow Changes option enables ScreenSelect to remember
- all changes with active windows by installing a InputHandler to
- Intuitions input stream and Detect Frontmost Screen Changes
- enables to hear all the frontmost screen changes. For best
- possible operation I suggest you to select them all.
-
- Default PublicScreen
- This controls the behaviour of Default Public screen changes.
-
- Disabled - If selected then this feature is not in use. You
- can still see the Default PubScreen text gadget in
- ScreenSelect window.
-
- Set By Hotkey - If selected then you can change new default
- public screen via Hotkey, which you must specify in Hotkey options
- window.
-
- Frontmost PublicScreen - If selected frontmost Public screen
- is set as default one. Note that this option installs a patch to
- LoadView graphics.library function.
-
- ---------- Footnotes ----------
-
- (1) OpenWindow functions are not currently patched. If there is
- need for this then I can reconsider my decision in future releases.
-
- 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 Detect ActiveWindow Changes or Detect
- Frontmost Screen Changes.
-
- Default Public Screen (DefPubScreen)
- You can pick one of the 3 choices for this one. If you select
- Disabled then you cna't change DefPubScreen from
- ScreenSelect. If you select Set By Hotkey then you can
- change DefPubScreen via hotkey, which you must specify in
- Hotkeys preferences window. And if you select Frontmost
- Public Screen then everytime you change a frontmost screen (which
- has to be a Public screen) then ScreenSelect selects it as a
- DefPubScreen.
-
- 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.
-
- Default PubScreen Key
- If you have DefPubScreen option set to Set By Hotkey then you
- have to specify the Hotkey here.
-
- 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 modify the source I have provided for
- StickySelect. I haven't commented the code much so if you have any
- trouble with it don't hesitate to contact me. 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.
-
- Version 2.2 (ScreenSelectPrefs 1.1)
- ===================================
-
- Compilation date was 30-Jan-1994.
-
- * Added localization of strings and keyboard shortcut keys for
- gadgets.
-
- * Added notification of Locale Preferences. When new language is
- changed ScreenSelect will recognize it automatically and try to
- allocate new catalog.
-
- * If Public Screen was in PRIVATE mode, then ScreenSelect couldn't
- lock that screen and wasn't able to get it front. This is fixed.
-
- * ScreenSelect and ScreenSelectPrefs programs support system
- BusyPointer under KickStart version >=39.
-
- * In V1.1 I changed the CX_POPUP to switch. Now it's changed back to
- key string. Keywords TRUE or YES makes ScreenSelect to open its
- window when it's started. This change was requested.
-
- * Few cosmetic changes to ScreenSelect and ScreenSelectPrefs.
-
- * Added new option to change Default Public screen. Now every new
- frontmost Public Screen can automatically be a Default Public
- screen. Added MX buttons to ScreenSelectPrefs to support this new
- feature.
-
- * Added Window selector through the use of PopUpMenuClass which
- contains all the windows for specific screen and by selecting one
- window it can be activated and the window brought to front. Also
- windows which are in zoomed state are 'zipped' to maximum size.
-
- * Fixed a small bug in Screen Title name copying code which was a
- cause of one Mungwall hit.
-
- * In KS >= 39 ScreenSelect uses system provided memory Pool
- functions for most of the memory allocations. This reduces memory
- fragmentation.
-
- * StickySelect interface changed to ensure future compatibility.
-
- Contents of ScreenSelect distribution
- *************************************
-
- Here are listed all files and directories in current version 2.2
- 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
-
- StickySelect.c
-
- StickySelect.c.info
-
- StickySelect.h
-
- StickySelect.h.info
- Catalogs (dir)
- suomi (dir)
- screenselect.catalog
- svenska (dir)
- screenselect.catalog
-
- Docs.info
-
- Catalogs.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 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
- ******
-
- Next release will propably implement an AmigaGuide online-help. How
- about ScreenCenter utility?
-
- **** URGENT URGENT ****
-
- If you are willing to do the locale translation for future versions
- of ScreenSelect please contact me with EMail. There are less than 100
- 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.
-
- I currently have English, Finnish and Swedish locale translations
- ready.
-
- **** URGENT URGENT ****
-
- Acknowledgements
- ****************
-
- Thanks to everyone who has submitted bug-reports or given me good
- suggestions for how to improve this program. Also big thanks to
- everyone who has send me money, even though it wasn't requested.
-
- Thanks to Magnus Holmgren for Swedish translation and all the bug
- reports.
-
-