47 lines
1.2 KiB
C
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
|