Merge pull request 'terminal window now returns its struct' (#62) from YanTheKaller/libublsettings-gtk3:master into master

Reviewed-on: #62
master v1.59
Dmitry Razumov 2 weeks ago
commit a7e52316e2

@ -79,13 +79,7 @@ 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{ void __on_yon_terminal_done(GtkWidget *, int state, terminal_window_struct *data){
GtkWidget *StatusBox;
char *success_label;
char *fail_label;
};
void __on_yon_terminal_done(GtkWidget *, int state, struct terminal_window_struct *data){
if (!state) yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(data->StatusBox),"terminal_done",data->success_label,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(data->StatusBox),"terminal_done",data->fail_label,BACKGROUND_IMAGE_FAIL_TYPE); else yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(data->StatusBox),"terminal_done",data->fail_label,BACKGROUND_IMAGE_FAIL_TYPE);
} }
@ -101,46 +95,46 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
char *command; char *command;
}; };
void yon_terminal_window_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label){ terminal_window_struct *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)); terminal_window_struct *data = malloc(sizeof(terminal_window_struct));
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); data->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget *header = gtk_header_bar_new(); data->header = gtk_header_bar_new();
GtkWidget *terminal = vte_terminal_new(); data->terminal = vte_terminal_new();
GtkWidget *status_box = gtk_box_new(GTK_ORIENTATION_VERTICAL,5); data->StatusBox = gtk_box_new(GTK_ORIENTATION_VERTICAL,5);
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL,5); data->box = gtk_box_new(GTK_ORIENTATION_VERTICAL,5);
GtkWidget *terminal_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); data->terminal_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
GtkWidget *scroll = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL,gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(terminal))); data->scroll = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL,gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(data->terminal)));
gtk_widget_set_size_request(window,450,300); gtk_widget_set_size_request(data->window,450,300);
gtk_window_set_titlebar(GTK_WINDOW(data->window),data->header);
gtk_container_add(GTK_CONTAINER(data->window),data->box);
gtk_box_pack_start(GTK_BOX(data->box),data->StatusBox,0,0,0);
gtk_box_pack_start(GTK_BOX(data->box),data->terminal_box,1,1,0);
gtk_box_pack_start(GTK_BOX(data->terminal_box),data->terminal,1,1,0);
gtk_box_pack_start(GTK_BOX(data->terminal_box),data->scroll,0,0,0);
gtk_widget_set_margin_bottom(data->terminal_box,5);
gtk_widget_set_margin_start(data->terminal_box,5);
gtk_widget_set_margin_end(data->terminal_box,5);
gtk_widget_show_all(data->window);
vte_terminal_set_scrollback_lines(VTE_TERMINAL(data->terminal),-1);
gtk_window_set_modal(GTK_WINDOW(data->window),1);
gtk_header_bar_set_show_close_button(GTK_HEADER_BAR(data->header),1);
gtk_window_set_title(GTK_WINDOW(data->window),gtk_window_get_title(parent_window));
gtk_window_set_icon_name(GTK_WINDOW(data->window),gtk_window_get_icon_name(parent_window));
gtk_window_set_titlebar(GTK_WINDOW(window),header);
gtk_container_add(GTK_CONTAINER(window),box);
gtk_box_pack_start(GTK_BOX(box),status_box,0,0,0);
gtk_box_pack_start(GTK_BOX(box),terminal_box,1,1,0);
gtk_box_pack_start(GTK_BOX(terminal_box),terminal,1,1,0);
gtk_box_pack_start(GTK_BOX(terminal_box),scroll,0,0,0);
gtk_widget_set_margin_bottom(terminal_box,5);
gtk_widget_set_margin_start(terminal_box,5);
gtk_widget_set_margin_end(terminal_box,5);
gtk_widget_show_all(window);
vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal),-1);
gtk_window_set_modal(GTK_WINDOW(window),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_icon_name(GTK_WINDOW(window),gtk_window_get_icon_name(parent_window));
data->StatusBox=status_box;
data->success_label=success_label; data->success_label=success_label;
data->fail_label=fail_label; data->fail_label=fail_label;
g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(__on_yon_terminal_done), data); g_signal_connect(G_OBJECT(data->terminal), "child-exited", G_CALLBACK(__on_yon_terminal_done), data);
yon_terminal_integrated_start(terminal,command); yon_terminal_integrated_start(data->terminal,command);
return data;
} }
void yon_terminal_window_launch_shell(GtkWindow *parent_window, char *command, char *success_label,char *fail_label){ void yon_terminal_window_launch_shell(GtkWindow *parent_window, char *command, char *success_label,char *fail_label){
struct terminal_window_struct *data = malloc(sizeof(struct terminal_window_struct)); terminal_window_struct *data = malloc(sizeof(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();
@ -181,7 +175,7 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
} }
void yon_terminal_window_update_button_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label){ void yon_terminal_window_update_button_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label){
struct terminal_window_struct *data = malloc(sizeof(struct terminal_window_struct)); terminal_window_struct *data = malloc(sizeof(terminal_window_struct));
struct terminal_window *window = malloc(sizeof(struct terminal_window)); struct terminal_window *window = malloc(sizeof(struct terminal_window));
window->command=command; window->command=command;
window->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); window->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

@ -42,7 +42,19 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command);
*/ */
void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, void *endwork_function, void* endwork_function_argument); void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, void *endwork_function, void* endwork_function_argument);
void yon_terminal_window_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label); typedef struct{
GtkWidget *window;
GtkWidget *header;
GtkWidget *terminal;
GtkWidget *StatusBox;
GtkWidget *box;
GtkWidget *terminal_box;
GtkWidget *scroll;
char *success_label;
char *fail_label;
} terminal_window_struct;
terminal_window_struct *yon_terminal_window_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label);
void yon_terminal_window_launch_shell(GtkWindow *parent_window, char *command, char *success_label,char *fail_label); void yon_terminal_window_launch_shell(GtkWindow *parent_window, char *command, char *success_label,char *fail_label);
void yon_terminal_window_update_button_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label); void yon_terminal_window_update_button_launch(GtkWindow *parent_window, char *command, char *success_label,char *fail_label);

Loading…
Cancel
Save