git-svn-id: svn://db.shs.com.ru/pip@257 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -240,12 +240,11 @@ void PIScreen::SystemConsole::print() {
|
||||
#define BACKGROUND_MASK (BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE)
|
||||
WORD PIScreen::SystemConsole::attributes(const PIScreenTypes::Cell & c) {
|
||||
WORD attr = PRIVATE->dattr;
|
||||
bool inv = ((c.format.flags & Inverse) == Inverse);
|
||||
if (c.format.flags & Bold) attr |= (inv ? BACKGROUND_INTENSITY : FOREGROUND_INTENSITY);
|
||||
else attr &= ~(inv ? BACKGROUND_INTENSITY : FOREGROUND_INTENSITY);
|
||||
if (c.format.flags & Bold) attr |= FOREGROUND_INTENSITY;
|
||||
else attr &= ~FOREGROUND_INTENSITY;
|
||||
if (c.format.flags & Underline) attr |= COMMON_LVB_UNDERSCORE;
|
||||
else attr &= ~COMMON_LVB_UNDERSCORE;
|
||||
switch (inv ? c.format.color_back : c.format.color_char) {
|
||||
switch (c.format.color_char) {
|
||||
case Black: attr = (attr & ~FOREGROUND_MASK); break;
|
||||
case Red: attr = (attr & ~FOREGROUND_MASK) | FOREGROUND_RED; break;
|
||||
case Green: attr = (attr & ~FOREGROUND_MASK) | FOREGROUND_GREEN; break;
|
||||
@@ -255,7 +254,7 @@ WORD PIScreen::SystemConsole::attributes(const PIScreenTypes::Cell & c) {
|
||||
case Yellow: attr = (attr & ~FOREGROUND_MASK) | FOREGROUND_RED | FOREGROUND_GREEN; break;
|
||||
case White: attr = attr | FOREGROUND_MASK; break;
|
||||
}
|
||||
switch (inv ? c.format.color_char : c.format.color_back) {
|
||||
switch (c.format.color_back) {
|
||||
case Black: attr = (attr & ~BACKGROUND_MASK); break;
|
||||
case Red: attr = (attr & ~BACKGROUND_MASK) | BACKGROUND_RED; break;
|
||||
case Green: attr = (attr & ~BACKGROUND_MASK) | BACKGROUND_GREEN; break;
|
||||
@@ -265,6 +264,12 @@ WORD PIScreen::SystemConsole::attributes(const PIScreenTypes::Cell & c) {
|
||||
case Yellow: attr = (attr & ~BACKGROUND_MASK) | BACKGROUND_RED | BACKGROUND_GREEN; break;
|
||||
case White: attr = attr | BACKGROUND_MASK; break;
|
||||
}
|
||||
if ((c.format.flags & Inverse) == Inverse) {
|
||||
uchar f = c.format.flags & 0xFF;
|
||||
c.format.flags &= 0xFFFFFF00;
|
||||
f = (f << 4) | (f >> 4);
|
||||
c.format.flags |= f;
|
||||
}
|
||||
return attr;
|
||||
}
|
||||
#undef FOREGROUND_MASK
|
||||
|
||||
Reference in New Issue
Block a user