PCE version 4C man_modulenamespaceid_tablemodified current_idOIxN class/areaN referenceC hash_tablerefersizeOIxNbothI(sNM.area.S.clearCman_method_card identifiermodule last_modifiednamesummary descriptionsee_alsoinherit diagnosticsdefaultsbugsOIxNM.area.S.clearRICdateOIx*Ā)PNclearnCstringOIxŽEquivalent to ->set: 0, 0, 0, 0. Note that an area with <-width or <-height equal contain no pixels and ->union with such an area is a no-op.CchainsizeOIxIENM.area.S.unionXnnnnsNM.area.S.decreaseOIxNM.area.S.decreaseRIOIx,{L*NdecreasenOI xúMakes the area from all sides smaller by the specified amount. For normalised areas (see ->normalise), this implies: <-width := <-width - 2* <-x := <-x + and similar for <-y and <-height. Deals properly with non-normalised areas.OI xIeN%$class/graphical$M.graphical.S.resizeENM.area.S.increaseXnnnnsN M.area.S.setOI xN M.area.S.setRIOI x*Ã$NsetnOI xšSets <-x, <-y, <-width and <-height from the 4 integer arguments. Any argument that is @default will not cause the corresponding parameter to be changed.nnnnnsNM.area.G.distance_yOIxNM.area.G.distance_yRIOIx*Ā+ĨN distance_ynOIx}Yields an integer representing the distance between the areas in Y-direction. Yields 0 if both areas overlap in Y-direction.OIxIeNM.area.G.distanceENM.area.G.distance_xXnnnnsNM.area.G.normalisedOIxNM.area.G.normalisedRIOIx,}EN normalisednOIxiReturn a new area object that describes the same collection of pixels and has <-orientation = north_west.OIxIENM.area.S.normaliseXnnnnsN M.area.G.sizeOIxN M.area.G.sizeRIOIx*Ã$bNsizenOIxxNew size object from the <-width and <-height of the area. Note that either or both may be negative. See ->orientation.nnnnnsNM.area.G.intersectionOIxNM.area.G.intersectionRIOIx<¸)CN intersectionnOIxÁNew area object that represents the common part of the receiver and argument area. The <-orientation of the new area is the same as that of the receiver. See also ->intersection and <-union.OIxIENM.area.S.intersectionXnOIx$Fails if the areas do not ->operlap.nnsNM.area.G.left_sideOIxNM.area.G.left_sideRIOIx*Ā'uN left_sidennOI xIENM.area.G.bottom_sideXOI!xIENM.area.G.bottom_sideXnnnsN V.area.widthCman_variable_card identifiermodule last_modifiednamesummary descriptionsee_alsoinheritdefaultsOI"xN V.area.widthRIOI#x(N‘XNwidthnOI$xĻWidth of area in pixels. Zero width implies the area contains no pixels. With a positive value, the origin is at the left, with a negative value it is at the right.OI%xIEN V.area.heightXnnsNM.area.S.cornerOI&xNM.area.S.cornerRIOI'x*Ā* NcornernOI(xManipulate <-width and <-height such that <-corner matches the argument point. Its `graphical ->corner' counterpart is sometimes used to implement resizing.OI)xIENM.area.G.cornerXnnnnsNM.area.S.orientationOI*xNM.area.S.orientationRIOI+x,}EN orientationnOI,x@An area object is described by its <-x, <-y, <-width and <-height. The point (<-x, <-y) is called the origin or <-position. Either or both <-width and <-height (together representing <-size) may be negative. This method manipulates one or both of the pairs <-x/<-width or <-y/<-height such that the origin becomes the indicated corner. The call ->orientation: north_west is equivalent to ->normalise. ->orientation ->width ->height ================================ north_west >= 0 >= 0 south_west >= 0 < 0 north_east < 0 >= 0 south_east < 0 < 0OI-xIENC.areaXnnnnsNM.area.G.orientationOI.xNM.area.G.orientationRIOI/x*Ã#N orientationnOI0x4Current orientation. See ->orientation for details.nOI1xIENM.area.S.orientationXnnnsNM.area.G.positionOI2xNM.area.G.positionRIOI3x*Ã#—NpositionnOI4x"New point object from <-x and <-y.nnnnnsNM.area.S.intersectionOI5xNM.area.S.intersectionRIOI6x,}EN intersectionnOI7xArea becomes the intersection with the argument area. The intersection is the largest (rectangular) area that is ->inside both area's. To get the intersection without modifying either of the areas, use <-intersection. Fails without modifying the area if the areas do not ->overlap.OI8xIeNM.area.S.overlapENM.area.G.intersectionXnnnnsNM.area.G.distance_xOI9xNM.area.G.distance_xRIOI:x*Ā+ZN distance_xnOI;x}Yields an integer representing the distance between the areas in X-direction. Yields 0 if both areas overlap in X-direction.OIx,}EN bottom_sidenOI?xaReturn the pixel position of the specified edge. Deals properly with areas in any <-orientation.OI@xIENM.area.G.top_sideeNM.area.G.right_sideeNM.area.G.left_sideXnnnnsNC.areaCman_class_card identifiermodule last_modifiednamesummary descriptionsee_alsoinherituser_interfacebugsOIAxNC.areaRIOIBx,{JŸNareanOICx~An area is a rectangular set of pixels. areas are used by graphical objects and windows to represent their position and size. An area has an origin, described by the <->x and <->y attributes and a size described by the <->width and <->height attributes. All parameters are in pixel-units. An area with either <->width or <->height equal to 0 (zero) contains no pixels. The position of the origin with respect to the rectangle is determined by the sign of the width and height attributes. See area ->orientation and area ->normalise. Class area supports class graphical to represent the area of the graphical in the coordinate system of its device. Most of the methods defined on class area also exist on class graphical. For area's, these methods are side-effect free, whereas for graphicals they change the geometry of the graphical. See `graphical ->set' and `graphical ->geometry'.OIDxIeN$class/region$C.regionENM.area.S.orientationeNM.area.S.normaliseeN$class/point$C.pointeN$class/size$C.sizeeN$class/graphical$C.graphicalXnnnsNV.area.xOIExNV.area.xRIOIFx(N‘XNxnOIGx°X-coordinate of the area. The value may both be positive and negative, indicating the origin of the area to be at the right, resp. left of the origin of the coordinate system.OIHxIENV.area.yXnnsNM.area.G.right_sideOIIxNM.area.G.right_sideRIOIJx*Ā'xN right_sidennOIKxIENM.area.G.bottom_sideXOILxIENM.area.G.bottom_sideXnnnsNM.area.G.cornerOIMxNM.area.G.cornerRIOINx*Ā)™NcornernOIOx*New point at <-x + <-width, <-y + <-heightOIPxIeN%$class/graphical$M.graphical.S.cornerENM.area.S.cornerXnnnnsNM.area.G.top_sideOIQxNM.area.G.top_sideRIOIRx*Ā'{Ntop_sidennOISxIENM.area.G.bottom_sideXOITxIENM.area.G.bottom_sideXnnnsN M.area.S.sizeOIUxN M.area.S.sizeRIOIVx*Ã$9NsizenOIWxASets ->width and ->height from the corresponding size parameters.nnnnnsNM.area.S.equalOIXxNM.area.S.equalRIOIYx*Ā+õNequalnOIZxUSucceed if the normalised representation of both areas is the same. See ->normalise.nnnnnsNV.area.yOI[xNV.area.yRIOI\x,}ENynOI]xĻY-coordinate of the area. The value may both be positive and negative, indicating the origin of the area to be at below/above of the origin of the coordinate system.OI^xIENV.area.xXnnsNM.area.G.unionOI_xNM.area.G.unionRIOI`x*Ã$ĒNunionnnnnnnnsNM.area.S.positionOIaxNM.area.S.positionRIOIbx*Ã#‰NpositionnOIcxCCopy <-x and <-y from the corresponding values of the point object.nnnnnsN M.area.S.inOIdxN M.area.S.inRIOIex*ĀtNinnnOIfxIEN$class/event$M.event.S.insideXnnnnsNM.area.S.relative_moveOIgxNM.area.S.relative_moveRIOIhx*Ã#ĮN relative_movenOIix?Executes <-x := <-x + `point <-x' and <-y := <-y + `point <-y'.nnnnnsNM.area.G.same_sidesOIjxNM.area.G.same_sidesRIOIkx,{´N same_sidesnOIlxjReturns a bitmask for sides that have the same value on both arguments. Implemented in the darkness of time for handling automatic layout. The values of the mask are: Receiver Argument Value (octal) ====== ======= ==== top top 01 top center 02 top bottom 04 center top 010 bottom top 020 bottom center 040 bottom bottom 0100 left left 0200 left middle 0400 left right 01000 middle left 02000 middle middle 04000 middle right 010000 right left 020000 right middle 040000 right right 0100000 The PCE/Prolog library file `area.pl' defines these bitmasks.nnnnnsNM.area.S.normaliseOImxNM.area.S.normaliseRIOInx*Ã!lN normalisenOIoxSPlaces the origin at the top-left corner. Equivalent to ->orientation: north_west.OIpxIeNM.area.G.normalisedeNM.area.S.orientationENC.areaXnnnnsN V.area.heightOIqxN V.area.heightRIOIrx(N‘XNheightnOIsx¨Height of area in pixels. Zero height implies the area contains no pixels. With a positive value, the origin is at the top, with a negative value it is at the bottom.OItxIEN V.area.widthXnnsNM.area.S.increaseOIuxNM.area.S.increaseRIOIvx*ÃĻNincreasenOIwxFMove all sides outward. This is the opposite operation of ->decrease.OIxxIENM.area.S.decreaseXnnnnsNM.area.S.unionOIyxNM.area.S.unionRIOIzx,{LYNunionnOI{x Enlarge the area such that it represents the smallest area containing both area objects. <-union computes the same without changing either of the area objects.OI|xIeNM.area.G.unionENM.area.S.clearXnnnnsNM.area.S.centerOI}xNM.area.S.centerRIOI~x*Ā'ĄNcenternOIx_Move the <-x and <-y of the area such that the <-center of the area matches the argument point.OI€xIEN M.area.S.setXnnnnsNM.area.G.distanceOIxNM.area.G.distanceRIOI‚x*¸qNdistancenOIƒxĩYields the length of the shortest line that can connect a point on the outline of the first area with a point on the outline of the second area. Yields 0 if the graphicals overlap.OI„xIeNM.area.G.distance_yeNM.area.G.distance_xeNM.area.S.overlapEN'$class/graphical$M.graphical.G.distanceXnnnnsNM.area.S.initialiseOI…xNM.area.S.initialiseRIOI†x(N‘XN initialisenOI‡x@Creates an area with origin at (X,Y) and given width and height.nnnnnsNM.area.G.less_sidesOIˆxNM.area.G.less_sidesRIOI‰x*Ã!N less_sidesnOIŠx’Like ->same_sides, but returns those `sides' for which the value in the receiver is closer to the origin (i.e. `less') then for the argument area.OI‹xIeNM.area.G.same_sidesENM.area.G.near_sidesXnnnnsNM.area.G.near_sidesOIŒxNM.area.G.near_sidesRIOIx*Ã!6N near_sidesnOIŽx—Same as <-same_sides, but accepts sides to be the same when they are within the specified distance. With distance 0, exactly the same as <-same_sides.OIxIeNM.area.G.same_sidesENM.area.G.less_sidesXnnnnsNM.area.S.insideOIxNM.area.S.insideRIOI‘x1ŽõNinsidenOI’xmSucceeds if the argument area is inside this area. See also ->in, `graphical ->in_event_area' and ->overlap.OI“xIEN$class/device$M.device.G.insideXnnnnsNM.area.S.overlapOI”xNM.area.S.overlapRIOI•x*Ã#hNoverlapnOI–xSucceeds if both areas describe common pixels. If this message succeeds, <-distance returns 0 and ->intersection computes the common pixels.OI—xIeNM.area.S.intersectionENM.area.G.distanceXnnnnXaCnumber O I˜x x