/usr/share/help/el/gnome-devel-demos/spinner.c.page is in gnome-devel-docs 3.28.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | <?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" xmlns:xi="http://www.w3.org/2001/XInclude" type="guide" style="task" id="spinner.c" xml:lang="el">
<info>
<title type="text">Μετρητής (Spinner)(C)</title>
<link type="guide" xref="c#display-widgets"/>
<link type="seealso" xref="togglebutton.c"/>
<revision version="0.1" date="2012-06-14" status="draft"/>
<credit type="author copyright">
<name>Monica Kochofar</name>
<email its:translate="no">monicakochofar@gmail.com</email>
<years>2012</years>
</credit>
<desc>Κίνηση μετρητή</desc>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Ελληνική μεταφραστική ομάδα GNOME</mal:name>
<mal:email>team@gnome.gr</mal:email>
<mal:years>2012-2015</mal:years>
</mal:credit>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Δημήτρης Σπίγγος</mal:name>
<mal:email>dmtrs32@gmail.com</mal:email>
<mal:years>2012, 2013</mal:years>
</mal:credit>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Μαρία Θουκιδίδου</mal:name>
<mal:email>marablack3@gmail.com</mal:email>
<mal:years>2014</mal:years>
</mal:credit>
<mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
<mal:name>Θάνος Τρυφωνίδης</mal:name>
<mal:email>tomtryf@gmail.com</mal:email>
<mal:years>2014, 2015</mal:years>
</mal:credit>
</info>
<title>Μετρητής</title>
<media type="image" mime="image/png" src="media/spinner.png"/>
<p>Αυτός ο μετρητής σταματά και ξεκινά πατώντας το πλήκτρο διαστήματος.</p>
<code mime="text/x-csrc" style="numbered">
#include <gtk/gtk.h>
/*Καθολική μεταβλητή που χρησιμοποιείται για να δείξει την ενεργή κατάσταση του
μετρητή. TRUE = active, FALSE = not-active. Αυτό συμβαίνει επειδή
δεν υπάρχει μια τρέχουσα συνάρτηση για την C που το κάνει για μας */
gboolean active;
/*Αυτή είναι η συνάρτηση επανάκλησης . Είναι μια συνάρτηση χειρισμού
που αντιδρά στο σήμα. Σε αυτήν την περίπτωση, θα προκαλέσει
την εκκίνηση και παύση του μετρητή ανάλογα με το πόσες φορές ο χρήστης
πατά το πλήκτρο διαστήματος.*/
static gboolean
key_pressed_event (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{
GtkWidget *spinner = user_data;
guint keyval;
/*Εξάγει την keyval από ένα συμβάν και την αποθηκεύει στη μεταβλητή
"keyval" (δίνουμε στη συνάρτηση τη διεύθυνση). Σε αυτήν την περίπτωση, το
συμβά είναι GdkEventKey, ένα συμβάν πατήματος πλήκτρου*/
gdk_event_get_keyval (event, &keyval);
/*Λήψη της τιμής Μπουλ από τονμετρητή*/
g_object_get (GTK_SPINNER (spinner), "active", &active, NULL);
if (keyval == GDK_KEY_space) {
if (active) {
gtk_spinner_stop (GTK_SPINNER (spinner));
}
else {
gtk_spinner_start (GTK_SPINNER (spinner));
}
}
return TRUE;
}
static void
activate (GtkApplication *app,
gpointer user_data)
{
GtkWidget *window;
GtkWidget *spinner;
/*Δημιουργία παραθύρου με τίτλο, πλάτος περιγράμματος και προεπιλεγμένο μέγεθος*/
window = gtk_application_window_new (app);
gtk_window_set_title (GTK_WINDOW (window), "Spinner Example");
gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
gtk_container_set_border_width (GTK_CONTAINER(window), 30);
/*Δημιουργία ενός μετρητή, με πρόσθετο οριζόντιο και κάθετο χώρο*/
spinner = gtk_spinner_new ();
gtk_spinner_start (GTK_SPINNER (spinner));
gtk_container_add (GTK_CONTAINER (window), spinner);
/*Σύνδεση του σήματος key-press-event με τη συνάρτηση επανάκλησης*/
g_signal_connect (GTK_WINDOW (window), "key-press-event",
G_CALLBACK (key_pressed_event), spinner);
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;
}
</code>
<p>Σε αυτό το παράδειγμα χρησιμοποιήσαμε τα παρακάτω:</p>
<list>
<item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkApplication.html">GtkApplication</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkWindow.html">GtkWindow</link></p></item>
<item><p><link href="http://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html#g-object-get">GObject</link></p></item>
<item><p><link href="http://developer.gnome.org/gtk3/stable/GtkSpinner.html">GtkSpinner</link></p></item>
</list>
</page>
|