Man Linux: Main Page and Category List

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   (/etc/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 mentionned
       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  to  create  a   Port   extension   line
                graphically.  It  is  part  of  the  customized Port extension
                editor developped 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  to  remove  a   Port   extension   line
                graphically.  It  is  part  of  the  customized Port extension
                editor developped 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 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 developped 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  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 developped 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 allow to scan 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,
       seperated 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.