62 lines
976 B
C++
62 lines
976 B
C++
#include <thread>
|
|
#include <string>
|
|
|
|
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");
|
|
}
|