#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>

XEvent event;
int w,h;
Display *disp;
Window win;
Colormap cmap_padrao;
XSetWindowAttributes attr;
int sc;
int pixel[256];
GC gc;

#include "video.h"
#include "color.h"

void draw() {
	FILE *arq;
	char img[102];
	int i,x,y;
	int altura, largura;

	arq=fopen("x.olinux","rb");
	if (arq==NULL) {
		printf("Arquivo x.olinux nao existe\n");
		exit(0);
	}
	fread(img,1,66,arq);
	fclose(arq);

	largura=img[0];
	altura=img[1];

	i=2;
	// Desenhe a imagem lendo img[] aqui (desenhe apenas onde houver 1)
}

main() {
	int fim=0;
	Window root;
	
	w=h=512;

	// Tenta abrir o Display 0 do X	
	disp=XOpenDisplay(0);
	if (disp==NULL) {
		printf("Erro ao abrir display\n");	  
		exit(0);
	}
	// Screen (tela)
	sc=XDefaultScreen(disp);
	// Graphic Context
	gc=XDefaultGC(disp,sc);
	// Mapa de cores
	cmap_padrao=DefaultColormap(disp,sc);
	// Definicao das cores
	setc(0, 0, 0, 0);                // preto
	setc(1, 0xffff, 0xffff, 0xffff); // branco
	setc(2,0,0,0xaaaa);    // azul
	setc(3,0x9999,0x9999,0x9999); // cinza escuro
	setc(4,0xaaaa,0xaaaa,0xaaaa); // cinza
	setc(5,0,0,0x5555); // 0,0,5555 - fundo azul
	// Janela raiz do X
	root=DefaultRootWindow(disp); 
	// Criando uma janela comum
	win=XCreateSimpleWindow(disp,root,0,0,w,h,0,0,pixel[1]);
	
	// Escolhe os dispositos que geram sinais (eventos) pro X
	XSelectInput(disp, win, KeyPressMask | ExposureMask);
	// Mapeia esses eventos na minha janela (garantia)
	XMapWindow(disp,win);

	// Desenhe na tela
	draw();

	while (!fim) {
		// Esvazia o buffer de eventos
		XFlush(disp);
		// Pega o proximo evento
		XNextEvent(disp,&event);
		// Se o evento for uma tecla pressionada, entao sai do programa
		if (event.type == KeyPress) fim++;
		// Se o evento for a exposicao da janela (focus) redesenhe
		if (event.type == Expose) draw();
	}
}
