# TextView (C)

Monica Kochofar
monicakochofar@gmail.com 2012
Γραφικό συστατικό που εμφανίζει ένα GtkTextBuffer
Δημήτρης Σπίγγος
dmtrs32@gmail.com 2012, 2013

# Γραφικό συστατικό TreeView

Εάν πατήσετε "enter", έχουμε νέα γραμμή.

Εάν πατήσουμε "enter" περισσότερες φορές τότε υπάρχουν γραμμές στο προεπιλεγμένο μέγεθος παραθύρου, μετά εμφανίζεται η κάθετη γραμμή κύλισης.

Εάν γράψουμε μια μεγάλη πρόταση, το κείμενο θα αναδιπλωθεί διακόπτοντας τις γραμμές μεταξύ των λέξεων.

Εάν έχουμε μια μεγάαααααααααααααααααααααααααααααααλη λέξη (που είναι μεγάλη), μια* οριζόντια γραμμή κύλισης θα εμφανιστεί.

Αυτό είναι ένα παράδειγμα του Gtk.TextView

#περιλαμβάνει <gtk/gtk.h>

static void activate (GtkApplication *app, gpointer user_data) { /* Δήλωση μεταβλητών */ GtkWidget *window; GtkWidget *text_view; GtkWidget *scrolled_window;

GtkTextBuffer *buffer;

/* Δημιουργία παραθύρου με τίτλο και προεπιλεγμένο μέγεθος */ 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);

/* Η ενδιάμεση μνήμη του κειμένου παρουσιάζει το κείμενο που επεξεργάστηκε */ buffer = gtk_text_buffer_new (NULL);

/* Η προβολή κειμένου είναι ένα γραφικό συστατικό στο οποίο μπορείτε να εμφανίσετε τη ρυθμιστική μνήμη του κειμένου. * Η αναδίπλωση γραμμής ορίζεται στην αλλαγή γραμμών μεταξύ λέξεων. */ text_view = gtk_text_view_new_with_buffer (buffer); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);

/* Δημιουργία του κυλιόμενου παράθυρου. Συνήθως περνιέτει NULL και για τις δυο παραμέτρους, * έτσι ώστε να δημιουργούνται αυτόματα οι οριζόντιες/κάθετες ρυθμίσεις. Ορισμός * της πολιτικής της γραμμής κύλισης σε αυτόματη επιτρέπει στις γραμμές κύλισης να εμφανίζονται μόνο * όταν χρειάζονται. */ scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); /* Η αμέσως παρακάτω συνάρτηση χρησιμοποιείται για προσθήκη θυγατρικών στο κυλιόμενο παράθυρο * με δυνατότητες κύλισης (π.χ. text_view), αλλιώς, * gtk_scrolled_window_add_with_viewport() θα έπρεπε να χρησιμοποιηθεί */ 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; }

Σε αυτό το παράδειγμα χρησιμοποιήσαμε τα παρακάτω:

GtkApplication

GtkWindow

GtkTextBuffer

GtkTextView

GtkScrolledWindow

GtkContainer