Changes in uspace/lib/gui/window.c [6d5e378:21eeb653] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/gui/window.c
r6d5e378 r21eeb653 34 34 */ 35 35 36 #include < bool.h>36 #include <stdbool.h> 37 37 #include <errno.h> 38 38 #include <stdio.h> … … 66 66 67 67 static pixel_t border_color = PIXEL(255, 0, 0, 0); 68 static pixel_t header_bgcolor = PIXEL(255, 25, 25, 112); 69 static pixel_t header_fgcolor = PIXEL(255, 255, 255, 255); 68 static pixel_t header_bg_focus_color = PIXEL(255, 25, 25, 112); 69 static pixel_t header_fg_focus_color = PIXEL(255, 255, 255, 255); 70 static pixel_t header_bg_unfocus_color = PIXEL(255, 70, 130, 180); 71 static pixel_t header_fg_unfocus_color = PIXEL(255, 255, 255, 255); 70 72 71 73 static void paint_internal(widget_t *w) … … 94 96 w->vpos + w->height - border_thickness, w->width, border_thickness); 95 97 96 source_set_color(&source, header_bgcolor); 98 source_set_color(&source, 99 w->window->is_focused ? header_bg_focus_color : header_bg_unfocus_color); 97 100 drawctx_transfer(&drawctx, 98 101 w->hpos + border_thickness, w->vpos + border_thickness, … … 106 109 char cls_pict[] = "x"; 107 110 font_get_box(&font, cls_pict, &cls_width, &cls_height); 108 source_set_color(&source, header_fgcolor); 111 source_set_color(&source, 112 w->window->is_focused ? header_fg_focus_color : header_fg_unfocus_color); 109 113 sysarg_t cls_x = ((close_width - cls_width) / 2) + w->hpos + w->width - 110 114 border_thickness - close_width; … … 420 424 421 425 while (!list_empty(&win->events.list)) { 422 list_remove(list_first(&win->events.list)); 426 window_event_t *event = (window_event_t *) list_first(&win->events.list); 427 list_remove(&event->link); 428 free(event); 423 429 } 424 430 … … 447 453 break; 448 454 case ET_POSITION_EVENT: 455 if (!win->is_focused) { 456 win->is_focused = true; 457 handle_refresh(win); 458 } 449 459 deliver_position_event(win, event->data.pos); 450 460 break; … … 454 464 case ET_WINDOW_RESIZE: 455 465 handle_resize(win, event->data.rsz.width, event->data.rsz.height); 466 break; 467 case ET_WINDOW_FOCUS: 468 if (!win->is_focused) { 469 win->is_focused = true; 470 handle_refresh(win); 471 } 472 break; 473 case ET_WINDOW_UNFOCUS: 474 if (win->is_focused) { 475 win->is_focused = false; 476 handle_refresh(win); 477 } 456 478 break; 457 479 case ET_WINDOW_REFRESH: … … 514 536 } 515 537 516 window_t *window_open(char *winreg, bool is_main, bool is_decorated, const char *caption) 538 window_t *window_open(char *winreg, bool is_main, bool is_decorated, 539 const char *caption, sysarg_t x_offset, sysarg_t y_offset) 517 540 { 518 541 int rc; … … 525 548 win->is_main = is_main; 526 549 win->is_decorated = is_decorated; 550 win->is_focused = true; 527 551 prodcons_initialize(&win->events); 528 552 fibril_mutex_initialize(&win->guard); … … 557 581 service_id_t out_dsid; 558 582 559 rc = win_register(reg_sess, &in_dsid, &out_dsid );583 rc = win_register(reg_sess, &in_dsid, &out_dsid, x_offset, y_offset); 560 584 async_hangup(reg_sess); 561 585 if (rc != EOK) {
Note:
See TracChangeset
for help on using the changeset viewer.