<?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="cs">
  <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>Objekty a typy v jazyce C se signály a sloty</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Lucas Lommer</mal:name>
      <mal:email>llommer@svn.gnome.org</mal:email>
      <mal:years>2009.</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Marek Černocký</mal:name>
      <mal:email>marek@manet.cz</mal:email>
      <mal:years>2015.</mal:years>
    </mal:credit>
  </info>

<title>GObject</title>

  <p>GObject je součástí knihovny <link xref="tech-glib">GLib</link> a poskytuje systém objektů a typů pro programy v jazyce C. Ačkoliv C jako programovací jazyk namá objekty a třídy, GObject zavádí možnost psát objektově orientované programy v jazyce C.</p>

  <p>GObject poskytuje základní kámen v podobě GType, ze kterého vychází celý systém, včetně třeba odvozených celočíselných a řetězcových typů. Pak je zde vlastní GObject, základní třída pro všechny ostatní třídy. Objekty mohou vysílat <em>signály</em>, aby oznámili příjemcům, že se událo něco zajímavého. Například objekt <code>Button</code> může vyslat signál <code>clicked</code>, aby sdělil, že byl zmáčknut nebo uvolněn.</p>

  <p>GObject je <em>introspektivní</em>, což znamená, že se může dotazovat systému GObject na to, které typy tříd jsou definovány, které metody jsou podporovány, na jejich signály atd. Vazba na různé jazyky nad těmito introspektivními informacemi je v GNOME zabudována. Místo, abyste ručně psali nadstavby, které budou volat API GNOME z jiných programovacích jazyků, používá vazba na jazyky introspektivní informace z GObject pro automatické generování obalujících funkcí sama osobě.</p>

  <p>Jestli programujete pro GNOME v některém z objektových jazyků, nepotřebujete se normálně o GObject starat. Avšak, pokud konceptu GObject dobře porozumíte, např. fungování signálů a slotů, bude se vám pro GNOME programovat snáze.</p>

  <list style="compact">
    <item><p><link href="http://developer.gnome.org/gobject/stable/">Referenční příručka knihovny GObject</link></p></item>
  </list>

</page>
