quinn-os/gui.h

47 lines
1.2 KiB
C

#ifndef __GUI_H
#define __GUI_H
#include "multiboot.h"
struct window_update_req {
unsigned char close_req;
char key_buffer[256];
int key_buffer_at;
unsigned char lclick;
unsigned char rclick;
unsigned char mclick;
int mousex;
int mousey;
};
struct window_t {
int serialno;
int minimized;
int posx, posy;
int iconx, icony;
int width, height;
int zorder;
char name[128];
char key_buffer[256];
int key_buffer_at;
void (*keyboard_dest)(char c);
unsigned char *contents;
unsigned char *icon;
int drag_start_x;
int drag_start_y;
unsigned char close_req;
unsigned char lclick;
unsigned char rclick;
unsigned char mclick;
};
extern void init_gui(multiboot_info_t *mbinfo);
extern int gui_add_window(unsigned char *contents, char *name, int x, int y, int w, int h, unsigned char *icon, void (*keyboard_d)(char c));
extern void gui_flip();
extern void fill_rect(unsigned char *buffer, unsigned int dest_width, unsigned int dest_height, int sx, int sy, int w, int h, unsigned int colour);
extern int gui_req_input(int wh, struct window_update_req *req);
extern int gui_blit(int wh, int x, int y, int w, int h, unsigned char *bmp);
extern void gui_destroy_window(int serialno);
extern int gui_set_wallpaper(char *data, int len);
#endif