/* log.c
* geg, a GTK+ Equation Grapher
* David Bryant 1998
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif /* HAVE_CONFIG_H */
#include <string.h>
#include "log.h"
/* locally global data */
static GtkWidget *log_te;
/* create_log, create the log
*/
void
create_log(GtkWidget *widget)
{
GtkWidget *hb, *sb;
hb = gtk_hbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(widget), hb);
gtk_widget_show(hb);
log_te = gtk_text_new(NULL, NULL);
gtk_box_pack_start(GTK_BOX(hb), log_te, TRUE, TRUE, 0);
gtk_widget_show(log_te);
sb = gtk_vscrollbar_new(GTK_TEXT(log_te)->vadj);
gtk_box_pack_start(GTK_BOX(hb), sb, FALSE, FALSE, 0);
gtk_widget_show(sb);
}
/* write_log, write a message to the log
*/
void
write_log(GtkWidget *widget, gchar *message)
{
gtk_text_freeze(GTK_TEXT(log_te));
gtk_text_insert(GTK_TEXT(log_te), NULL, NULL, NULL, message, strlen(message));
gtk_text_insert(GTK_TEXT(log_te), NULL, NULL, NULL, "\n", 1);
gtk_text_set_point(GTK_TEXT(log_te), 0);
gtk_text_thaw(GTK_TEXT(log_te));
}
/* clear_log, clear the text in the log
*/
void
clear_log(GtkWidget *widget, gpointer data)
{
gtk_text_freeze(GTK_TEXT(log_te));
gtk_editable_delete_text(GTK_EDITABLE(log_te), 0, -1);
gtk_text_thaw(GTK_TEXT(log_te));
}
syntax highlighted by Code2HTML, v. 0.9.1