Changeset 25eec4e in mainline for uspace/lib/gui/window.c
- Timestamp:
- 2013-04-19T18:38:18Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6d717a4
- Parents:
- a1e2df13 (diff), 289cb7dd (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/gui/window.c
ra1e2df13 r25eec4e 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; … … 447 451 break; 448 452 case ET_POSITION_EVENT: 453 if (!win->is_focused) { 454 win->is_focused = true; 455 handle_refresh(win); 456 } 449 457 deliver_position_event(win, event->data.pos); 450 458 break; … … 454 462 case ET_WINDOW_RESIZE: 455 463 handle_resize(win, event->data.rsz.width, event->data.rsz.height); 464 break; 465 case ET_WINDOW_FOCUS: 466 if (!win->is_focused) { 467 win->is_focused = true; 468 handle_refresh(win); 469 } 470 break; 471 case ET_WINDOW_UNFOCUS: 472 if (win->is_focused) { 473 win->is_focused = false; 474 handle_refresh(win); 475 } 456 476 break; 457 477 case ET_WINDOW_REFRESH: … … 514 534 } 515 535 516 window_t *window_open(char *winreg, bool is_main, bool is_decorated, const char *caption) 536 window_t *window_open(char *winreg, bool is_main, bool is_decorated, 537 const char *caption, sysarg_t x_offset, sysarg_t y_offset) 517 538 { 518 539 int rc; … … 525 546 win->is_main = is_main; 526 547 win->is_decorated = is_decorated; 548 win->is_focused = true; 527 549 prodcons_initialize(&win->events); 528 550 fibril_mutex_initialize(&win->guard); … … 557 579 service_id_t out_dsid; 558 580 559 rc = win_register(reg_sess, &in_dsid, &out_dsid );581 rc = win_register(reg_sess, &in_dsid, &out_dsid, x_offset, y_offset); 560 582 async_hangup(reg_sess); 561 583 if (rc != EOK) {
Note:
See TracChangeset
for help on using the changeset viewer.