/*
* File: console.h
* ---------------
* This file redirects the cin, cout,
* and cerr channels to use a console window. This file
* must be included in the source file that contains the main
* method, although it may be included in other source files as well.
*/
#ifndef _console_h
#define _console_h
#include
/*
* Function: clearConsole
* Usage: clearConsole();
* ----------------------
* Erases the contents of the console window.
*/
void clearConsole();
/*
* Function: getConsoleEcho
* Usage: bool echo = getConsoleEcho();
* ----------------------------
* Returns whether or not the input/output from the Stanford graphical
* console window is being echoed onto the standard operating system terminal
* window. Initially this is false unless set to true by a previous call to
* setConsoleEcho(true).
*/
bool getConsoleEcho();
/*
* Function: getConsoleLogFile
* Usage: string consoleLogFile = getConsoleLogFile();
* ----------------------------
* Returns the file name, if any, that was set by a previous call to
* setConsoleLogFile into which console in/output is being logged.
* If setConsoleLogFile has not been called yet by this program, returns
* an empty string ("").
*/
std::string getConsoleLogFile();
/*
* Function: getConsolePrintExceptions
* Usage: bool ex = getConsolePrintExceptions();
* ----------------------------
* Returns whether or not a feature is enabled that causes exceptions to be
* echoed to the Stanford graphical console window when they are thrown.
* Disabled (false) by default.
*/
bool getConsolePrintExceptions();
/*
* Function: setConsoleEcho
* Usage: setConsoleEcho(true);
* ----------------------------
* Enables or disables echoing the input/output from the Stanford graphical
* console window onto the standard operating system terminal window.
* Normally you don't need this echoing, but if you want to be able to copy
* and paste your console interaction into another window, it is useful.
*/
void setConsoleEcho(bool echo);
/*
* Function: setConsoleFont
* Usage: setConsoleFont(font);
* ----------------------------
* Changes the font used for the console. The font parameter
* is typically a string in the form family-style-size.
* In this string, family is the name of the font family;
* style is either missing (indicating a plain font) or one
* of the strings Bold, Italic, or
* BoldItalic; and size is an integer
* indicating the point size. If any of these components is
* specified as an asterisk, the existing value is retained.
* The font parameter can also be a sequence of
* such specifications separated by semicolons, in which case the
* first available font on the system is used.
*/
void setConsoleFont(const std::string & font);
/*
* Function: setConsoleLog
* Usage: setConsoleLog("myoutput.txt");
* ----------------------------
* Begins dumping a copy of all future console in/output to the given file name.
* Useful for capturing output logs and writing auto-grader scripts.
* If you are logging to a file, the output still also appears on the console.
* By default, logging is not initially enabled.
* Log text is appended to any existing content in the file as it is printed.
* If you pass the name of an invalid file, or one that the current user does
* not have permission to write, a file I/O error will occur the next time
* your program performs a console I/O operation to cout or cin.
* Set to an empty string ("") to disable logging.
*/
void setConsoleLogFile(const std::string & filename);
/*
* Function: setConsolePrintExceptions
* Usage: setConsolePrintExceptions(true);
* ----------------------------
* Enables or disables a feature that causes exceptions to be echoed to the
* Stanford graphical console window when they are thrown.
* Disabled (false) by default.
* Note that using this feature may make it harder to get a stack trace in the
* debugger if you are debugging the cause of an exception.
*/
void setConsolePrintExceptions(bool printExceptions);
/*
* Function: setConsoleSize
* Usage: setConsoleSize(width, height);
* -------------------------------------
* Changes the size of the console to the specified dimensions, measured
* in pixels.
*/
void setConsoleSize(double width, double height);
#include "private/main.h"
#endif