home *** CD-ROM | disk | FTP | other *** search
- Forward>>Motion
- Window Resizer - Microsoft Windows-Style
-
- © Nick Jarman Thu,24 Dec 1992
-
- This software is in the public domain
-
-
- Important Note
- --------------
- To use this program, you must have instant window dragging
- enabled. This is the Risc OS 3.1 default so Resizer should work
- correctly on most systems without the need for reconfiguration.
- Use the Configure application in the Resources filing system to
- set instant window dragging.
-
-
- About the program
- -----------------
-
- A Risc OS window looks something like this:
-
- +---+---+--------------------+---+
- |[].| X | A window |'. |
- +---+---+--------------------+---+
- | | ^ |
- | +---+
- | | |
- | | |
- | | |
- | | |
- | | |
- | | |
- | | |
- | +---+
- | | v |
- +---+--------------------+---+---+
- | < | | > |[']|
- +---+--------------------+---+---+
-
- If you want to resize the window, you use the icon at the bottom
- right hand corner (the resize icon), so it's only possible to expand
- it downwards and to the right, or shrink it upwards and to the left.
- Under Microsoft Windows, there are eight 'resize icons' all round the
- window, so it's possible to expand or shrink it window in all
- directions. I thought this would be a useful addition to Risc OS, so
- I wrote this program...
-
-
- How to use it
- -------------
-
- Load RESIZER by double-clicking on its icon in the directory
- viewer. The program will register itself as 'Resizer' on your
- task display amd the Desktop will continue to operate as normal.
- To give a window extra resize icons, position the pointer
- anywhere over it and press the either left-hand or right-hand
- Alt and Shift keys simultaneously. The result is something like
- this:
-
- +-------+--------------------+-------+
- | +---+-+-+------------------+-+---+ |
- | |[].| X | A window |'. | |
- | +---+---+--------------------+---+ |
- +-+ | ^ +-+
- | | +---+ |
- | | | | |
- | | | | |
- | | | | |
- | | | | |
- | | | | |
- | | | | |
- | | | | |
- | | +---+ |
- +-+ | v +-+
- | +---+--------------------+---+---+ |
- | | < | | > |[']| |
- | +---+-+------------------+-+-+---+ |
- +-------+--------------------+-------+
-
- The window can now be resized by dragging the resize icons which
- have been attached to it. The pointer changes to indicate the
- direction in which the window may be resized whenever it is over
- a resize icon. Dragging a resize icon whilst holding down Shift
- is equivalent to moving the window with the titlebar.
-
- RESIZER only provides an extra set of resize icons for one window
- at a time but you may move them to another window whenever you
- wish, using Alt and Shift. To remove the resize icons altogether,
- press Alt and Shift when the pointer is over the window which they
- are currently attached to. Only windows with a resize icon at the
- bottom left hand corner can have extra resize icons attached.
-
-
- Quitting
- --------
-
- To quit RESIZER, click Menu on any of the resize icons and select
- 'Quit' from the menu that appears.
-
-
- Configuration Options
- ---------------------
-
- RESIZER has a number of user-definable settings. To change these
- click Menu on any of the resize icons and select the Preferences
- option. A window appears, allowing you to alter the following
- settings:
-
- - Border width: The width of the resize icons round the window.
- If you are having difficulty locating the pointer over the over
- the resize icons you may wish to increase the value of this
- variable.
-
- - Corner size: This determines the size of the four corner boxes.
-
- - Sleep time: Changing this variable allows you to alter the
- responsiveness of RESIZER. It is the longest time (in centiseconds)
- for which RESIZER will give control of the machine to other
- programs running in the background (although it is quite possible
- that other programs may choose to 'hog' the machine so RESIZER
- will run even more slowly). If you find your desktop feels
- considerably slower with RESIZER loaded (although there is no
- reason why it should with a default Sleep time of 7), try increasing
- its value. You may notice that you have to old Alt and Shift down
- for longer to make the resize icons appear, and there may be a
- perceivable delay in changing the shape of the pointer.
-
- - Absolute dragging: With Absolute dragging enabled, RESIZER keeps
- the contents of the window stationary on the screen, and with it
- disabled, the contents of the window are moved relative to the
- edge(s) being dragged. If you find it difficult to understand this
- description, open the task display and resize it with Absolute
- dragging enabled and disabled. This option does not work properly
- with Edit - but that's a problem with Edit rather than RESIZER.
-
- You can save your configuration by clicking the Save button, so you
- won't have to alter the settings every time you load the program. The
- Cancel button returns the settings to the state they were in before
- the Preferences window was opened, and the OK button makes RESIZER
- remember your setings but does not save them.
-
-
- What's wrong with it
- --------------------
-
- Nothing serious, fortunately, but here are some aspects that could
- be improved:
-
- - When a window is at its maximum size, attempting to enlarge it moves
- it across the screen. It should really stay stationary.
- - It's a bit slow - especially if you don't have an ARM3!
- - It doesn't work very well with Edit: Normal/Absolute dragging don't
- seem to work as they should because the vertical scrollbar is
- handled differently.
- - Ran Mokady's USAGE program sometimes reports RESIZER is using 100%
- of CPU time. This seems to happen whenever the Desktop is restarted
- after being shut down - so low CPU usage (it should be around 0.2 -
- 0.6% on an ARM3 machine with a Sleep time of 7 and no resize icons
- on a window) is only reported the first time the Desktop is used
- after power-on, or after a shutdown followed by *Fx 200,3 and a hard
- reset. I have not been able to determine whether this is a problem
- with RESIZER or USAGE. If anyone can work out what is going on I
- would like to know!
- - There's no reason why it shouldn't provide borders for all
- resizable windows... watch out for this feature in the next version!
- - It would look even better if it used textured icons (like Acorn's
- new Toolsprites set).
-
- I'm sure I'll think of more improvements as soon as I've finished
- writing this - if you can think of any improvements or have any
- comments about the program please let me know.
-
-
- Versions
- --------
-
- V0.00 - V1.00 (Late Dec 1992 - mid Feb 1993)
- Developement versions. These used a window with eight icons for the
- border. Pointer changing and all window redrawing was done by the
- window manager, but resizing was very slow because the position of
- each icon had to be calculated each time the window was redrawn.
- Movement of the border window was not perfect - it stayed stationary
- when the one in front of it was moved and only caught up when the
- mouse button was released.
-
- V1.00 (mid Feb 1993)
- Window movement problems cured by making the program handle all
- redrawing of the border window. This meant that windows could be
- resized faster because there was no need to calculate the new
- positions of each of the icons. Window movement is now also handled
- correctly. Menu with Info and Quit options added.
-
- V1.10 (Wed,24 Feb 1993)
- Null event operation was inefficient, so this has been tidied up so
- the program has control of the machine for as short a time as
- possible. Absolute dragging and Preferences dialogue box added.
-
- V1.11 (Mon,01 Mar 1993)
- Border is now highlighted in when its window has the caret. The
- border will cannot now be attached to a window unless it is resizable
- to start off with, ie: it has a resize icon.
-
- V1.12 (Tue,02 Mar 1993)
- Window movement using Shift key added.
-
-
- Legal Stuff
- -----------
-
- 'RESIZER' refers to all the files in the !Resizer directory.
-
- RESIZER is in the public domain, but I (Nick Jarman) hold the
- copyright to RESIZER. You may copy and distribute RESIZER freely as
- long as:
-
- 1) You do not charge for doing so, except to cover the cost of
- media
-
- 2) You do not alter any part of RESIZER
-
- 3) RESIZER is copied in its entireity
-
- I accept no responsibility for any loss or damage arising from
- the use of RESIZER.
-
- Directory contents:
-
- !Help
- !Run
- !RunImage
- !Sprites
- Pointers
- Preference
- Sprites
- Templates
-
-
- The Author
- ----------
-
- Comments, bug reports etc are all welcome - send correspondence to:
-
- Snail mail: Nick Jarman
- Grizedale College
- Lancaster University
- Lancs
- LA1 4YU
- UK
-
- or: Nick Jarman
- 7 Cadet Way
- Church Crookham
- FLEET
- Hants
- GU13 0UG
-
- Janet: csc329@lancaster.ac.uk