wasSharpNET – Blame information for rev 22

Subversion Repositories:
Rev:
Rev Author Line No. Line
9 office 1 ///////////////////////////////////////////////////////////////////////////
2 // Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 //
3 // Please see: http://www.gnu.org/licenses/gpl.html for legal details, //
4 // rights of fair usage, the disclaimer and warranty conditions. //
5 ///////////////////////////////////////////////////////////////////////////
6  
7 using System;
8 using System.Collections.Generic;
9 using System.Linq;
10  
11 namespace wasSharpNET.Console
12 {
13 public static class ConsoleExtensions
14 {
15 public enum ConsoleTextAlignment
16 {
17 TOP_LEFT,
18 TOP_CENTER,
19 TOP_RIGHT
20 }
21  
22 public static void WriteLine(this object data, ConsoleColor foreground,
23 ConsoleColor background)
24 {
25 var cFG = System.Console.ForegroundColor;
26 var cBG = System.Console.BackgroundColor;
27 System.Console.ForegroundColor = foreground;
28 System.Console.BackgroundColor = background;
29 System.Console.WriteLine(data);
30 System.Console.ForegroundColor = cFG;
31 System.Console.BackgroundColor = cBG;
32 }
33  
34 public static void WriteLine(this object data, ConsoleColor foreground)
35 {
36 var cFG = System.Console.ForegroundColor;
37 System.Console.ForegroundColor = foreground;
38 System.Console.WriteLine(data);
39 System.Console.ForegroundColor = cFG;
40 }
41  
12 office 42 public static void WriteLine(this object data)
43 {
44 System.Console.WriteLine(data);
45 }
46  
9 office 47 public static void Write(this object data, ConsoleColor foreground,
48 ConsoleColor background)
49 {
50 var cFG = System.Console.ForegroundColor;
51 var cBG = System.Console.BackgroundColor;
52 System.Console.ForegroundColor = foreground;
53 System.Console.BackgroundColor = background;
54 System.Console.Write(data);
55 System.Console.ForegroundColor = cFG;
56 System.Console.BackgroundColor = cBG;
57 }
58  
12 office 59 public static void Write(this object data, ConsoleColor foreground)
60 {
61 var cFG = System.Console.ForegroundColor;
62 System.Console.ForegroundColor = foreground;
63 System.Console.Write(data);
64 System.Console.ForegroundColor = cFG;
65 }
66  
9 office 67 public static void WriteLine(this object data, ConsoleTextAlignment alignment)
68 {
69 switch (alignment)
70 {
71 case ConsoleTextAlignment.TOP_CENTER:
11 office 72 System.Console.CursorLeft = Math.Max(System.Console.WindowWidth / 2 - data.ToString().Length / 2, 0);
12 office 73 System.Console.WriteLine(data);
9 office 74 break;
11 office 75  
9 office 76 default:
77 throw new NotImplementedException();
78 }
79 }
80  
81 public static void WriteLine(this object data, ConsoleTextAlignment alignment, ConsoleColor foregroundColor)
82 {
83 switch (alignment)
84 {
85 case ConsoleTextAlignment.TOP_CENTER:
86 System.Console.CursorLeft = Math.Max(System.Console.WindowWidth / 2 - data.ToString().Length / 2, 0);
12 office 87 WriteLine(data, foregroundColor);
9 office 88 break;
11 office 89  
12 office 90 case ConsoleTextAlignment.TOP_LEFT:
91 WriteLine(data, foregroundColor);
92 break;
93  
9 office 94 default:
95 throw new NotImplementedException();
96 }
97 }
98  
99 public static void Write(this object data, ConsoleTextAlignment alignment)
100 {
101 switch (alignment)
102 {
103 case ConsoleTextAlignment.TOP_CENTER:
11 office 104 System.Console.CursorLeft = Math.Max(System.Console.WindowWidth / 2 - data.ToString().Length / 2, 0);
12 office 105 System.Console.Write(data);
9 office 106 break;
11 office 107  
12 office 108 case ConsoleTextAlignment.TOP_LEFT:
109 System.Console.Write(data);
110 break;
111  
9 office 112 default:
113 throw new NotImplementedException();
114 }
115 }
116  
117 public static void WriteLine(this IEnumerable<object> data, ConsoleTextAlignment alignment)
118 {
119 switch (alignment)
120 {
121 case ConsoleTextAlignment.TOP_CENTER:
22 office 122 var enumerable = data as IList<object> ?? data.ToList();
123 var textBlock = enumerable.Select(o => o.ToString()).ToArray();
11 office 124 var padding = Math.Max(System.Console.WindowWidth / 2 - textBlock.Select(o => o.Length).Max() / 2, 0);
22 office 125 foreach (var line in enumerable)
9 office 126 {
127 System.Console.CursorLeft = padding;
12 office 128 WriteLine(line, System.Console.ForegroundColor);
9 office 129 }
130 break;
11 office 131  
12 office 132 case ConsoleTextAlignment.TOP_LEFT:
133 foreach (var line in data)
134 {
135 WriteLine(line, System.Console.ForegroundColor);
136 }
137 break;
138  
9 office 139 default:
140 throw new NotImplementedException();
141 }
142 }
143 }
11 office 144 }