2007-12-25 Robert Millan <rmh@aybabtu.com>
* include/grub/term.h (struct grub_term): Add `getcolor' function. (grub_getcolor): New function. * kern/term.c (grub_getcolor): New function. * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro. (GRUB_COLOR_MENU_HIGHLIGHT): New macro. (print_entry): Set normal and highlight colors to `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT', respectively, before printing and restore them to old values afterwards. (grub_menu_init_page): Likewise. Fill an additional colored space that would otherwise be left blank. * term/efi/console.c (grub_console_getcolor): New function. (struct grub_console_term.getcolor): New variable. * term/i386/pc/console.c (grub_console_getcolor): New function. (struct grub_console_term.getcolor): New variable. * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function. (struct grub_console_term.getcolor): New variable. * term/i386/pc/serial.c (grub_serial_setcolor): Remove function. (struct grub_console_term.setcolor): Remove variable. * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function. (struct grub_console_term.setcolor): Remove variable. * term/i386/pc/vga.c (grub_vga_setcolor): Remove function. (struct grub_console_term.setcolor): Remove variable. * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function. (struct grub_console_term.setcolor): Remove variable.
This commit is contained in:
parent
4931827fe4
commit
533110ada7
11 changed files with 85 additions and 34 deletions
31
ChangeLog
31
ChangeLog
|
@ -1,3 +1,34 @@
|
||||||
|
2007-12-25 Robert Millan <rmh@aybabtu.com>
|
||||||
|
|
||||||
|
* include/grub/term.h (struct grub_term): Add `getcolor' function.
|
||||||
|
(grub_getcolor): New function.
|
||||||
|
|
||||||
|
* kern/term.c (grub_getcolor): New function.
|
||||||
|
* normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
|
||||||
|
(GRUB_COLOR_MENU_HIGHLIGHT): New macro.
|
||||||
|
(print_entry): Set normal and highlight colors to
|
||||||
|
`GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
|
||||||
|
respectively, before printing and restore them to old
|
||||||
|
values afterwards.
|
||||||
|
(grub_menu_init_page): Likewise. Fill an additional colored space
|
||||||
|
that would otherwise be left blank.
|
||||||
|
|
||||||
|
* term/efi/console.c (grub_console_getcolor): New function.
|
||||||
|
(struct grub_console_term.getcolor): New variable.
|
||||||
|
* term/i386/pc/console.c (grub_console_getcolor): New function.
|
||||||
|
(struct grub_console_term.getcolor): New variable.
|
||||||
|
* term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
|
||||||
|
(struct grub_console_term.getcolor): New variable.
|
||||||
|
|
||||||
|
* term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
|
||||||
|
(struct grub_console_term.setcolor): Remove variable.
|
||||||
|
* term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
|
||||||
|
(struct grub_console_term.setcolor): Remove variable.
|
||||||
|
* term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
|
||||||
|
(struct grub_console_term.setcolor): Remove variable.
|
||||||
|
* term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
|
||||||
|
(struct grub_console_term.setcolor): Remove variable.
|
||||||
|
|
||||||
2007-12-25 Robert Millan <rmh@aybabtu.com>
|
2007-12-25 Robert Millan <rmh@aybabtu.com>
|
||||||
|
|
||||||
* configure.ac: Search for possible unifont.hex locations, and
|
* configure.ac: Search for possible unifont.hex locations, and
|
||||||
|
|
|
@ -164,6 +164,10 @@ struct grub_term
|
||||||
color is VGA's. */
|
color is VGA's. */
|
||||||
void (*setcolor) (grub_uint8_t normal_color, grub_uint8_t highlight_color);
|
void (*setcolor) (grub_uint8_t normal_color, grub_uint8_t highlight_color);
|
||||||
|
|
||||||
|
/* Get the normal color and the highlight color. The format of each
|
||||||
|
color is VGA's. */
|
||||||
|
void (*getcolor) (grub_uint8_t *normal_color, grub_uint8_t *highlight_color);
|
||||||
|
|
||||||
/* Turn on/off the cursor. */
|
/* Turn on/off the cursor. */
|
||||||
void (*setcursor) (int on);
|
void (*setcursor) (int on);
|
||||||
|
|
||||||
|
@ -197,6 +201,8 @@ void EXPORT_FUNC(grub_cls) (void);
|
||||||
void EXPORT_FUNC(grub_setcolorstate) (grub_term_color_state state);
|
void EXPORT_FUNC(grub_setcolorstate) (grub_term_color_state state);
|
||||||
void EXPORT_FUNC(grub_setcolor) (grub_uint8_t normal_color,
|
void EXPORT_FUNC(grub_setcolor) (grub_uint8_t normal_color,
|
||||||
grub_uint8_t highlight_color);
|
grub_uint8_t highlight_color);
|
||||||
|
void EXPORT_FUNC(grub_getcolor) (grub_uint8_t *normal_color,
|
||||||
|
grub_uint8_t *highlight_color);
|
||||||
int EXPORT_FUNC(grub_setcursor) (int on);
|
int EXPORT_FUNC(grub_setcursor) (int on);
|
||||||
int EXPORT_FUNC(grub_getcursor) (void);
|
int EXPORT_FUNC(grub_getcursor) (void);
|
||||||
void EXPORT_FUNC(grub_refresh) (void);
|
void EXPORT_FUNC(grub_refresh) (void);
|
||||||
|
|
|
@ -230,6 +230,13 @@ grub_setcolor (grub_uint8_t normal_color, grub_uint8_t highlight_color)
|
||||||
(grub_cur_term->setcolor) (normal_color, highlight_color);
|
(grub_cur_term->setcolor) (normal_color, highlight_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
grub_getcolor (grub_uint8_t *normal_color, grub_uint8_t *highlight_color)
|
||||||
|
{
|
||||||
|
if (grub_cur_term->getcolor)
|
||||||
|
(grub_cur_term->getcolor) (normal_color, highlight_color);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
grub_setcursor (int on)
|
grub_setcursor (int on)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,9 @@
|
||||||
#include <grub/env.h>
|
#include <grub/env.h>
|
||||||
#include <grub/script.h>
|
#include <grub/script.h>
|
||||||
|
|
||||||
|
#define GRUB_COLOR_MENU_NORMAL 0x07
|
||||||
|
#define GRUB_COLOR_MENU_HIGHLIGHT 0x70
|
||||||
|
|
||||||
static void
|
static void
|
||||||
draw_border (void)
|
draw_border (void)
|
||||||
{
|
{
|
||||||
|
@ -105,6 +108,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry)
|
||||||
grub_ssize_t len;
|
grub_ssize_t len;
|
||||||
grub_uint32_t *unicode_title;
|
grub_uint32_t *unicode_title;
|
||||||
grub_ssize_t i;
|
grub_ssize_t i;
|
||||||
|
grub_uint8_t normal_code, highlight_code;
|
||||||
|
|
||||||
title = entry ? entry->title : "";
|
title = entry ? entry->title : "";
|
||||||
unicode_title = grub_malloc (grub_strlen (title) * sizeof (*unicode_title));
|
unicode_title = grub_malloc (grub_strlen (title) * sizeof (*unicode_title));
|
||||||
|
@ -121,6 +125,8 @@ print_entry (int y, int highlight, grub_menu_entry_t entry)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
grub_getcolor (&normal_code, &highlight_code);
|
||||||
|
grub_setcolor (GRUB_COLOR_MENU_NORMAL, GRUB_COLOR_MENU_HIGHLIGHT);
|
||||||
grub_setcolorstate (highlight
|
grub_setcolorstate (highlight
|
||||||
? GRUB_TERM_COLOR_HIGHLIGHT
|
? GRUB_TERM_COLOR_HIGHLIGHT
|
||||||
: GRUB_TERM_COLOR_NORMAL);
|
: GRUB_TERM_COLOR_NORMAL);
|
||||||
|
@ -153,8 +159,12 @@ print_entry (int y, int highlight, grub_menu_entry_t entry)
|
||||||
x++;
|
x++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
grub_setcolorstate (GRUB_TERM_COLOR_NORMAL);
|
||||||
|
grub_putchar (' ');
|
||||||
|
|
||||||
grub_gotoxy (GRUB_TERM_CURSOR_X, y);
|
grub_gotoxy (GRUB_TERM_CURSOR_X, y);
|
||||||
|
|
||||||
|
grub_setcolor (normal_code, highlight_code);
|
||||||
grub_setcolorstate (GRUB_TERM_COLOR_STANDARD);
|
grub_setcolorstate (GRUB_TERM_COLOR_STANDARD);
|
||||||
grub_free (unicode_title);
|
grub_free (unicode_title);
|
||||||
}
|
}
|
||||||
|
@ -199,9 +209,15 @@ print_entries (grub_menu_t menu, int first, int offset)
|
||||||
void
|
void
|
||||||
grub_menu_init_page (int nested, int edit)
|
grub_menu_init_page (int nested, int edit)
|
||||||
{
|
{
|
||||||
|
grub_uint8_t normal_code, highlight_code;
|
||||||
|
grub_getcolor (&normal_code, &highlight_code);
|
||||||
|
grub_setcolor (GRUB_COLOR_MENU_NORMAL, GRUB_COLOR_MENU_HIGHLIGHT);
|
||||||
|
|
||||||
grub_normal_init_page ();
|
grub_normal_init_page ();
|
||||||
draw_border ();
|
draw_border ();
|
||||||
print_message (nested, edit);
|
print_message (nested, edit);
|
||||||
|
|
||||||
|
grub_setcolor (normal_code, highlight_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return the current timeout. If the variable "timeout" is not set or
|
/* Return the current timeout. If the variable "timeout" is not set or
|
||||||
|
|
|
@ -259,6 +259,13 @@ grub_console_setcolor (grub_uint8_t normal_color, grub_uint8_t highlight_color)
|
||||||
grub_console_highlight_color = highlight_color;
|
grub_console_highlight_color = highlight_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
grub_console_getcolor (grub_uint8_t *normal_color, grub_uint8_t *highlight_color)
|
||||||
|
{
|
||||||
|
*normal_color = grub_console_normal_color;
|
||||||
|
*highlight_color = grub_console_highlight_color;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
grub_console_setcursor (int on)
|
grub_console_setcursor (int on)
|
||||||
{
|
{
|
||||||
|
@ -283,6 +290,7 @@ static struct grub_term grub_console_term =
|
||||||
.cls = grub_console_cls,
|
.cls = grub_console_cls,
|
||||||
.setcolorstate = grub_console_setcolorstate,
|
.setcolorstate = grub_console_setcolorstate,
|
||||||
.setcolor = grub_console_setcolor,
|
.setcolor = grub_console_setcolor,
|
||||||
|
.getcolor = grub_console_getcolor,
|
||||||
.setcursor = grub_console_setcursor,
|
.setcursor = grub_console_setcursor,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
.next = 0
|
.next = 0
|
||||||
|
|
|
@ -839,14 +839,6 @@ grub_virtual_screen_setcolorstate (grub_term_color_state state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
grub_virtual_screen_setcolor (grub_uint8_t normal_color,
|
|
||||||
grub_uint8_t highlight_color)
|
|
||||||
{
|
|
||||||
virtual_screen.fg_color_setting = grub_video_map_color (normal_color);
|
|
||||||
virtual_screen.bg_color_setting = grub_video_map_color (highlight_color);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
grub_gfxterm_setcursor (int on)
|
grub_gfxterm_setcursor (int on)
|
||||||
{
|
{
|
||||||
|
@ -882,7 +874,6 @@ static struct grub_term grub_video_term =
|
||||||
.gotoxy = grub_gfxterm_gotoxy,
|
.gotoxy = grub_gfxterm_gotoxy,
|
||||||
.cls = grub_gfxterm_cls,
|
.cls = grub_gfxterm_cls,
|
||||||
.setcolorstate = grub_virtual_screen_setcolorstate,
|
.setcolorstate = grub_virtual_screen_setcolorstate,
|
||||||
.setcolor = grub_virtual_screen_setcolor,
|
|
||||||
.setcursor = grub_gfxterm_setcursor,
|
.setcursor = grub_gfxterm_setcursor,
|
||||||
.refresh = grub_gfxterm_refresh,
|
.refresh = grub_gfxterm_refresh,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
|
|
|
@ -117,6 +117,13 @@ grub_console_setcolor (grub_uint8_t normal_color, grub_uint8_t highlight_color)
|
||||||
grub_console_highlight_color = highlight_color;
|
grub_console_highlight_color = highlight_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
grub_console_getcolor (grub_uint8_t *normal_color, grub_uint8_t *highlight_color)
|
||||||
|
{
|
||||||
|
*normal_color = grub_console_normal_color;
|
||||||
|
*highlight_color = grub_console_highlight_color;
|
||||||
|
}
|
||||||
|
|
||||||
static struct grub_term grub_console_term =
|
static struct grub_term grub_console_term =
|
||||||
{
|
{
|
||||||
.name = "console",
|
.name = "console",
|
||||||
|
@ -132,6 +139,7 @@ static struct grub_term grub_console_term =
|
||||||
.cls = grub_console_cls,
|
.cls = grub_console_cls,
|
||||||
.setcolorstate = grub_console_setcolorstate,
|
.setcolorstate = grub_console_setcolorstate,
|
||||||
.setcolor = grub_console_setcolor,
|
.setcolor = grub_console_setcolor,
|
||||||
|
.getcolor = grub_console_getcolor,
|
||||||
.setcursor = grub_console_setcursor,
|
.setcursor = grub_console_setcursor,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
.next = 0
|
.next = 0
|
||||||
|
|
|
@ -453,13 +453,6 @@ grub_serial_setcolorstate (const grub_term_color_state state)
|
||||||
keep_track = 1;
|
keep_track = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
grub_serial_setcolor (grub_uint8_t normal_color __attribute__ ((unused)),
|
|
||||||
grub_uint8_t highlight_color __attribute__ ((unused)))
|
|
||||||
{
|
|
||||||
/* FIXME */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
grub_serial_setcursor (const int on)
|
grub_serial_setcursor (const int on)
|
||||||
{
|
{
|
||||||
|
@ -483,7 +476,6 @@ static struct grub_term grub_serial_term =
|
||||||
.gotoxy = grub_serial_gotoxy,
|
.gotoxy = grub_serial_gotoxy,
|
||||||
.cls = grub_serial_cls,
|
.cls = grub_serial_cls,
|
||||||
.setcolorstate = grub_serial_setcolorstate,
|
.setcolorstate = grub_serial_setcolorstate,
|
||||||
.setcolor = grub_serial_setcolor,
|
|
||||||
.setcursor = grub_serial_setcursor,
|
.setcursor = grub_serial_setcursor,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
.next = 0
|
.next = 0
|
||||||
|
|
|
@ -564,13 +564,6 @@ grub_virtual_screen_setcolorstate (grub_term_color_state state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
grub_virtual_screen_setcolor (grub_uint8_t normal_color __attribute__ ((unused)),
|
|
||||||
grub_uint8_t highlight_color __attribute__ ((unused)))
|
|
||||||
{
|
|
||||||
/* FIXME */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
grub_vesafb_setcursor (int on)
|
grub_vesafb_setcursor (int on)
|
||||||
{
|
{
|
||||||
|
@ -599,7 +592,6 @@ static struct grub_term grub_vesafb_term =
|
||||||
.gotoxy = grub_vesafb_gotoxy,
|
.gotoxy = grub_vesafb_gotoxy,
|
||||||
.cls = grub_vesafb_cls,
|
.cls = grub_vesafb_cls,
|
||||||
.setcolorstate = grub_virtual_screen_setcolorstate,
|
.setcolorstate = grub_virtual_screen_setcolorstate,
|
||||||
.setcolor = grub_virtual_screen_setcolor,
|
|
||||||
.setcursor = grub_vesafb_setcursor,
|
.setcursor = grub_vesafb_setcursor,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
.next = 0
|
.next = 0
|
||||||
|
|
|
@ -459,13 +459,6 @@ grub_vga_setcolorstate (grub_term_color_state state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
grub_vga_setcolor (grub_uint8_t normal_color __attribute__ ((unused)),
|
|
||||||
grub_uint8_t highlight_color __attribute__ ((unused)))
|
|
||||||
{
|
|
||||||
/* FIXME */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
grub_vga_setcursor (int on)
|
grub_vga_setcursor (int on)
|
||||||
{
|
{
|
||||||
|
@ -494,7 +487,6 @@ static struct grub_term grub_vga_term =
|
||||||
.gotoxy = grub_vga_gotoxy,
|
.gotoxy = grub_vga_gotoxy,
|
||||||
.cls = grub_vga_cls,
|
.cls = grub_vga_cls,
|
||||||
.setcolorstate = grub_vga_setcolorstate,
|
.setcolorstate = grub_vga_setcolorstate,
|
||||||
.setcolor = grub_vga_setcolor,
|
|
||||||
.setcursor = grub_vga_setcursor,
|
.setcursor = grub_vga_setcursor,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
.next = 0
|
.next = 0
|
||||||
|
|
|
@ -129,6 +129,13 @@ grub_ofconsole_setcolor (grub_uint8_t normal_color,
|
||||||
bgcolor = highlight_color;
|
bgcolor = highlight_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
grub_ofconsole_getcolor (grub_uint8_t *normal_color, grub_uint8_t *highlight_color)
|
||||||
|
{
|
||||||
|
*normal_color = fgcolor;
|
||||||
|
*highlight_color = bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
grub_ofconsole_readkey (int *key)
|
grub_ofconsole_readkey (int *key)
|
||||||
{
|
{
|
||||||
|
@ -364,6 +371,7 @@ static struct grub_term grub_ofconsole_term =
|
||||||
.cls = grub_ofconsole_cls,
|
.cls = grub_ofconsole_cls,
|
||||||
.setcolorstate = grub_ofconsole_setcolorstate,
|
.setcolorstate = grub_ofconsole_setcolorstate,
|
||||||
.setcolor = grub_ofconsole_setcolor,
|
.setcolor = grub_ofconsole_setcolor,
|
||||||
|
.getcolor = grub_ofconsole_getcolor,
|
||||||
.setcursor = grub_ofconsole_setcursor,
|
.setcursor = grub_ofconsole_setcursor,
|
||||||
.refresh = grub_ofconsole_refresh,
|
.refresh = grub_ofconsole_refresh,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
|
|
Loading…
Add table
Reference in a new issue