Skip to content

Commit

Permalink
[mucurses] Use centralised concept of colour pairs
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Dec 9, 2013
1 parent 7025f5c commit 2598589
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 43 deletions.
14 changes: 8 additions & 6 deletions src/hci/mucurses/ansi_screen.c
@@ -1,5 +1,6 @@
#include <stdio.h>
#include <curses.h>
#include <ipxe/ansicol.h>
#include <ipxe/console.h>

FILE_LICENCE ( GPL2_OR_LATER );
Expand All @@ -14,14 +15,13 @@ static unsigned int saved_usage;
static void ansiscr_attrs ( struct _curses_screen *scr, attr_t attrs ) {
int bold = ( attrs & A_BOLD );
attr_t cpair = PAIR_NUMBER ( attrs );
short fcol;
short bcol;

if ( scr->attrs != attrs ) {
scr->attrs = attrs;
pair_content ( cpair, &fcol, &bcol );
/* ANSI escape sequence to update character attributes */
printf ( "\033[0;%d;3%d;4%dm", ( bold ? 1 : 22 ), fcol, bcol );
/* Reset attributes and set/clear bold as appropriate */
printf ( "\033[0;%dm", ( bold ? 1 : 22 ) );
/* Set foreground and background colours */
ansicol_set_pair ( cpair );
}
}

Expand All @@ -30,7 +30,9 @@ static void ansiscr_reset ( struct _curses_screen *scr ) {
scr->attrs = 0;
scr->curs_x = 0;
scr->curs_y = 0;
printf ( "\033[0m\033[2J" );
printf ( "\0330m" );
ansicol_set_pair ( CPAIR_DEFAULT );
printf ( "\033[2J" );
}

static void ansiscr_init ( struct _curses_screen *scr ) {
Expand Down
8 changes: 1 addition & 7 deletions src/hci/tui/login_ui.c
Expand Up @@ -32,12 +32,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/settings.h>
#include <ipxe/editbox.h>
#include <ipxe/keys.h>
#include <ipxe/ansicol.h>
#include <ipxe/login_ui.h>
#include <config/colour.h>

/* Colour pairs */
#define CPAIR_NORMAL 1
#define CPAIR_EDIT 2

/* Screen layout */
#define USERNAME_LABEL_ROW ( ( LINES / 2U ) - 4U )
Expand Down Expand Up @@ -66,8 +62,6 @@ int login_ui ( void ) {
/* Initialise UI */
initscr();
start_color();
init_pair ( CPAIR_NORMAL, COLOR_NORMAL_FG, COLOR_NORMAL_BG );
init_pair ( CPAIR_EDIT, COLOR_EDIT_FG, COLOR_EDIT_BG );
init_editbox ( &username_box, username, sizeof ( username ), NULL,
USERNAME_ROW, EDITBOX_COL, EDITBOX_WIDTH, 0 );
init_editbox ( &password_box, password, sizeof ( password ), NULL,
Expand Down
10 changes: 1 addition & 9 deletions src/hci/tui/menu_ui.c
Expand Up @@ -31,13 +31,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/keys.h>
#include <ipxe/timer.h>
#include <ipxe/console.h>
#include <ipxe/ansicol.h>
#include <ipxe/menu.h>
#include <config/colour.h>

/* Colour pairs */
#define CPAIR_NORMAL 1
#define CPAIR_SELECT 2
#define CPAIR_SEPARATOR 3

/* Screen layout */
#define TITLE_ROW 1U
Expand Down Expand Up @@ -345,9 +340,6 @@ int show_menu ( struct menu *menu, unsigned long timeout,
/* Initialise screen */
initscr();
start_color();
init_pair ( CPAIR_NORMAL, COLOR_NORMAL_FG, COLOR_NORMAL_BG );
init_pair ( CPAIR_SELECT, COLOR_SELECT_FG, COLOR_SELECT_BG );
init_pair ( CPAIR_SEPARATOR, COLOR_SEPARATOR_FG, COLOR_SEPARATOR_BG );
color_set ( CPAIR_NORMAL, NULL );
curs_set ( 0 );
erase();
Expand Down
14 changes: 1 addition & 13 deletions src/hci/tui/settings_ui.c
Expand Up @@ -28,22 +28,15 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/settings.h>
#include <ipxe/editbox.h>
#include <ipxe/keys.h>
#include <ipxe/ansicol.h>
#include <ipxe/settings_ui.h>
#include <config/colour.h>

/** @file
*
* Option configuration console
*
*/

/* Colour pairs */
#define CPAIR_NORMAL 1
#define CPAIR_SELECT 2
#define CPAIR_EDIT 3
#define CPAIR_ALERT 4
#define CPAIR_URL 5

/* Screen layout */
#define TITLE_ROW 1U
#define SETTINGS_LIST_ROW 3U
Expand Down Expand Up @@ -598,11 +591,6 @@ int settings_ui ( struct settings *settings ) {

initscr();
start_color();
init_pair ( CPAIR_NORMAL, COLOR_NORMAL_FG, COLOR_NORMAL_BG );
init_pair ( CPAIR_SELECT, COLOR_SELECT_FG, COLOR_SELECT_BG );
init_pair ( CPAIR_EDIT, COLOR_EDIT_FG, COLOR_EDIT_BG );
init_pair ( CPAIR_ALERT, COLOR_ALERT_FG, COLOR_ALERT_BG );
init_pair ( CPAIR_URL, COLOR_URL_FG, COLOR_URL_BG );
color_set ( CPAIR_NORMAL, NULL );
curs_set ( 0 );
erase();
Expand Down
11 changes: 3 additions & 8 deletions src/usr/pxemenu.c
Expand Up @@ -32,6 +32,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/keys.h>
#include <ipxe/timer.h>
#include <ipxe/uri.h>
#include <ipxe/ansicol.h>
#include <usr/dhcpmgmt.h>
#include <usr/autoboot.h>

Expand All @@ -41,10 +42,6 @@ FILE_LICENCE ( GPL2_OR_LATER );
*
*/

/* Colour pairs */
#define CPAIR_NORMAL 1
#define CPAIR_SELECT 2

/** A PXE boot menu item */
struct pxe_menu_item {
/** Boot Server type */
Expand Down Expand Up @@ -204,7 +201,7 @@ static void pxe_menu_draw_item ( struct pxe_menu *menu,

/* Draw row */
row = ( LINES - menu->num_items + index );
color_set ( ( selected ? CPAIR_SELECT : CPAIR_NORMAL ), NULL );
color_set ( ( selected ? CPAIR_PXE : CPAIR_DEFAULT ), NULL );
mvprintw ( row, 0, "%s", buf );
move ( row, 1 );
}
Expand All @@ -224,9 +221,7 @@ static int pxe_menu_select ( struct pxe_menu *menu ) {
/* Initialise UI */
initscr();
start_color();
init_pair ( CPAIR_NORMAL, COLOR_WHITE, COLOR_BLACK );
init_pair ( CPAIR_SELECT, COLOR_BLACK, COLOR_WHITE );
color_set ( CPAIR_NORMAL, NULL );
color_set ( CPAIR_DEFAULT, NULL );

/* Draw initial menu */
for ( i = 0 ; i < menu->num_items ; i++ )
Expand Down

0 comments on commit 2598589

Please sign in to comment.