Example #1
0
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;
}
Example #2
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;
}