void GUI_DrawImage(struct guiObject *obj) { #define SELECT_BORDER_OFFSET 1 struct guiImage *image = (struct guiImage *)obj; struct guiBox *box = &obj->box; // clear the whole widget, including its selected border for devo10/7e if (LCD_DEPTH == 1) GUI_DrawBackground(box->x -SELECT_BORDER_OFFSET, box->y -SELECT_BORDER_OFFSET, box->width + SELECT_BORDER_OFFSET + SELECT_BORDER_OFFSET, box->height + SELECT_BORDER_OFFSET + SELECT_BORDER_OFFSET); LCD_DrawWindowedImageFromFile(box->x, box->y, image->file, box->width, box->height, image->x_off, image->y_off); if (LCD_DEPTH == 1 && GUI_GetSelected() == obj) LCD_DrawRect(box->x -SELECT_BORDER_OFFSET, box->y -SELECT_BORDER_OFFSET, box->width + SELECT_BORDER_OFFSET + SELECT_BORDER_OFFSET, box->height + SELECT_BORDER_OFFSET + SELECT_BORDER_OFFSET, 1); }
void GUI_DrawImageHelper(u16 x, u16 y, const struct ImageMap *map, u8 idx) { LCD_DrawWindowedImageFromFile(x, y, map->file, map->width, map->height, map->x_off, map->y_off + idx * map->height); }
void LCD_DrawImageFromFile(u16 x, u16 y, const char *file) { LCD_DrawWindowedImageFromFile(x, y, file, -1, -1, 0, 0); }