NewWinBox
=========
PURPOSE
This small utility written in one hour only is used for changing
the window box of the active window. For instance I am using it
with ARexx to change the size of the CygnusEd window automatically
when opened on a public screen.
HISTORY
v1.0:
- public release
INSTALL
Simply unpack the archive to anywhere you want. I prefer to copy
the executable to C:.
REQUIREMENTS
- OS 3.0 and higher
- opened windows :-)
USAGE
The template is
DELAY=D/N/K,WIDTH=W/N/K,HEIGHT=H/N/K,LEFT=X/N/K,TOP=Y/N/K,QUIET/S
The parameter DELAY delayes (so what? :-) the detection of the
active window. If you e.g. specify DELAY=5, you then have 5 seconds
to make the window active you want to change.
The WIDTH and HEIGHT parameters specify the new window dimension,
LEFT and TOP were used for the window position on screen.
Finally QUIET supresses some window information.
The program checks whether the window can fit into the screen and
whether the new size is allowed by intuition. Each window has a
minimum and maximum size and if your new size exceeds the limits,
you will get an error message and no change is done.
EXAMPLES
Using NewWinBox in a Shell without parameters like
nwb
prints a statistic about the shell window (or another window if you
are fast as light in changing windows :-). You will get
Original window dimensions:
Width: 644, Height: 501, Left: 156, Top: 16
MinWidth: 80, MinHeight: 50
MaxWidth: 65535, MaxHeight: 65535
ScrWidth: 800, ScrHeight: 600
No window movement needed.
Using
nwb quiet
is silly, because nothing is done and nothing is printed to STDOUT,
eh? :))
nwb w=400 height=400 left=0
moves the window to the most left position on screen and resizes
it to 400x400:
Original window dimensions:
Width: 644, Height: 501, Left: 156, Top: 16
MinWidth: 80, MinHeight: 50
MaxWidth: 65535, MaxHeight: 65535
ScrWidth: 800, ScrHeight: 600
Expected window dimensions:
Width: 400, Height: 400, Left: 0, Top: 16
New window box is set.
You will be warned when using bad parameters like
nwb x=200
on a screen width of 800 and window width of 644:
Original window dimensions:
Width: 644, Height: 501, Left: 156, Top: 16
MinWidth: 80, MinHeight: 50
MaxWidth: 65535, MaxHeight: 65535
ScrWidth: 800, ScrHeight: 600
Expected window dimensions:
Width: 644, Height: 501, Left: 200, Top: 16
Left 200 plus Width 644 is too large for screen, must be less equal 800
With the QUIET parameter you can use nwb in Shell or ARexx scripts
for changing windows silently.
BUGS
*kough* What's that?
DISCLAIMER
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
MISC
Suggestions and bug reports are welcome, but I think the little
program's purpose is fully accomplished.
Just a technical information: This program uses LockIBase() to get
the active window. The function from intuition.library will mix up
intuition if used too long and during the lock no intuition action
can be done which other processes may confuse. Better use it with a
good task priority to avoid blocking intuition.
CONTACT
Ralph Reuchlein <aminet@rripley.de>
[updated 30-May-2020 because neither address nor email was valid]
|