… | |
… | |
150 | { |
150 | { |
151 | val = rxvt_malloc (5 + strlen (id) + 1); |
151 | val = rxvt_malloc (5 + strlen (id) + 1); |
152 | strcpy (val, "unix/"); |
152 | strcpy (val, "unix/"); |
153 | strcat (val, id); |
153 | strcat (val, id); |
154 | display = XOpenDisplay (val); |
154 | display = XOpenDisplay (val); |
155 | printf ("OD %s => %p\n", val, display);//D |
|
|
156 | free (val); |
155 | free (val); |
157 | } |
156 | } |
158 | else |
157 | else |
159 | #endif |
158 | #endif |
160 | display = 0; |
159 | display = 0; |
161 | |
160 | |
162 | if (!display) |
161 | if (!display) |
163 | display = XOpenDisplay (id); |
162 | display = XOpenDisplay (id); |
164 | printf ("O2 %s => %p\n", id, display);//D |
|
|
165 | |
163 | |
166 | if (!display) |
164 | if (!display) |
167 | return false; |
165 | return false; |
168 | |
166 | |
169 | screen = DefaultScreen (display); |
167 | screen = DefaultScreen (display); |
… | |
… | |
173 | depth = DefaultDepth (display, screen); |
171 | depth = DefaultDepth (display, screen); |
174 | |
172 | |
175 | int fd = XConnectionNumber (display); |
173 | int fd = XConnectionNumber (display); |
176 | |
174 | |
177 | #ifndef NO_SLOW_LINK_SUPPORT |
175 | #ifndef NO_SLOW_LINK_SUPPORT |
178 | // try to detetc wether we have a local connection. |
176 | // try to detect wether we have a local connection. |
179 | // assume unix domains socket == local, everything else not |
177 | // assume unix domains socket == local, everything else not |
180 | // TODO: might want to check for inet/127.0.0.1 |
178 | // TODO: might want to check for inet/127.0.0.1 |
181 | is_local = 0; |
179 | is_local = 0; |
182 | sockaddr_un sa; |
180 | sockaddr_un sa; |
183 | socklen_t sl = sizeof (sa); |
181 | socklen_t sl = sizeof (sa); |
… | |
… | |
476 | } |
474 | } |
477 | |
475 | |
478 | rxvt_color |
476 | rxvt_color |
479 | rxvt_color::fade (rxvt_display *display, int percent) |
477 | rxvt_color::fade (rxvt_display *display, int percent) |
480 | { |
478 | { |
|
|
479 | percent = 100 - percent; |
|
|
480 | |
481 | unsigned short cr, cg, cb; |
481 | unsigned short cr, cg, cb; |
482 | rxvt_color faded; |
482 | rxvt_color faded; |
483 | |
483 | |
484 | get (display, cr, cg, cb); |
484 | get (display, cr, cg, cb); |
|
|
485 | |
485 | faded.set (display, |
486 | faded.set ( |
|
|
487 | display, |
486 | cr * percent / 100, |
488 | cr * percent / 100, |
487 | cg * percent / 100, |
489 | cg * percent / 100, |
488 | cb * percent / 100); |
490 | cb * percent / 100 |
|
|
491 | ); |
489 | |
492 | |
490 | return faded; |
493 | return faded; |
491 | } |
494 | } |
492 | |
495 | |
|
|
496 | #define LERP(a,b,p) (a * p / 100 + b * (100 - p) / 100) |
|
|
497 | |
|
|
498 | rxvt_color |
|
|
499 | rxvt_color::fade (rxvt_display *display, int percent, rxvt_color &fadeto) |
|
|
500 | { |
|
|
501 | percent = 100 - percent; |
|
|
502 | |
|
|
503 | unsigned short cr, cg, cb; |
|
|
504 | unsigned short fcr, fcg, fcb; |
|
|
505 | rxvt_color faded; |
|
|
506 | |
|
|
507 | get (display, cr, cg, cb); |
|
|
508 | fadeto.get(display, fcr, fcg, fcb); |
|
|
509 | |
|
|
510 | faded.set ( |
|
|
511 | display, |
|
|
512 | LERP (cr, fcr, percent), |
|
|
513 | LERP (cg, fcg, percent), |
|
|
514 | LERP (cb, fcb, percent) |
|
|
515 | ); |
|
|
516 | |
|
|
517 | return faded; |
|
|
518 | } |
|
|
519 | |