dotgnu-libs-commits
[Top][All Lists]
Advanced

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

[Dotgnu-libs-commits] CVS: xsharp/Xsharp/XWindows BuiltinBitmaps.cs,NONE


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-libs-commits] CVS: xsharp/Xsharp/XWindows BuiltinBitmaps.cs,NONE,1.1 Effect.cs,NONE,1.1 Canvas.cs,1.3,1.4 ControlEvents.cs,1.1,1.2 Display.cs,1.5,1.6 Xlib.cs.in,1.6,1.7
Date: Mon, 30 Sep 2002 18:01:59 -0400

Update of /cvsroot/dotgnu-libs/xsharp/Xsharp/XWindows
In directory subversions:/tmp/cvs-serv20231/Xsharp/XWindows

Modified Files:
        Canvas.cs ControlEvents.cs Display.cs Xlib.cs.in 
Added Files:
        BuiltinBitmaps.cs Effect.cs 
Log Message:


Canvas drawing for 3D effects.


--- NEW FILE ---
/*
 * BuiltinBitmaps.cs - Builtin bitmaps for drawing special decorations.
 *
 * This file is part of the X# library.
 * Copyright (C) 2002  Southern Storm Software, Pty Ltd.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace XWindows
{

using System;

internal sealed class BuiltinBitmaps
{

        // Size of special bitmaps.
        public const int RadioWidth = 12;
        public const int RadioHeight = 12;

        // Radio button - bottom shadow color.
        private static readonly byte[] radio_b_bits = {
                0xf0, 0x00, 0x0c, 0x03, 0x02, 0x00, 0x02, 0x02, 0x01, 0x00, 
0x01, 0x00,
                0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 
0x00, 0x00
        };

        // Radio button - enhanced bottom shadow color.
        private static readonly byte[] radio_B_bits = {
                0x00, 0x00, 0xf0, 0x00, 0x0c, 0x03, 0x04, 0x00, 0x02, 0x00, 
0x02, 0x00,
                0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00
        };

        // Radio button - top shadow color.
        private static readonly byte[] radio_t_bits = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 
0x00, 0x08,
                0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x0c, 0x03, 
0xf0, 0x00
        };

        // Radio button - enhanced top shadow color.
        private static readonly byte[] radio_T_bits = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 
0x00, 0x04,
                0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x0c, 0x03, 0xf0, 0x00, 
0x00, 0x00
        };

        // Radio button - "white" background.
        private static readonly byte[] radio_w_bits = {
                0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0xf8, 0x01, 0x9c, 0x03, 
0x0c, 0x03,
                0x0c, 0x03, 0x9c, 0x03, 0xf8, 0x01, 0xf0, 0x00, 0x00, 0x00, 
0x00, 0x00
        };

        // Radio button - "black" foreground.
        private static readonly byte[] radio_f_bits = {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 
0xf0, 0x00,
                0xf0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00
        };

        // Pre-loaded bitmaps for the current object's display.
        public Xlib.Pixmap RadioBottom;
        public Xlib.Pixmap RadioBottomEnhanced;
        public Xlib.Pixmap RadioTop;
        public Xlib.Pixmap RadioTopEnhanced;
        public Xlib.Pixmap RadioBackground;
        public Xlib.Pixmap RadioForeground;

        // Load builtin bitmaps for a particular display.
        public BuiltinBitmaps(Display display)
                        {
                                IntPtr dpy = display.dpy;
                                Xlib.Drawable drawable = 
display.DefaultRootWindow.handle;
                                RadioBottom = Xlib.XCreateBitmapFromData
                                        (dpy, drawable, radio_b_bits, (uint)12, 
(uint)12);
                                RadioBottomEnhanced = Xlib.XCreateBitmapFromData
                                        (dpy, drawable, radio_B_bits, (uint)12, 
(uint)12);
                                RadioTop = Xlib.XCreateBitmapFromData
                                        (dpy, drawable, radio_t_bits, (uint)12, 
(uint)12);
                                RadioTopEnhanced = Xlib.XCreateBitmapFromData
                                        (dpy, drawable, radio_T_bits, (uint)12, 
(uint)12);
                                RadioBackground = Xlib.XCreateBitmapFromData
                                        (dpy, drawable, radio_w_bits, (uint)12, 
(uint)12);
                                RadioForeground = Xlib.XCreateBitmapFromData
                                        (dpy, drawable, radio_f_bits, (uint)12, 
(uint)12);
                        }

} // class BuiltinBitmaps

} // namespace XWindows

--- NEW FILE ---
/*
 * Effect.cs - 3D effect codes for "Canvas.DrawEffect".
 *
 * This file is part of the X# library.
 * Copyright (C) 2002  Southern Storm Software, Pty Ltd.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

namespace XWindows
{

using System;

/// <summary>
/// <para>The <see cref="T:XWindows.Effect"/> enumeration specifies
/// 3D effects (<see cref="T:XWindows.Canvas"/>).
/// </para>
/// </summary>
[Flags]
public enum Effect
{

        Raised                                          = (1<<0),
        Indented                                        = (1<<1),
        Etched                                          = (1<<2),
        Horizontal                                      = (1<<3),
        Vertical                                        = (1<<4),
        RadioBlank                                      = (1<<5),
        RadioSelected                           = (1<<6),
        RadioDisabled                           = (1<<7),
        RadioSelectedDisabled           = (1<<8),
        CheckBlank                                      = (1<<9),
        CheckSelected                           = (1<<10),
        CheckDisabled                           = (1<<11),
        CheckSelectedDisabled           = (1<<12),
        MenuSelected                            = (1<<13),
        MenuSelectedHighlighted         = (1<<14),
        MenuSelectedDisabled            = (1<<15),
        ContentColors                           = (1<<16),
        DefaultButton                           = (1<<17)

} // enum Effect

} // namespace XWindows

Index: Canvas.cs
===================================================================
RCS file: /cvsroot/dotgnu-libs/xsharp/Xsharp/XWindows/Canvas.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** Canvas.cs   28 Sep 2002 01:06:52 -0000      1.3
--- Canvas.cs   30 Sep 2002 22:01:56 -0000      1.4
***************
*** 1573,1576 ****
--- 1573,1986 ----
                        }
  
+       // Draw a radio button.
+       private void DrawRadio(IntPtr display,
+                                                  int x, int y, int width, int 
height,
+                                                  Xlib.Pixel topShadow,
+                                                  Xlib.Pixel topShadowEnhanced,
+                                                  Xlib.Pixel bottomShadow,
+                                                  Xlib.Pixel 
bottomShadowEnhanced,
+                                                  Xlib.Pixel foreground,
+                                                  Xlib.Pixel background)
+                       {
+                               // Adjust the top-left position of the radio 
button.
+                               x += (width - BuiltinBitmaps.RadioWidth) / 2;
+                               y += (height - BuiltinBitmaps.RadioHeight) / 2;
+                               width = BuiltinBitmaps.RadioWidth;
+                               height = BuiltinBitmaps.RadioHeight;
+ 
+                               // Draw the bitmaps.
+                               BuiltinBitmaps bitmaps = dpy.bitmaps;
+                               Xlib.XSetStipple(display, gc, 
bitmaps.RadioBottom);
+                               Xlib.XSetTSOrigin(display, gc, x, y);
+                               Xlib.XSetForeground(display, gc, bottomShadow);
+                               Xlib.XSetFillStyle(display, gc, 
(int)(FillStyle.FillStippled));
+                               Xlib.XFillRectangle(display, drawableHandle, gc,
+                                                                       x, y, 
width, height);
+ 
+                               Xlib.XSetStipple(display, gc, 
bitmaps.RadioBottomEnhanced);
+                               Xlib.XSetForeground(display, gc, 
bottomShadowEnhanced);
+                               Xlib.XFillRectangle(display, drawableHandle, gc,
+                                                                       x, y, 
width, height);
+ 
+                               Xlib.XSetStipple(display, gc, bitmaps.RadioTop);
+                               Xlib.XSetForeground(display, gc, topShadow);
+                               Xlib.XFillRectangle(display, drawableHandle, gc,
+                                                                       x, y, 
width, height);
+ 
+                               Xlib.XSetStipple(display, gc, 
bitmaps.RadioTopEnhanced);
+                               Xlib.XSetForeground(display, gc, 
topShadowEnhanced);
+                               Xlib.XFillRectangle(display, drawableHandle, gc,
+                                                                       x, y, 
width, height);
+ 
+                               Xlib.XSetStipple(display, gc, 
bitmaps.RadioForeground);
+                               Xlib.XSetForeground(display, gc, foreground);
+                               Xlib.XFillRectangle(display, drawableHandle, gc,
+                                                                       x, y, 
width, height);
+ 
+                               Xlib.XSetStipple(display, gc, 
bitmaps.RadioBackground);
+                               Xlib.XSetForeground(display, gc, background);
+                               Xlib.XFillRectangle(display, drawableHandle, gc,
+                                                                       x, y, 
width, height);
+ 
+                               // Restore the previously stipple pixmap.
+                               if(stipple != null)
+                               {
+                                       Xlib.XSetStipple(display, gc, 
stipple.GetPixmapHandle());
+                               }
+                       }
+ 
+       /// <summary>
+       /// <para>Draw a three-dimensional effect.</para>
+       /// </summary>
+       ///
+       /// <param name="x">
+       /// <para>The X co-ordinate of the top-left point.</para>
+       /// </param>
+       ///
+       /// <param name="y">
+       /// <para>The Y co-ordinate of the top-left point.</para>
+       /// </param>
+       ///
+       /// <param name="width">
+       /// <para>The width of the rectangle.  The pixel at
+       /// <i>x + width - 1</i> is the right-most side of the rectangle.</para>
+       /// </param>
+       ///
+       /// <param name="height">
+       /// <para>The height of the rectangle.  The pixel at
+       /// <i>y + height - 1</i> is the bottom-most side of the 
rectangle.</para>
+       /// </param>
+       ///
+       /// <param name="effect">
+       /// <para>The particular effect to draw.</para>
+       /// </param>
+       ///
+       /// <exception cref="T:XWindows.XException">
+       /// <para>One of the co-ordinate or size values is out of range.</para>
+       /// </exception>
+       public void DrawEffect(int x, int y, int width, int height, Effect 
effect)
+                       {
+                               if(x < -32768 || x > 32767 || width < 0 || 
width > 65535 ||
+                                  y < -32768 || y > 32767 || height < 0 || 
height > 65535)
+                               {
+                                       throw new 
XException(S._("X_RectCoordRange"));
+                               }
+                               try
+                               {
+                                       // Lock down the display while we do 
this.
+                                       IntPtr display = Lock();
+ 
+                                       // Get the colors that we need to draw 
the effect.
+                                       Xlib.Pixel topShadow;
+                                       Xlib.Pixel topShadowEnhance;
+                                       Xlib.Pixel bottomShadow;
+                                       Xlib.Pixel bottomShadowEnhance;
+                                       Xlib.Pixel trim;
+                                       if((effect & Effect.ContentColors) != 0)
+                                       {
+                                               topShadow = drawable.ToPixel
+                                                       (new 
Color(StandardColor.ContentTopShadow));
+                                               topShadowEnhance = 
drawable.ToPixel
+                                                       (new 
Color(StandardColor.ContentTopShadowEnhance));
+                                               bottomShadow = drawable.ToPixel
+                                                       (new 
Color(StandardColor.ContentBottomShadow));
+                                               bottomShadowEnhance = 
drawable.ToPixel(new Color
+                                                       
(StandardColor.ContentBottomShadowEnhance));
+                                               trim = drawable.ToPixel
+                                                       (new 
Color(StandardColor.ContentTrim));
+                                       }
+                                       else
+                                       {
+                                               topShadow = drawable.ToPixel
+                                                       (new 
Color(StandardColor.TopShadow));
+                                               topShadowEnhance = 
drawable.ToPixel
+                                                       (new 
Color(StandardColor.TopShadowEnhance));
+                                               bottomShadow = drawable.ToPixel
+                                                       (new 
Color(StandardColor.BottomShadow));
+                                               bottomShadowEnhance = 
drawable.ToPixel
+                                                       (new 
Color(StandardColor.BottomShadowEnhance));
+                                               trim = drawable.ToPixel(new 
Color(StandardColor.Trim));
+                                       }
+ 
+                                       // Save the current GC settings and set 
things
+                                       // up for drawing 3D effect lines.
+                                       XGCValues values = new XGCValues();
+                                       Xlib.XGetGCValues(display, gc,
+                                                                         
(uint)(GCValueMask.GCFunction |
+                                                                               
         GCValueMask.GCForeground |
+                                                                               
         GCValueMask.GCFillStyle |
+                                                                               
         GCValueMask.GCLineWidth |
+                                                                               
         GCValueMask.GCLineStyle |
+                                                                               
         GCValueMask.GCJoinStyle |
+                                                                               
     GCValueMask.GCCapStyle |
+                                                                               
     GCValueMask.GCTileStipXOrigin |
+                                                                               
     GCValueMask.GCTileStipYOrigin),
+                                                                         out 
values);
+                                       XGCValues newValues = values;
+                                       newValues.function = Function.GXcopy;
+                                       newValues.line_width = 1;
+                                       newValues.line_style = 
LineStyle.LineSolid;
+                                       newValues.join_style = 
JoinStyle.JoinMiter;
+                                       newValues.cap_style = 
CapStyle.CapProjecting;
+                                       Xlib.XChangeGC(display, gc,
+                                                                  
(uint)(GCValueMask.GCFunction |
+                                                                               
  GCValueMask.GCLineWidth |
+                                                                               
  GCValueMask.GCLineStyle |
+                                                                               
  GCValueMask.GCJoinStyle |
+                                                                               
  GCValueMask.GCCapStyle),
+                                                                  ref 
newValues);
+ 
+                                       // Draw the effect.
+                                       switch(effect & ~(Effect.ContentColors))
+                                       {
+                                               case Effect.Raised:
+                                               case Effect.Raised | 
Effect.DefaultButton:
+                                               {
+                                                       if((effect & 
Effect.DefaultButton) != 0)
+                                                       {
+                                                               if(width >= 2 
&& height >= 2)
+                                                               {
+                                                                       
Xlib.XSetForeground(display, gc, trim);
+                                                                       
Xlib.XDrawRectangle
+                                                                               
(display, drawableHandle, gc,
+                                                                               
 x, y, width - 1, height - 1);
+                                                               }
+                                                               ++x;
+                                                               ++y;
+                                                               width -= 2;
+                                                               height -= 2;
+                                                       }
+                                                       if(width >= 4 && height 
>= 4)
+                                                       {
+                                                               
Xlib.XSetForeground(display, gc, topShadow);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y, x 
+ width - 1, y);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y + 
1, x, y + height - 2);
+                                                               
Xlib.XSetForeground
+                                                                       
(display, gc, topShadowEnhance);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 1, 
y + 1, x + width - 3, y + 1);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 1, 
y + 2, x + 1, y + height - 3);
+                                                               
Xlib.XSetForeground(display, gc, bottomShadow);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 1, 
y + height - 2, x + width - 2,
+                                                                       y + 
height - 2);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 
width - 2, y + 1, x + width - 2,
+                                                                       y + 
height - 3);
+                                                               
Xlib.XSetForeground
+                                                                       
(display, gc, bottomShadowEnhance);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y + 
height - 1, x + width - 1,
+                                                                       y + 
height - 1);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 
width - 1, y, x + width - 1,
+                                                                       y + 
height - 2);
+                                                       }
+                                               }
+                                               break;
+ 
+                                               case Effect.Indented:
+                                               {
+                                                       if(width >= 4 && height 
>= 4)
+                                                       {
+                                                               
Xlib.XSetForeground(display, gc, bottomShadow);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y, x 
+ width - 2, y);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y + 
1, x, y + height - 2);
+                                                               
Xlib.XSetForeground
+                                                                       
(display, gc, bottomShadowEnhance);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 1, 
y + 1, x + width - 3, y + 1);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 1, 
y + 2, x + 1, y + height - 3);
+                                                               
Xlib.XSetForeground(display, gc, topShadow);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y + 
height - 1, x + width - 1,
+                                                                       y + 
height - 1);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 
width - 1, y, x + width - 1,
+                                                                       y + 
height - 2);
+                                                               
Xlib.XSetForeground
+                                                                       
(display, gc, topShadowEnhance);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 1, 
y + height - 2, x + width - 2,
+                                                                       y + 
height - 2);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 
width - 2, y + 1, x + width - 2,
+                                                                       y + 
height - 3);
+                                                       }
+                                               }
+                                               break;
+ 
+                                               case Effect.Indented | 
Effect.DefaultButton:
+                                               {
+                                                       if(width >= 4 && height 
>= 4)
+                                                       {
+                                                               
Xlib.XSetForeground(display, gc, trim);
+                                                               
Xlib.XDrawRectangle
+                                                                       
(display, drawableHandle, gc,
+                                                                        x, y, 
width - 1, height - 1);
+                                                               
Xlib.XSetForeground(display, gc, bottomShadow);
+                                                               
Xlib.XDrawRectangle
+                                                                       
(display, drawableHandle, gc,
+                                                                        x + 1, 
y + 1, width - 3, height - 3);
+                                                       }
+                                               }
+                                               break;
+ 
+                                               case Effect.Etched:
+                                               {
+                                                       if(width >= 4 && height 
>= 4)
+                                                       {
+                                                               
Xlib.XSetForeground(display, gc, bottomShadow);
+                                                               
Xlib.XDrawRectangle(display, drawableHandle, gc,
+                                                                       x, y, 
width - 2, height - 2);
+                                                               
Xlib.XSetForeground(display, gc, topShadow);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 1, 
y + 1, x + width - 3, y + 1);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 
width - 1, y, x + width - 1,
+                                                                       y + 
height - 1);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y + 
height - 1, x + width - 2,
+                                                                       y + 
height - 1);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 1, 
y + 2, x + 1, y + height - 3);
+                                                       }
+                                               }
+                                               break;
+ 
+                                               case Effect.Horizontal:
+                                               {
+                                                       if(width > 0 && height 
>= 2)
+                                                       {
+                                                               y += (height - 
2) / 2;
+                                                               
Xlib.XSetForeground(display, gc, bottomShadow);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y, x 
+ width - 1, y);
+                                                               
Xlib.XSetForeground(display, gc, topShadow);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y + 
1, x + width - 1, y + 1);
+                                                       }
+                                               }
+                                               break;
+ 
+                                               case Effect.Vertical:
+                                               {
+                                                       if(width >= 2 && height 
> 0)
+                                                       {
+                                                               x += (width - 
2) / 2;
+                                                               
Xlib.XSetForeground(display, gc, bottomShadow);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x, y, 
x, y + height - 1);
+                                                               
Xlib.XSetForeground(display, gc, topShadow);
+                                                               
Xlib.XDrawLine(display, drawableHandle, gc,
+                                                                       x + 1, 
y, x + 1, y + height - 1);
+                                                       }
+                                               }
+                                               break;
+ 
+                                               case Effect.RadioBlank:
+                                               {
+                                                       DrawRadio(display, x, 
y, width, height,
+                                                                         
topShadow, topShadowEnhance,
+                                                                         
bottomShadow, bottomShadowEnhance,
+                                                                         
topShadow, topShadow);
+                                               }
+                                               break;
+ 
+                                               case Effect.RadioSelected:
+                                               {
+                                                       DrawRadio(display, x, 
y, width, height,
+                                                                         
topShadow, topShadowEnhance,
+                                                                         
bottomShadow, bottomShadowEnhance,
+                                                                         trim, 
topShadow);
+                                               }
+                                               break;
+ 
+                                               case Effect.RadioDisabled:
+                                               {
+                                                       DrawRadio(display, x, 
y, width, height,
+                                                                         
topShadow, topShadowEnhance,
+                                                                         
bottomShadow, bottomShadowEnhance,
+                                                                         
topShadowEnhance, topShadowEnhance);
+                                               }
+                                               break;
+ 
+                                               case 
Effect.RadioSelectedDisabled:
+                                               {
+                                                       DrawRadio(display, x, 
y, width, height,
+                                                                         
topShadow, topShadowEnhance,
+                                                                         
bottomShadow, bottomShadowEnhance,
+                                                                         
bottomShadow, topShadowEnhance);
+                                               }
+                                               break;
+ 
+                                               case Effect.CheckBlank:
+                                               {
+                                                       // TODO
+                                               }
+                                               break;
+ 
+                                               case Effect.CheckSelected:
+                                               {
+                                                       // TODO
+                                               }
+                                               break;
+ 
+                                               case Effect.CheckDisabled:
+                                               {
+                                                       // TODO
+                                               }
+                                               break;
+ 
+                                               case 
Effect.CheckSelectedDisabled:
+                                               {
+                                                       // TODO
+                                               }
+                                               break;
+ 
+                                               case Effect.MenuSelected:
+                                               {
+                                                       // TODO
+                                               }
+                                               break;
+ 
+                                               case 
Effect.MenuSelectedHighlighted:
+                                               {
+                                                       // TODO
+                                               }
+                                               break;
+ 
+                                               case 
Effect.MenuSelectedDisabled:
+                                               {
+                                                       // TODO
+                                               }
+                                               break;
+                                       }
+ 
+                                       // Restore the previous GC settings.
+                                       Xlib.XChangeGC(display, gc,
+                                                                  
(uint)(GCValueMask.GCFunction |
+                                                                               
  GCValueMask.GCForeground |
+                                                                               
  GCValueMask.GCFillStyle |
+                                                                               
  GCValueMask.GCLineWidth |
+                                                                               
  GCValueMask.GCLineStyle |
+                                                                               
  GCValueMask.GCJoinStyle |
+                                                                               
  GCValueMask.GCCapStyle |
+                                                                               
  GCValueMask.GCTileStipXOrigin |
+                                                                               
  GCValueMask.GCTileStipYOrigin),
+                                                                  ref values);
+                               }
+                               finally
+                               {
+                                       dpy.Unlock();
+                               }
+                       }
+ 
  } // class Canvas
  

Index: ControlEvents.cs
===================================================================
RCS file: /cvsroot/dotgnu-libs/xsharp/Xsharp/XWindows/ControlEvents.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** ControlEvents.cs    29 Sep 2002 05:02:46 -0000      1.1
--- ControlEvents.cs    30 Sep 2002 22:01:56 -0000      1.2
***************
*** 30,33 ****
--- 30,34 ----
  /// </para>
  /// </summary>
+ [Flags]
  public enum ControlEvents
  {

Index: Display.cs
===================================================================
RCS file: /cvsroot/dotgnu-libs/xsharp/Xsharp/XWindows/Display.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** Display.cs  28 Sep 2002 11:18:28 -0000      1.5
--- Display.cs  30 Sep 2002 22:01:56 -0000      1.6
***************
*** 58,61 ****
--- 58,62 ----
        internal ButtonName menuButton;
        internal Hashtable fonts;
+       internal BuiltinBitmaps bitmaps;
  
        // Constructor.
***************
*** 113,116 ****
--- 114,120 ----
                                // Construct the font map.
                                fonts = new Hashtable();
+ 
+                               // Load the builtin bitmaps.
+                               bitmaps = new BuiltinBitmaps(this);
                        }
  

Index: Xlib.cs.in
===================================================================
RCS file: /cvsroot/dotgnu-libs/xsharp/Xsharp/XWindows/Xlib.cs.in,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** Xlib.cs.in  28 Sep 2002 11:18:28 -0000      1.6
--- Xlib.cs.in  30 Sep 2002 22:01:56 -0000      1.7
***************
*** 211,214 ****
--- 211,219 ----
                        (IntPtr display, Xlib.Pixmap pixmap);
  
+       [DllImport("X11")]
+       extern public static Pixmap XCreateBitmapFromData
+                       (IntPtr display, Drawable drawable, byte[] data,
+                        @X_uint@ width, @X_uint@ height);
+ 
        // Declare region-related external functions.
  





reply via email to

[Prev in Thread] Current Thread [Next in Thread]