79 lines
2.9 KiB
C
Raw Normal View History

// Copyright 2013 Normmatt
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
#include <vram.h>
#include "common.h"
#include "colors.h"
#define BYTES_PER_PIXEL 3
#define SCREEN_HEIGHT 240
#define SCREEN_WIDTH(s) ((s == TOP_SCREEN) ? SCREEN_WIDTH_TOP : SCREEN_WIDTH_BOT)
#define SCREEN_WIDTH_TOP 400
#define SCREEN_WIDTH_BOT 320
2018-01-12 15:01:55 +01:00
#define FONT_WIDTH_EXT GetFontWidth()
#define FONT_HEIGHT_EXT GetFontHeight()
#define TOP_SCREEN ((u8*)VRAM_TOP_LA)
#define BOT_SCREEN ((u8*)VRAM_BOT_A)
2017-05-19 02:40:57 +02:00
#ifdef SWITCH_SCREENS
#define MAIN_SCREEN TOP_SCREEN
#define ALT_SCREEN BOT_SCREEN
#define SCREEN_WIDTH_MAIN SCREEN_WIDTH_TOP
#define SCREEN_WIDTH_ALT SCREEN_WIDTH_BOT
#else
#define MAIN_SCREEN BOT_SCREEN
#define ALT_SCREEN TOP_SCREEN
#define SCREEN_WIDTH_MAIN SCREEN_WIDTH_BOT
#define SCREEN_WIDTH_ALT SCREEN_WIDTH_TOP
#endif
#define COLOR_TRANSPARENT COLOR_SUPERFUCHSIA
#ifndef AUTO_UNLOCK
bool ShowUnlockSequence(u32 seqlvl, const char *format, ...);
#else
#define ShowUnlockSequence ShowPrompt
#endif
2018-01-12 15:01:55 +01:00
u8* GetFontFromPbm(const void* pbm, const u32 pbm_size, u32* w, u32* h);
bool SetFontFromPbm(const void* pbm, const u32 pbm_size);
void ClearScreen(unsigned char *screen, int color);
void ClearScreenF(bool clear_main, bool clear_alt, int color);
2016-02-27 19:58:41 +01:00
void DrawRectangle(u8* screen, int x, int y, int width, int height, int color);
void DrawBitmap(u8* screen, int x, int y, int w, int h, u8* bitmap);
void DrawQrCode(u8* screen, u8* qrcode);
void DrawCharacter(unsigned char *screen, int character, int x, int y, int color, int bgcolor);
void DrawString(unsigned char *screen, const char *str, int x, int y, int color, int bgcolor);
void DrawStringF(unsigned char *screen, int x, int y, int color, int bgcolor, const char *format, ...);
void DrawStringCenter(u8* screen, int color, int bgcolor, const char *format, ...);
2016-02-27 19:58:41 +01:00
u32 GetDrawStringHeight(const char* str);
2017-03-09 14:35:36 +01:00
u32 GetDrawStringWidth(const char* str);
2018-01-12 15:01:55 +01:00
u32 GetFontWidth(void);
u32 GetFontHeight(void);
2016-02-27 19:58:41 +01:00
void WordWrapString(char* str, int llen);
2016-02-27 19:58:41 +01:00
void ResizeString(char* dest, const char* orig, int nsize, int tpos, bool align_right);
void TruncateString(char* dest, const char* orig, int nsize, int tpos);
2016-04-05 21:13:23 +02:00
void FormatNumber(char* str, u64 number);
2016-02-27 19:58:41 +01:00
void FormatBytes(char* str, u64 bytes);
2016-06-10 16:21:25 +02:00
void ShowString(const char *format, ...);
void ShowIconString(u8* icon, int w, int h, const char *format, ...);
2016-02-27 19:58:41 +01:00
bool ShowPrompt(bool ask, const char *format, ...);
u32 ShowSelectPrompt(u32 n, const char** options, const char *format, ...);
2016-06-13 23:51:41 +02:00
bool ShowStringPrompt(char* inputstr, u32 max_size, const char *format, ...);
u64 ShowHexPrompt(u64 start_val, u32 n_digits, const char *format, ...);
2016-07-13 19:59:36 +02:00
u64 ShowNumberPrompt(u64 start_val, const char *format, ...);
2016-07-12 18:15:45 +02:00
bool ShowDataPrompt(u8* data, u32* size, const char *format, ...);
bool ShowRtcSetterPrompt(void* time, const char *format, ...);
2016-03-02 17:22:44 +01:00
bool ShowProgress(u64 current, u64 total, const char* opstr);