Skip to content

Commit e3ca28c

Browse files
committed
added examples for the new prompt
1 parent cd0d505 commit e3ca28c

File tree

4 files changed

+124
-3
lines changed

4 files changed

+124
-3
lines changed

examples/CMakeLists.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1-
add_executable(prompt prompt.cpp)
2-
target_link_libraries(prompt cpp-terminal)
1+
add_executable(prompt_multiline prompt_multiline.cpp)
2+
target_link_libraries(prompt_multiline cpp-terminal)
3+
4+
add_executable(prompt_blocking prompt_blocking.cpp)
5+
target_link_libraries(prompt_blocking cpp-terminal)
6+
7+
add_executable(prompt_non_blocking prompt_non_blocking.cpp)
8+
target_link_libraries(prompt_non_blocking cpp-terminal)
9+
10+
add_executable(prompt_simple prompt_simple.cpp)
11+
target_link_libraries(prompt_simple cpp-terminal)
312

413
add_executable(kilo kilo.cpp)
514
target_link_libraries(kilo cpp-terminal)
@@ -20,7 +29,7 @@ add_executable(colors colors.cpp)
2029
target_link_libraries(colors cpp-terminal)
2130

2231
# enable warnings and set compile features
23-
foreach(target prompt kilo menu menu_window keys colors)
32+
foreach(target kilo menu menu_window keys colors)
2433
# Force Microsoft Visual Studio to decode sources files in UTF-8
2534
if (MSVC)
2635
target_compile_options(${target} PUBLIC "/utf-8")

examples/prompt_blocking.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#include <cpp-terminal/version.h>
2+
#include <cpp-terminal/prompt.hpp>
3+
#include <iostream>
4+
5+
int main() {
6+
std::cout << "Running cpp-terminal version: "
7+
<< CPP_TERMINAL_VERSION_COMPLETE << std::endl;
8+
try {
9+
std::cout << "CPP-Terminal basic prompt example: \n\n";
10+
switch (Term::prompt_blocking("Proceed?", "Y", "n", ":")) {
11+
case Term::Result::NONE: // no input was given
12+
std::cout << "No input given, proceeding anyway...\n";
13+
break;
14+
case Term::Result::INVALID:
15+
std::cout << "Invalid input given, proceeding anyway\n";
16+
break;
17+
case Term::Result::YES:
18+
std::cout << "Proceeding...\n";
19+
break;
20+
case Term::Result::NO:
21+
std::cout << "Stopping...\n";
22+
break;
23+
case Term::Result::ABORT:
24+
std::cout << "Exit signal received, exiting now...\n";
25+
break;
26+
case Term::Result::ERROR:
27+
std::cout << "Error while capturing input, is your terminal "
28+
"attached to a TTY?\n";
29+
std::cout << "Aborting...\n";
30+
break;
31+
}
32+
33+
} catch (const std::runtime_error& re) {
34+
std::cerr << "Runtime error: " << re.what() << std::endl;
35+
return 2;
36+
} catch (...) {
37+
std::cerr << "Unknown error." << std::endl;
38+
return 1;
39+
}
40+
return 0;
41+
}

examples/prompt_non_blocking.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#include <cpp-terminal/version.h>
2+
#include <cpp-terminal/prompt.hpp>
3+
#include <iostream>
4+
5+
int main() {
6+
std::cout << "Running cpp-terminal version: "
7+
<< CPP_TERMINAL_VERSION_COMPLETE << std::endl;
8+
try {
9+
std::cout << "CPP-Terminal basic prompt example: \n\n";
10+
switch (Term::prompt_non_blocking("Proceed?", "Y", "n", ":")) {
11+
case Term::Result::NONE: // no input was given
12+
std::cout << "No input given, proceeding anyway...\n";
13+
break;
14+
case Term::Result::INVALID:
15+
std::cout << "Invalid input given, proceeding anyway\n";
16+
break;
17+
case Term::Result::YES:
18+
std::cout << "Proceeding...\n";
19+
break;
20+
case Term::Result::NO:
21+
std::cout << "Stopping...\n";
22+
break;
23+
case Term::Result::ABORT:
24+
std::cout << "Exit signal received, exiting now...\n";
25+
break;
26+
case Term::Result::ERROR:
27+
std::cout << "Error while capturing input, is your terminal "
28+
"attached to a TTY?\n";
29+
std::cout << "Aborting...\n";
30+
break;
31+
}
32+
33+
} catch (const std::runtime_error& re) {
34+
std::cerr << "Runtime error: " << re.what() << std::endl;
35+
return 2;
36+
} catch (...) {
37+
std::cerr << "Unknown error." << std::endl;
38+
return 1;
39+
}
40+
return 0;
41+
}

examples/prompt_simple.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#include <cpp-terminal/version.h>
2+
#include <cpp-terminal/prompt.hpp>
3+
#include <iostream>
4+
5+
int main() {
6+
std::cout << "Running cpp-terminal version: "
7+
<< CPP_TERMINAL_VERSION_COMPLETE << std::endl;
8+
try {
9+
std::cout << "CPP-Terminal basic prompt example: \n\n";
10+
switch (Term::prompt_simple("Proceed?")) {
11+
case Term::Result_simple::YES:
12+
std::cout << "Proceeding...\n";
13+
break;
14+
case Term::Result_simple::NO:
15+
std::cout << "Stopping...\n";
16+
break;
17+
case Term::Result_simple::ABORT:
18+
std::cout << "Exit signal received, exiting now...\n";
19+
break;
20+
}
21+
22+
} catch (const std::runtime_error& re) {
23+
std::cerr << "Runtime error: " << re.what() << std::endl;
24+
return 2;
25+
} catch (...) {
26+
std::cerr << "Unknown error." << std::endl;
27+
return 1;
28+
}
29+
return 0;
30+
}

0 commit comments

Comments
 (0)