ruby-****@sourc*****
ruby-****@sourc*****
2004年 4月 6日 (火) 23:49:56 JST
------------------------- REMOTE_ADDR = 217.255.164.194 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/de/?How+to+Implement+Ruby-GNOME2 ------------------------- =Code f$B(B Ruby-GNOME2 schreiben - aber wie? Dieses Dokument erkl$BgS(Bt, wie eine Erweiterung f$B(B Ruby-GNOME2 zu schreiben ist. ==Signale und Eigenschaften Zugriffsmethoden (((*set*))/((*get*))) f$B(B Eigenschaften werden automatisch generiert. Signale werden ebenso direkt von GLib::Instantiatable#signal_connect behandelt. Sie m$B(Bsen also nicht von Hand geschrieben werden. ==$B\b(Berholte Klassen/Methoden Im Englischen obsolete oder deprecated genannt, sind $B|b(Berholte Klassen auszusparen. ==Makros Es gibt einige Makros, die das Schreiben einer neuen Klasse oder Methode deutlich erleichtern. Fast alle dieser Makros befinden sich in den Header-Dateien glib/src/rbgobject.h, rbglib.h und gtk/src/rbgtk.h. === Define class/interface Von diesen Makros wird in den Init_*()-Funktionen Gebrauch gemacht. --- G_DEF_CLASS(gtype, name, module) --- G_DEF_CLASS2(gtype, name, module, mark, free) Definiert eine Klasse. Um die "mark"- und "free"-Funktionen selbst definieren zu k$Bvn(Bnen, steht G_DEF_CLASS2 zur Verf$B|g(Bung. Es wird eine neue Ruby-Klasse zur$B|c(Bkgegeben. --- G_DEF_CLASS3(gtype_name, name, module) Definiert eine Klasse dynamisch. N$B|t(Bzlich f$B|r(B private gtype-Klassen wie GdkScreenX11 oder GdkWindowImplWin32. Diese Funktion hat keinen R$B|c(Bkgabewert. Solche Klassen k$Bvn(Bnen die Methoden und Konstanten nicht selbst definieren. Sie tauchen dort auf, wo eine Methode, die den private gtype erzeugt, von einem Ruby-Skript aufgerufen wird. --- G_DEF_INTERFACE(gtype, name, module) --- G_DEF_INTERFACE2(gtype, name, module, mark, free) Definiert ein Modul. G_DEF_INTERFACE2 steht zur Verf$B|g(Bung, um die mark- und free-Funktionen selbst definieren zu k$Bvn(Bnen. -- unvollst$Bdn(Bdig!