62 lines
890 B
C++
62 lines
890 B
C++
#include <string>
|
|
#include <thread>
|
|
|
|
void
|
|
open_document_and_display_gui(std::string const& filename)
|
|
{
|
|
}
|
|
|
|
bool
|
|
done_editing()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
enum command_type { open_new_document };
|
|
|
|
struct user_command {
|
|
command_type type;
|
|
|
|
user_command() : type(open_new_document) {}
|
|
};
|
|
|
|
user_command
|
|
get_user_input()
|
|
{
|
|
return user_command();
|
|
}
|
|
|
|
std::string
|
|
get_filename_from_user()
|
|
{
|
|
return "foo.doc";
|
|
}
|
|
|
|
void
|
|
process_user_input(user_command const& cmd)
|
|
{
|
|
}
|
|
|
|
void
|
|
edit_document(std::string const& filename)
|
|
{
|
|
open_document_and_display_gui(filename);
|
|
while (!done_editing()) {
|
|
user_command cmd = get_user_input();
|
|
if (cmd.type == open_new_document) {
|
|
std::string const new_name = get_filename_from_user();
|
|
std::thread t(edit_document, new_name);
|
|
t.detach();
|
|
}
|
|
else {
|
|
process_user_input(cmd);
|
|
}
|
|
}
|
|
}
|
|
|
|
int
|
|
main()
|
|
{
|
|
edit_document("bar.doc");
|
|
}
|