|
|
|
@ -11,8 +11,17 @@ void on_log_closed(GtkWidget *, log_window *window){
|
|
|
|
window->Window=NULL;
|
|
|
|
window->Window=NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean on_log_window_exit(GtkWidget *,GdkEvent*, log_window *window){
|
|
|
|
|
|
|
|
if (window->timer_id){
|
|
|
|
|
|
|
|
g_source_remove(window->timer_id);
|
|
|
|
|
|
|
|
window->timer_id=0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
log_window *yon_log_window_new(){
|
|
|
|
log_window *yon_log_window_new(){
|
|
|
|
log_window *window = malloc(sizeof(log_window));
|
|
|
|
log_window *window = malloc(sizeof(log_window));
|
|
|
|
|
|
|
|
memset(window,0,sizeof(log_window));
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_log_view);
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_log_view);
|
|
|
|
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
|
|
|
|
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
|
|
|
|
window->ScrollWindow = yon_gtk_builder_get_widget(builder,"ScrollWindow");
|
|
|
|
window->ScrollWindow = yon_gtk_builder_get_widget(builder,"ScrollWindow");
|
|
|
|
@ -21,10 +30,22 @@ log_window *yon_log_window_new(){
|
|
|
|
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
|
|
|
|
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
|
|
|
|
window->ScrollToEndCheck = yon_gtk_builder_get_widget(builder,"ScrollToEndCheck");
|
|
|
|
window->ScrollToEndCheck = yon_gtk_builder_get_widget(builder,"ScrollToEndCheck");
|
|
|
|
window->monitor = NULL;
|
|
|
|
window->monitor = NULL;
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(window->ScrollWindow),"scroll-child",G_CALLBACK(yon_log_scroll),window);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(window->Window),"delete-event",G_CALLBACK(on_log_window_exit),window);
|
|
|
|
|
|
|
|
|
|
|
|
gtk_widget_show(window->Window);
|
|
|
|
gtk_widget_show(window->Window);
|
|
|
|
return window;
|
|
|
|
return window;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean yon_log_scroll(log_window *window){
|
|
|
|
|
|
|
|
GtkAdjustment *adj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow));
|
|
|
|
|
|
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck))){
|
|
|
|
|
|
|
|
gtk_adjustment_set_value(adj,
|
|
|
|
|
|
|
|
gtk_adjustment_get_upper(adj));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return G_SOURCE_CONTINUE;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void yon_read_log(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,log_window *window){
|
|
|
|
void yon_read_log(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,log_window *window){
|
|
|
|
if (window->Window){
|
|
|
|
if (window->Window){
|
|
|
|
int size;
|
|
|
|
int size;
|
|
|
|
@ -35,7 +56,13 @@ void yon_read_log(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,log_window *
|
|
|
|
char *final = yon_char_parsed_to_string(parsed,size,"");
|
|
|
|
char *final = yon_char_parsed_to_string(parsed,size,"");
|
|
|
|
gtk_label_set_text(GTK_LABEL(window->LogLabel),final);
|
|
|
|
gtk_label_set_text(GTK_LABEL(window->LogLabel),final);
|
|
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck))){
|
|
|
|
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck))){
|
|
|
|
|
|
|
|
if (!window->timer_id){
|
|
|
|
|
|
|
|
window->timer_id = g_idle_add((GSourceFunc)yon_log_scroll,window);
|
|
|
|
|
|
|
|
}
|
|
|
|
gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow)),gtk_adjustment_get_upper(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow))));
|
|
|
|
gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow)),gtk_adjustment_get_upper(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow))));
|
|
|
|
|
|
|
|
} else if (window->timer_id){
|
|
|
|
|
|
|
|
g_source_remove(window->timer_id);
|
|
|
|
|
|
|
|
window->timer_id=0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
free(final);
|
|
|
|
free(final);
|
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
|
@ -48,6 +75,10 @@ void yon_read_log(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,log_window *
|
|
|
|
g_mutex_unlock(&main_config.install_mutex);
|
|
|
|
g_mutex_unlock(&main_config.install_mutex);
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck),0);
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck),0);
|
|
|
|
gtk_widget_set_sensitive(window->ScrollToEndCheck,0);
|
|
|
|
gtk_widget_set_sensitive(window->ScrollToEndCheck,0);
|
|
|
|
|
|
|
|
if (window->timer_id){
|
|
|
|
|
|
|
|
g_source_remove(window->timer_id);
|
|
|
|
|
|
|
|
window->timer_id=0;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return ;
|
|
|
|
return ;
|
|
|
|
|