# ScrolledWindow (C)

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

# Κυλιόμενο παράθυρο (ScrolledWindow)

Μια εικόνα σε κυλιόμενο παράθυρο.

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

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

/* Δημιουργία παραθύρου με τίτλο και προεπιλεγμένο μέγεθος */ window = gtk_application_window_new (app)· gtk_window_set_title (GTK_WINDOW (window), "ScrolledWindow Example")· gtk_window_set_default_size (GTK_WINDOW (window), 220, 200)·

/* Δημιουργία κυλιόμενου παραθύρου. Συνήθως το NULL περνά και για τις δύο παραμέτρους έτσι * δημιουργεί τις οριζόντιες/κάθετες ρυθμίσεις αυτόματα. Ορίζοντας * το είδος της γραμμής κύλισης σε αυτόματη επιτρέπει στις γραμμές κύλισης να εμφανίζονται μόνον * όταν χρειάζονται. */ scrolled_window = gtk_scrolled_window_new (NULL, NULL)· /* Ορισμός του πλάτους του περιθωρίου */ gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10)· /* Εξαγωγή της επιθυμητής μας εικόνας από ένα αρχείο που έχουμε */ image = gtk_image_new_from_file ("gnome-image.png")· /* Και προσθήκη του στο κυλιόμενο παράθυρο */ gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), image)· /* Ορίζει το είδος των οριζόντιων και κάθετων κυλιόμενων γραμμών σε αυτόματο. * Αυτό σημαίνει ότι οι γραμμές κύλισης εμφανίζονται μόνον όταν χρειάζονται. */ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC)·

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

GtkScrolledWindow

GtkPolicyType