static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, SourceWindow *sourcewin) { if (!event || !sourcewin) return FALSE; switch (event->keyval) { case GDK_KEY_A: case GDK_KEY_a: if ((event->state & GDK_CONTROL_MASK) != 0) gtk_editable_select_region(GTK_EDITABLE(sourcewin->text), 0, -1); break; case GDK_KEY_W: case GDK_KEY_w: if ((event->state & GDK_CONTROL_MASK) != 0) gtk_widget_destroy(sourcewin->window); break; case GDK_KEY_Escape: source_window_destroy(sourcewin); return TRUE; break; } return FALSE; }
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, SourceWindow *sourcewin) { if (!event || !sourcewin) return FALSE; switch (event->keyval) { case GDK_KEY_W: case GDK_KEY_w: if ((event->state & GDK_CONTROL_MASK) != 0) gtk_widget_destroy(sourcewin->window); break; case GDK_KEY_Escape: source_window_destroy(sourcewin); return TRUE; break; } return FALSE; }
void source_window_show_msg(SourceWindow *sourcewin, MsgInfo *msginfo) { gchar *file; gchar *title; FILE *fp; gchar buf[BUFFSIZE]; cm_return_if_fail(msginfo != NULL); sourcewin->updating = TRUE; file = procmsg_get_message_file(msginfo); sourcewin->updating = FALSE; if (sourcewin->deferred_destroy) { g_free(file); source_window_destroy(sourcewin); return; } cm_return_if_fail(file != NULL); if ((fp = g_fopen(file, "rb")) == NULL) { FILE_OP_ERROR(file, "fopen"); g_free(file); return; } debug_print("Displaying the source of %s ...\n", file); title = g_strdup_printf(_("%s - Source"), file); gtk_window_set_title(GTK_WINDOW(sourcewin->window), title); g_free(title); g_free(file); while (fgets(buf, sizeof(buf), fp) != NULL) source_window_append(sourcewin, buf); fclose(fp); }
static gint source_window_delete_cb(GtkWidget *widget, GdkEventAny *event, SourceWindow *sourcewin) { source_window_destroy(sourcewin); return TRUE; }