Provided by: pixmap_2.6.6-1_amd64 bug

NAME

       pixmap - Xpm pixmap editor for X

SYNOPSIS

       pixmap [-options ...]

DESCRIPTION

       The pixmap program is a tool for creating or editing rectangular images made up of colored
       pixels, i.e., pixmaps. Pixmaps are intensively used in X  to  define  window  backgrounds,
       icon images, etc.

       The pixmap program can have two different interfaces, a Athena widgets version and a Motif
       widgets version.

USAGE

       Pixmap displays grid in which each square represents a single pixel in the  picture  being
       edited.   Squares  can  be set, cleared, or inverted (this last operation will be detailed
       later) directly with the buttons on the pointer and a menu of higher level operations such
       as draw line and fill circle is provided to the side of the grid.  Another menu on the top
       of the window allows files operations (Load, Save, ...), edit operations  (Cut/Copy/Paste,
       attributes  of  pixmap  editing,  ...) and colors operations (drawing color, attributes of
       colors, ...). Pixmap uses a Pixmap widget to represent the pixmap image.

       Pixmaps are stored as a C string array variable suitable for  including  in  applications,
       using  the  format  defined  by Arnaud Le Hors in his Xpm library (refer to Xpm manual for
       format description). This format allows pixmaps to be  used  indistinctly  on  monochrome,
       grey scale or color displays.

OPTIONS

       Pixmap accepts the following options:

       -display/-d display
           This option specifies the name of the X server to use.

       -geometry geometry
           This  option  specifies  the  placement  and  size of the pixmap program window on the
           screen.  See X for details.

       -help/-h
           This option asks for the usage description of pixmap.

       -size WIDTHxHEIGHT
           This option specifies the size (width and height)  in  pixels  of  the  pixmap  to  be
           edited.

       -squares SIZE
           This  option  specifies  the  size in display points to use to represent each pixel (a
           square of SIZE points).

       +grid/-grid
           This option indicates that the grid lines in the Pixmap widget should be displayed  or
           not.

       -stippled
           This option turns off stipple drawing of transparent pixels.

       -stipple pixmap
           This option specifies the depth 1 pixmap to use to draw transparent pixels.

       +axes/-axes
           This option indicates that the axes in the Pixmap widget should be displayed or not.

       +proportional/-proportional
           This  option  indicates  that  the  pixels  in  the  Pixmap  widget  should  be  drawn
           proportional, i.e. in squares,  or not.

       -hl color
           This option specifies the color to use for highlighting purposes.  color  can  be  any
           name accepted by the XParseColor(3X11) function.

       -fr color
           This option specifies the color to use draw grid and axes in Pixmap widget.  color can
           be any name accepted by the XParseColor(3X11) function.

       -tr color
           This option specifies the color to use to represent transparent pixels.  color can  be
           any name accepted by the XParseColor(3X11) function.

       -fn/-font fontname
           This option specifies the font to be used in pixmap.

       -filename/-f/-in filename
           This  option  specifies the name of the file from which the pixmap to be edited should
           be loaded.

       -colormap/-pc
           This options specifies that pixmap should use its own private colormap instead of  the
           default colormap.

PIXELS EDITING WITH MOUSE

       Pixels  may  be  set,  cleared,  or  inverted  by pointing to them and clicking one of the
       buttons indicated below.  Multiple pixels can be changed at once  by  holding  the  button
       down  and  dragging the cursor across them.  Set pixels are filled with the current color;
       cleared pixels are filled with white; and inverted pixels are  either  set  if  they  were
       originally cleared or cleared otherwise.

            Button 1
                This button (usually leftmost on the pointer) is used to set one or more pixels.

            Button 2
                This button (usually in the middle) is used to invert one or more pixels.

            Button 3
                This button (usually on the right) is used to clear one or more pixels.

            Button 4
                This button is used to clear one or more pixels.

            Button 5
                This button is used to clear one or more pixels.

       Every  button  operation  can  be  changed by means of resources in the .Xdefaults file or
       application defaults file (/usr/lib/X11/app-defaults/Pixmap).

MENU COMMANDS

       To make  defining  shapes  easier,  pixmap  provides  several  commands  for  drawing  and
       manipulating the pixmap edited, and commands for file management.

       Commands are layed in a vertical bar at the left of the Pixmap widget and in a menu bar at
       the top of the window. Most of the drawing commands are located in the left bar, where  as
       file management and other general commands are located in the top menu bar.

       In  the left bar, some commands are represented by icons. They are, from left to right and
       up to down, Flip horizontally, Up,  Flip  vertically,  Left,  Fold,  Right,  Rotate  right
       (counterclock), Down, Rotate left (clockwise).

       Some  commands  are  also available directly through the keyboard when the mouse cursor is
       located on the Pixmap widget. They will be mentioned as an accelerator  in  the  following
       description.

       LEFT BAR COMMANDS

            Undo
                This  command  is  used  to  undo  the  last operation. Only one operation can be
                undone.  The accelerator of this command is Any<Key>u.

            Clear
                This command is used to clear all of the pixels in the pixmap as if Button 3  had
                been  dragged through every pixel in the pixmap.  The accelerator of this command
                is [Shift]<Key>c.

            Set This command is used to set all of the pixels in the pixmap to the current color,
                as  if  Button  1  had  been  dragged  through  every  pixel  in the pixmap.  The
                accelerator of this command is [Shift]<Key>s.

            Redraw
                This command is used to redisplay the pixmap.  The accelerator of this command is
                Ctrl<Key>l.

            Copy
                This command is used to copy a region of the pixmap from one location to another.
                When this command is invoked, the region to copy should
                 be specified by pressing Button 1, dragging the mouse and  releasing  Button  1.
                The  region can now be copied by pressing Button 1 with the cursor located on the
                region selected, dragging the mouse and releasing it where the upper left  corner
                of  the  region  should  be copied.  If a region was already selected with a Mark
                command, only the second phase of the copy is necessary.  The accelerator of this
                command   is   available   when  a  region  has  already  been  selected  and  is
                Ctrl<Btn2Down> to drag the region and Ctrl<Btn2Up> to  draw  it  to  point.  This
                accelerated  command is identical to the Paste command available through the Edit
                menu of the top menu bar.

            Move
                This command is used to move a region of the pixmap from one location to another.
                When  this command is invoked, the region to move should be specified by pressing
                Button 1, dragging the mouse and releasing Button 1. The region can now be  moved
                by pressing Button 1 with the cursor located on the region selected, dragging the
                mouse and releasing it where the upper left corner of the region should be moved.
                The  initial  region  is  cleared.   If a region was already selected with a Mark
                command, only the second phase of the move is necessary.

            Mark
                This command is used to mark a region to move or copy it later (commands Move and
                Copy  above),  or to put it in the Cut&Paste buffer (commands Cut and Copy of the
                Edit menu of the top menu bar). When this command is invoked, the  region  should
                be  specified  by  pressing  Button 1, dragging the mouse and releasing Button 1.
                Once marked, the region is highlighted.   The  accelerator  of  this  command  is
                Ctrl<Btn1Down> to initiate the selection and Ctrl<Btn1Up> to finish it.

            Unmark
                This  command  is  used to unmark a region previously marked. It will unhighlight
                the region.  The accelerator of this command is Ctrl<Btn3Down>.

            Flip horizontally
                This command is used to flip horizontally the whole pixmap or the marked  region.
                This  means  mirroring horizontally the pixmap image. The mirror is placed at the
                middle  of  the  pixmap   height.    The   accelerator   of   this   command   is
                [Shift|Ctrl]<Key>h.

            Up  This command is used to move the whole pixmap or the marked region up.  Pixels at
                the top of the pixmap are pushed back at the  bottom  of  the  new  pixmap.   The
                accelerator of this command is Any<Key>Up (not available in Motif version).

            Flip vertically
                This  command  is  used to flip vertically the whole pixmap or the marked region.
                This means mirroring vertically the pixmap image. The mirror  is  placed  at  the
                middle of the pixmap width.  The accelerator of this command is Any<Key>v.

            Left
                This  command is used to move the whole pixmap or the marked region left.  Pixels
                at the left of the pixmap are pushed back at the right of the  new  pixmap.   The
                accelerator of this command is Any<Key>Left (not available in Motif version).

            Fold
                This  command is used to "Fold" the pixmap. This means splitting the pixmap image
                in four squares (top left, top right, bottom left and bottom right) and inverting
                them  (top  becomes  bottom,  left  becomes right, and so on).  "Folding" twice a
                pixmap does no change.  The accelerator of this command is [Shift|Ctrl]<Key>f.

            Right
                This command is used to move the whole pixmap or the marked region right.  Pixels
                at  the  right  of the pixmap are pushed back at the left of the new pixmap.  The
                accelerator of this command is Any<Key>Right (not available in Motif version).

            Rotate right
                This command is used to rotate the  pixmap  image  or  the  marked  region  right
                (clockwise)  of  90  degrees.   Four Rotate right operations does no change.  The
                accelerator of this command is [Shift|Ctrl]<Key>r.

            Down
                This command is used to move the whole pixmap or the marked region  down.  Pixels
                at  the  bottom  of the pixmap are pushed back at the top of the new pixmap.  The
                accelerator of this command is Any<Key>Down (not available in Motif version).

            Rotate left
                This command is used to rotate  the  pixmap  image  or  the  marked  region  left
                (counterclock)  of  90  degrees. Four Rotate left operations does no change.  The
                accelerator of this command is [Shift]<Key>l.

            Point
                This command is used to set, invert or clear a pixel to the  current  color.   It
                can  be  considered  as  a  mode. After selecting it, pixels are set, inverted or
                cleared depending on the button used (see Pixels Editing with the Mouse). If  the
                mouse button remains pressed while dragging the mouse, more than one pixel can be
                affected.  This command has no accelerator.

            Curve
                This command is used to draw curved lines (set, cleared or inverted).  The  curve
                is  drawn  while  dragging  the  mouse. This command can be considered as a mode.
                Quite the same affect can be obtained by dragging the mouse in  point  mode,  the
                main difference resides in the fact that pixels will be drawn contiguously.  This
                command has no accelerator.

            Line
                This command is used to draw lines between two points (set, cleared or inverted).
                The  lines  are  first drawn highlighted while mouse button remains pressed. This
                command can be considered as a mode.  This command has no accelerator.

            Rectangle
                This command is used to draw rectangles  between  two  points  defining  the  two
                opposite corners of the rectangle (set, cleared or inverted).  The rectangles are
                first drawn highlighted while mouse button remains pressed. This command  can  be
                considered as a mode.  This command has no accelerator.

            Filled Rectangle
                This  command  is  used to draw filled rectangles between two points defining the
                two opposite corners of the rectangle (set, cleared or inverted).  The rectangles
                outlines  are  first  drawn  highlighted while mouse button remains pressed. This
                command can be considered as a mode.  This command has no accelerator.

            Circle
                This command will set, invert or clear the pixels on  a  circle  specified  by  a
                center and a point on the curve. Small circles may not look very round because of
                the size of the pixmap and the limits of having to  work  with  discrete  pixels.
                This command can be considered as a mode.  This command has no accelerator.

            Filled Circle
                This command will set, invert or clear all of the pixels in a circle specified by
                a center and a point on the curve. All pixels side and including the  circle  are
                set. This command can be considered as a mode.  This command has no accelerator.

            Flood Fill
                This  command  will set all clear pixels in an enclosed shape. The enclosed shape
                is determined by all the pixels whose color is different from the  color  of  the
                pixel  on  which  the  user  has clicked.  If the shape is not closed, the entire
                pixmap will be filled. This command can be considered as a  mode.   This  command
                has no accelerator.

            Set Hot Spot
                This  command allows the specification of a Hot Spot. The Hot Spot is selected by
                clicking the Set mouse button. Clicking Invert will invert the Hot Spot,  set  or
                reset  it  depending on its previous state. Hot spot is useful for cursor pixmaps
                and are used to reference the sensible part of the pixmap.  This command  has  no
                accelerator.

            Clear Hot Spot
                This command clears the current Hot Spot.  This command has no accelerator.

            Set Port
                This  command  allows one to create a Port extension line graphically. It is part
                of the customized Port extension editor developed by Tim  Wise  (SES  Inc.).  The
                Port  is  set  on  the  pixmap  image  by clicking any of the mouse button.  This
                command has no acelerator.

            Clear Port
                This command allows one to remove a Port extension line graphically. It  is  part
                of  the  customized  Port  extension editor developed by Tim Wise (SES Inc.). The
                Port onto which any mouse button was clicked is cancelled.  This command  has  no
                accelerator.

            Move Port
                This  command  allows  one  to  move  a  Port,  that is to change the coordinates
                specified in the Port extension line. It is part of the customized Port extension
                editor developed by Tim Wise (SES Inc.). The Port onto which any mouse button was
                pressed is moved with the mouse cursor until the mouse button is released.   This
                command has no accelerator.

            Port Info...
                This  command  allows  one  to edit the information associated to a Port, that is
                contained in a Port extension line. It is part of the customized  Port  extension
                editor  developed  by  Tim  Wise (SES Inc.).  The information associated with the
                Port onto which any mouse button was clicked is displayed in a dialog window.  It
                can  be  edited  in  that  dialog  and saved by clicking the "Okay" button of the
                dialog.  This command has no accelerator.

       TOP MENU COMMANDS

            Info
                This command pops up an info window.

       File MENU

            Load...
                This command is used to load a pixmap file in the pixmap editor. A dialog  window
                is  poped  up  in  which  a  filename  has  to  be provided. The operation can be
                interrupted with the Cancel button of the dialog window.  The accelerator of this
                command is Alt<Key>l.

            Insert...
                This  command  is  used  to  load  a pixmap in the Cut&Paste buffer of the pixmap
                editor. The contents of the pixmap file can then be pasted on the current pixmap.
                A dialog window is poped up in which a filename has to be provided. The operation
                can be interrupted with the Cancel button of the dialog window.  The  accelerator
                of this command is Alt<Key>i.

            Save
                This  command  is  used to save the current pixmap in the current file edited. By
                default, and until otherwise changed by a  Filename...,  Load...  or  Save  As...
                operation,  or  by  specifying  the filename on the command line, the filename is
                scratch. The Filename... command can be used to  change  this  default  filename.
                The accelerator of this command is Alt<Key>s.

            Save As...
                This  command  is used to save the current pixmap in a particular file which name
                has to be provided in the dialog window which  pops  up.  The  operation  can  be
                interrupted with the Cancel button of the dialog window.  The accelerator of this
                command is Alt<Key>a.

            Resize...
                This command is used to resize  the  current  pixmap  to  the  width  and  height
                specified  in  the  dialog window which pops up. The syntax is WIDTHxHEIGHT. This
                operation is different from the Rescale...  one in the way that it  just  add  or
                remove  pixels  to  the  current pixmap without trying to fit the space correctly
                with the pixmap image. The operation can be interrupted with the Cancel button of
                the dialog window.  The accelerator of this command is Alt<Key>r.

            Rescale...
                This  command is used to rescale the current pixmap image in order to make it fit
                a larger or smaller space. The new width and height have to be specified  in  the
                dialog  window  which  pops up with the syntax WIDTHxHEIGHT. The operation can be
                interrupted with the Cancel button of the dialog window.  The accelerator of this
                command is Alt<Key>e.

            Filename...
                This  command  is used to change the current filename, i.e., the name of the file
                in which the pixmap will be saved with a Save operation.  The new filename has to
                be  provided in the dialog window which pops up. The operation can be interrupted
                with the Cancel button of the dialog window.  The accelerator of this command  is
                Alt<Key>f.

            Hints comment...
                This  command  pops  up  a  dialog window in which the user can specify the hints
                section comment of the pixmap file. The operation can  be  interrupted  with  the
                Cancel  button  of  the  dialog  window.   The  accelerator  of  this  command is
                Alt<Key>h.

            Colors comment...
                This command pops up a dialog window in which the user  can  specify  the  colors
                section  comment  of  the  pixmap file. The operation can be interrupted with the
                Cancel button  of  the  dialog  window.   The  accelerator  of  this  command  is
                Alt<Key>c.

            Pixels comment...
                This  command  pops  up  a dialog window in which the user can specify the pixels
                section comment of the pixmap file. The operation can  be  interrupted  with  the
                Cancel  button  of  the  dialog  window.   The  accelerator  of  this  command is
                Alt<Key>p.

            Quit
                This command causes pixmap to display a dialog  box  asking  whether  or  not  it
                should  save  the pixmap (if it has changed) and then exit.  Answering yes is the
                same as invoking Save; no causes pixmap to simply exit; and cancel will abort the
                Quit  command  so that more changes may be made.  The accelerator of this command
                is Alt<Key>q.

       Edit MENU

            Image
                This command pops up a window in which the  real  size  pixmap  is  shown.   This
                window can be closed by clicking the mouse in it or by invoking Image once again.
                When the window is poped up, an X mark is displayed in the menu at  the  left  of
                the Image label.  The accelerator of this command is <Key>i.

            Grid
                This  command  toggles  the display of the grid. When the grid is displayed, an X
                mark is added at the left of the Grid label.  The accelerator of this command  is
                <Key>g.

            Axes
                This  command  toggles the display of axes. When axes are displayed, an X mark is
                added at the left of the Axes label.  The accelerator of this command is <Key>a.

            Proportional
                This  command  toggles  the  display  in  proportional  mode   of   the   pixmap.
                Proportional mode means that the Pixmap widget won't try to fit all the available
                space within the interface and will  rather  display  each  pixel  in  a  square,
                probably  leaving some space around the pixmap widget. When the proportional mode
                is active, an X mark is added  at  the  left  of  the  Proportional  label.   The
                accelerator of this command is <Key>p.

            Zoom
                This  command  is  used  to  zoom  some pixels of the current pixmap. The zooming
                region has to be selected by the use as a rectangle region  just  as  if  he  was
                marking a region (see Mark command). The operation can be interrupted by invoking
                any other command. When a region is zoomed, an X mark is added at the left of the
                Zoom  label.  Invoking once again the Zoom command zooms out.  The accelerator of
                this command is <Key>z.

            Zoom In
                This command is used to incrementaly zoom into the  current  pixmap.   This  side
                effect  of  this  is  to  enlarge the size of a square used to represent a single
                pixel.  The accelerator of this command is <Key>x.

            Zoom Out
                This command is used to incrementaly zoom out of the current pixmap.   This  side
                effect  of  this  is  to  reduce  the size of a square used to represent a single
                pixel.  The accelerator of this command is <Key>y.

            Zooming Factor
                The command pops up a dialog window in  which  the  user  can  edit  the  current
                zooming  factor.   The zooming factor is the size of a square used to represent a
                single pixel.  Enlarging the zooming factor will zoom into  the  current  pixmap,
                while  reducing  it will zoom out of the pixmap.  The accelerator of this command
                is <Key>f.

            Cut When a region is marked, this operation is active. It is used to cut the contents
                of  the  region  to put it in the Cut&Paste buffer. The Paste command now becomes
                active and the marked region is unmarked. The pixels in  the  marked  region  are
                cleared.  This command acts as the Move one when a region is already marked.  The
                accelerator of this command is Ctrl<Key>c.

            Copy
                When a region is marked, this operation  is  active.  It  is  used  to  copy  the
                contents  of  the  region  in the Cut&Paste buffer. The Paste command now becomes
                active and the marked region is unmarked. This command acts as the  Copy  command
                of  the  left  border  when  a region is already marked.  The accelerator of this
                command is Ctrl<Key>x.

            Paste
                When a region has been cut or copied in the Cut&Paste  buffer,  this  command  is
                active  and  can  be used to paste the contents of the Cut&Paste buffer where the
                mouse button is clicked. The paste operation takes care of  the  button  used  to
                specify  the  point  where  to paste the buffer. The button can remain pressed to
                move the buffer around and then be released to paste the buffer  at  the  current
                location.   A  Copy  and  Paste operation can be accelerated by Ctrl<Btn2Down> to
                intiate the operation and Ctrl<Btn2Up> to finish the operation, i.e.,  paste  the
                buffer.  The accelerator of this command is Ctrl<Key>p.

            Crop
                When  a  region  is  marked, or a file has been inserted in the Cut&Paste buffer,
                this command will exchange the current pixmap with  the  marked  region,  or  the
                Cut&Paste  buffer.  Cropping twice does nothing.  The accelerator of this command
                is Ctrl<Key>o.

       Foreground Color MENU

            Add color...
                This command is used to add a new color in the Color Panel (see below). The color
                name  is specified in the dialog window which pops up either by a real color name
                found in rgb.txt file or by a string like #rrggbb where rr, gg and  bb  represent
                the  red,  green  and  blue  components  of  the color in hexadecimal format. The
                operation can be interrupted with the Cancel button of the  dialog  window.   The
                accelerator of this command is Ctrl<Key>a.

            Symbolic name...
                This command is used to set the symbolic name of the current color.  The symbolic
                name is entered in the  dialog  window  which  pops  up.  The  operation  can  be
                interrupted with the Cancel button of the dialog window.  The accelerator of this
                command is Ctrl<Key>s.

            Monochrome name...
                This command is used to set the monochrome name of the current color,  i.e.,  the
                name  of  the color to use on monochrome displays. The monochrome name is entered
                in the dialog window which pops up. The operation can  be  interrupted  with  the
                Cancel  button  of  the  dialog  window.   The  accelerator  of  this  command is
                Ctrl<Key>m.

            Grey scale 4 name...
                This command is used to set the grey scale 4 name of the current color, i.e., the
                name  of  the  color  to  use on grey scale 4 displays.  The grey scale 4 name is
                entered in the dialog window which pops up.  The  operation  can  be  interrupted
                with  the Cancel button of the dialog window.  The accelerator of this command is
                Ctrl<Key>4.

            Grey scale name...
                This command is used to set the grey scale name of the current color,  i.e.,  the
                name  of  the color to use on grey scale (with more then 4 levels) displays.  The
                grey scale name is entered in the dialog window which pops up. The operation  can
                be  interrupted  with the Cancel button of the dialog window.  The accelerator of
                this command is Ctrl<Key>g.

            Color name...
                This command is used to set the color name of the current color. This change will
                be  considered when saving the pixmap but to remain visible, it affects the label
                of the menu item of the color. This is useful to directly change a specific color
                for  another  one  or  to allow multiple symbols to represent the same color (the
                color can be the same on color display but change on  grey  scale  or  monochrome
                ones).   The  color  name  is  entered  in  the  dialog window which pops up. The
                operation can be interrupted with the Cancel button of  the  dialog  window.  The
                None  (not  case  sensitive)  name  is  used to change the pixel representing the
                transparent color.  The accelerator of this command is Ctrl<Key>n.

       Xpm Extensions MENU

            Add Extension...
                This command pops up a dialog window into which the user provides a name  for  an
                extension to be added in the current pixmap extensions list. The operation can be
                interrupted with the Cancel button of the dialog window.  If  the  user  confirms
                with  the Okay button, another dialog windows pops up where the user can edit the
                extension contents. When the user clicks on the Cancel button into this extension
                editing  window,  the edit operation is interrupted but the extension is added to
                the extensions list of the current pixmap. If the user wishes to  abort  the  Add
                Extension...  operation,  he/she needs to click on the Remove button. The edition
                can otherwise be confirmed by clicking on the Okay button.

            Any extension name
                WHen an extension is added in the extensions list of the current pixmap, its name
                appears  in  the  Xpm  Extensions  menu. When selected in the menu, the extension
                edition window pops up. See above for its description.

       In addition the Motif version defines the status label as two active buttons which operate
       as Filename... and Resize... commands.

COLOR PANEL

       Colors  in  pixmap  are  presented  in  the Color Panel. Each loaded color is associated a
       square button, filled with the color pixel.  Scrollbars around the panel  enable  scanning
       the  whole panel. To choose a color for drawing, the user must click on a color button. At
       this time, the current name of the color is displayed as the title of the Foreground Color
       menu.  A  color  can  also  be  selected by using Shift<BtnDown> on a pixel of the current
       pixmap which color should be used. This accelerator is very useful  when  modifying  small
       parts of a pixmap locally.

FILE FORMAT

       The  Save  or Save As... commands store pixmaps using the format defined by Arnaud Le Hors
       in his Xpm library (version 3.x).  Each pixmap is a C string array variable  that  can  be
       included  and used within programs, or referred to by X Toolkit pixmap resources (assuming
       that a String to Pixmap converter has been registered on the server). Here is  an  example
       of a pixmap file:

                     /* XPM */
                     static char * plaid[] = {
                     /* plaid pixmap
                      * width height ncolors chars_per_pixel */
                     "22 22 4 2 ",
                     /* colors */
                     "   c red         m white  s light_color ",
                     "Y  c yellow      m black  s lines_in_mix ",
                     "+  c yellow      m white  s lines_in_dark ",
                     "x                m black  s dark_color ",
                     /* pixels */
                     "x   x   x x x   x   x x x x x x + x x x x x ",
                     "  x   x   x   x   x   x x x x x x x x x x x ",
                     "x   x   x x x   x   x x x x x x + x x x x x ",
                     "  x   x   x   x   x   x x x x x x x x x x x ",
                     "x   x   x x x   x   x x x x x x + x x x x x ",
                     "Y Y Y Y Y x Y Y Y Y Y + x + x + x + x + x + ",
                     "x   x   x x x   x   x x x x x x + x x x x x ",
                     "  x   x   x   x   x   x x x x x x x x x x x ",
                     "x   x   x x x   x   x x x x x x + x x x x x ",
                     "  x   x   x   x   x   x x x x x x x x x x x ",
                     "x   x   x x x   x   x x x x x x + x x x x x ",
                     "          x           x   x   x Y x   x   x ",
                     "          x             x   x   Y   x   x   ",
                     "          x           x   x   x Y x   x   x ",
                     "          x             x   x   Y   x   x   ",
                     "          x           x   x   x Y x   x   x ",
                     "x x x x x x x x x x x x x x x x x x x x x x ",
                     "          x           x   x   x Y x   x   x ",
                     "          x             x   x   Y   x   x   ",
                     "          x           x   x   x Y x   x   x ",
                     "          x             x   x   Y   x   x   ",
                     "          x           x   x   x Y x   x   x "
                     } ;

       The  plaid  name used to reference the pixmap variable is constructed from the name of the
       file in which is saved the pixmap.  Any directories are stripped off the front of the name
       and any suffix beginning with a period is stripped off the end.

       The  pixmap variable is a string array in which the first string of the array contains the
       width, height, number of colors and number of characters per pixel.

       The following strings represent the color descriptions, one  string  per  color.  A  color
       description  can  be  composed of one or more characters that represent a pixel, and color
       display name preceded by the `c' character, and/or a symbolic name  preceded  by  the  `s'
       character,  and/or  a monochrome display name preceded by the `m' character, and or a grey
       scale 4 levels display name preceded by the string `g4' , and/or a grey scale display name
       preceded by the aharacter `g', specified in any order.

       Following  color description strings, each string represent a line of the pixmap, composed
       of symbolic characters assigned to colors.

USING PIXMAPS IN PROGRAMS

       The format of pixmap files is designed to make pixmaps easy  to  use  within  X  programs,
       whatever your display is.  The following code could be used to create a pixmap to use as a
       window background, using the enhanced Xpm library  (version  3.3)  from  Groupe  Bull  and
       assuming that the pixmap was stored in a file name plaid.xpm:

               #include "plaid.xpm"

               Pixmap pixmap;

               XpmCreatePixmapFromData (display, drawable, plaid, &pixmap,
                            &pixmap_mask, &attributes);

       Additional  routines  are  available for reading in pixmap files and returning the data in
       the file in Pixmaps.

WIDGET HIERARCHY

       The hierarchy of the pixmap editor is discribed here in order to configure the  editor  by
       means  of  X resources in a .Xdefaults file.  The first widget class is the Athena version
       one, while the second one, separated by a | character, is the Motif version one.

       Pixmap                                            pixmap
            Paned|RowColumn                              parent
                 Form|RowColumn                          formy
                      MenuButton|CascadeButtonGadget     fileButton
                      SimpleMenu|RowColumn               fileMenu
                           SmeBSB|PushButtonGadget       load
                           SmeBSB|PushButtonGadget       insert
                           SmeBSB|PushButtonGadget       save
                           SmeBSB|PushButtonGadget       saveAs
                           SmeLine|SeparatorGadget       line
                           SmeBSB|PushButtonGadget       resize
                           SmeBSB|PushButtonGadget       rescale
                           SmeBSB|PushButtonGadget       filename
                           SmeBSB|PushButtonGadget       hintsCmt
                           SmeBSB|PushButtonGadget       colorsCmt
                           SmeBSB|PushButtonGadget       pixelsCmt
                           SmeLine|SeparatorGadget       line
                           SmeBSB|PushButtonGadget       quit
                      MenuButton|CascadeButtonGadget     editButton
                      SimpleMenu|RowColumn               editMenu
                           SmeBSB|ToggleButtonGadget     image
                           SmeLine|SeparatorGadget       line
                           SmeBSB|ToggleButtonGadget     grid
                           SmeBSB|ToggleButtonGadget     axes
                           SmeBSB|ToggleButtonGadget     proportional
                           SmeBSB|ToggleButtonGadget     zoom
                           SmeBSB|PushButtonGadget       zoomIn
                           SmeBSB|PushButtonGadget       zoomOut
                           SmeBSB|PushButtonGadget       zoomFactor
                           SmeLine|SeparatorGadget       line
                           SmeBSB|PushButtonGadget       cut
                           SmeBSB|PushButtonGadget       copy
                           SmeBSB|PushButtonGadget       paste
                           SmeBSB|PushButtonGadget       crop
                      MenuButton|CascadeButtonGadget     fgButton
                      SimpleMenu|RowColumn               fgMenu
                           SmeBSB|PushButtonGadget       addColor
                           SmeBSB|PushButtonGadget       symbolicName
                           SmeBSB|PushButtonGadget       monochromeName
                           SmeBSB|PushButtonGadget       g4Name
                           SmeBSB|PushButtonGadget       gName
                      MenuButton|CascadeButtonGadget     extensionButton
                      SimpleMenu|RowColumn               extensionMenu
                           SmeBSB|PushButtonGadget       addExtension
                           SmeBSB|PushButtonGadget       <extension_name>
                           .
                           .
                           .
                      Label|CascadeButtonGadget          status
                      |CascadeButtonGadget               statusb
                      Command|CascadeButtonGadget        infoButton
                 Paned|Form                              pane
                      Form|RowColumn                     form
                           Command|PushButtonGadget      undo
                           Command|PushButtonGadget      clear
                           Command|PushButtonGadget      set
                           Command|PushButtonGadget      redraw
                           Toggle|ToggleButtonGadget     copy
                           Toggle|ToggleButtonGadget     move
                           Toggle|ToggleButtonGadget     mark
                           Command|PushButtonGadget      unmark
                           |RowColumn                    formh
                                Command|PushButtonGadget flipHoriz
                                Command|PushButtonGadget up
                                Command|PushButtonGadget flipVert
                           |RowColumn                    formh
                                Command|PushButtonGadget left
                                Command|PushButtonGadget fold
                                Command|PushButtonGadget right
                           |RowColumn                    formh
                                Command|PushButtonGadget rotateLeft
                                Command|PushButtonGadget down
                                Command|PushButtonGadget rotateRight
                           Toggle|ToggleButtonGadget     point
                           Toggle|ToggleButtonGadget     line
                           Toggle|ToggleButtonGadget     rectangle
                           Toggle|ToggleButtonGadget     filledRectangle
                           Toggle|ToggleButtonGadget     circle
                           Toggle|ToggleButtonGadget     filledCircle
                           Toggle|ToggleButtonGadget     floodFill
                           Toggle|ToggleButtonGadget     setHotSpot
                           Command|PushButtonGadget      clearHotSpot
                           Toggle|ToggleButtonGadget     setPort
                           Toggle|ToggleButtonGadget     clearPort
                           Toggle|ToggleButtonGadget     movePort
                           Toggle|ToggleButtonGadget     portInfo
                      Paned|PanedWindow                  vPane
                           ViewPort|ScrolledWindow       colorView
                                Box|RowColumn            colorPane
                                     Command|PushButton  <color_name>
                                     .
                                     .
                                     .
                           ViewPort|ScrolledWindow       pixmapView
                                Pixmap|Pixmap            pixmap
            TransientShell|TransientShell                image
                 Label|Label                             label
            PopupShell|SelectionBox                      info
                 Dialog|                                 dialog
                      Label|                             label
                      Text|                              value
                      Command|                           Okay
            PopupShell|SelectionBox                      input
                 Dialog|                                 dialog
                      Label|                             label
                      Text|                              value
                      Command|                           Okay
                      Command|                           Cancel
            PopupShell|SelectionBox                      file
                 Dialog|                                 dialog
                      Label|                             label
                      Text|                              value
                      Command|                           Okay
                      Command|                           Cancel
            PopupShell|SelectionBox                      error
                 Dialog|                                 dialog
                      Label|                             label
                      Command|                           Abort
                      Command|                           Retry
            PopupShell|SelectionBox                      qsave
                 Dialog|                                 dialog
                      Label|                             label
                      Text|                              value
                      Command|                           Yes
                      Command|                           No
                      Command|                           Cancel
            PopupShell|PopupShell                        extEditorShell|extEditor_popup
                 Form|Form                               extEditor
                      Label|Label                        name
                      AsciiText|ScrolledText             text
                      Command|PushButtonGadget           ok
                      Command|PushButtonGadget           cancel
                      Command|PushButtonGadget           remove

       Lines  where  only  appears  one  or  the  other  type  of  a  widget  (like  Dialog|   or
       |CascadeButtonGadget)  mean  that the widget doesn't exist in one or the other version. In
       the case of dialogs in the Motif version, the widgets are created by means  of  convenient
       routines  which  assign the name of the widget depending on the name of the dialog. By the
       way, we can't provide with a list of types  and  names  for  the  substructure  of  dialog
       widgets in the Motif version. However, these shouldn't be often modified.

X DEFAULTS

       In  addition  to the standard Athena or Motif widgets resources, pixmap uses the following
       resources for the Pixmap widget (named pixmap):

       Cursor
           The cursor to use within the Pixmap widget.

       Foreground
           The initial foreground color for drawing.

       Highlight
           The highlighting color.

       Framing
           The framing color, used to draw grid and axes.

       Transparent
           The color representing transparent pixels.

       Proportional
           Toggles initial proportional display mode.

       Grid
           Toggles initial grid display.

       GridTolerance
           Determines when to display grid according to SquareSize.

       Stippled
           Suppress stipple drawing of transparent pixels.

       Stipple
           Depth 1 pixmap to use to draw transparent pixels stippled.

       Axes
           Toggles axes display.

       Resize
           Toggles Pixmap widget resize when requesting by window manager.

       Distance
           The margin around Pixmap widget.

       SquareSize
           The size in screen points used to display each pixmap pixels.

       PixmapWidth
           The initial width of the pixmap.

       PixmapHeight
           The initial height of the pixmap.

       Button1Action
           The action associated to mouse button 1 (between Set, Invert and Clear).

       Button2Action
           The action associated to mouse button 2 (between Set, Invert and Clear).

       Button3Action
           The action associated to mouse button 3 (between Set, Invert and Clear).

       Button4Action
           The action associated to mouse button 4 (between Set, Invert and Clear).

       Button5Action
           The action associated to mouse button 5 (between Set, Invert and Clear).

       Filename
           The initial file to load.

       AddColorNtfyProc
           The procedure to call when reading a pixmap  file  to  notify  color  loading.  It  is
           strongly advised not to change this resource.

       ExtensionNtfyProc
           The  procedure  to  call when reading a pixmap file to notify extension loading. It is
           strongly advised not to change this resource.

SEE ALSO

       X(1), Xpm library manual,  Xlib - C Language X  Interface  (particularly  the  section  on
       Manipulating Pixmaps)

BUGS

       If  you  move the pointer too fast while holding a pointer button down, some pixels may be
       missed.  This is caused by limitations in how frequently  the  X  server  can  sample  the
       pointer location.

       Loading  a  pixmap file where the same color is used more than once with different symbols
       and descriptions, and writing it will loose information concerning  the  color  used  more
       than  once.  The pixmap file plaid given as an example in this man won't be saved that way
       by pixmap.

       Accelerators to menu operations don't seem to work with Athena version.

       In the Motif version, the Filename... and Resize...  commands open their respective dialog
       window in a strange mode. The user has to voluntary (;-) give the focus to the text widget
       inside to be able to change its content.

COPYRIGHT

       Copyright 1991,1992,1993,1994 - Lionel Mallet.

AUTHOR

       pixmap by Lionel Mallet - Simulog.  Extension edition and customized Port  editor  by  Tim
       Wise - SES Inc.