#include <SFML/Graphics.hpp>
#include <iostream>

using namespace sf;
using namespace std;

int main()
{
	RenderWindow window( VideoMode( 600, 500 ), "SFML Test" );

	CircleShape c( 100 );
	//CircleShape c( 100, 3 ); // draw triangle
	c.setFillColor( Color::Green );
	c.setPosition( 100, 100 );

	RectangleShape r(Vector2f(200, 200));
	r.setFillColor( Color::Blue );
	r.setOutlineColor( Color::Yellow );
	r.setOutlineThickness( 3 );
	r.setPosition( 300, 100 );

	ConvexShape pol(3);
	pol.setPoint(0, Vector2f(0, 0) );
	pol.setPoint(1, Vector2f(0, 100) );
	pol.setPoint(2, Vector2f(200, 50) );
	pol.setOutlineColor(Color::Red);
	pol.setOutlineThickness( 2 );
	pol.setFillColor( Color::Cyan );
	pol.setPosition( 100, 300 );

	// Window Loop
	while( window.isOpen() ) {		

		// Event Loop
		Event e;		
		while( window.pollEvent(e) ) {

			switch(e.type) {

			case Event::Closed:
				cout << "Close button is clicked" << endl;
				window.close();
				break;

			case Event::Resized:
				cout << "Event::Resized, "<< e.size.width << ", " << e.size.height << endl;
				break;

			case Event::GainedFocus:
				cout << "Event::GainedFocus occurred" << endl;
				break;

			case Event::KeyPressed:
				if(e.key.code == Keyboard::Escape)
					cout << "Event::KeyPressed, Escape is pressed" << endl;
				break;
			case Event::MouseButtonPressed:
				if(e.mouseButton.button == Mouse::Left)
					cout << "Event::MouseButtonPressed, Left button at " 
							<< e.mouseButton.x << ", " << e.mouseButton.y << endl;
				break;
			case Event::MouseMoved:
				cout << "Event::MouseMoved, " << e.mouseMove.x << ", " << e.mouseMove.y << endl;
				break;
			case Event::MouseEntered:
				cout << "Event::MouseEntered" << endl;
				break;
			case Event::MouseLeft:
				cout << "Event::MouseLeft" << endl;
				break;
			}
			/*
			if (event.type == Event::Closed){
				cout << "Close button is clicked" << endl;
				window.close();		
			}
			*/
		}		
		window.clear(Color::White);		
		// draw what you wantˇ¦	
		window.draw(c);
		window.draw(r);
		window.draw(pol);
		window.display();
	}

	return 0;

}
