Short:    Changes window dimension and position
Author:   amiga@rripley.de (Ralph Reuchlein)
Uploader: amiga@rripley.de (Ralph Reuchlein)
Version:  1.0
Type:     util/cli
Kurz:     Ändert Fenstergröße und -position
Date:     06-Jan-2000

                              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

   snail  Ralph Reuchlein
   mail:  Eibseestr. 18c
          86163 Augsburg
          GERMANY
   
   eMail: amiga@rripley.de
   WWW:   http://www.rripley.de
   IRC:   RRipley on #germany


============================= Archive contents =============================

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
   12496    7809 37.5% 06-Jan-00 23:06:52  nwb
    5829    1727 70.3% 06-Jan-00 23:06:36  nwb.c
     124      89 28.2% 06-Jan-00 20:50:30  SCOPTIONS
    4693    2077 55.7% 06-Jan-00 23:11:08  NewWinBox.readme
-------- ------- ----- --------- --------
   23142   11702 49.4% 06-Jan-100 23:25:36   4 files
