/* $Id: menuimages.c,v 1.3 2004/09/26 02:28:06 stpohle Exp $ * Menuhandling: labels */ #include "basic.h" #include "bomberclone.h" #include "menu.h" #include "menugui.h" /* draw the menuitem label * menuitem->pos.[x|y] - Position inside the menu * pos.w - Fontsize * label - Text of the label */ void menu_draw_image (_menuitem *mi) { SDL_Rect src, dest; _menu *menu = (_menu *) mi->menu; if (mi->type != MENU_image) return; if (mi->pos.x == -1) dest.x = (menu->oldscreenpos.w - 2*menuimages[0]->w - mi->rect.w) / 2; else dest.x = mi->pos.x; if (mi->pos.y == -1) dest.y = (menu->oldscreenpos.h - 2*menuimages[0]->h - mi->rect.h) / 2; else dest.y = mi->pos.y; src.w = dest.w = mi->rect.w; src.h = dest.h = mi->rect.h; src.x = mi->rect.x; src.y = mi->rect.y; dest.x += menu->oldscreenpos.x + menuimages[0]->w; dest.y += menu->oldscreenpos.y + menuimages[0]->h; gfx_blit ((SDL_Surface *) mi->ptrdata, &src, gfx.screen, &dest, 10000+mi->pos.w); }; _menuitem *menu_create_image (_menu *menu, char *name, int x, int y, int layer, SDL_Surface *img, SDL_Rect *rect) { _menuitem *menuitems = menuitem_findfree (menu); if (menuitems == NULL) return NULL; menuitems->pos.x = x; menuitems->pos.y = y; menuitems->pos.w = layer; menuitems->type = MENU_image; menuitems->ptrdata = (char *) img; if (rect == NULL) { menuitems->rect.x = 0; menuitems->rect.y = 0; menuitems->rect.w = img->w; menuitems->rect.h = img->h; } else menuitems->rect = *rect; strncpy (menuitems->label, name, MENU_TITLELEN); return menuitems; };