<?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 is <em>introspectable</em>, which means that you can ask the
    GObject system for the class types that are defined, the methods they
    support, their signals, etc.  GNOME's language bindings are built on top of
    this introspection information.  Instead of writing wrappers by hand to let
    GNOME APIs be called from other programming languages, language bindings
    use the introspection information from GObject to auto-generate those
    wrappers themselves.
  </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>
