inrectangle(
POINT
,
RECTANGLE
)

The inrectangle( function checks to see if a point is inside a rectangle.

Parameters

This function has two parameters:

point – is the point to test.

rectangle – is the rectangle to test.

Description

This function checks to see if a point is inside a rectangle (see Graphic Coordinates. The function returns a true or false result – if the point is inside the rectangle, the function returns true (-1). If the point is not inside the rectangle, the function returns false (0). The point and the rectangle may be in screen, window, or form relative co-ordinates as long as you make sure both use the same co-ordinate system.

Here is a silly example that times how long it takes the user to move the mouse away from a button.

``````local startTime
startTime=now()
loop
nop
while inRectangle(info("mouse"),info("buttonrectangle"))
message pattern( now()-startTime,"# second~")
``````

As long as the mouse is over the button, the procedure will whirl around and around doing nothing (remember, the nop statement does no operation). When the mouse moves away from the button, the inRectangle( function goes false and the loop is broken.

• adjustxy( -- adjusts the four corners of a rectangle. However, only corners that are inside a boundary are adjusted. Corners outside the boundary are left alone.
• bestfitrectangle -- fits a rectangle within a boundary rectangle, enlarging or reducing as necessary to produce the best fit without changing the proportions.
• bestfitrectangle( -- fits a rectangle within a boundary rectangle, enlarging or reducing as necessary to produce the best fit without changing the proportions.
• calcenclosingrectangle -- will calculate the rectangle surrounding all of the specified objects.
• getbutton -- retrieves the coordinates of the last button that was pressed (in global screen co-ordinates).
• getclick -- returns the location of the mouse in global coordinates (coordinates from the top left corner of the screen).
• getinternalbutton -- retrieves the coordinates of the last button that was pressed (in form relative coordinates).
• getlocalbutton -- retrieves the coordinates of the last button that was pressed (in window relative coordinates).
• getlocalclick -- returns the location of the most recent mouse click in local coordinates (coordinates from the top left corner of the current form).
• h( -- extracts the horizontal position from a point (see point(, Graphic Coordinates).
• info("availablescreenrectangle") -- returns a rectangle defining the edges of the main screen, after deducting for the space of the menu bar and dock (if visible).
• info("formxy") -- returns a point that indicates how much the current form is scrolled (if at all).
• info("screenrectangle") -- returns a rectangle defining the edges of the main screen.
• integralpoint( -- converts point coordinates to integers.
• integralrectangle( -- converts rectangle coordinates to integers.
• intersectionrectangle( -- creates a rectangle by combining two rectangles. The new rectangle is the area where the two rectangles overlap (if any).
• maprectangle( -- maps the position and size of a rectangle within a template rectangle into the same relative position and size within a goal rectangle.
• Modifiable Object Properties -- describes the properties of graphic objects that can be modified by a program (dimensions, color, font, title, etc.).
• moveobjects -- will move an object or group of objects up, down, left or right on the form.
• nsrect( -- defines a rectangle using the same parameter order as the Cocoa NSMakeRect( function.
• nsrectstr( -- converts a rectangle into text in the format x,y,width,height
• pinrectangle( -- pins a rectangle within the bounds of a larger rectangle.
• point( -- combines vertical and horizontal co-ordinates into a single binary value that describes the position of a point (see Graphic Coordinates).
• pointstr( -- converts a point value into text in the format v,h (for example 34,56).
• rbottom( -- extracts the position of the bottom edge of a rectangle (see rectangle(, Graphic Coordinates).
• rectangle( -- defines a rectangle from four dimensions.
• rectanglealign( -- aligns a small rectangle at one of nine positions within a larger rectangle.
• rectanglecenter( -- adjusts a rectangle so that it is centered inside of another rectangle.
• rectangleinset( -- insets a rectangle by a specified amount.
• rectangleoffset( -- offsets a rectangle to a new position.
• rectanglesize( -- defines a rectangle from its upper left hand corner and its height and width.
• rectanglesizestr( -- converts a rectangle into text in the format *top,left,height,width*.
• rectanglestr( -- converts a rectangle into text in the format *top,left,bottom,right*.
• rectangletweak( -- transforms a rectangle by changing its position and/or size.
• rheight( -- extracts the height of a rectangle (see rectangle(, Graphic Coordinates).
• rleft( -- extracts the position of the left edge of a rectangle (see rectangle(, Graphic Coordinates).
• rright( -- extracts the position of the right edge of a rectangle (see rectangle(, Graphic Coordinates).
• rtop( -- extracts the position of the top edge of a rectangle (see rectangle(, Graphic Coordinates).
• rwidth( -- extracts the width of a rectangle (see rectangle(, Graphic Coordinates).
• setrectangleheight( -- changes the height of a rectangle, leaving the width unchanged.
• setrectanglesize( -- changes the height and width of a rectangle, leaving the position of the top left hand corner unchanged.
• setrectanglewidth( -- changes the width of a rectangle, leaving the height unchanged.
• setrectedges -- changes the edges of the specified rectangle.
• tweakobject -- tweaks the dimensions of an object (or multiple objects).
• unionrectangle( -- creates a rectangle by combining two rectangles. The new rectangle is large enough to exactly cover both of the input rectangles.
• v( -- returns the vertical position of a point (see point(, Graphic Coordinates).
• xytoxy( -- converts a point or rectangle from one co-ordinate system to another.

History

 Version Status Notes 10.0 Updated Unlike Panorama 6 and earlier, the parameters to this function are floating point values instead of integers (it will also accept integers). Also, the rectangle used by this function is a 32 byte binary value, instead of an 8 byte text value.