Terminal: Make cursor blinking an option.

Signed-off-by: Rene Gollent <[email protected]>
This commit is contained in:
Jonathan Schleifer
2012-11-04 17:40:24 +01:00
committed by Rene Gollent
parent dd15872ac9
commit 4e3d346e91
5 changed files with 25 additions and 2 deletions
+16
View File
@@ -80,6 +80,10 @@ AppearancePrefView::AppearancePrefView(const char* name,
NULL
};
fBlinkCursor = new BCheckBox(
B_TRANSLATE("Blink the cursor"),
new BMessage(MSG_BLINK_CURSOR_CHANGED));
fWarnOnExit = new BCheckBox(
B_TRANSLATE("Confirm exit if active programs exist"),
new BMessage(MSG_WARN_ON_EXIT_CHANGED));
@@ -141,6 +145,7 @@ AppearancePrefView::AppearancePrefView(const char* name,
.AddGlue()
.Add(fColorControl = new BColorControl(BPoint(10, 10),
B_CELLS_32x8, 8.0, "", new BMessage(MSG_COLOR_CHANGED)))
.Add(fBlinkCursor)
.Add(fWarnOnExit);
fTabTitle->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT);
@@ -157,6 +162,7 @@ AppearancePrefView::AppearancePrefView(const char* name,
fColorControl->SetValue(
PrefHandler::Default()->getRGB(PREF_TEXT_FORE_COLOR));
fBlinkCursor->SetValue(PrefHandler::Default()->getBool(PREF_BLINK_CURSOR));
fWarnOnExit->SetValue(PrefHandler::Default()->getBool(PREF_WARN_ON_EXIT));
BTextControl* redInput = (BTextControl*)fColorControl->ChildAt(0);
@@ -205,6 +211,7 @@ AppearancePrefView::AttachedToWindow()
{
fTabTitle->SetTarget(this);
fWindowTitle->SetTarget(this);
fBlinkCursor->SetTarget(this);
fWarnOnExit->SetTarget(this);
fFontSize->Menu()->SetTargetForItems(this);
@@ -293,6 +300,15 @@ AppearancePrefView::MessageReceived(BMessage* msg)
fColorField->Menu()->FindMarked()->Label()));
break;
case MSG_BLINK_CURSOR_CHANGED:
if (PrefHandler::Default()->getBool(PREF_BLINK_CURSOR)
!= fBlinkCursor->Value()) {
PrefHandler::Default()->setBool(PREF_BLINK_CURSOR,
fBlinkCursor->Value());
modified = true;
}
break;
case MSG_WARN_ON_EXIT_CHANGED:
if (PrefHandler::Default()->getBool(PREF_WARN_ON_EXIT)
!= fWarnOnExit->Value()) {
+3 -1
View File
@@ -23,10 +23,11 @@ static const uint32 MSG_COLOR_SCHEMA_CHANGED = 'mccs';
static const uint32 MSG_TAB_TITLE_SETTING_CHANGED = 'mtts';
static const uint32 MSG_WINDOW_TITLE_SETTING_CHANGED = 'mwts';
static const uint32 MSG_BLINK_CURSOR_CHANGED = 'mbcc';
static const uint32 MSG_WARN_ON_EXIT_CHANGED = 'mwec';
static const uint32 MSG_COLS_CHANGED = 'mccl';
static const uint32 MSG_ROWS_CHANGED = 'mcrw';
static const uint32 MSG_HISTORY_CHANGED = 'mhst';
static const uint32 MSG_HISTORY_CHANGED = 'mhst';
static const uint32 MSG_PREF_MODIFIED = 'mpmo';
@@ -71,6 +72,7 @@ private:
const color_schema** schemas,
const color_schema* defaultItemName);
BCheckBox* fBlinkCursor;
BCheckBox* fWarnOnExit;
BMenuField* fFont;
BMenuField* fFontSize;
+1
View File
@@ -61,6 +61,7 @@ static const pref_defaults kTermDefaults[] = {
{ PREF_TAB_TITLE, "%1d: %p" },
{ PREF_WINDOW_TITLE, "Terminal %i: %t" },
{ PREF_BLINK_CURSOR, PREF_TRUE },
{ PREF_WARN_ON_EXIT, PREF_TRUE },
{ NULL, NULL},
+1
View File
@@ -131,6 +131,7 @@ static const char* const PREF_SHELL = "Shell";
static const char* const PREF_TEXT_ENCODING = "Text encoding";
static const char* const PREF_GUI_LANGUAGE = "Language";
static const char* const PREF_BLINK_CURSOR = "Blink the cursor";
static const char* const PREF_WARN_ON_EXIT = "Warn on exit";
static const char* const PREF_TAB_TITLE = "Tab title";
+4 -1
View File
@@ -54,6 +54,7 @@
#include <Window.h>
#include "InlineInput.h"
#include "PrefHandler.h"
#include "Shell.h"
#include "ShellParameters.h"
#include "TermConst.h"
@@ -1096,9 +1097,11 @@ TermView::_DetachShell()
void
TermView::_Activate()
{
bool blinkCursor = PrefHandler::Default()->getBool(PREF_BLINK_CURSOR);
fActive = true;
if (fCursorBlinkRunner == NULL) {
if (fCursorBlinkRunner == NULL && blinkCursor) {
BMessage blinkMessage(kBlinkCursor);
fCursorBlinkRunner = new (std::nothrow) BMessageRunner(
BMessenger(this), &blinkMessage, kCursorBlinkInterval);