|
|
|
@ -78,13 +78,20 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
|
|
|
|
gtk_widget_show_all(terminal);
|
|
|
|
gtk_widget_show_all(terminal);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct terminal_window_struct{
|
|
|
|
|
|
|
|
GtkWidget *StatusBox;
|
|
|
|
|
|
|
|
char *success_label;
|
|
|
|
|
|
|
|
char *fail_label;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
void __on_yon_terminal_done(GtkWidget *, int state, GtkWidget *status_box){
|
|
|
|
void __on_yon_terminal_done(GtkWidget *, int state, struct terminal_window_struct *data){
|
|
|
|
if (!state) yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(status_box),"terminal_done","",BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
if (!state) yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(data->StatusBox),"terminal_done",data->success_label,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
else yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(status_box),"terminal_done","",BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
else yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(data->StatusBox),"terminal_done",data->fail_label,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void yon_terminal_window_launch(GtkWindow *parent_window, char *command){
|
|
|
|
void yon_terminal_window_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct terminal_window_struct *data = malloc(sizeof(struct terminal_window_struct));
|
|
|
|
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
|
|
|
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
|
|
|
GtkWidget *header = gtk_header_bar_new();
|
|
|
|
GtkWidget *header = gtk_header_bar_new();
|
|
|
|
GtkWidget *terminal = vte_terminal_new();
|
|
|
|
GtkWidget *terminal = vte_terminal_new();
|
|
|
|
@ -110,7 +117,11 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
|
|
|
|
gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(header),1);
|
|
|
|
gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(header),1);
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window),gtk_window_get_title(parent_window));
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window),gtk_window_get_title(parent_window));
|
|
|
|
gtk_window_set_icon_name(GTK_WINDOW(window),gtk_window_get_icon_name(parent_window));
|
|
|
|
gtk_window_set_icon_name(GTK_WINDOW(window),gtk_window_get_icon_name(parent_window));
|
|
|
|
g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(__on_yon_terminal_done), status_box);
|
|
|
|
|
|
|
|
|
|
|
|
data->StatusBox=status_box;
|
|
|
|
|
|
|
|
data->success_label=success_label;
|
|
|
|
|
|
|
|
data->fail_label=fail_label;
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(__on_yon_terminal_done), data);
|
|
|
|
yon_terminal_integrated_start(terminal,command);
|
|
|
|
yon_terminal_integrated_start(terminal,command);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|