|
6 | 6 | // let's see what's left of the c++ skills... |
7 | 7 | // compile with g++ -o lobsterpygui src/main.cpp $(pkg-config --cflags --libs gtk+-3.0) |
8 | 8 |
|
9 | | -// Callback function for the button click event |
| 9 | +// Callback function for the button click event, could put that in its own header main.hpp |
10 | 10 | void on_button_clicked(GtkWidget *widget, gpointer data) |
11 | 11 | { |
12 | 12 | const char* command = static_cast<const char*>(data); |
13 | 13 | const char* subplotdos = "plotdos"; |
| 14 | + const char* subplot = "plot"; |
14 | 15 | std::string element; |
15 | | - char tmp[100]; |
| 16 | + int bond_num; |
| 17 | + char tmppd[100]; |
| 18 | + char tmpp[100]; |
16 | 19 | if (strstr(command, subplotdos) != NULL) |
17 | 20 | { |
18 | 21 | g_print("Enter element: "); |
19 | 22 | std::cin >> element; |
20 | | - strcpy(tmp, command); |
21 | | - strcat(tmp, " --element "); |
22 | | - strcat(tmp, element.c_str()); |
23 | | - command = tmp; |
| 23 | + strcpy(tmppd, command); |
| 24 | + strcat(tmppd, " --element "); |
| 25 | + strcat(tmppd, element.c_str()); |
| 26 | + command = tmppd; |
| 27 | + } |
| 28 | + if (strstr(command, subplot) != NULL) |
| 29 | + { |
| 30 | + g_print("Enter bond number: "); |
| 31 | + std::cin >> bond_num; |
| 32 | + std::string bond_num_str = " " + std::to_string(bond_num); |
| 33 | + strcpy(tmpp, command); |
| 34 | + strcat(tmpp, bond_num_str.c_str()); |
| 35 | + command = tmpp; |
24 | 36 | } |
25 | 37 | g_print("%s\n", command); |
26 | 38 | std::system(command); |
27 | 39 | g_print("finished\n"); |
28 | 40 | } |
29 | 41 |
|
30 | | - |
31 | 42 | int main(int argc, char *argv[]) |
32 | 43 | { |
33 | | - std::cout << "LobsterPyGUI written by Christina Ertural (currently in a very basic mode)" << std:: endl; |
| 44 | + std::cout << "LobsterPyGUI written by Christina Ertural for very beginners to get familiar with LOBSTER and LobsterPy!" << std:: endl; |
34 | 45 |
|
35 | 46 | // Initialize GTK+ |
36 | 47 | gtk_init(&argc, &argv); |
| 48 | + GtkWidget *window; |
37 | 49 |
|
38 | 50 | // Create the main window |
39 | | - GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
40 | | - gtk_window_set_title(GTK_WINDOW(window), "LobsterPyGUI Prototype"); |
| 51 | + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 52 | + gtk_window_set_title(GTK_WINDOW(window), "LobsterPyGUI: Very basic LobsterPy features"); |
| 53 | + //gtk_window_set_keep_above(GTK_WINDOW(window), TRUE); |
| 54 | + gtk_window_present (GTK_WINDOW (window)); |
41 | 55 | g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); |
42 | 56 | GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10); |
43 | 57 | gtk_container_add(GTK_CONTAINER(window), box); |
44 | 58 |
|
45 | 59 | // Create a button and connect it to the callback function |
46 | 60 | const char* button_commands[] = |
47 | 61 | { |
| 62 | + "lobsterpy description", |
| 63 | + "lobsterpy calc-description", |
| 64 | + "lobsterpy autoplot", |
| 65 | + "lobsterpy autoplotia", |
48 | 66 | "lobsterpy createinputs", |
49 | | - "lobsterpy autoplot", |
50 | 67 | "lobsterpy plotdos", |
| 68 | + "lobsterpy plot-icohps-distances", |
| 69 | + "lobsterpy plot" |
51 | 70 | // Add more commands for additional buttons if needed |
52 | 71 | }; |
53 | 72 |
|
|
0 commit comments