<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="tech-gobject" xml:lang="el">
  <info>
    <link type="guide" xref="tech" group="gobject"/>

    <credit type="author copyright">
      <name>Federico Mena Quintero</name>
      <email its:translate="no">federico@gnome.org</email>
      <years>2013</years>
    </credit>

    <include xmlns="http://www.w3.org/2001/XInclude" href="cc-by-sa-3-0.xml"/>

    <desc>Αντικείμενο και σύστημα τύπου με σήματα και υποδοχές με βάση τη C</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>2010-2014</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-2014</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Τζένη Πετούμενου</mal:name>
      <mal:email>epetoumenou@gmail.com</mal:email>
      <mal:years>2010</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Μάριος Ζηντίλης</mal:name>
      <mal:email>m.zindilis@dmajor.org</mal:email>
      <mal:years>2010</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@gnome.org</mal:email>
      <mal:years>2014</mal:years>
    </mal:credit>
  </info>

<title>GObject</title>

  <p>GObject είναι το μέρος της βιβλιοθήκης <link xref="tech-glib">GLib</link> που παρέχει ένα αντικείμενο και σύστημα τύπου για προγράμματα C. Αν και η C ως γλώσσα δεν παρέχει αντικείμενα ή κλάσεις, η GObject κάνει δυνατή την συγγραφή αντικειμενοστραφών προγραμμάτων C.</p>

  <p>Η GObject παρέχει έναν θεμελιακό GType, τη βάση για όλο το σύστημα τύπου, από το οποίο τύποι όπως ακέραιοι και συμβολοσειρές παράγονται. Έπειτα, υπάρχει το ίδιο το GObject, η βασική κλάση για όλες τις άλλες κλάσεις. Τα αντικείμενα μπορούν να εκπέμψουν <em>σήματα</em> για να ειδοποιήσουν τον καλούντα όταν κάτι ενδιαφέρον συμβαίνει. Για παράδειγμα, ένα αντικείμενο <code>κουμπί</code> μπορεί να εκπέμψει ένα σήμα <code>πατημένο</code> για να δείξει ότι έχει πατηθεί και ελευθερωθεί.</p>

  <p>Η GObject είναι <em>αυτοελέγξιμη</em>, που σημαίνει ότι μπορείτε να ρωτήσετε το σύστημα GObject για τους τύπους κλάσης που ορίζονται, τις μεθόδους που υποστηρίζουν, τα σήματά τους, κλπ. Οι σύνδεσμοι γλώσσας του GNOME δομούνται πάνω από αυτή την πληροφορία αυτοελέγχου. Αντί για συγγραφή συσκευαστών με το χέρι για να επιτρέψετε τα APIs GNOME να κληθούν από άλλες προγραμματιστικές γλώσσες, οι σύνδεσμοι γλώσσας χρησιμοποιούν την πληροφορία αυτοελέγχου από την GObject για να δημιουργήσουν αυτόματα αυτούς τους ίδιους τους συσκευαστές.</p>

  <p>Κανονικά δεν χρειάζεται να ασχολείστε με τις ίδιες τις GObject αν προγραμματίζετε για το GNOME με μια αντικειμενοστραφή γλώσσα. Όμως, η εξοικείωσή σας με έννοιες της GObject, όπως σήματα και υποδοχές, θα διευκολύνει τη ζωή σας ως προγραμματιστή του GNOME.</p>

  <list style="compact">
    <item><p><link href="http://developer.gnome.org/gobject/stable/">Εγχειρίδιο αναφοράς GObject</link></p></item>
  </list>

</page>
