const ui_menu_event *ui_menu::process(UINT32 flags) { // reset the menu_event menu_event.iptkey = IPT_INVALID; // first make sure our selection is valid validate_selection(1); // draw the menu if (numitems > 1 && (item[0].flags & MENU_FLAG_MULTILINE) != 0) draw_text_box(); else draw(flags & UI_MENU_PROCESS_CUSTOM_ONLY); // process input if (!(flags & UI_MENU_PROCESS_NOKEYS)) { // read events handle_events(); // handle the keys if we don't already have an menu_event if (menu_event.iptkey == IPT_INVALID) handle_keys(flags); } // update the selected item in the menu_event if (menu_event.iptkey != IPT_INVALID && selected >= 0 && selected < numitems) { menu_event.itemref = item[selected].ref; return &menu_event; } return nullptr; }
void veta_render(){ box b; b.x0=b.y0=0; b.w=WIDTH; b.h=HEIGHT; draw_box(WIDTH,HEIGHT,0,0,0,0,0); if(selection_mode==ZOOM){ cell *deepest=get_deepest_cell(root_cell); render_cell(deepest,&b); }else{ render_cell(root_cell,&b); } render_ui2(); // FIXME: Cleanup and and add configuration options vo_screenshot("var not used!", WIDTH, HEIGHT); #ifdef DEBUG rgb black=(rgb){0,0,0}; rgb white=(rgb){0xff,0xff,0xff}; draw_text_box(BUILD,650,40,20,HEIGHT-45,white,black); #endif }
// Draw text to full-screen sized bitmap, cleared to <bgcolor> // Draw boxes for each word on EyeLink tracker display if <dotrack> set // Use font selected with get_new_font(), and draws it in <fgcolor> // RECT <margins> sets margins, and <lspace> sets pixels between lines HBITMAP text_bitmap(char *txt, COLORREF fgcolor, COLORREF bgcolor, RECT margins, int lspace, int dotrack) { HDC hdc; HBITMAP hbm; HDC mdc; HBRUSH oBrush; HBITMAP obm; hdc = GetDC(NULL); mdc = CreateCompatibleDC(hdc); // create display-compatible memory context hbm = CreateCompatibleBitmap(hdc, SCRWIDTH, SCRHEIGHT); obm = SelectObject(mdc, hbm); // create DDB bitmap, select into context oBrush = SelectObject(mdc, CreateSolidBrush(bgcolor | 0x02000000L)); // brush to fill with PatBlt(mdc, 0, 0, SCRWIDTH, SCRHEIGHT, PATCOPY); // CLEAR BITMAP DeleteObject(SelectObject(mdc, oBrush)); draw_text_box(mdc, txt, fgcolor, margins, lspace, dotrack); // DRAW THE TEXT GdiFlush(); // ADDED for Wimdows 2000/XP: Forces drawing to be immediate SelectBitmap(mdc, obm); // Release the GDI resources DeleteDC(mdc); ReleaseDC(NULL, hdc); return hbm; // Return the new bitmap }
void display_attempting_to_join_message(void) { if (LbScreenLock() == Lb_SUCCESS) { draw_text_box(get_string(GUIStr_NetAttemptingToJoin)); LbScreenUnlock(); } LbScreenRender(); }
void draw_login_container(cairo_t * cr, struct login_container * lc) { /* Draw rounded rectangle */ cairo_rounded_rectangle(cr, lc->x, lc->y, lc->width, lc->height, (float)BOX_ROUNDNESS); cairo_set_source_rgba(cr, (float)(BOX_COLOR_R)/255.0, (float)(BOX_COLOR_G)/255.0, (float)(BOX_COLOR_B)/255.0, (float)(BOX_COLOR_A)/255.0); cairo_fill(cr); /* Draw labels */ if (lc->show_error) { char * error_message = "Incorrect username or password."; set_font_size(11); draw_string(ctx, lc->x + (lc->width - draw_string_width(error_message)) / 2, lc->y + 6 + EXTRA_TEXT_OFFSET, rgb(240, 20, 20), error_message); } draw_text_box(cr, lc->username_box); draw_text_box(cr, lc->password_box); }
static void draw_card_areas(int write_to_screen) { int p; assert(table_ready && game_started); assert(!write_to_screen); /* Draw card areas */ for (p = 0; p < ggzcards.num_players; p++) { draw_text_box(p); draw_card_box(p); } }
long modem_connect_callback(void) { if (is_key_pressed(KC_ESCAPE, KMod_DONTCARE)) { clear_key_pressed(KC_ESCAPE); return -7; } if (LbScreenLock() == Lb_SUCCESS) { draw_text_box(get_string(GUIStr_NetConnectnModem)); LbScreenUnlock(); } LbScreenRender(); return 0; }
int render_cell(cell *cell,void *data){ assert(cell != NULL); assert(data != NULL); box *ob=(box *)data; box nb; assert(cell); if(cell->level>1){ if(cell->symbol->name){ rgb fg={255,255,255}; rgb bg={0,0,0}; // FIXME this should handle an arbitrary level int is_selected=cell->selected || (cell->parent && cell->parent->selected); if(selection_mode==HIGHLIGHT) bg=is_selected?cell->color_selected:cell->color; else if(ui2_is_selected(cell->symbol)) bg=cell->color_selected; else bg=cell->color; draw_text_box(cell->symbol->name,ob->w,ob->h,ob->x0,ob->y0,fg,bg); }else{ } } else { // draw_box(WIDTH,HEIGHT,0,0,0,0,0); } int n_cols=conf_get_int("n_columns",CELLS_W); int n_rows=conf_get_int("n_rows",CELLS_H); int innerWidth=(ob->w/n_cols)*0.9; int innerHeight=(ob->h/n_rows)*0.9; nb.w=(ob->w/n_cols)*0.9; nb.h=(ob->h/n_rows)*0.9; int pleft=0.1*(ob->w/n_cols); int ptop=0.1*(ob->h/n_rows); for(int i=0;i<cell->nchildren ;i++){ nb.x0=nb.w*(i%n_cols)+ob->x0+pleft; nb.y0=nb.h*(i/n_cols)+ob->y0+ptop; render_cell(cell->children[i],&nb); } return 0; }
// Draw text to full-screen sized bitmap, cleared to <bgcolor> // Draw boxes for each word on EyeLink tracker display if <dotrack> set // Use font selected with get_new_font(), and draws it in <fgcolor> // RECT <margins> sets margins, and <lspace> sets pixels between lines // <dottrack> determines whether outlines of the word segment is displayed over the tracker PC. // Splice the path and filename to record the segmentation information // If the segmentation file already exists, it will not overwritten the file // if <sv_options> is set as SV_NOREPLACE HBITMAP text_bitmap_segment(char *txt, COLORREF fgcolor, COLORREF bgcolor, RECT margins, int lspace, int dotrack, char *fname, char *path, INT16 sv_options) { HDC hdc; HBITMAP hbm; HDC mdc; HBRUSH oBrush; HBITMAP obm; char com_fname[200]; hdc = GetDC(NULL); mdc = CreateCompatibleDC(hdc); // create display-compatible memory context hbm = CreateCompatibleBitmap(hdc, SCRWIDTH, SCRHEIGHT); obm = SelectObject(mdc, hbm); // create DDB bitmap, select into context oBrush = SelectObject(mdc, CreateSolidBrush(bgcolor | 0x02000000L)); // brush to fill with PatBlt(mdc, 0, 0, SCRWIDTH, SCRHEIGHT, PATCOPY); // CLEAR BITMAP DeleteObject(SelectObject(mdc, oBrush)); create_path(path, 1, 1); // Create path if it does not exist splice_fname(fname, path, com_fname); // Splice 'path' to 'fname', store in 'com_fname' if (!file_exists(com_fname) || sv_options!=SV_NOREPLACE) draw_text_box_segment(mdc, txt, fgcolor, margins, lspace, dotrack, com_fname); // DRAW THE TEXT AND SAVE SEGMENTATION OF THE TEXT else draw_text_box(mdc, txt, fgcolor, margins, lspace, dotrack); // DRAW THE TEXT ONLY WITHOUT SAVING GdiFlush(); // ADDED for Wimdows 2000/XP: Forces drawing to be immediate SelectBitmap(mdc, obm); // Release the GDI resources DeleteDC(mdc); ReleaseDC(NULL, hdc); return hbm; // Return the new bitmap }
static void draw (SsdWidget widget, RoadMapGuiRect *rect, int flags) { RoadMapGuiPoint points[5]; int count = 5; #ifdef OPENGL RoadMapGuiPoint position; RoadMapGuiPoint sign_bottom, sign_top; static RoadMapImage focus_image; #endif const char* background = widget->bg_color; if (!(flags & SSD_GET_SIZE)) { if (widget->in_focus && widget->focus_highlight ) background = "#b0d504"; else if (widget->background_focus) background = "#8a8a8a"; if (background) { if (widget->flags & SSD_ROUNDED_CORNERS){ RoadMapGuiRect erase_rect; erase_rect.minx = rect->minx + SSD_ROUNDED_CORNER_WIDTH; erase_rect.miny = rect->miny + SSD_ROUNDED_CORNER_HEIGHT; erase_rect.maxx = rect->maxx - SSD_ROUNDED_CORNER_WIDTH; erase_rect.maxy = rect->maxy - SSD_ROUNDED_CORNER_HEIGHT; roadmap_canvas_select_pen (bg); roadmap_canvas_set_foreground (background); //roadmap_canvas_erase_area (&erase_rect); } else{ if (!(widget->flags & SSD_DIALOG_TRANSPARENT)){ roadmap_canvas_select_pen (bg); roadmap_canvas_set_foreground (background); if ((widget->flags & SSD_CONTAINER_TXT_BOX) || (widget->flags & SSD_CONTAINER_SEARCH_BOX)){ rect->minx += 10; rect->maxx -= 10; } else roadmap_canvas_erase_area (rect); #if defined(OPENGL) && !defined(_WIN32) if (widget->in_focus && widget->focus_highlight ){ if (!focus_image) focus_image = roadmap_res_get( RES_BITMAP, RES_SKIN, "focus" ); if (focus_image){ sign_top.x = rect->minx; sign_top.y = rect->miny; position.x = roadmap_canvas_image_width(focus_image)/2; position.y = roadmap_canvas_image_height(focus_image) / 2; sign_bottom.x = rect->maxx; sign_bottom.y = rect->maxy; roadmap_canvas_draw_image_stretch( focus_image, &sign_top, &sign_bottom, &position, 0, IMAGE_NORMAL ); } } #endif } } } if ((widget->flags & SSD_SHADOW_BG) ) { draw_shadow_bg(); } if ((widget->flags & SSD_CONTAINER_TITLE) && !(widget->flags & SSD_DIALOG_FLOAT) && !(widget->flags & SSD_DIALOG_TRANSPARENT) ) { draw_bg(rect); } } if (widget->flags & SSD_CONTAINER_BORDER) { points[0].x = rect->minx + 1; #ifndef TOUCH_SCREEN points[0].y = rect->miny + 1; points[1].y = rect->miny + 1; points[4].y = rect->miny + 1; #else points[0].y = rect->miny; points[1].y = rect->miny; points[4].y = rect->miny ; #endif points[1].x = rect->maxx - 0; points[2].x = rect->maxx - 0; points[2].y = rect->maxy - 0; points[3].x = rect->minx + 1; points[3].y = rect->maxy - 0; points[4].x = rect->minx + 1; if (!(flags & SSD_GET_SIZE)) { const char *color = default_fg; RoadMapPosition *position = NULL; roadmap_canvas_select_pen (border); if (widget->fg_color) color = widget->fg_color; roadmap_canvas_set_foreground (color); if (widget->flags & SSD_ROUNDED_CORNERS){ int pointer_type = POINTER_NONE; int header_type = HEADER_NONE; int style = STYLE_NORMAL; int position_offset = widget->offset_y; #ifdef TOUCH_SCREEN widget->flags &= ~SSD_POINTER_MENU; #endif if (widget->flags & SSD_POINTER_MENU){ pointer_type = POINTER_MENU; #ifndef OPENGL points[2].y -= 17; #endif } else if (widget->flags & SSD_POINTER_COMMENT){ pointer_type = POINTER_COMMENT; #ifdef OPENGL points[2].y += 20; /* The height of the pointer */ #else points[2].y -= 7; #endif } else if (widget->flags & SSD_POINTER_NONE){ pointer_type = POINTER_NONE; if (!((widget->flags & SSD_ROUNDED_WHITE) || (widget->flags & SSD_ROUNDED_BLACK))) points[2].y -= 10; } if (widget->in_focus && widget->focus_highlight ) background = "#b0d504"; else if ((widget->flags & SSD_POINTER_COMMENT) | (widget->flags & SSD_POINTER_MENU) | (widget->flags & SSD_POINTER_NONE)) background = "#e4f1f9"; else background = "#f3f3f5"; background = "#d2dfef"; header_type = HEADER_NONE; if (widget->flags & SSD_ROUNDED_WHITE){ style = STYLE_WHITE; if (widget->in_focus && widget->focus_highlight ) background = "#b0d504"; else background = "#ffffff"; } if (widget->flags & SSD_ROUNDED_BLACK){ style = STYLE_BLACK; if (widget->in_focus && widget->focus_highlight ) background = "#b0d504"; else background = "#000000"; } if (widget->flags & SSD_POINTER_LOCATION){ if (widget->context != NULL){ pointer_type = POINTER_POSITION; position = (RoadMapPosition *)widget->context; //position_offset = ADJ_SCALE(-40); } } if (widget->flags & SSD_POINTER_FIXED_LOCATION){ if (widget->context != NULL){ pointer_type = POINTER_FIXED_POSITION; position = (RoadMapPosition *)widget->context; } } roadmap_display_border(style, header_type, pointer_type, &points[2], &points[0], background, position, position_offset); } else roadmap_canvas_draw_multiple_lines (1, &count, points, 1); } if (widget->flags & SSD_ROUNDED_CORNERS){ if (widget->flags & SSD_ROUNDED_WHITE){ rect->minx += 4; rect->miny += 4; rect->maxx -= 4; rect->maxy -= 4; } else{ rect->minx += 10; if ((widget->flags & SSD_CONTAINER_TITLE) || (widget->flags & SSD_POINTER_MENU) || (widget->flags & SSD_POINTER_NONE)) rect->miny += 10; else rect->miny += 4; rect->maxx -= 10; rect->maxy -= 10; } } else{ rect->minx += 2; rect->miny += 2; rect->maxx -= 2; rect->maxy -= 2; } } if (widget->flags & SSD_CONTAINER_TXT_BOX){ if (!(flags & SSD_GET_SIZE)){ if (background){ rect->minx -= 10; rect->maxx += 10; } draw_text_box(widget, rect); } rect->minx += 20; rect->miny += 10; rect->maxx -= 20; rect->maxy -= 10; } if (widget->flags & SSD_CONTAINER_SEARCH_BOX){ if (!(flags & SSD_GET_SIZE)){ if (background){ rect->minx -= 10; rect->maxx += 10; } draw_search_box(widget, rect); } rect->minx += 20; rect->miny += 10; rect->maxx -= 20; rect->maxy -= 10; } if (widget->flags & SSD_CONTAINER_TITLE){ ssd_widget_set_left_softkey_text(widget, widget->left_softkey); ssd_widget_set_right_softkey_text(widget, widget->right_softkey); } if ((flags & SSD_GET_CONTAINER_SIZE) && (widget->flags & SSD_CONTAINER_TITLE)) { SsdWidget title; title = ssd_widget_get (widget, "title_bar"); if (title) { SsdSize title_size; SsdSize max_size; max_size.width = rect->maxx - rect->minx + 1; max_size.height = rect->maxy - rect->miny + 1; ssd_widget_get_size (title, &title_size, &max_size); rect->miny += title_size.height; } } }