858
#define FBGC(gc, fix_fore, fix_back)\
859
Gcv.foreground = fix_fore;\
860
Gcv.background = fix_back;\
861
XChangeGC(dpy, gc, GCForeground|GCBackground,&Gcv)
864
Draw3DBorder(Window w, int x, int y, int width, int height, int bw,
865
ColorPair cp, int state, bool fill, bool forcebw)
871
if((width < 1) || (height < 1)) {
874
if(Scr->Monochrome != COLOR) {
877
gcv.fill_style = FillOpaqueStippled;
878
XChangeGC(dpy, Scr->BorderGC, gcm, &gcv);
879
XFillRectangle(dpy, w, Scr->BorderGC, x, y, width, height);
883
gcv.line_style = (state == on) ? LineSolid : LineDoubleDash;
885
gcv.fill_style = FillSolid;
886
XChangeGC(dpy, Scr->BorderGC, gcm, &gcv);
887
for(i = 0; i < bw; i++) {
888
XDrawLine(dpy, w, Scr->BorderGC, x, y + i,
889
x + width - i - 1, y + i);
890
XDrawLine(dpy, w, Scr->BorderGC, x + i, y,
891
x + i, y + height - i - 1);
896
gcv.line_style = (state == on) ? LineDoubleDash : LineSolid;
898
gcv.fill_style = FillSolid;
899
XChangeGC(dpy, Scr->BorderGC, gcm, &gcv);
900
for(i = 0; i < bw; i++) {
901
XDrawLine(dpy, w, Scr->BorderGC, x + width - i - 1, y + i,
902
x + width - i - 1, y + height - 1);
903
XDrawLine(dpy, w, Scr->BorderGC, x + i, y + height - i - 1,
904
x + width - 1, y + height - i - 1);
910
FBGC(Scr->BorderGC, cp.back, cp.fore);
911
XFillRectangle(dpy, w, Scr->BorderGC, x, y, width, height);
913
if(Scr->BeNiceToColormap) {
918
gcv.line_style = (forcebw) ? LineSolid : LineDoubleDash;
920
gcv.background = cp.back;
921
XChangeGC(dpy, Scr->BorderGC, gcm, &gcv);
924
XSetForeground(dpy, Scr->BorderGC, Scr->Black);
927
XSetForeground(dpy, Scr->BorderGC, Scr->White);
929
for(i = 0; i < bw; i++) {
930
XDrawLine(dpy, w, Scr->BorderGC, x + i, y + dashoffset,
931
x + i, y + height - i - 1);
932
XDrawLine(dpy, w, Scr->BorderGC, x + dashoffset, y + i,
933
x + width - i - 1, y + i);
934
dashoffset = 1 - dashoffset;
936
XSetForeground(dpy, Scr->BorderGC, ((state == on) ? Scr->White : Scr->Black));
937
for(i = 0; i < bw; i++) {
938
XDrawLine(dpy, w, Scr->BorderGC, x + i, y + height - i - 1,
939
x + width - 1, y + height - i - 1);
940
XDrawLine(dpy, w, Scr->BorderGC, x + width - i - 1, y + i,
941
x + width - i - 1, y + height - 1);
946
FBGC(Scr->BorderGC, cp.shadd, cp.shadc);
949
FBGC(Scr->BorderGC, cp.shadc, cp.shadd);
951
for(i = 0; i < bw; i++) {
952
XDrawLine(dpy, w, Scr->BorderGC, x, y + i,
953
x + width - i - 1, y + i);
954
XDrawLine(dpy, w, Scr->BorderGC, x + i, y,
955
x + i, y + height - i - 1);
959
FBGC(Scr->BorderGC, cp.shadc, cp.shadd);
962
FBGC(Scr->BorderGC, cp.shadd, cp.shadc);
964
for(i = 0; i < bw; i++) {
965
XDrawLine(dpy, w, Scr->BorderGC, x + width - i - 1, y + i,
966
x + width - i - 1, y + height - 1);
967
XDrawLine(dpy, w, Scr->BorderGC, x + i, y + height - i - 1,
968
x + width - 1, y + height - i - 1);
976
859
void PaintIcon(TwmWindow *tmp_win)
978
861
int width, twidth, mwidth, len, x;