[WeirdX-users] Colors are not right
Status: Beta
Brought to you by:
ymnk
|
From: Rick S. <sa...@ho...> - 2006-06-16 02:27:09
|
Hi,
When setting red color, it's red, but blue is yellow, green is magenta.
Here's the code.
Rick
******************************
import gnu.x11.*;
import gnu.x11.event.*;
public class GXxor {
/* Window attribute value mask bits */
private static int CWBackPixmap =3D 1<<0;
private static int CWBackPixel =3D 1<<1;
private static int CWBorderPixmap =3D 1<<2;
private static int CWBorderPixel =3D 1<<3;
private static int CWBitGravity =3D 1<<4;
private static int CWWinGravity =3D 1<<5;
private static int CWBackingStore =3D 1<<6;
private static int CWBackingPlanes =3D 1<<7;
private static int CWBackingPixel =3D 1<<8;
private static int CWOverrideRedirect =3D 1<<9;
private static int CWSaveUnder =3D 1<<10;
private static int CWEventMask =3D 1<<11;
private static int CWDontPropagate =3D 1<<12;
private static int CWColormap =3D 1<<13;
private static int CWCursor =3D 1<<14;
private static int GCFunction =3D (1 <<0);
private static int GCPlaneMask =3D (1 <<1);
private static int GCForeground =3D (1 <<2);
private static int GCBackground =3D (1 <<3);
private static int GCLineWidth =3D (1 <<4);
private static int GCLineStyle =3D (1 <<5);
private static int GCCapStyle =3D (1 <<6);
private static int GCJoinStyle =3D (1 <<7);
private static int GCFillStyle =3D (1 <<8);
private static int GCFillRule =3D (1 <<9);
private static int GCTile =3D (1 <<10);
private static int GCStipple =3D (1 <<11);
private static int GCTileStipXOrigin =3D (1 <<12);
private static int GCTileStipYOrigin =3D (1 <<13);
private static int GCFont =3D (1 <<14);
private static int GCSubwindowMode =3D (1 <<15);
private static int GCGraphicsExposures =3D (1 <<16);
private static int GCClipXOrigin =3D (1 <<17);
private static int GCClipYOrigin =3D (1 <<18);
private static int GCClipMask =3D (1 <<19);
private static int GCDashOffset =3D (1 <<20);
private static int GCDashList =3D (1 <<21);
private static int GCArcMode =3D (1 <<22);
// GC Function
private static int GXclear =3D 0x0;=20
private static int GXand =3D 0x1;=20
private static int GXandReverse =3D 0x2;=20
private static int GXcopy =3D 0x3;
private static int GXandInverted =3D 0x4;
private static int GXnoop =3D 0x5;=20
private static int GXxor =3D 0x6;
private static int GXor =3D 0x7;=20
private static int GXnor =3D 0x8;
private static int GXequiv =3D 0x9;
private static int GXinvert =3D 0xa;=20
private static int GXorReverse =3D 0xb;=20
private static int GXcopyInverted =3D 0xc;=20
private static int GXorInverted =3D 0xd;=20
private static int GXnand =3D 0xe;
private static int GXset =3D 0xf;
private static int AllPlanes =3D -1;
private int InputOutput =3D Window.INPUT_OUTPUT;
public static void main (String[] args) {=20
new GXxor();
}
/** Creates a new instance of GXxor */
public GXxor() {
Display display;=20
Window win1;=20
Window root_win;
Event event;
Cursor cursor_shape;=20
Font fontinfo;=20
GC gr_context1, gr_context2;=20
int screen_no;=20
int visual_id;
int i;=20
int depth;=20
Window.Attributes attributes =3D new Window.Attributes();
GC.Values gr_values =3D new GC.Values();
display =3D new Display();=20
screen_no =3D display.default_screen_no;
root_win =3D display.default_root;
visual_id =3D display.default_screen.root_visual_id();
depth =3D display.default_depth;=20
Color def_black =3D display.default_black;
Color def_white =3D display.default_white;
attributes.set_background(def_white);=20
attributes.set_border(def_black);
attributes.bitmask =3D CWBackPixel | CWBorderPixel;
int displayHeight =3D display.default_screen.height();
int displayWidth =3D display.default_screen.width();
win1 =3D new Window(root_win,0,200, displayWidth-400, =
displayHeight-400);
win1.create(5, depth, InputOutput, visual_id, attributes);
RGB r =3D RGB.RED;
RGB b =3D RGB.BLUE;
Colormap cmap =3D display.default_colormap;
Color red =3D cmap.alloc_color(r);
Color blue =3D cmap.alloc_color(b);
win1.select_input(Event.EXPOSURE_MASK | Event.KEY_PRESS_MASK);
gr_values.set_function(GXcopy);=20
// gr_values.set_plane_mask(AllPlanes);=20
gr_values.set_foreground(red);=20
gr_values.set_background(def_white);=20
gr_values.bitmask =3D GCFunction | GCForeground | GCBackground;
gr_context1=3D new GC(win1, gr_values);=20
gr_values.set_function(GXxor);=20
gr_values.set_foreground(blue);=20
gr_values.set_background(def_white);
gr_context2 =3D new GC(win1, gr_values);=20
fontinfo =3D new =
Font(display,"-misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1");=
=20
cursor_shape =3D new Cursor(display,Cursor.HEART);
attributes.set_cursor(cursor_shape);
attributes.bitmask =3D CWCursor;
win1.change_attributes(attributes);
gr_context1.set_font(fontinfo);
gr_context2.set_font(fontinfo);
win1.map();=20
while(true){
event =3D display.next_event();
switch(event.code()){
case Expose.CODE:
// win1.clear(true);
win1.text(gr_context1,30,30,"Hello");
win1.image_text(gr_context2,10,10,"Hello");
Rectangle rect1[] =3D {new Rectangle(50,50,100,100)};
Rectangle rect2[] =3D {new Rectangle(100,100,100,100)};
win1.poly_rectangle(gr_context1, rect1, true);
win1.poly_rectangle(gr_context2, rect2, true);
break;
case KeyPress.CODE:=20
display.close();
System.exit(0);
}
}
}
}
|