/**
 * Copyright (c) 2007 Dejan Lekic , http://dejan.lekic.org
 *                    dejan.lekic @ (gmail.com || kcl.ac.uk)
 */
import dl.c.ncurses.ncurses;

void create_box(int y, int x, int w, int h) {
  mvaddch(y, x, '+');
  mvaddch(y, x + w, '+');
  mvaddch(y + h, x, '+');
  mvaddch(y + h, x + w, '+');
  mvhline(y, x + 1, '-', w - 1);
  mvhline(y + h, x + 1, '-', w - 1);
  mvvline(y + 1, x, '|', h - 1);
  mvvline(y + 1, x + w, '|', h - 1);
}

int main(char[][] args) {
  int startx, starty, height, width;

  initscr();
  start_color();
  cbreak();
  keypad(stdscr, TRUE);
  noecho();

  init_pair(1, COLOR_BLACK, COLOR_CYAN);

  height = 2;
  width = 30;
  starty = (LINES - height)/2;
  startx = (COLS - width)/2;

  attron(COLOR_PAIR(1));

  create_box(starty, startx, width, height);
  mvprintw(starty, startx + 3, " Hello World! " );
  mvprintw(starty+1,startx+1," Type any char to exit       ");
  mvprintw(0,0,"");
  refresh();
  getch();

  endwin();
  return 0;
} // main() function