int test_square(unsigned short x, unsigned short y, unsigned short size, unsigned long color) { vg_init(GRAPHIC_MODE); int ipc_status; message msg; int request; int irq_set; irq_set = subscribe_kbd(); while (scanCode != EXIT_MAKE_CODE) { request = driver_receive(ANY, &msg, &ipc_status); if (request != 0) { printf("driver_receive failed with: %d", request); continue; } if (is_ipc_notify(ipc_status)) { switch (_ENDPOINT_P(msg.m_source)) { case HARDWARE: if (msg.NOTIFY_ARG & irq_set) { kbd_handler(); } vg_draw_rectangle(x,y,size,size,color); break; default: break; } } else { } } unsubscribe_kbd(); vg_exit(); return 0; }
int window_draw(window_t* window) { LOG int error, i; /* background */ error = vg_fill(vg_color_rgb(255, 255, 255)); if (error) { printf("window_draw: vg_fill failed with error code %d.\n", error); return error; } /* draw tabs */ for (i = 0; i < TAB_COUNT; ++i) { tab_t* tab = window->tabs[i]; if (tab) { if (i == TAB_CONSOLE) { vg_draw_rectangle(5, 703, 1019, 733, vg_color_rgb(255,255,255)); } error = tab_draw(tab, i, /* tab_num */ window->current_tab == i || (window->current_tab == TAB_CONSOLE && window->prev_current_tab == i), /* selected */ window->current_tab == i || i == TAB_CONSOLE || (window->current_tab == TAB_CONSOLE && window->prev_current_tab == i), /* drawText */ window->current_tab == i); /* HasFocus */ if (error) { printf("window_draw: tab_draw failed with error code %d.\n", error); return error; } } } /* window title bar */ error = vg_draw_rectangle(0, 0, 1024, 30, vg_color_rgb(90, 90, 90)); if (error) { printf("window_draw: vg_draw_rectangle (1) failed with error code %d.\n", error); return error; } /* borders */ error = vg_draw_rectangle(0, 763, 1024, 768, vg_color_rgb(90, 90, 90)); if (error) { printf("window_draw: vg_draw_rectangle (2) failed with error code %d.\n", error); return error; } error = vg_draw_rectangle(0, 30, 5, 763, vg_color_rgb(90, 90, 90)); if (error) { printf("window_draw: vg_draw_rectangle (3) failed with error code %d.\n", error); return error; } error = vg_draw_rectangle(1019, 30, 1024, 763, vg_color_rgb(90, 90, 90)); if (error) { printf("window_draw: vg_draw_rectangle (4) failed with error code %d.\n", error); return error; } /* window title */ if (window->title) { error = vg_draw_string(window->title, 32, 5, 25, vg_color_rgb(0, 0, 0)); if (error) { printf("window_draw: vg_draw_string (1) failed with error code %d.\n", error); return error; } } new_btn->draw(new_btn); /* new button */ open_btn->draw(open_btn); /* open button */ save_btn->draw(save_btn); /* save button */ make_btn->draw(make_btn); /* make button */ run_btn->draw(run_btn); /* run button */ close_btn->draw(close_btn); /* close button */ /* draw cmd tab*/ error = vg_draw_rectangle(5, 733, 1019, 763, vg_color_rgb(90, 90, 90)); if (error) { printf("window_draw: vg_draw_rectangle (5) failed with error code %d.\n", error); return error; } error = vg_draw_rectangle(5, 698, 1019, 703, vg_color_rgb(90, 90, 90)); if (error) { printf("window_draw: vg_draw_rectangle (6) failed with error code %d.\n", error); return error; } /* draw time and date */ error = vg_draw_string(window->date, 16, 5, 760, vg_color_rgb(0, 0, 0)); if (error) { printf("window_draw: vg_draw_string (2) failed with error code %d.\n", error); return error; } /* window log message */ if (window->log_message) { error = vg_draw_string(window->log_message, 16, 256, 760, vg_color_rgb(0, 0, 0)); if (error) { printf("window_draw: vg_draw_string (1) failed with error code %d.\n", error); return error; } } /* draw mouse */ error = vg_draw_circle(window->mouse_x, window->mouse_y, 5, vg_color_rgb(0, 0, 0)); if (error) { printf("window_draw: vg_draw_circle failed with error code %d.\n", error); return error; } return 0; }