Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Shape_MoveShape(3)	Non-rectangular Window Extension      Shape_MoveShape(3)

NAME
     Shape_CombineBitmap,   Shape_CombineRectangles,  Shape_CombineRectanglesOr-
     dered, Shape_CombineRegion, Shape_CombineWindow, Shape_MoveShape - apply  a
     shaping to a window

SYNOPSIS
     #include <tkint.h>
     #include <shape.h>

     int
     Shape_CombineBitmap(interp, tkwin, kind, op, x, y, bitmap)

     int
     Shape_CombineRectangles(interp, tkwin, kind, op, rectc, rectv)

     int
     Shape_CombineRectanglesOrdered(interp, tkwin, kind, op, rectc, rectv)

     int
     Shape_CombineRegion(interp, tkwin, kind, op, x, y, region)

     int
     Shape_CombineWindow(interp, tkwin, kind, op, x, y, srcwin)

     int
     Shape_MoveShape(interp, tkwin, kind, x, y)

ARGUMENTS
     Interpreter  to  use  for	error  reporting.  Token for window to apply the
     shaping operation to.  Which shape should the operation be applied to; must
     be a boolean combination of SHAPE_BOUNDING, SHAPE_CLIP, and SHAPE_TOPLEVEL.
     What kind of operation to apply; should  be  SHAPE_OP_SET,  SHAPE_OP_UNION,
     SHAPE_OP_INTERSECT, SHAPE_OP_SUBTRACT, or SHAPE_OP_INVERT.  Offset (along X
     axis) to apply to shape.  Offset (along Y axis) to apply to shape.  Identi-
     fier  for	a bitmap that defines a shape to apply.  Number of rectangles in
     array.  Array of rectangles that define a shape to apply.	Token for region
     defining the shape to apply.  Token for window whose shape is to be used to
     apply.

DESCRIPTION
     These functions let you set and modify the shape of a given window,  tkwin.
     Each  Shape_Combine* function operates almost the same, supporting the same
     options as to what parts of the window to apply the  shaping  operation  to
     (kind,)  and  the	same  kinds of ways of applying a shape (op.)  Most also
     support the application of an offset (x,y) to the shape to be  applied  be-
     fore  application	to the window, making it easier to support resizing win-
     dows.  Each function returns TCL_OK on success, and  TCL_ERROR  on  failure
     (when it leaves a description of the problem in interp suitable for passing
     back to calling code.)

     Shape_CombineBitmap  applies the shape defined by the given bitmap, bitmap,
     to the window.

     Shape_CombineRegion applies the shape defined by the given region,  region,
     to the window.

     Shape_CombineWindow  applies  the	shape already defined on another window,
     srcwin, to a window (useful for propagating shapes up window hierarchies.)

     Shape_CombineRectangles applies the shape defined by an array of rectc rec-
     tangles, rectv, to the window.  No overall transformation for  the  rectan-
     gles is supported, since that is easily applied in the calling code.

     Shape_CombineRectanglesOrdered  applies  the  shape  defined by an array of
     rectc rectangles, rectv, to the window.  The rectangles must be arranged so
     that they are non-overlapping and proceed in strict  scanline  order.   Not
     all platforms make use of this extra information. No overall transformation
     for  the rectangles is supported, since that is easily applied in the call-
     ing code.

     Shape_MoveShape applies a translation (defined by (x,y) in  the  coordinate
     system of the root window) to the specified shape of the window.

OPERATIONS
     Five operations are supported:

     SHAPE_OP_SET	      This sets the shape of the window to be that spec-
			      ified by the source.

     SHAPE_OP_UNION	      This  updates  the  shape of the window to include
			      that specified by the source.

     SHAPE_OP_INTERSECT       This updates the shape of the  window  to  be  the
			      overlap  between	the  current shape of the window
			      and the shape of the source.

     SHAPE_OP_SUBTRACT	      This updates the shape of the  window  to  exclude
			      the shape of the source.

     SHAPE_OP_INVERT	      This  sets  the shape of the window to be wherever
			      was not previously in the  shape	of  the  window.
			      The source is ignored.

MODIFICATION TARGETS
     Under  X,	each window has two different shapes; the bounding shape and the
     clipping shape.  The bounding shape specifies which parts of the window ob-
     scure things which are in underlying windows, and the clipping shape speci-
     fies which parts of the window are actually drawn upon by the  application.
     The  space between is the border of the window.  Note that parts of windows
     that can be drawn upon but which do not obscure the underlying matter  can-
     not actually be seen anyway.

     Tk  manages  its  own  borders, so these two shapes should normally be made
     identical (by passing KIND_BOTH to the kind  parameter.)	These  functions
     support individual modification though.

     To  make  things  more complex (i.e. to help the implementation of menubars
     and embedded windows,) Tk implements toplevel windows using several X  win-
     dows.   This means that to alter the shape of a toplevel, it is also neces-
     sary to modify the shape of the containing window.  This operation is  per-
     formed  automatically  if the KIND_TOPLEVEL flag is set in the kind parame-
     ter.

AUTHOR
     Donal K. Fellows <fellowsd@cs.man.ac.uk>

SEE ALSO
     shape(n), Shape_GetBbox(3), Shape_RenderTextAsRectangles(3)

Shape				       0.4		      Shape_MoveShape(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CombShape&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help