Skip to content

Commit befb063

Browse files
committed
Merge branch 'develop' of tig:gui-cs/Terminal.Gui into develop
2 parents 1a1460e + c6001c7 commit befb063

File tree

347 files changed

+561
-196683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

347 files changed

+561
-196683
lines changed

.github/workflows/api-docs.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Build and publish API docs
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
jobs:
8+
generate-docs:
9+
runs-on: windows-latest
10+
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v2
14+
15+
- name: Setup .NET Core
16+
uses: actions/setup-dotnet@v1
17+
with:
18+
dotnet-version: 6.0.100
19+
20+
- name: Setup DocFX
21+
uses: crazy-max/ghaction-chocolatey@v1
22+
with:
23+
args: install docfx
24+
25+
- name: Install dependencies
26+
run: dotnet restore
27+
28+
- name: DocFX Build
29+
working-directory: docfx
30+
# https://stackoverflow.com/questions/56726429/how-to-run-multiple-commands-in-one-github-actions-docker
31+
run: |
32+
rm ../docs -Recurse -Force
33+
docfx docfx.json
34+
continue-on-error: false
35+
36+
- name: Publish
37+
if: github.event_name == 'push'
38+
uses: peaceiris/actions-gh-pages@v3
39+
with:
40+
github_token: ${{ secrets.GITHUB_TOKEN }}
41+
publish_dir: docs
42+
force_orphan: true
43+
44+
# - name: Use docfx to build API Docs
45+
# uses: nikeee/[email protected]
46+
# with:
47+
# args: docfx/docfx.json
48+
49+
# # Publish generated site using GitHub Pages
50+
# - uses: maxheld83/ghpages@master
51+
# name: Publish API Documentation on GitHub Pages
52+
# env:
53+
# BUILD_DIR: docs # docfx's default output directory is _site
54+
# GH_PAT: ${{ secrets.GH_PAT }} # See https://github.com/maxheld83/ghpages

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@ packages
88
# User-specific files
99
*.user
1010

11+
# API Docs
1112
docfx/api
1213

14+
# Never push ./docs folder - the gh-pages branch is now used to publish to GH Pages
15+
1316
UnitTests/TestResults
1417

1518
#git merge files

Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ public static Attribute MakeColor (short foreground, short background)
191191
background: MapCursesColor (background));
192192
}
193193

194-
public override Attribute MakeColor (Color fore, Color back)
194+
static Attribute MakeColor (Color fore, Color back)
195195
{
196196
return MakeColor ((short)MapColor (fore), (short)MapColor (back));
197197
}
@@ -663,7 +663,7 @@ void ProcessInput (Action<KeyEvent> keyHandler, Action<KeyEvent> keyDownHandler,
663663

664664
// Special handling for ESC, we want to try to catch ESC+letter to simulate alt-letter as well as Alt-Fkey
665665
if (wch == 27) {
666-
Curses.timeout (10);
666+
Curses.timeout (200);
667667

668668
code = Curses.get_wch (out int wch2);
669669

@@ -820,7 +820,6 @@ public override void Init (Action terminalResized)
820820
//Console.Out.Flush ();
821821

822822
window = Curses.initscr ();
823-
Curses.set_escdelay (10);
824823
} catch (Exception e) {
825824
throw new Exception ($"Curses failed to initialize, the exception is: {e.Message}");
826825
}
@@ -890,14 +889,51 @@ public override void Init (Action terminalResized)
890889
//UpArrow = Curses.ACS_UARROW;
891890
//DownArrow = Curses.ACS_DARROW;
892891

892+
Colors.TopLevel = new ColorScheme ();
893+
Colors.Base = new ColorScheme ();
894+
Colors.Dialog = new ColorScheme ();
895+
Colors.Menu = new ColorScheme ();
896+
Colors.Error = new ColorScheme ();
897+
893898
if (Curses.HasColors) {
894899
Curses.StartColor ();
895900
Curses.UseDefaultColors ();
896901

897-
CreateColors ();
902+
Colors.TopLevel.Normal = MakeColor (Color.Green, Color.Black);
903+
Colors.TopLevel.Focus = MakeColor (Color.White, Color.Cyan);
904+
Colors.TopLevel.HotNormal = MakeColor (Color.Brown, Color.Black);
905+
Colors.TopLevel.HotFocus = MakeColor (Color.Blue, Color.Cyan);
906+
Colors.TopLevel.Disabled = MakeColor (Color.DarkGray, Color.Black);
907+
908+
Colors.Base.Normal = MakeColor (Color.White, Color.Blue);
909+
Colors.Base.Focus = MakeColor (Color.Black, Color.Gray);
910+
Colors.Base.HotNormal = MakeColor (Color.BrightCyan, Color.Blue);
911+
Colors.Base.HotFocus = MakeColor (Color.BrightBlue, Color.Gray);
912+
Colors.Base.Disabled = MakeColor (Color.DarkGray, Color.Blue);
913+
914+
// Focused,
915+
// Selected, Hot: Yellow on Black
916+
// Selected, text: white on black
917+
// Unselected, hot: yellow on cyan
918+
// unselected, text: same as unfocused
919+
Colors.Menu.Normal = MakeColor (Color.White, Color.DarkGray);
920+
Colors.Menu.Focus = MakeColor (Color.White, Color.Black);
921+
Colors.Menu.HotNormal = MakeColor (Color.BrightYellow, Color.DarkGray);
922+
Colors.Menu.HotFocus = MakeColor (Color.BrightYellow, Color.Black);
923+
Colors.Menu.Disabled = MakeColor (Color.Gray, Color.DarkGray);
924+
925+
Colors.Dialog.Normal = MakeColor (Color.Black, Color.Gray);
926+
Colors.Dialog.Focus = MakeColor (Color.White, Color.DarkGray);
927+
Colors.Dialog.HotNormal = MakeColor (Color.Blue, Color.Gray);
928+
Colors.Dialog.HotFocus = MakeColor (Color.Blue, Color.DarkGray);
929+
Colors.Dialog.Disabled = MakeColor (Color.DarkGray, Color.Gray);
930+
931+
Colors.Error.Normal = MakeColor (Color.Red, Color.White);
932+
Colors.Error.Focus = MakeColor (Color.White, Color.Red);
933+
Colors.Error.HotNormal = MakeColor (Color.Black, Color.White);
934+
Colors.Error.HotFocus = MakeColor (Color.Black, Color.Red);
935+
Colors.Error.Disabled = MakeColor (Color.DarkGray, Color.White);
898936
} else {
899-
CreateColors (false);
900-
901937
Colors.TopLevel.Normal = Curses.COLOR_GREEN;
902938
Colors.TopLevel.Focus = Curses.COLOR_WHITE;
903939
Colors.TopLevel.HotNormal = Curses.COLOR_YELLOW;

Terminal.Gui/ConsoleDrivers/CursesDriver/binding.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,6 @@ static public int IsAlt (int key)
330330
static public int reset_shell_mode () => methods.reset_shell_mode ();
331331
static public int savetty () => methods.savetty ();
332332
static public int resetty () => methods.resetty ();
333-
static public int set_escdelay (int size) => methods.set_escdelay (size);
334333
}
335334

336335
#pragma warning disable RCS1102 // Make class static.
@@ -406,7 +405,6 @@ internal class Delegates {
406405
public delegate int reset_shell_mode ();
407406
public delegate int savetty ();
408407
public delegate int resetty ();
409-
public delegate int set_escdelay (int size);
410408
}
411409

412410
internal class NativeMethods {
@@ -480,7 +478,6 @@ internal class NativeMethods {
480478
public readonly Delegates.reset_shell_mode reset_shell_mode;
481479
public readonly Delegates.savetty savetty;
482480
public readonly Delegates.resetty resetty;
483-
public readonly Delegates.set_escdelay set_escdelay;
484481
public UnmanagedLibrary UnmanagedLibrary;
485482

486483
public NativeMethods (UnmanagedLibrary lib)
@@ -556,7 +553,6 @@ public NativeMethods (UnmanagedLibrary lib)
556553
reset_shell_mode = lib.GetNativeMethodDelegate<Delegates.reset_shell_mode> ("reset_shell_mode");
557554
savetty = lib.GetNativeMethodDelegate<Delegates.savetty> ("savetty");
558555
resetty = lib.GetNativeMethodDelegate<Delegates.resetty> ("resetty");
559-
set_escdelay = lib.GetNativeMethodDelegate<Delegates.set_escdelay> ("set_escdelay");
560556
}
561557
}
562558
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member

Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,11 +157,6 @@ public override void End ()
157157
FakeConsole.Clear ();
158158
}
159159

160-
public override Attribute MakeColor (Color foreground, Color background)
161-
{
162-
return MakeColor ((ConsoleColor)foreground, (ConsoleColor)background);
163-
}
164-
165160
static Attribute MakeColor (ConsoleColor f, ConsoleColor b)
166161
{
167162
// Encode the colors into the int value.
@@ -182,7 +177,47 @@ public override void Init (Action terminalResized)
182177
ResizeScreen ();
183178
UpdateOffScreen ();
184179

185-
CreateColors ();
180+
Colors.TopLevel = new ColorScheme ();
181+
Colors.Base = new ColorScheme ();
182+
Colors.Dialog = new ColorScheme ();
183+
Colors.Menu = new ColorScheme ();
184+
Colors.Error = new ColorScheme ();
185+
Clip = new Rect (0, 0, Cols, Rows);
186+
187+
Colors.TopLevel.Normal = MakeColor (ConsoleColor.Green, ConsoleColor.Black);
188+
Colors.TopLevel.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkCyan);
189+
Colors.TopLevel.HotNormal = MakeColor (ConsoleColor.DarkYellow, ConsoleColor.Black);
190+
Colors.TopLevel.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkCyan);
191+
Colors.TopLevel.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Black);
192+
193+
Colors.Base.Normal = MakeColor (ConsoleColor.White, ConsoleColor.Blue);
194+
Colors.Base.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Cyan);
195+
Colors.Base.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.Blue);
196+
Colors.Base.HotFocus = MakeColor (ConsoleColor.Yellow, ConsoleColor.Cyan);
197+
Colors.Base.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.DarkBlue);
198+
199+
// Focused,
200+
// Selected, Hot: Yellow on Black
201+
// Selected, text: white on black
202+
// Unselected, hot: yellow on cyan
203+
// unselected, text: same as unfocused
204+
Colors.Menu.HotFocus = MakeColor (ConsoleColor.Yellow, ConsoleColor.Black);
205+
Colors.Menu.Focus = MakeColor (ConsoleColor.White, ConsoleColor.Black);
206+
Colors.Menu.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.Cyan);
207+
Colors.Menu.Normal = MakeColor (ConsoleColor.White, ConsoleColor.Cyan);
208+
Colors.Menu.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Cyan);
209+
210+
Colors.Dialog.Normal = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
211+
Colors.Dialog.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Cyan);
212+
Colors.Dialog.HotNormal = MakeColor (ConsoleColor.Blue, ConsoleColor.Gray);
213+
Colors.Dialog.HotFocus = MakeColor (ConsoleColor.Blue, ConsoleColor.Cyan);
214+
Colors.Dialog.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Gray);
215+
216+
Colors.Error.Normal = MakeColor (ConsoleColor.White, ConsoleColor.Red);
217+
Colors.Error.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
218+
Colors.Error.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.Red);
219+
Colors.Error.HotFocus = Colors.Error.HotNormal;
220+
Colors.Error.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.White);
186221

187222
//MockConsole.Clear ();
188223
}

Terminal.Gui/ConsoleDrivers/NetDriver.cs

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,11 +1309,6 @@ void Clear ()
13091309
}
13101310
}
13111311

1312-
public override Attribute MakeColor (Color foreground, Color background)
1313-
{
1314-
return MakeColor ((ConsoleColor)foreground, (ConsoleColor)background);
1315-
}
1316-
13171312
static Attribute MakeColor (ConsoleColor f, ConsoleColor b)
13181313
{
13191314
// Encode the colors into the int value.
@@ -1342,7 +1337,46 @@ public override void Init (Action terminalResized)
13421337

13431338
StartReportingMouseMoves ();
13441339

1345-
CreateColors ();
1340+
Colors.TopLevel = new ColorScheme ();
1341+
Colors.Base = new ColorScheme ();
1342+
Colors.Dialog = new ColorScheme ();
1343+
Colors.Menu = new ColorScheme ();
1344+
Colors.Error = new ColorScheme ();
1345+
1346+
Colors.TopLevel.Normal = MakeColor (ConsoleColor.Green, ConsoleColor.Black);
1347+
Colors.TopLevel.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkCyan);
1348+
Colors.TopLevel.HotNormal = MakeColor (ConsoleColor.DarkYellow, ConsoleColor.Black);
1349+
Colors.TopLevel.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkCyan);
1350+
Colors.TopLevel.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Black);
1351+
1352+
Colors.Base.Normal = MakeColor (ConsoleColor.White, ConsoleColor.DarkBlue);
1353+
Colors.Base.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
1354+
Colors.Base.HotNormal = MakeColor (ConsoleColor.Cyan, ConsoleColor.DarkBlue);
1355+
Colors.Base.HotFocus = MakeColor (ConsoleColor.Blue, ConsoleColor.Gray);
1356+
Colors.Base.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.DarkBlue);
1357+
1358+
// Focused,
1359+
// Selected, Hot: Yellow on Black
1360+
// Selected, text: white on black
1361+
// Unselected, hot: yellow on cyan
1362+
// unselected, text: same as unfocused
1363+
Colors.Menu.Normal = MakeColor (ConsoleColor.White, ConsoleColor.DarkGray);
1364+
Colors.Menu.Focus = MakeColor (ConsoleColor.White, ConsoleColor.Black);
1365+
Colors.Menu.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.DarkGray);
1366+
Colors.Menu.HotFocus = MakeColor (ConsoleColor.Yellow, ConsoleColor.Black);
1367+
Colors.Menu.Disabled = MakeColor (ConsoleColor.Gray, ConsoleColor.DarkGray);
1368+
1369+
Colors.Dialog.Normal = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
1370+
Colors.Dialog.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkGray);
1371+
Colors.Dialog.HotNormal = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.Gray);
1372+
Colors.Dialog.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkGray);
1373+
Colors.Dialog.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Gray);
1374+
1375+
Colors.Error.Normal = MakeColor (ConsoleColor.DarkRed, ConsoleColor.White);
1376+
Colors.Error.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkRed);
1377+
Colors.Error.HotNormal = MakeColor (ConsoleColor.Black, ConsoleColor.White);
1378+
Colors.Error.HotFocus = MakeColor (ConsoleColor.Black, ConsoleColor.DarkRed);
1379+
Colors.Error.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.White);
13461380

13471381
Clear ();
13481382
}

Terminal.Gui/ConsoleDrivers/WindowsDriver.cs

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,7 +1397,41 @@ public override void Init (Action terminalResized)
13971397
ResizeScreen ();
13981398
UpdateOffScreen ();
13991399

1400-
CreateColors ();
1400+
Colors.TopLevel = new ColorScheme ();
1401+
Colors.Base = new ColorScheme ();
1402+
Colors.Dialog = new ColorScheme ();
1403+
Colors.Menu = new ColorScheme ();
1404+
Colors.Error = new ColorScheme ();
1405+
1406+
Colors.TopLevel.Normal = MakeColor (ConsoleColor.Green, ConsoleColor.Black);
1407+
Colors.TopLevel.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkCyan);
1408+
Colors.TopLevel.HotNormal = MakeColor (ConsoleColor.DarkYellow, ConsoleColor.Black);
1409+
Colors.TopLevel.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkCyan);
1410+
Colors.TopLevel.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Black);
1411+
1412+
Colors.Base.Normal = MakeColor (ConsoleColor.White, ConsoleColor.DarkBlue);
1413+
Colors.Base.Focus = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
1414+
Colors.Base.HotNormal = MakeColor (ConsoleColor.Cyan, ConsoleColor.DarkBlue);
1415+
Colors.Base.HotFocus = MakeColor (ConsoleColor.Blue, ConsoleColor.Gray);
1416+
Colors.Base.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.DarkBlue);
1417+
1418+
Colors.Menu.Normal = MakeColor (ConsoleColor.White, ConsoleColor.DarkGray);
1419+
Colors.Menu.Focus = MakeColor (ConsoleColor.White, ConsoleColor.Black);
1420+
Colors.Menu.HotNormal = MakeColor (ConsoleColor.Yellow, ConsoleColor.DarkGray);
1421+
Colors.Menu.HotFocus = MakeColor (ConsoleColor.Yellow, ConsoleColor.Black);
1422+
Colors.Menu.Disabled = MakeColor (ConsoleColor.Gray, ConsoleColor.DarkGray);
1423+
1424+
Colors.Dialog.Normal = MakeColor (ConsoleColor.Black, ConsoleColor.Gray);
1425+
Colors.Dialog.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkGray);
1426+
Colors.Dialog.HotNormal = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.Gray);
1427+
Colors.Dialog.HotFocus = MakeColor (ConsoleColor.DarkBlue, ConsoleColor.DarkGray);
1428+
Colors.Dialog.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.Gray);
1429+
1430+
Colors.Error.Normal = MakeColor (ConsoleColor.DarkRed, ConsoleColor.White);
1431+
Colors.Error.Focus = MakeColor (ConsoleColor.White, ConsoleColor.DarkRed);
1432+
Colors.Error.HotNormal = MakeColor (ConsoleColor.Black, ConsoleColor.White);
1433+
Colors.Error.HotFocus = MakeColor (ConsoleColor.Black, ConsoleColor.DarkRed);
1434+
Colors.Error.Disabled = MakeColor (ConsoleColor.DarkGray, ConsoleColor.White);
14011435
}
14021436

14031437
public override void ResizeScreen ()
@@ -1503,11 +1537,6 @@ public override void SetAttribute (Attribute c)
15031537
currentAttribute = c;
15041538
}
15051539

1506-
public override Attribute MakeColor (Color foreground, Color background)
1507-
{
1508-
return MakeColor ((ConsoleColor)foreground, (ConsoleColor)background);
1509-
}
1510-
15111540
Attribute MakeColor (ConsoleColor f, ConsoleColor b)
15121541
{
15131542
// Encode the colors into the int value.

0 commit comments

Comments
 (0)