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

FreeBSD Manual Pages

  
 
  

home | help
bitmap(n)		     BLT Built-In Commands		     bitmap(n)

______________________________________________________________________________

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 bit-
       maps 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	opera-
       tion.   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  bit-
       map 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.

       The bitmap data can be specified	in a mulitude 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  bit-
		     map.   If	this  option isn't specified then fontName de-
		     faults to *-Helvetica-Bold-R-Normal-*-140-*.

	      -rotate theta
		     Specifies the angle of rotation of	the text in  the  bit-
		     map.   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  num-
		     ber  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 bitmap-
	      Name 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 num-
		     ber 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

BLT				      2.5			     bitmap(n)

NAME | SYNOPSIS | DESCRIPTION | INTRODUCTION | EXAMPLE | OPERATIONS | LIMITATIONS | KEYWORDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=bitmap&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help