Provided by: blt-dev_2.5.3+dfsg-4_amd64 bug

NAME

       bitmap - Define a new bitmap from a Tcl script

SYNOPSIS

       bitmap define bitmapName data ?option value?...

       bitmap compose bitmapName text ?option value?...

       bitmap exists bitmapName

       bitmap source bitmapName

       bitmap data bitmapName

       bitmap height bitmapName

       bitmap width bitmapName
_________________________________________________________________

DESCRIPTION

       The  bitmap command lets you create new bitmaps directly from your Tcl script.  The bitmap
       can be specified as a list of data or a text string which is converted into a bitmap.  You
       can arbitrarily scale or rotate the bitmap too.

INTRODUCTION

       Bitmaps  are  commonly  used  within Tk.  In label and button widgets, you display bitmaps
       them instead of text strings and  in  the  canvas  and  text  widgets,  they're  used  for
       stippling.  But Tk let's you can create new bitmaps only by reading the bitmap data from a
       file.  This makes bitmaps cumbersome to manage, especially in packaging the program  as  a
       wish  script,  since  each  bitmap  must  be its own file.  It would be nicer if you could
       create new bitmaps directly from your Tcl script.

       The bitmap command lets you do just that.  You  can  specify  the  bitmap  as  in  various
       formats  (such  as  the  X11  bitmap  format).   You can also compose a bitmap from a text
       string.  The bitmap command also lets you and arbitrarily rotate or scale the bitmap.  For
       example,  you  could  use  this  to  create  button widgets with the text label rotated 90
       degrees.

EXAMPLE

       <<<<<<< bitmap.mann You can define a new bitmap with the define operation.   For  example,
       let's say you are using the X11 bitmap "gray1".  Normally to use it, you would specify the
       location of the file.

              label .l -bitmap @/usr/X11R6/include/X11/bitmaps/gray1

       But you can simply cut and paste the contents of "gray1" into the bitmap command.

              bitmap define gray1 {
                  #define gray1_width 2
                  #define gray1_height 2
                  static char gray1_bits[] = {
                     0x01, 0x02};
              }
              label .l -bitmap gray1

       Tk will recognize "gray1" as a bitmap which can now be used with any widget  that  accepts
       bitmaps.

              .barchart element configure elem1 -stipple gray1

       The  bitmap data can be specified in a multitude of forms.  The following commands are all
       equivalent.

              bitmap define gray1 {
                  #define gray1_width 2
                  #define gray1_height 2
                  static char gray1_bits[] = {
                     0x01, 0x02};
              }
              bitmap define gray1 { { 2 2 } { 0x01, 0x02 } }
              bitmap define gray1 { { 2 2 } { 0x01 0x02 } }
              bitmap define gray1 { { 2 2 } { 1 2 } }

       Either the data is in the standard X11 bitmap form, or it's a list of two lists. The first
       list  contains  the  height and width of the bitmap.  The second list is the bitmap source
       data.  Each element of that list is an hexadecimal  number  specifying  which  pixels  are
       foreground  (1)  and  which are background (0) of the bitmap.  Note that the format of the
       source data is exactly that of the XBM format.

       You can scale or rotate the bitmap as  you  create  it,  by  using  the  -scale  or-rotate
       options.

              bitmap define gray1 {
                  #define gray1_width 2
                  #define gray1_height 2
                  static char gray1_bits[] = {
                     0x01, 0x02};
              } -scale 2.0 -rotate 90.0

       In  addition,  you  can  compose  bitmaps from text strings.  This makes it easy to create
       rotated buttons or labels.  The text string can have multi-line.

              bitmap compose rot_text "This is rotated\ntext" \
                -rotate 90.0 -font fixed

       There are also a number of ways to query bitmaps.  This isn't limited to bitmaps that  you
       create, but any bitmap.

              bitmap exists rot_text
              bitmap width rot_text
              bitmap height rot_text
              bitmap data rot_text
              bitmap source rot_text

       The  exists  operation  indicates  if a bitmap by that name is defined.  You can query the
       dimensions of the bitmap using the width and height operations. The data operation returns
       the  list of the data used to create the bitmap.  For example, you could query the data of
       a bitmap and send it across the network to another Tk application.

              set data [bitmap data @/usr/X11R6/include/X11/bitmaps/ghost.xbm]
              send {wish #2} bitmap define ghost $data

OPERATIONS

       The following operations are available for bitmap:

       bitmap compose bitmapName text ?option value?...
              Creates a bitmap bitmapName from the text string text.  A bitmap bitmapName can not
              already exist.  The following options are available.

              -font fontName
                     Specifies  a  font to use when drawing text into the bitmap.  If this option
                     isn't specified then fontName defaults to *-Helvetica-Bold-R-Normal-*-140-*.

              -rotate theta
                     Specifies the angle of rotation of the text in the bitmap.  Theta is a  real
                     number representing the angle in degrees.  It defaults to 0.0 degrees.

              -scale value
                     Specifies  the scale of the bitmap.  Value is a real number representing the
                     scale.  A scale of 1.0 indicates no scaling is necessary,  while  2.0  would
                     double the size of the bitmap.  There is no way to specify differents scales
                     for the width and height of the bitmap.  The default scale is 1.0.

       bitmap data bitmapName
              Returns a list of both the dimensions of the bitmap bitmapName and its source data.

       bitmap define bitmapName data ?option value?...
              Associates bitmapName with in-memory bitmap data so that bitmapName can be used  in
              later calls to Tk_GetBitmap.  The bitmapName argument is the name of the bitmap; it
              must not previously have been defined  in  either  a  call  to  Tk_DefineBitmap  or
              bitmap.   The  argument  data describes the bitmap to be created.  It is either the
              X11 bitmap format (a C structure) or a list of two lists: the dimensions and source
              data.   The  dimensions are a list of two numbers which are the width and height of
              the bitmap.  The source data is a list of hexadecimal values in a format similar to
              the X11 or X10 bitmap format.  The values may be optionally separated by commas and
              do not need to be prefixed with "0x".  The following options are available.

              -rotate theta
                     Specifies how many degrees to rotate the bitmap.  Theta  is  a  real  number
                     representing the angle.  The default is 0.0 degrees.

              -scale value
                     Specifies  how to scale the bitmap.  Value is a real number representing the
                     scale.  A scale of 1.0 indicates no scaling is necessary,  while  2.0  would
                     double the size of the bitmap.  There is no way to specify differents scales
                     for the width and height of the bitmap.  The default scale is 1.0.

       bitmap exists bitmapName
              Returns 1 if a bitmap bitmapName exists, otherwise 0.

       bitmap height bitmapName
              Returns the height in pixels of the bitmap bitmapName.

       bitmap source bitmapName
              Returns the source data of the bitmap bitmapName. The source data is a list of  the
              hexadecimal values.

       bitmap width bitmapName
              Returns the width in pixels of the bitmap bitmapName.

LIMITATIONS

       Tk  currently  offers  no  way of destroying bitmaps.  Once a bitmap is created, it exists
       until the application terminates.

KEYWORDS

       bitmap