From f2cde93a9ad2490dc67cb3737bfa80d5b0f69157 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Wed, 11 Jul 2012 19:27:59 +0800 Subject: [PATCH] Client - Added colours and fixed help string --- src/client/menu.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/client/menu.c b/src/client/menu.c index ce3309f..e420ef9 100644 --- a/src/client/menu.c +++ b/src/client/menu.c @@ -14,6 +14,10 @@ #include // getuid #include "common.h" +// === CONSTANTS === +#define COLOURPAIR_CANTBUY 1 +#define COLOURPAIR_SELECTED 2 + // === PROTOTYPES === int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted); void PrintAlign(int Row, int Col, int Width, const char *Left, char Pad1, const char *Mid, char Pad2, const char *Right, ...); @@ -85,6 +89,9 @@ int ShowNCursesUI(void) // Enter curses mode initscr(); + start_color(); + init_pair(COLOURPAIR_CANTBUY, COLOR_BLACK, COLOR_BLACK); // Not avaliable + init_pair(COLOURPAIR_SELECTED, COLOR_GREEN, COLOR_BLACK); // Selected cbreak(); noecho(); // Get max index @@ -174,7 +181,7 @@ int ShowNCursesUI(void) PrintAlign(yBase+height-1, xBase+1, width-2, username, ' ', balance_str, ' ', gsUserFlags); PrintAlign(yBase+height, xBase+1, width-2, - "q: Quit", ' ', "Arrow: Select", ' ', "Enter: Drop"); + "q: Quit", ' ', "Arrows: Select", ' ', "Enter: Buy"); // Get input @@ -209,7 +216,6 @@ int ShowNCursesUI(void) case 'j': _ItemDown(); break; case 'k': _ItemUp(); break; case 'l': break; - case 0x1b: // Escape case 'q': ret = -1; // -1: Return with no dispense break; @@ -311,17 +317,29 @@ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) switch( status ) { case 0: - if( bHilighted ) + if( bHilighted ) { + color_set( COLOURPAIR_SELECTED, NULL ); printw("-> "); - else + } + else if( price > giUserBalance ) { + attrset(A_BOLD); + color_set( COLOURPAIR_CANTBUY, NULL ); + printw(" "); + } + else { + color_set( 0, NULL ); printw(" "); + } break; case 1: + attrset(A_BOLD); + color_set( COLOURPAIR_CANTBUY, NULL ); printw("SLD "); break; default: case -1: + color_set( COLOURPAIR_CANTBUY, NULL ); printw("ERR "); break; } @@ -329,6 +347,8 @@ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) printw("%-*.*s", nameWidth, nameWidth, name); printw(" %4i", price); + color_set(0, NULL); + attrset(A_NORMAL); } else { -- 2.20.1