| 158 | | Name, (int)(dim * 100), BL_COL.R, BL_COL.G, BL_COL.B, BL_COL.A, col.R, col.G, col.B, col.A); |
| | 158 | Name, (int) (dim * 100), BL_COL.R, BL_COL.G, BL_COL.B, BL_COL.A, col.R, col.G, col.B, col.A); |
| 248 | | xfs = XQueryFont(dp, XGContextFromGC(DefaultGC(dp, 0))); |
| 249 | | if (drv_X11_brightness(-1) > 127) { |
| 250 | | drv_X11_color(FG_COL); |
| 251 | | } else { |
| 252 | | drv_X11_color(BG_COL); |
| 253 | | } |
| 254 | | for (r = 0; r < buttons; r++) { |
| 255 | | yk = yoffset + r * (btnheight + pgap); |
| 256 | | switch(r) { |
| 257 | | case 0: |
| 258 | | s = "Up"; |
| 259 | | break; |
| 260 | | case 1: |
| 261 | | s = "Down"; |
| 262 | | break; |
| 263 | | case 2: |
| 264 | | s = "Left"; |
| 265 | | break; |
| 266 | | case 3: |
| 267 | | s = "Right"; |
| 268 | | break; |
| 269 | | case 4: |
| 270 | | s = "Confirm"; |
| 271 | | break; |
| 272 | | case 5: |
| 273 | | s = "Cancel"; |
| 274 | | break; |
| 275 | | default: |
| 276 | | snprintf(unknownTxt, sizeof(unknownTxt), "#%d??", r); |
| 277 | | s = unknownTxt; |
| 278 | | } |
| 279 | | XDrawRectangle(dp, w, gc, xoffset, yk, btnwidth, btnheight - 2); |
| 280 | | XDrawString(dp, w, gc, |
| 281 | | xoffset + btnwidth / 2 - (xfs->max_bounds.width * strlen(s)) / 2, yk + btnheight / 2 + xfs->max_bounds.ascent / 2, |
| 282 | | s, strlen(s)); |
| 283 | | } |
| 284 | | } |
| 285 | | //XSync(dp, False); |
| | 248 | xfs = XQueryFont(dp, XGContextFromGC(DefaultGC(dp, 0))); |
| | 249 | if (drv_X11_brightness(-1) > 127) { |
| | 250 | drv_X11_color(FG_COL); |
| | 251 | } else { |
| | 252 | drv_X11_color(BG_COL); |
| | 253 | } |
| | 254 | for (r = 0; r < buttons; r++) { |
| | 255 | yk = yoffset + r * (btnheight + pgap); |
| | 256 | switch (r) { |
| | 257 | case 0: |
| | 258 | s = "Up"; |
| | 259 | break; |
| | 260 | case 1: |
| | 261 | s = "Down"; |
| | 262 | break; |
| | 263 | case 2: |
| | 264 | s = "Left"; |
| | 265 | break; |
| | 266 | case 3: |
| | 267 | s = "Right"; |
| | 268 | break; |
| | 269 | case 4: |
| | 270 | s = "Confirm"; |
| | 271 | break; |
| | 272 | case 5: |
| | 273 | s = "Cancel"; |
| | 274 | break; |
| | 275 | default: |
| | 276 | snprintf(unknownTxt, sizeof(unknownTxt), "#%d??", r); |
| | 277 | s = unknownTxt; |
| | 278 | } |
| | 279 | XDrawRectangle(dp, w, gc, xoffset, yk, btnwidth, btnheight - 2); |
| | 280 | XDrawString(dp, w, gc, |
| | 281 | xoffset + btnwidth / 2 - (xfs->max_bounds.width * strlen(s)) / 2, |
| | 282 | yk + btnheight / 2 + xfs->max_bounds.ascent / 2, s, strlen(s)); |
| | 283 | } |
| | 284 | } |
| | 285 | //XSync(dp, False); |
| 299 | | switch(ev.type) { |
| 300 | | case Expose: |
| 301 | | drv_X11_expose(ev.xexpose.x, ev.xexpose.y, ev.xexpose.width, ev.xexpose.height); |
| 302 | | break; |
| 303 | | case ButtonPress: |
| 304 | | if ( ev.xbutton.x >= xoffset && ev.xbutton.x <= xoffset + btnwidth |
| 305 | | && ev.xbutton.y >= yoffset && ev.xbutton.y <= yoffset + buttons * btnheight + (buttons -1 ) *pgap ) { |
| 306 | | btn = (ev.xbutton.y - yoffset) / (btnheight + pgap) + 1; /* btn 0 is unused */ |
| 307 | | drv_X11_color(BG_COL); |
| 308 | | XFillRectangle(dp, w, gc, xoffset + 1, yoffset + (btn - 1) * (btnheight + pgap) + 1, btnwidth - 1, btnheight - 2 - 1); |
| 309 | | drv_generic_keypad_press(btn); |
| 310 | | } |
| 311 | | break; |
| 312 | | case ButtonRelease: |
| 313 | | if ( ev.xbutton.x >= xoffset && ev.xbutton.x <= xoffset + btnwidth |
| 314 | | && ev.xbutton.y >= yoffset && ev.xbutton.y <= yoffset + buttons * btnheight + (buttons -1 ) *pgap ) { |
| 315 | | XClearArea(dp, w, xoffset, yoffset + (btn - 1) * (btnheight + pgap), btnwidth, btnheight - 2, 1 /* true */); |
| 316 | | btn = (ev.xbutton.y - yoffset) / (btnheight + pgap) + 1; /* btn 0 is unused */ |
| 317 | | info("%s: Button %d released", Name, btn); |
| 318 | | } |
| 319 | | break; |
| 320 | | default: |
| 321 | | debug("%s: unknown XEvent %d", Name, ev.type); |
| | 299 | switch (ev.type) { |
| | 300 | case Expose: |
| | 301 | drv_X11_expose(ev.xexpose.x, ev.xexpose.y, ev.xexpose.width, ev.xexpose.height); |
| | 302 | break; |
| | 303 | case ButtonPress: |
| | 304 | if (ev.xbutton.x >= xoffset && ev.xbutton.x <= xoffset + btnwidth |
| | 305 | && ev.xbutton.y >= yoffset && ev.xbutton.y <= yoffset + buttons * btnheight + (buttons - 1) * pgap) { |
| | 306 | btn = (ev.xbutton.y - yoffset) / (btnheight + pgap) + 1; /* btn 0 is unused */ |
| | 307 | drv_X11_color(BG_COL); |
| | 308 | XFillRectangle(dp, w, gc, xoffset + 1, yoffset + (btn - 1) * (btnheight + pgap) + 1, btnwidth - 1, |
| | 309 | btnheight - 2 - 1); |
| | 310 | drv_generic_keypad_press(btn); |
| | 311 | } |
| | 312 | break; |
| | 313 | case ButtonRelease: |
| | 314 | if (ev.xbutton.x >= xoffset && ev.xbutton.x <= xoffset + btnwidth |
| | 315 | && ev.xbutton.y >= yoffset && ev.xbutton.y <= yoffset + buttons * btnheight + (buttons - 1) * pgap) { |
| | 316 | XClearArea(dp, w, xoffset, yoffset + (btn - 1) * (btnheight + pgap), btnwidth, btnheight - 2, |
| | 317 | 1 /* true */ ); |
| | 318 | btn = (ev.xbutton.y - yoffset) / (btnheight + pgap) + 1; /* btn 0 is unused */ |
| | 319 | info("%s: Button %d released", Name, btn); |
| | 320 | } |
| | 321 | break; |
| | 322 | default: |
| | 323 | debug("%s: unknown XEvent %d", Name, ev.type); |
| 463 | | case 0: |
| 464 | | brightness = drv_X11_brightness(-1); |
| 465 | | SetResult(&result, R_NUMBER, &brightness); |
| 466 | | break; |
| 467 | | case 1: |
| 468 | | brightness = drv_X11_brightness(R2N(argv[0])); |
| 469 | | SetResult(&result, R_NUMBER, &brightness); |
| 470 | | break; |
| 471 | | default: |
| 472 | | error("%s.brightness(): wrong number of parameters", Name); |
| 473 | | SetResult(&result, R_STRING, ""); |
| | 465 | case 0: |
| | 466 | brightness = drv_X11_brightness(-1); |
| | 467 | SetResult(&result, R_NUMBER, &brightness); |
| | 468 | break; |
| | 469 | case 1: |
| | 470 | brightness = drv_X11_brightness(R2N(argv[0])); |
| | 471 | SetResult(&result, R_NUMBER, &brightness); |
| | 472 | break; |
| | 473 | default: |
| | 474 | error("%s.brightness(): wrong number of parameters", Name); |
| | 475 | SetResult(&result, R_STRING, ""); |