Author: pulkomandy Date: 2010-10-29 14:07:51 +0200 (Fri, 29 Oct 2010) New Revision: 39183 Changeset: http://dev.haiku-os.org/changeset/39183 Modified: haiku/trunk/src/apps/terminal/AppearPrefView.cpp haiku/trunk/src/apps/terminal/PrefHandler.cpp haiku/trunk/src/apps/terminal/TermConst.h haiku/trunk/src/apps/terminal/TermView.cpp haiku/trunk/src/apps/terminal/TermView.h haiku/trunk/src/apps/terminal/TermWindow.cpp Log: * Remove the setting for a fixed cursor color. Instead, the cursor now inverts the colors of the char below it. * This allows getting a cursor well visible both on black and white backgrouds. Modified: haiku/trunk/src/apps/terminal/AppearPrefView.cpp =================================================================== --- haiku/trunk/src/apps/terminal/AppearPrefView.cpp 2010-10-29 08:33:47 UTC (rev 39182) +++ haiku/trunk/src/apps/terminal/AppearPrefView.cpp 2010-10-29 12:07:51 UTC (rev 39183) @@ -75,8 +75,6 @@ const char* kColorTable[] = { PREF_TEXT_FORE_COLOR, PREF_TEXT_BACK_COLOR, - PREF_CURSOR_FORE_COLOR, - PREF_CURSOR_BACK_COLOR, PREF_SELECT_FORE_COLOR, PREF_SELECT_BACK_COLOR, NULL @@ -301,8 +299,6 @@ pref->setRGB(PREF_TEXT_FORE_COLOR, schema->text_fore_color); pref->setRGB(PREF_TEXT_BACK_COLOR, schema->text_back_color); - pref->setRGB(PREF_CURSOR_FORE_COLOR, schema->cursor_fore_color); - pref->setRGB(PREF_CURSOR_BACK_COLOR, schema->cursor_back_color); pref->setRGB(PREF_SELECT_FORE_COLOR, schema->select_fore_color); pref->setRGB(PREF_SELECT_BACK_COLOR, schema->select_back_color); } @@ -315,8 +311,6 @@ gCustomSchema.text_fore_color = pref->getRGB(PREF_TEXT_FORE_COLOR); gCustomSchema.text_back_color = pref->getRGB(PREF_TEXT_BACK_COLOR); - gCustomSchema.cursor_fore_color = pref->getRGB(PREF_CURSOR_FORE_COLOR); - gCustomSchema.cursor_back_color = pref->getRGB(PREF_CURSOR_BACK_COLOR); gCustomSchema.select_fore_color = pref->getRGB(PREF_SELECT_FORE_COLOR); gCustomSchema.select_back_color = pref->getRGB(PREF_SELECT_BACK_COLOR); Modified: haiku/trunk/src/apps/terminal/PrefHandler.cpp =================================================================== --- haiku/trunk/src/apps/terminal/PrefHandler.cpp 2010-10-29 08:33:47 UTC (rev 39182) +++ haiku/trunk/src/apps/terminal/PrefHandler.cpp 2010-10-29 12:07:51 UTC (rev 39183) @@ -44,8 +44,6 @@ { PREF_TEXT_BACK_COLOR, "255, 255, 255" }, { PREF_SELECT_FORE_COLOR, "255, 255, 255" }, { PREF_SELECT_BACK_COLOR, " 0, 0, 0" }, - { PREF_CURSOR_FORE_COLOR, "255, 255, 255" }, - { PREF_CURSOR_BACK_COLOR, " 0, 0, 0" }, { PREF_IM_FORE_COLOR, " 0, 0, 0" }, { PREF_IM_BACK_COLOR, "152, 203, 255" }, @@ -423,8 +421,6 @@ setString(PREF_HALF_FONT_STYLE, font_style); setRGB(PREF_TEXT_BACK_COLOR, prefs.bg); setRGB(PREF_TEXT_FORE_COLOR, prefs.fg); - setRGB(PREF_CURSOR_BACK_COLOR, prefs.curbg); - setRGB(PREF_CURSOR_FORE_COLOR, prefs.curfg); setRGB(PREF_SELECT_BACK_COLOR, prefs.selbg); setRGB(PREF_SELECT_FORE_COLOR, prefs.selfg); setString(PREF_TEXT_ENCODING, EncodingAsString(prefs.encoding)); Modified: haiku/trunk/src/apps/terminal/TermConst.h =================================================================== --- haiku/trunk/src/apps/terminal/TermConst.h 2010-10-29 08:33:47 UTC (rev 39182) +++ haiku/trunk/src/apps/terminal/TermConst.h 2010-10-29 12:07:51 UTC (rev 39183) @@ -103,8 +103,6 @@ const char* const PREF_TEXT_BACK_COLOR = "Background"; const char* const PREF_SELECT_FORE_COLOR = "Selected text"; const char* const PREF_SELECT_BACK_COLOR = "Selected background"; -const char* const PREF_CURSOR_FORE_COLOR = "Cursor text"; -const char* const PREF_CURSOR_BACK_COLOR = "Cursor background"; const char* const PREF_IM_FORE_COLOR = "IM foreground color"; const char* const PREF_IM_BACK_COLOR = "IM background color"; Modified: haiku/trunk/src/apps/terminal/TermView.cpp =================================================================== --- haiku/trunk/src/apps/terminal/TermView.cpp 2010-10-29 08:33:47 UTC (rev 39182) +++ haiku/trunk/src/apps/terminal/TermView.cpp 2010-10-29 12:07:51 UTC (rev 39183) @@ -548,8 +548,6 @@ fVisibleTextBuffer = NULL; fScrollBar = NULL; fInline = NULL; - fCursorForeColor = kWhiteColor; - fCursorBackColor = kBlackColor; fSelectForeColor = kWhiteColor; fSelectBackColor = kBlackColor; fScrollOffset = 0; @@ -849,14 +847,6 @@ } -void -TermView::SetCursorColor(rgb_color fore, rgb_color back) -{ - fCursorForeColor = fore; - fCursorBackColor = back; -} - - int TermView::Encoding() const { @@ -1117,8 +1107,13 @@ // Selection check. if (cursor) { - rgb_fore = fCursorForeColor; - rgb_back = fCursorBackColor; + rgb_fore.red = 255 - rgb_fore.red; + rgb_fore.green = 255 - rgb_fore.green; + rgb_fore.blue = 255 - rgb_fore.blue; + + rgb_back.red = 255 - rgb_back.red; + rgb_back.green = 255 - rgb_back.green; + rgb_back.blue = 255 - rgb_back.blue; } else if (mouse) { rgb_fore = fSelectForeColor; rgb_back = fSelectBackColor; @@ -1195,8 +1190,13 @@ if (selected) SetHighColor(fSelectBackColor); else { - SetHighColor(cursorVisible - ? fCursorBackColor : kTermColorTable[IS_BACKCOLOR(attr)]); + rgb_color color = kTermColorTable[IS_BACKCOLOR(attr)]; + if (cursorVisible) { + color.red = 255 - color.red; + color.green = 255 - color.green; + color.blue = 255 - color.blue; + } + SetHighColor(color); } FillRect(rect); Modified: haiku/trunk/src/apps/terminal/TermView.h =================================================================== --- haiku/trunk/src/apps/terminal/TermView.h 2010-10-29 08:33:47 UTC (rev 39182) +++ haiku/trunk/src/apps/terminal/TermView.h 2010-10-29 12:07:51 UTC (rev 39183) @@ -65,7 +65,6 @@ void SetTextColor(rgb_color fore, rgb_color back); void SetSelectColor(rgb_color fore, rgb_color back); - void SetCursorColor(rgb_color fore, rgb_color back); int Encoding() const; void SetEncoding(int encoding); @@ -238,8 +237,6 @@ InlineInput* fInline; // Color and Attribute. - rgb_color fCursorForeColor; - rgb_color fCursorBackColor; rgb_color fSelectForeColor; rgb_color fSelectBackColor; Modified: haiku/trunk/src/apps/terminal/TermWindow.cpp =================================================================== --- haiku/trunk/src/apps/terminal/TermWindow.cpp 2010-10-29 08:33:47 UTC (rev 39182) +++ haiku/trunk/src/apps/terminal/TermWindow.cpp 2010-10-29 12:07:51 UTC (rev 39183) @@ -744,9 +744,6 @@ termView->SetSelectColor(handler->getRGB(PREF_SELECT_FORE_COLOR), handler->getRGB(PREF_SELECT_BACK_COLOR)); - - termView->SetCursorColor(handler->getRGB(PREF_CURSOR_FORE_COLOR), - handler->getRGB(PREF_CURSOR_BACK_COLOR)); }