# TextView (C)

Monica Kochofar
monicakochofar@gmail.com 2012
L'élément graphique qui affiche un GtkTextBuffer

# Élément graphique TextView

En appuyant sur « Entrée », nous créons une nouvelle ligne.

En appuyant encore de nombreuses fois sur « Entrée », d'autres lignes sont créées dans la fenêtre de taille par défaut, puis une barre de défilement verticale apparaît.

Si nous écrivons une longue phrase, la césure se fait entre deux mots.

Si nous avons un loooooooooooooooooooooooooooooooooooong mot, une barre de défilement horizontale apparaît.

Ceci est un exemple de Gtk.TextView

#include <gtk/gtk.h>

static void activate (GtkApplication *app, gpointer user_data) { /* Declare variables */ GtkWidget *window; GtkWidget *text_view; GtkWidget *scrolled_window;

GtkTextBuffer *buffer;

/* Create a window with a title, and a default size */ window = gtk_application_window_new (app); gtk_window_set_title (GTK_WINDOW (window), "TextView Example"); gtk_window_set_default_size (GTK_WINDOW (window), 220, 200);

/* The text buffer represents the text being edited */ buffer = gtk_text_buffer_new (NULL);

/* Text view is a widget in which can display the text buffer. * The line wrapping is set to break lines in between words. */ text_view = gtk_text_view_new_with_buffer (buffer); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);

/* Create the scrolled window. Usually NULL is passed for both parameters so * that it creates the horizontal/vertical adjustments automatically. Setting * the scrollbar policy to automatic allows the scrollbars to only show up * when needed. */ scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); /* The function directly below is used to add children to the scrolled window * with scrolling capabilities (e.g text_view), otherwise, * gtk_scrolled_window_add_with_viewport() would have been used */ gtk_container_add (GTK_CONTAINER (scrolled_window), text_view); gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 5);

gtk_container_add (GTK_CONTAINER (window), scrolled_window);

gtk_widget_show_all (window); }

int main (int argc, char **argv) { GtkApplication *app; int status;

app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app);

return status; }

Dans cet exemple, les éléments suivants sont utilisés :

GtkApplication

GtkWindow

GtkTextBuffer

GtkTextView

GtkScrolledWindow

GtkContainer