00001 #include "ncursesFrontEnd.h"
00002
00003 #include <unistd.h>
00004 #include <malloc.h>
00005
00006 NCursesFrontEnd::NCursesFrontEnd () {
00007 };
00008
00009 NCursesFrontEnd::NCursesFrontEnd (int argc, char** argv) {
00010 initscr ();
00011 start_color ();
00012 cbreak ();
00013 noecho ();
00014 nonl ();
00015 intrflush (stdscr, FALSE);
00016 keypad (stdscr, TRUE);
00017 curs_set (0);
00018
00019 init_pair (1, COLOR_WHITE, COLOR_BLUE);
00020 init_pair (2, COLOR_YELLOW, COLOR_BLUE);
00021 init_pair (3, COLOR_BLACK, COLOR_CYAN);
00022
00023 attron (COLOR_PAIR(1));
00024 attron (A_BOLD);
00025
00026 border (0,0,0,0,0,0,0,0);
00027
00028 bkgd (COLOR_PAIR(1));
00029
00030 attron (COLOR_PAIR(1));
00031 attron (A_BOLD);
00032
00033 mvaddstr (2,2, "Users connected: ");
00034 mvaddstr (3,2, "Matrices open : ");
00035 mvaddstr (4,2, "Debug message : ");
00036
00037
00038 for (int i = 0; i < 16; i++) {
00039 oldMsg[i] = (char*) malloc (100);
00040 strcpy (oldMsg[i], " ");
00041 };
00042
00043 refresh ();
00044 };
00045
00046 NCursesFrontEnd::~NCursesFrontEnd () {
00047 curs_set (1);
00048 execl ("/usr/bin/reset","");
00049 };
00050
00051 void NCursesFrontEnd::update () {
00052 refresh ();
00053 };
00054
00055 void NCursesFrontEnd::displayUsers (int users) {
00056 attron (COLOR_PAIR(1));
00057 attron (A_BOLD);
00058
00059 mvaddstr (2,2, "Users connected: ");
00060
00061 attron (COLOR_PAIR(2));
00062
00063 mvaddch (2,19, (char)(48 + users));
00064
00065 refresh ();
00066 };
00067
00068 void NCursesFrontEnd::displayMatrices (int matrices) {
00069 attron (COLOR_PAIR(1));
00070 attron (A_BOLD);
00071
00072 mvaddstr (3,2, "Matrices open : ");
00073
00074 attron (COLOR_PAIR(2));
00075
00076 mvaddch (3,19, (char)(48 + matrices));
00077
00078 refresh ();
00079 };
00080
00081 void NCursesFrontEnd::displayDebugMessage (const char* msg) {
00082 attron (COLOR_PAIR (1));
00083 attron (A_BOLD);
00084
00085 mvaddstr (4,2, "Debug message : ");
00086
00087 for (int i = 15; i > 0; i--) {
00088 strcpy (oldMsg[i], oldMsg[i - 1]);
00089 };
00090
00091 strcpy (oldMsg[0], msg);
00092
00093 attron (COLOR_PAIR (3));
00094
00095 for (int i = 0; i < 16; i++) {
00096 mvaddstr (4 + i,19, clean);
00097
00098 mvaddstr (4 + i,19, oldMsg[i]);
00099 };
00100
00101 refresh ();
00102 };