mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2025-12-26 15:57:56 +01:00
Made color methods in TextView protected virtual
This commit is contained in:
@@ -1333,17 +1333,46 @@ namespace Terminal.Gui {
|
||||
}
|
||||
}
|
||||
|
||||
void ColorNormal ()
|
||||
/// <summary>
|
||||
/// Sets the driver to the default color for the control where no text is being rendered. Defaults to <see cref="ColorScheme.Normal"/>.
|
||||
/// </summary>
|
||||
protected virtual void ColorNormal ()
|
||||
{
|
||||
Driver.SetAttribute (ColorScheme.Normal);
|
||||
}
|
||||
|
||||
void ColorSelection ()
|
||||
/// <summary>
|
||||
/// Sets the <see cref="View.Driver"/> to an appropriate color for rendering the given <paramref name="idx"/> of the
|
||||
/// current <paramref name="line"/>. Override to provide custom coloring by calling <see cref="ConsoleDriver.SetAttribute(Attribute)"/>
|
||||
/// Defaults to <see cref="ColorScheme.Normal"/>.
|
||||
/// </summary>
|
||||
/// <param name="line"></param>
|
||||
/// <param name="idx"></param>
|
||||
protected virtual void ColorNormal (List<Rune> line, int idx)
|
||||
{
|
||||
Driver.SetAttribute (ColorScheme.Normal);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the <see cref="View.Driver"/> to an appropriate color for rendering the given <paramref name="idx"/> of the
|
||||
/// current <paramref name="line"/>. Override to provide custom coloring by calling <see cref="ConsoleDriver.SetAttribute(Attribute)"/>
|
||||
/// Defaults to <see cref="ColorScheme.Focus"/>.
|
||||
/// </summary>
|
||||
/// <param name="line"></param>
|
||||
/// <param name="idx"></param>
|
||||
protected virtual void ColorSelection (List<Rune> line, int idx)
|
||||
{
|
||||
Driver.SetAttribute (ColorScheme.Focus);
|
||||
}
|
||||
|
||||
void ColorUsed ()
|
||||
/// <summary>
|
||||
/// Sets the <see cref="View.Driver"/> to an appropriate color for rendering the given <paramref name="idx"/> of the
|
||||
/// current <paramref name="line"/>. Override to provide custom coloring by calling <see cref="ConsoleDriver.SetAttribute(Attribute)"/>
|
||||
/// Defaults to <see cref="ColorScheme.HotFocus"/>.
|
||||
/// </summary>
|
||||
/// <param name="line"></param>
|
||||
/// <param name="idx"></param>
|
||||
protected virtual void ColorUsed (List<Rune> line, int idx)
|
||||
{
|
||||
Driver.SetAttribute (ColorScheme.HotFocus);
|
||||
}
|
||||
@@ -1667,12 +1696,12 @@ namespace Terminal.Gui {
|
||||
var rune = idxCol >= lineRuneCount ? ' ' : line [idxCol];
|
||||
var cols = Rune.ColumnWidth (rune);
|
||||
if (idxCol < line.Count && selecting && PointInSelection (idxCol, idxRow)) {
|
||||
ColorSelection ();
|
||||
ColorSelection (line, idxCol);
|
||||
} else if (idxCol == currentColumn && idxRow == currentRow && !selecting && !Used
|
||||
&& HasFocus && idxCol < lineRuneCount) {
|
||||
ColorUsed ();
|
||||
ColorUsed (line, idxCol);
|
||||
} else {
|
||||
ColorNormal ();
|
||||
ColorNormal (line,idxCol);
|
||||
}
|
||||
|
||||
if (rune == '\t' && TabWidth > 0) {
|
||||
|
||||
66
UICatalog/Scenarios/SyntaxHighlighting.cs
Normal file
66
UICatalog/Scenarios/SyntaxHighlighting.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Terminal.Gui;
|
||||
using static UICatalog.Scenario;
|
||||
|
||||
|
||||
namespace UICatalog.Scenarios {
|
||||
[ScenarioMetadata (Name: "Syntax Highlighting", Description: "Text editor with keyword highlighting")]
|
||||
[ScenarioCategory ("Controls")]
|
||||
class SyntaxHighlighting : Scenario {
|
||||
|
||||
public override void Setup ()
|
||||
{
|
||||
Win.Title = this.GetName ();
|
||||
Win.Y = 1; // menu
|
||||
Win.Height = Dim.Fill (1); // status bar
|
||||
Top.LayoutSubviews ();
|
||||
|
||||
var menu = new MenuBar (new MenuBarItem [] {
|
||||
new MenuBarItem ("_File", new MenuItem [] {
|
||||
new MenuItem ("_Quit", "", () => Quit()),
|
||||
})
|
||||
});
|
||||
Top.Add (menu);
|
||||
|
||||
var textView = new SqlTextView () {
|
||||
X = 0,
|
||||
Y = 0,
|
||||
Width = Dim.Fill (),
|
||||
Height = Dim.Fill (1),
|
||||
};
|
||||
|
||||
|
||||
Win.Add (textView);
|
||||
|
||||
var statusBar = new StatusBar (new StatusItem [] {
|
||||
new StatusItem(Key.CtrlMask | Key.Q, "~^Q~ Quit", () => Quit()),
|
||||
|
||||
});
|
||||
|
||||
|
||||
Top.Add (statusBar);
|
||||
}
|
||||
|
||||
|
||||
private void Quit ()
|
||||
{
|
||||
Application.RequestStop ();
|
||||
}
|
||||
|
||||
private class SqlTextView : TextView{
|
||||
|
||||
|
||||
|
||||
protected override void ColorNormal (List<System.Rune> line, int idx)
|
||||
{
|
||||
Driver.SetAttribute (Driver.MakeAttribute (Color.Green, Color.Black));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user