[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#66023: PROPOSAL] Treat plugins and shared libraries differently



On Mon, Jul 17, 2000 at 12:31:10PM +0100, Edward Betts wrote:
> Branden Robinson <branden@debian.org> wrote:
> > Our Xaw-replacement handling is seriously pathological in every sense of
> > the term.
> > 
> > This will no longer be a concern in woody.  With XFree86 4.0.1, libXaw is
> > coming out of xlib6g and can be handled with the normal
> > Conflicts/Replaces/Provides mechanism.
> 
> Conflicts? But what if I want two versions of xaw installed at once?

You mean two versions with the same soname?

Well, that's the same old problem.  But Xaw 7.0 has a solution:

DISPLAY LISTS
       All  the Xaw widgets have now the additional resource dis-
       playList.  This resource allows drawing the widget decora-
       tions  with commands embedded in the resource string.  The
       displayList resource has the syntax:
       [class-name:]function-name arguments[[{;\n}]...]
       Class-name is any registered set of functions to  draw  in
       the widget.  Currently the only existing class is xlib.
       Function-name  is the drawing or configuration function to
       be called, described bellow.
       Arguments may be  anything  suitable  to  the  displayList
       function  being called. When the function requires a coor-
       dinate, the syntax is  {+-}<integer>  or  <integer>/<inte-
       ger>. Examples:
            +0,+0      top, left
            -0,-0      bottom, right
            -+10,-+10  bottom+10, right+10
            +0,1/2     left, vertical-center


       arc-mode mode
               Sets  the arc mode. Accepted parameters are "pies-
               lice" and "chord", that sets the arc  to  ArcPieS-
               lice or ArcChord, respectively. Example:
               arc-mode chord

       bg color-spec
       background color-spec
               Sets  the   background   color. Argument  must  as
               valid color  specification.  Example:
               background red

       cap-style style
               Sets the cap style. Accepted parameters are  "not-
               last",  "butt",  "round",  and  "projecting", that
               sets   the  cap   style  to   CapNotLast,  CapBut,
               CapRound or CapProjecting, respectively. Example:
               cap-style round

       clip-mask pixmap-spec
               Sets  the  pixmap  for  the  clip mask. Requires a
               pixmap parameter, as described in the PIXMAPS sec-
               tion of this man page. Example:
               clip-mask xlogo11

       clip-origin x,y
               Sets  the  clip x and y origin. Requires two argu-
               ments,  a x and y coordinate.  Example:
               clip-origin 10,10

       clip-rects x1,y1,x2,y2 [...,xn,yn]
       clip-rectangles x1,y1,x2,y2 [...,xn,yn]
               Sets a list of rectangles to the  clip  mask.  The
               number  of  arguments  must be a multiple of four.
               The arguments are coordinates. The  parser  calcu-
               lates  the  width  and  height  of the rectangles.
               Example:
               clip-rects 0,0,10,20, 20,10,30,30

       coord-mode mode
               Changes  the   coord   mode   for    fill-polygon,
               draw-lines,   and draw-points. Accepted parameters
               are "modeorigin" and  "previous",  that  sets  the
               coord mode  to CoordModeOrigin or  CoordModePrevi-
               ous, respectively.  Example:
               coord-mode previous

       copy-area {pixmap-spec|.},dstx,dsty[,x2,y2,srcx,srcy]
               Calls XCopyArea.  The  character  .   means   copy
               the window  contents, pixmap-spec is as defined in
               the PIXMAPS sction of  this manual page.  X2,  and
               y2  are   coordinates  of  the   end copy, not the
               width and height;  if  not  defined,   the  parser
               calculates   it.    Src_x   and  src_y defaults to
               zero. Example:
               copy-area Term,10,10

       copy-plane {pixmap-
       spec|.},dstx,dsty[,x2,y2,srcx,srcy,plane]
               Calls  XCopyPlane.   The  character  .  means copy
               the window  contents, pixmap-spec is as defined in
               the  PIXMAPS sction of  this manual page.  X2, and
               y2 are  coordinates of  the   end  copy,  not  the
               width and height;  if  not  defined,   the  parser
               calculates  it.   Src_x   and  src_y  defaults  to
               zero. Plane defaults to one. Example:
               copy-plane star,10,10

       dashes i1[...,in]
               Sets  the  dashes  for line drawing. Accepts up to
               127 arguments. Example:
               dashes 3,7 9,10

       draw-arc x1,y1,x2,y2[,start-angle,end-angle]
               Draws an arc. The four first  arguments  are   the
               rectangle  enclosing  the arc.  The two  remaining
               arguments, if  any,   are  the   start   and   end
               angle,  in degrees. Example:
               draw-arc +0,+0,-1,-1,0,90

       draw-rect x1,y1,x2,y2
       draw-rectangle x1,y1,x2,y2
               Draws  a   rectangle.  Requires   four  arguments,
               that  are the  start and  end  coordinates.  Exam-
               ple:
               draw-rect +1,+1,-5,-5

       draw-string x,y,"string"
               Draws  a   text   string.   Requires  three  argu-
               ments,  a  x  coordinate,  a  y coordinate  and  a
               string.  Strings   that  have white spaces can  be
               quoted with the " character,  the character  \ can
               also  be used,  but, you need to escape this char-
               acter twice. Example:
                draw-string 10,10, "Hello world!"

       exposures boolean
               Sets the graphics exposures in   the  GC.  Allowed
               parameters  are   a integer or the strings "true",
               "false", "on" and "off". Example:
               exposures true

       fill-arc x1,y1,x2,y2[,start-angle,end-angle]
               Like draw-arc, but fills  the contents of  the arc
               with  the currently selected foreground. Example:
               fill-arc +0,+0,-1,-1,0,180

       fill-poly x1,y1 [...,xn,yn]
       fill-polygon x1,y1 [...,xn,yn]
               Like  draw-lines, but  fills the enclosed  polygon
               and joins  the first and last point, if  they  are
               not at the same position. Example:
               fill-poly +0,+10, +10,+20, +30,+0

       fill-rect x1,y1,x2,y2
       fill-rectangle x1,y1,x2,y2
               Like  draw-rect,  but fills  the  contents of  the
               rectangle with   the  selected  foreground  color.
               Example:
               fill-rect +10,+10,-20,-20

       fill-rule rule
               Sets  the  fill   rule.  Accepted  parameters  are
               "evenodd" and  "winding", that sets the fill  rule
               to EvenOddRule or WindingRule, respectively. Exam-
               ple:
               fill-rule winding

       fill-style style
               Sets  the  fill  style.  Allowed  parameters   are
               "solid", "tiled", "stippled" and "opaquestippled",
               that  sets   the   fill   style    to   FillSolid,
               FillTiled,   FillStippled  or  FillOpaqueStippled,
               respectively. Example:
               fill-style tiled

       font font-spec
               Sets the font for text functions. Example:
               font -*-*-*-R-*-*-*-120-*-*-*-*-ISO8859-1

       fg color-spec
       foreground color-spec
               Like background, but sets the  current  foreground
               color. Example:
               foreground blue

       mask    This  command is useful when you want to draw only
               in the region that really needs to  be  repainted.
               Requires no arguments.

       function function-spec
               Sets  the specific GC function. Allowed parameters
               are "set", "clear", "and",  "andreverse",  "copy",
               "andinverted",   "noop",    "xor",  "or",   "nor",
               "equiv", "invert", "orreverse", "copyinverted" and
               "nand",  that set the  function to GXset, GXclear,
               GXand,    GXandReverse,   GXcopy,   GXandInverted,
               GXnoop,  GXxor,  GXor, GXnor,  GXequiv,  GXinvert,
               GXorReverse,  GXcopyInverted  or  GXnand,  respec-
               tively. Example:
               function xor

       join-style style
               Sets  the  join   style.  Allowed  parameters  are
               "miter", "round"  and "bevel",  that   sets    the
               join    style   to    JoinMiter,   JoinRound   and
               JoinBevel, respectively. Example:
               join-style round

       image {pixmap-spec},xs,ys,[xe,ye]
               This function is implemented as a way  to  quickly
               compose  complex  decorations  in widgets. Pixmap-
               spec is as defined in the PIXMAPS section of  this
               manual  page,  xs  and  ys are the coodinates from
               where start copying the  pixmap,  xe  and  ye  are
               optional  (defaults  to xs + pixmap.width and ys +
               pixmap.height respectively). If the pixmap  has  a
               mask, the copy is masked accordingly. Example:
               image pixmap.xpm,0,0,20,20

       line x1,y1,x2,y2
       draw-line x1,y1,x2,y2
               Draws a  line with  the current  foreground color.
               Require four  arguments.  Example:
               line +0,+0, -1,-1

       line-width integer
               Allow selecting a different  line  width  for  the
               drawing. Example:
               line-width 2

       line-style style
               Sets  the  line  style.  Accepted  parameters  are
               "solid",   "onoffdash"   and  "doubledash",   that
               sets   the  line  style  to LineSolid,  LineOnOff-
               Dash  or LineDoubleDash, respectively. Example:
               line-style onoffdash

       lines x1,y1,x2,y2 [...,xn,yn]
       draw-lines x1,y1,x2,y2 [...,xn,yn]
               Draws a list of lines. Any number of arguments may
               be supplied. Example:
               lines +0,-1, -1,-1, -1,+0

       paint-string x,y,"string"
               Identical  to draw-string, but also uses the back-
               ground color. Example:
                paint-string 10,20, "Sample text"

       point x,y
       draw-point x,y
               Draws a point. Requires two arguments. Example:
               point +10,+10

       plane-mask integer
               Allows setting the plane mask. Requires a  integer
               parameter. Example:
               plane-mask -1

       points x1,y1 [...,xn,yn]
       draw-points x1,y1 [...,xn,yn]
               Draws  a  list  of points at the specified coordi-
               nates. Example:
               points +1,+2, +1,+4, +1,+6

       segments x1,y1,x2,y2 [...,xn,yn]
       draw-segments x1,y1,x2,y2 [...,xn,yn]
               Draws a list of segment lines.  Number of  parame-
               ters must be  multiple of 4.  Example:
               segments +1,+2,+1,-3, +2,-2,-3,-2

       shape-mode mode
               Allows   setting   the   shape    mode   used   in
               fill-polygon.  Accepted parameters are  "complex",
               "convex" or "nonconvex", that  sets the shape mode
               to  Complex,  Convex  or  Nonconvex,  accordingly.
               Example:
               shape-mode convex

       stipple pixmap-spec
               Sets  the  pixmap  for  the   stipple.  Requires a
               pixmap  parameter, as  described  in  the  PIXMAPS
               section of this man page. Example:
               stipple plaid

       subwindow-mode mode
               Sets    the    subwindow    mode    in   the   GC.
               Accepted   parameters   are "includeinferiors" and
               "clipbychildren",  that   sets the  subwindow mode
               to  IncludeInferiors  or  ClipByChildren,  respec-
               tively. Example:
               subwindow-mode includeinferiors

       tile pixmap-spec
               Sets  the  pixmap for the  tile. Requires a pixmap
               parameter,  as described in the PIXMAPS section of
               this man page. Example:
               tile xlogo11?foreground=red&background=gray80

       ts-origin x,y
               Sets  the tile  stipple x and  y origin.  Requires
               two arguments,  a x  and y coordinate. Example:
               ts-origin 10,10

       umask   Disables the gc mask, when it was  set   with  the
               command mask. Requires no arguments.


       Example for drawing a shadow effect in a widget:
       foreground gray30;\
       draw-lines +1,-1,-1,-1,-1,+1;\
       foreground gray85;\
       draw-lines -1,+0,+0,+0,+0,-1


What does all this mean?  Xaw 7.0 is themeable.

So let's get those Athena apps ported to 7.0... :)

-- 
G. Branden Robinson             |    I suspect Linus wrote that in a
Debian GNU/Linux                |    complicated way only to be able to have
branden@debian.org              |    that comment in there.
http://www.debian.org/~branden/ |    -- Lars Wirzenius

Attachment: pgpgQ0ZgEyCs3.pgp
Description: PGP signature


Reply to: