void ui_draw_checkbox( UI_GADGET_CHECKBOX * checkbox ) { if ((checkbox->status==1) || (checkbox->position != checkbox->oldposition)) { checkbox->status = 0; ui_mouse_hide(); gr_set_current_canvas( checkbox->canvas ); if (CurWindow->keyboard_focus_gadget == (UI_GADGET *)checkbox) gr_set_fontcolor( CRED, -1 ); else gr_set_fontcolor( CBLACK, -1 ); if (checkbox->position == 0 ) { ui_draw_box_out( 0, 0, checkbox->width-1, checkbox->height-1 ); if (checkbox->flag) ui_string_centered( Middle(checkbox->width), Middle(checkbox->height), "X" ); else ui_string_centered( Middle(checkbox->width), Middle(checkbox->height), " " ); } else { ui_draw_box_in( 0, 0, checkbox->width-1, checkbox->height-1 ); if (checkbox->flag) ui_string_centered( Middle(checkbox->width)+1, Middle(checkbox->height)+1, "X" ); else ui_string_centered( Middle(checkbox->width)+1, Middle(checkbox->height)+1, " " ); } gr_ustring( checkbox->width+4, 2, checkbox->text ); ui_mouse_show(); } }
void ui_draw_radio( UI_GADGET_RADIO * radio ) { if ((radio->status==1) || (radio->position != radio->oldposition)) { radio->status = 0; ui_mouse_hide(); gr_set_current_canvas( radio->canvas ); if (radio->flag) gr_set_fontcolor( CRED, -1 ); else gr_set_fontcolor( CBLACK, -1 ); if (radio->position == 0 ) { ui_draw_box_out( 0, 0, radio->width-1, radio->height-1 ); ui_string_centered( Middle(radio->width), Middle(radio->height), "þ" ); } else { ui_draw_box_in( 0, 0, radio->width-1, radio->height-1 ); ui_string_centered( Middle(radio->width)+1, Middle(radio->height)+1, "þ" ); } if (CurWindow->keyboard_focus_gadget == (UI_GADGET *)radio) gr_set_fontcolor( CRED, CWHITE ); else gr_set_fontcolor( CBLACK, CWHITE ); gr_ustring( radio->width+4, 2, radio->text ); ui_mouse_show(); } }
void ui_pad_draw(UI_DIALOG *dlg, int x, int y) { int bh, bw; bw = 56; bh = 30; ui_dialog_set_current_canvas( dlg ); ui_draw_box_in( x, y, x+(bw*4)+10 + 200, y+(bh*5)+45 ); gr_set_current_canvas( NULL ); gr_setcolor( CWHITE ); gr_urect( desc_x, desc_y, desc_x+ 56*4-1, desc_y+15 ); gr_set_fontcolor( CBLACK, CWHITE ); gr_ustring( desc_x, desc_y, KeyPad[active_pad]->description ); }
// Render button. How it draws exactly depends on it's current state. void UI_BUTTON::draw() { int offset, frame_num = -1; if (uses_bmaps) { gr_reset_clip(); // if button is down, draw it that way if (button_down()) { if (bmap_ids[B_PRESSED] >= 0){ frame_num = B_PRESSED; } // otherwise if button is disabled, draw it that way } else if (disabled_flag) { if (bmap_ids[B_DISABLED] >= 0){ frame_num = B_DISABLED; } // otherwise, if button is highlighted (mouse is over it, but mouse buttons not down) draw it that way } else if (m_flags & BF_HIGHLIGHTED) { if (bmap_ids[B_HIGHLIGHT] >= 0){ frame_num = B_HIGHLIGHT; } // otherwise, just draw it normally } else { if (bmap_ids[B_NORMAL] >= 0){ frame_num = B_NORMAL; } } if (frame_num >= 0) { gr_set_bitmap(bmap_ids[frame_num]); gr_bitmap(x, y); } } else { gr_set_font(my_wnd->f_id); gr_set_clip( x, y, w, h ); // draw the button's box if (button_down()) { ui_draw_box_in( 0, 0, w-1, h-1 ); offset = 1; } else { ui_draw_box_out( 0, 0, w-1, h-1 ); offset = 0; } // now draw the button's text if (disabled_flag){ gr_set_color_fast(&CDARK_GRAY); } else if (my_wnd->selected_gadget == this){ gr_set_color_fast(&CBRIGHT_GREEN); } else { gr_set_color_fast(&CBLACK); } if (text){ ui_string_centered( Middle(w) + offset, Middle(h) + offset, text ); } gr_reset_clip(); } }
void ui_pad_activate( UI_WINDOW * wnd, int x, int y ) { int w,h,row,col, n; int bh, bw; bw = 56; bh = 30; gr_set_current_canvas( wnd->canvas ); ui_draw_box_in( x, y, x+(bw*4)+10 + 200, y+(bh*5)+45 ); x += 5; y += 20; desc_x = x+2; desc_y = y-17; n=0; row = 0; col = 0; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=1; row = 0; col = 1; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=2; row = 0; col = 2; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=3; row = 0; col = 3; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=4; row = 1; col = 0; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=5; row = 1; col = 1; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=6; row = 1; col = 2; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=7; row = 1; col = 3; w = 1; h = 2; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=8; row = 2; col = 0; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=9; row = 2; col = 1; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=10; row = 2; col = 2; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=11; row = 3; col = 0; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=12; row = 3; col = 1; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=13; row = 3; col = 2; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=14; row = 3; col = 3; w = 1; h = 2; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=15; row = 4; col = 0; w = 2; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; n=16; row = 4; col = 2; w = 1; h = 1; Pad[n] = ui_add_gadget_button( wnd, x+(bw*col), y+(bh*row), bw*w, bh*h, NULL, NULL ); Pad[n]->canvas->cv_font = ui_small_font; HotKey[0] = KEY_CTRLED + KEY_NUMLOCK; HotKey[1] = KEY_CTRLED + KEY_PADDIVIDE; HotKey[2] = KEY_CTRLED + KEY_PADMULTIPLY; HotKey[3] = KEY_CTRLED + KEY_PADMINUS; HotKey[4] = KEY_CTRLED + KEY_PAD7; HotKey[5] = KEY_CTRLED + KEY_PAD8; HotKey[6] = KEY_CTRLED + KEY_PAD9; HotKey[7] = KEY_CTRLED + KEY_PADPLUS; HotKey[8] = KEY_CTRLED + KEY_PAD4; HotKey[9] = KEY_CTRLED + KEY_PAD5; HotKey[10] = KEY_CTRLED + KEY_PAD6; HotKey[11] = KEY_CTRLED + KEY_PAD1; HotKey[12] = KEY_CTRLED + KEY_PAD2; HotKey[13] = KEY_CTRLED + KEY_PAD3; HotKey[14] = KEY_CTRLED + KEY_PADENTER; HotKey[15] = KEY_CTRLED + KEY_PAD0; HotKey[16] = KEY_CTRLED + KEY_PADPERIOD; HotKey1[0] = KEY_SHIFTED + KEY_CTRLED + KEY_NUMLOCK; HotKey1[1] = KEY_SHIFTED + KEY_CTRLED + KEY_PADDIVIDE; HotKey1[2] = KEY_SHIFTED + KEY_CTRLED + KEY_PADMULTIPLY; HotKey1[3] = KEY_SHIFTED + KEY_CTRLED + KEY_PADMINUS; HotKey1[4] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD7; HotKey1[5] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD8; HotKey1[6] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD9; HotKey1[7] = KEY_SHIFTED + KEY_CTRLED + KEY_PADPLUS; HotKey1[8] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD4; HotKey1[9] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD5; HotKey1[10] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD6; HotKey1[11] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD1; HotKey1[12] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD2; HotKey1[13] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD3; HotKey1[14] = KEY_SHIFTED + KEY_CTRLED + KEY_PADENTER; HotKey1[15] = KEY_SHIFTED + KEY_CTRLED + KEY_PAD0; HotKey1[16] = KEY_SHIFTED + KEY_CTRLED + KEY_PADPERIOD; active_pad = -1; }
void UI_CHECKBOX::draw() { int offset; if ( uses_bmaps ) { if ( disabled_flag ) { if ( flag ) { if ( bmap_ids[CBOX_DISABLED_MARKED] != -1 ) { gr_set_bitmap(bmap_ids[CBOX_DISABLED_MARKED]); gr_bitmap(x,y,GR_RESIZE_MENU); } } else { if ( bmap_ids[CBOX_DISABLED_CLEAR] != -1 ) { gr_set_bitmap(bmap_ids[CBOX_DISABLED_CLEAR]); gr_bitmap(x,y,GR_RESIZE_MENU); } } } else { // not disabled if ( position == 0 ) { // up if ( flag ) { // marked if ( bmap_ids[CBOX_UP_MARKED] != -1 ) { gr_set_bitmap(bmap_ids[CBOX_UP_MARKED]); gr_bitmap(x,y,GR_RESIZE_MENU); } } else { // not marked if ( bmap_ids[CBOX_UP_CLEAR] != -1 ) { gr_set_bitmap(bmap_ids[CBOX_UP_CLEAR]); gr_bitmap(x,y,GR_RESIZE_MENU); } } } else { // down if ( flag ) { // marked if ( bmap_ids[CBOX_DOWN_MARKED] != -1 ) { gr_set_bitmap(bmap_ids[CBOX_DOWN_MARKED]); gr_bitmap(x,y,GR_RESIZE_MENU); } } else { // not marked if ( bmap_ids[CBOX_DOWN_CLEAR] != -1 ) { gr_set_bitmap(bmap_ids[CBOX_DOWN_CLEAR]); gr_bitmap(x,y,GR_RESIZE_MENU); } } } } } else { font::set_font(my_wnd->f_id); gr_set_clip( x, y, w, h, GR_RESIZE_MENU ); if (position == 0 ) { ui_draw_box_out( 0, 0, w-1, h-1 ); offset = 0; } else { ui_draw_box_in( 0, 0, w-1, h-1 ); offset = 1; } if (disabled_flag) gr_set_color_fast( &CGRAY ); else if (my_wnd->selected_gadget == this) gr_set_color_fast( &CBRIGHT_GREEN ); else gr_set_color_fast( &CGREEN ); if (flag) ui_string_centered( Middle(w) + offset, Middle(h) + offset, "X" ); else ui_string_centered( Middle(w) + offset, Middle(h) + offset, " " ); if (text) { gr_reset_clip(); gr_string( x+w+4, y+2, text, GR_RESIZE_MENU ); } } }
void UI_RADIO::draw() { int offset; if ( uses_bmaps ) { if ( disabled_flag ) { if ( flag ) { if ( bmap_ids[RADIO_DISABLED_MARKED] != -1 ) { gr_set_bitmap(bmap_ids[RADIO_DISABLED_MARKED], GR_ALPHABLEND_NONE, GR_BITBLT_MODE_NORMAL, 1.0f, -1, -1); gr_bitmap(x,y); } } else { if ( bmap_ids[RADIO_DISABLED_CLEAR] != -1 ) { gr_set_bitmap(bmap_ids[RADIO_DISABLED_CLEAR], GR_ALPHABLEND_NONE, GR_BITBLT_MODE_NORMAL, 1.0f, -1, -1); gr_bitmap(x,y); } } } else { // not disabled if ( position == 0 ) { // up if ( flag ) { // marked if ( bmap_ids[RADIO_UP_MARKED] != -1 ) { gr_set_bitmap(bmap_ids[RADIO_UP_MARKED], GR_ALPHABLEND_NONE, GR_BITBLT_MODE_NORMAL, 1.0f, -1, -1); gr_bitmap(x,y); } } else { // not marked if ( bmap_ids[RADIO_UP_CLEAR] != -1 ) { gr_set_bitmap(bmap_ids[RADIO_UP_CLEAR], GR_ALPHABLEND_NONE, GR_BITBLT_MODE_NORMAL, 1.0f, -1, -1); gr_bitmap(x,y); } } } else { // down if ( flag ) { // marked if ( bmap_ids[RADIO_DOWN_MARKED] != -1 ) { gr_set_bitmap(bmap_ids[RADIO_DOWN_MARKED], GR_ALPHABLEND_NONE, GR_BITBLT_MODE_NORMAL, 1.0f, -1, -1); gr_bitmap(x,y); } } else { // not marked if ( bmap_ids[RADIO_DOWN_CLEAR] != -1 ) { gr_set_bitmap(bmap_ids[RADIO_DOWN_CLEAR], GR_ALPHABLEND_NONE, GR_BITBLT_MODE_NORMAL, 1.0f, -1, -1); gr_bitmap(x,y); } } } } } else { gr_set_font(my_wnd->f_id); gr_set_clip( x, y, w, h ); if (position == 0 ) { ui_draw_box_out( 0, 0, w-1, h-1 ); offset = 0; } else { ui_draw_box_in( 0, 0, w-1, h-1 ); offset = 1; } if (disabled_flag) gr_set_color_fast(&CDARK_GRAY); else if (my_wnd->selected_gadget == this) gr_set_color_fast(&CBRIGHT_GREEN); else gr_set_color_fast(&CGREEN); // if (flag) // ui_string_centered( Middle(w)+offset, Middle(h)+offset, "*" ); // else // ui_string_centered( Middle(w)+offset, Middle(h)+offset, "o" ); if (flag) { gr_circle( Middle(w)+offset, Middle(h)+offset, 8 ); } else { gr_circle( Middle(w)+offset, Middle(h)+offset, 8 ); gr_set_color_fast( &CWHITE ); gr_circle( Middle(w)+offset, Middle(h)+offset, 4 ); } if (disabled_flag) gr_set_color_fast(&CDARK_GRAY); else if (my_wnd->selected_gadget == this) gr_set_color_fast(&CBRIGHT_GREEN); else gr_set_color_fast(&CGREEN); if ( text ) { gr_reset_clip(); gr_string( x+w+4, y+2, text ); } } }