<?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="sv">
  <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-baserat objekt- och typsystem med signal/slot</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Daniel Nylander</mal:name>
      <mal:email>po@danielnylander.se</mal:email>
      <mal:years>2007</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Anders Jonsson</mal:name>
      <mal:email>anders.jonsson@norsjovallen.se</mal:email>
      <mal:years>2017, 2018</mal:years>
    </mal:credit>
  </info>

<title>GObject</title>

  <p>GObject är delen av <link xref="tech-glib">GLib</link>-biblioteket som tillhandahåller ett objekt- och typsystem för C-program. Även om C som ett språk inte tillhandahåller objekt eller klasser så gör GObject det möjligt att skriva objektorienterade C-program.</p>

  <p>GObject tillhandahåller en grundläggande GType, basen för hela typsystemet, från vilken typer så som heltal och strängar härleds. Sedan finns det GObject självt, basklassen för alla andra klasser. Objekt kan utstråla <em>signaler</em> för att avisera anroparen när något intressant händer. Till exempel kan ett <code>Button</code>-objekt utstråla en signal <code>clicked</code> för att indikera att det har tryckts ner och släppts.</p>

  <p>GObject är <em>introspekterbart</em>, vilket betyder att du kan fråga GObject-systemet om de klasstyper som är definierade, metoderna de stöder, deras signaler o.s.v. GNOME:s språkbindningar byggs ovanpå denna introspektionsinformation. Istället för att skriva omslag för hand för att låta GNOME-API:er anropas från andra programmeringsspråk så använder språkbindningar introspektionsinformationen från GObject för att själv generera dessa omslag automatiskt.</p>

  <p>Du behöver vanligen inte bry dig om GObject självt om du programmerar för GNOME med ett objektorienterat språk. Att göra dig själv bekant med koncepten i GObject, så som signal/slot, kommer dock att göra ditt liv som GNOME-programmerare enklare.</p>

  <list style="compact">
    <item><p><link href="http://developer.gnome.org/gobject/stable/">GObject-referenshandbok</link></p></item>
  </list>

</page>
