56 GtkTextView *textview = g_object_get_data(G_OBJECT(
dialog_textbuffer),
"textview");
61 gtk_text_view_scroll_to_mark(textview, mark, 0.0, FALSE, 0.0, 0.0);
71 g_logv(G_LOG_DOMAIN, G_LOG_LEVEL_INFO,
format, args);
89 fprintf(stderr,
"%s", msg);
100 switch (log_level & G_LOG_LEVEL_MASK)
102 case G_LOG_LEVEL_ERROR:
104 case G_LOG_LEVEL_CRITICAL:
106 case G_LOG_LEVEL_WARNING:
108 case G_LOG_LEVEL_MESSAGE:
110 case G_LOG_LEVEL_INFO:
112 case G_LOG_LEVEL_DEBUG:
119static void handler_log(
const gchar *domain, GLogLevelFlags level,
const gchar *msg, gpointer data)
124 ! ((G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_INFO | G_LOG_LEVEL_MESSAGE) & level))
131 fprintf(stderr,
"%s: %s\n", domain, msg);
133 fprintf(stderr,
"%s\n", msg);
136 g_log_default_handler(domain, level, msg, data);
142 g_string_append_printf(
log_buffer,
"%s: %s %s: %s\n", time_str, domain,
165 GtkTextIter start_iter, end_iter;
175 gtk_widget_destroy(GTK_WIDGET(
dialog));
183 GtkWidget *
dialog, *textview, *vbox, *swin;
186 GTK_DIALOG_DESTROY_WITH_PARENT,
188 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
NULL);
190 gtk_box_set_spacing(GTK_BOX(vbox), 6);
191 gtk_widget_set_name(
dialog,
"GeanyDialog");
193 gtk_window_set_default_size(GTK_WINDOW(
dialog), 550, 300);
194 gtk_dialog_set_default_response(GTK_DIALOG(
dialog), GTK_RESPONSE_CLOSE);
196 textview = gtk_text_view_new();
199 gtk_text_view_set_editable(GTK_TEXT_VIEW(textview), FALSE);
200 gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(textview), FALSE);
201 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(textview), GTK_WRAP_WORD_CHAR);
203 swin = gtk_scrolled_window_new(
NULL,
NULL);
204 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(swin), GTK_SHADOW_IN);
205 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin),
206 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
209 gtk_box_pack_start(GTK_BOX(vbox), swin, TRUE, TRUE, 0);
220 g_log_set_default_handler(g_log_default_handler,
NULL);
void log_handlers_init(void)
static GtkTextBuffer * dialog_textbuffer
static void handler_printerr(const gchar *msg)
static void update_dialog(void)
static void handler_print(const gchar *msg)
static void on_dialog_response(GtkDialog *dialog, gint response, gpointer user_data)
void geany_debug(gchar const *format,...)
static const gchar * get_log_prefix(GLogLevelFlags log_level)
static void handler_log(const gchar *domain, GLogLevelFlags level, const gchar *msg, gpointer data)
void log_show_debug_messages_dialog(void)
static GString * log_buffer
gtk_container_add(GTK_CONTAINER(dialog->vbox), check_button)
gtk_widget_show_all(dialog)
gboolean debug_mode
TRUE if debug messages should be printed.
GtkWidget * window
Main window.
Defines internationalization macros.
GtkWidget * ui_dialog_vbox_new(GtkDialog *dialog)
Makes a fixed border for dialogs without increasing the button box border.
GeanyMainWidgets main_widgets
User Interface general utility functions.
gchar * utils_get_current_time_string(gboolean include_microseconds)
General utility functions, non-GTK related.