Keyboard layout; currently pressed keys selected using red colour
Text to type loaded from a file; current character drawn using red colour
List of achieved results for all loaded files
User interface elements:
The window: resizable
Menu:
File / Open (Ctrl+O shortcut)- shows standard dialog box and allows to choose text file to load
File / Exit - terminates the application
A splitter between the list of results and the rest of the window (make sure that it will be possible to hide the list of results by moving the splitter to the left edge)
A tree view with results:
names of loaded files as root nodes, achieved results as child nodes (with duration of typing, number of correctly typed characters in per cent, date and time)
A splitter between a text and keyboard's layout
A rich text box
read only
font: Verdana, 10 pt, bold
current character to type: red background, white colour of a character
automatic scrolling during typing is not required (however it would be very useful)
Keyboard's layout
letters only
buttons representing keys arranged as visible on screenshots
when a key is pressed, its button has red background
Technical requirements:
All controls should adjust their size and position according to window's size and positions of splitters (as visible on screenshots)
Make sure that typing will work when any control has a focus
using (StreamReader sr = File.OpenText("toRead.txt")) {
String input;
while ((input = sr.ReadLine()) != null) {
Console.WriteLine(input);
}
Console.WriteLine ("The end of the stream.");
sr.Close();
}
Approximate points:
window's layout (resizing, using splitters, proper size and position of controls): 2.5
menu (items, shortcut): 0.5
standard open file dialog box and loading text from a file: 1.0