Federico Mena Quintero
federico@gnome.org 2013
Sistema de objetos e tipos baseados em C com sinais e slots
Enrico Nicoletto
liverig@gmail.com 2009
Rafael Fontenelle
rafaelff@gnome.org 2013, 2014, 2016, 2017
Isaac Ferreira Filho
isaacmob@riseup.net 2018

# GObject

GObject é a parte da biblioteca GLib que fornece um sistema de objetos e tipos para programas C. Apesar de C como um linguagem não fornece objetos ou classes, GObject possibilita escrever programas C orientados a objetos.

GObject fornece uma GType fundamental, a base para todo o sistema de tipos, a partir do qual tipos como as ints e strings são derivadas. Então, há o GObject em si, a classe base para todas as outras classes. Objetos podem emitir sinais para notificar o chamador quando alguma coisa interessante acontecer. Por exemplo, um objeto de `Button` pode emitir um sinal de `clicked` para indicar que ele foi pressionado e liberado.

GObject é introspectável, o que significa que você pode pedir que o sistema GObject para os tipos de classes que estão definidas, os métodos aos quais oferece suporte, seus sinais, etc. Bindings de linguagens do GNOME são compiladas sobre essa informação de introspecção. Em vez de escrever wrappers na mão para deixar APIs do GNOME serem chamadas por outras linguagens de programas, bindings de linguagem usam as informações de introspecção do GObject para gerarem automaticamente aqueles wrappers eles mesmo.

Você normalmente não precisa ser preocupar com GObject em si, se você está programando para GNOME com uma linguagem orientada a objeto. Porém, se familiarizar com os conceitos do GObject, tais como sinais e slots, facilitará sua vida como um programador do GNOME.

Manual de referência do GObject