# HG changeset patch # User pontscho # Date 999295588 0 # Node ID 9c674dc76ff385481ca72ae319941051751ad50a # Parent c68e82514f567afb1249bf375afbec6f40aae9f5 add wsSetForegroundRGB diff -r c68e82514f56 -r 9c674dc76ff3 Gui/wm/ws.c --- a/Gui/wm/ws.c Fri Aug 31 21:23:55 2001 +0000 +++ b/Gui/wm/ws.c Fri Aug 31 22:06:28 2001 +0000 @@ -434,8 +434,7 @@ // win->wGCV.background=wsBlack; win->wGC=XCreateGC( wsDisplay,win->WindowID, -// GCForeground | GCBackground, - 0, + GCForeground | GCBackground, &win->wGCV ); win->Visible=0; @@ -881,6 +880,23 @@ XSetWindowBackground( wsDisplay,win->WindowID,color ); } +void wsSetForegroundRGB( wsTWindow * win,int r,int g,int b ) +{ + int color = 0; + switch ( wsOutMask ) + { + case wsRGB32: + case wsRGB24: color=( r << 16 ) + ( g << 8 ) + b; break; + case wsBGR32: + case wsBGR24: color=( b << 16 ) + ( g << 8 ) + r; break; + case wsRGB16: PACK_RGB16( r,g,b,color ); break; + case wsBGR16: PACK_RGB16( b,g,r,color ); break; + case wsRGB15: PACK_RGB15( r,g,b,color ); break; + case wsBGR15: PACK_RGB15( b,g,r,color ); break; + } + XSetForeground( wsDisplay,win->wGC,color ); +// XSetWindowBackground( wsDisplay,win->WindowID,color ); +} // ---------------------------------------------------------------------------------------------- // Draw string at x,y with fc ( foreground color ) and bc ( background color ). diff -r c68e82514f56 -r 9c674dc76ff3 Gui/wm/ws.h --- a/Gui/wm/ws.h Fri Aug 31 21:23:55 2001 +0000 +++ b/Gui/wm/ws.h Fri Aug 31 22:06:28 2001 +0000 @@ -202,6 +202,7 @@ extern void wsIconify( wsTWindow win ); extern void wsMoveTopWindow( wsTWindow * win ); extern void wsSetBackground( wsTWindow * win,int color ); +extern void wsSetForegroundRGB( wsTWindow * win,int r,int g,int b ); extern void wsSetBackgroundRGB( wsTWindow * win,int r,int g,int b ); #define wsClearWindow( win ); XClearWindow( wsDisplay,win.WindowID ); extern void wsSetTitle( wsTWindow * win,char * name );