/********************************************************************************************
border.cpp
	Jim Millard
	for CO211/Fall 1999

   Simple program that displays a blue/red checkerboard border around my name and email
   Uses the ezwin API
********************************************************************************************/
#include <iostream>
#include <string>
using namespace std;

#include "ezwin.h"
#include "rect.h"
#include "label.h"

int ApiMain()
   {
   const float winwidth=10., winheight=12.;

   const float height=2., //static height of all blocks
               width=2.;  //static width of all blocks

   float column=1., //starting column for first block
         row=1.;    //starting row for first block

   //create the primary window
   SimpleWindow W("Border, Name and Email", winwidth, winheight);
   W.Open();

   //Draw the top border (5 blocks wide)
   RectangleShape R11(W,column,row,Blue,width,height);
   R11.Draw();
   column += width; //move over one block width
   RectangleShape R21(W,column,row,Red,width,height);
   R21.Draw();
   column += width; //move over one block width
   RectangleShape R31(W,column,row,Blue,width,height);
   R31.Draw();
   column += width; //move over one block width
   RectangleShape R41(W,column,row,Red,width,height);
   R41.Draw();
   column += width; //move over one block width
   RectangleShape R51(W,column,row,Blue,width,height);
   R51.Draw();

   //Draw the right border (6 blocks down, but the corner is already drawn)
   row += height; //move down one block width
   RectangleShape R52(W,column,row,Red,width,height);
   R52.Draw();
   row += height; //move down one block width
   RectangleShape R53(W,column,row,Blue,width,height);
   R53.Draw();
   row += height; //move down one block width
   RectangleShape R54(W,column,row,Red,width,height);
   R54.Draw();
   row += height; //move down one block width
   RectangleShape R55(W,column,row,Blue,width,height);
   R55.Draw();
   row += height; //move down one block width
   RectangleShape R56(W,column,row,Red,width,height);
   R56.Draw();

   //Draw the bottom border from right to left
   //(5 blocks over, but the corner is already drawn)
   column -= width; //move over one block width
   RectangleShape R46(W,column,row,Blue,width,height);
   R46.Draw();
   column -= width; //move over one block width
   RectangleShape R36(W,column,row,Red,width,height);
   R36.Draw();
   column -= width; //move over one block width
   RectangleShape R26(W,column,row,Blue,width,height);
   R26.Draw();
   column -= width; //move over one block width
   RectangleShape R16(W,column,row,Red,width,height);
   R16.Draw();

   //Draw the left border (6 blocks up, but the 2 corners are already drawn)
   row -= height; //move down one block width
   RectangleShape R15(W,column,row,Blue,width,height);
   R15.Draw();
   row -= height; //move down one block width
   RectangleShape R14(W,column,row,Red,width,height);
   R14.Draw();
   row -= height; //move down one block width
   RectangleShape R13(W,column,row,Blue,width,height);
   R13.Draw();
   row -= height; //move down one block width
   RectangleShape R12(W,column,row,Red,width,height);
   R12.Draw();

   //Draw the name and email in the center of the box
   Label name(W,winwidth/2,(winheight/2)-.25, "Jim Millard");
   name.Draw();
   Label email(W,winwidth/2,(winheight/2)+.25, "jim3@millard.org");
   email.Draw();
   

   //wait for input prior to quitting
   char ch;
   cout << "Enter a character to continue";
   cin >> ch;

   Terminate();
   return 0;
   }