X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/a611f21fab136f64bbf979bd62b2fc6ecb62933c..40647d7b7b7fbeae828e0a032a3c3a5f204cdfa8:/doc/gob.1.in diff --git a/doc/gob.1.in b/doc/gob.1.in index 4268580..f18490d 100644 --- a/doc/gob.1.in +++ b/doc/gob.1.in @@ -89,6 +89,14 @@ For example: .fi +.SH INCLUDE FILES +.PP +Gob will automatically include the class header file at the top of the .c +source file. If you wish to include it somewhere else, put the include +into some %{ %} section above the class definition, and gob will not include +it automatically. This way you can avoid circular includes and control +where in the file do you want to include the header. + .SH MAKING A NEW CLASS .PP The class header: @@ -121,9 +129,25 @@ identifier allowed per typename unlike in normal C. Example: .fi .PP -The private members are not currently protected from outside use, -they are just marked by a comment in the header file, this will most likely -be somehow solved in some future version. +Public datamembers are accessed normally as members of the object struct. +Example where 'i' is as above a public data member: +.nf + + object->i = 1; + +.fi +.PP +The private data members are defined in a structure which is only available +inside the .c file. You must access them using the structure _priv. Example +where 'h' is the private data member (as in the above example): +.nf + + object->_priv->h = NULL; + +.fi +Note that the _priv structure is only accessible to C code blocks below or +inside the class definition in the .gob file. If you use it above, you will +get a 'dereferencing incomplete pointer type' error from the C compiler. .PP The third type is an argument type. It is a named datamember which is one of the features of the GTK+ object system. You need to define a get @@ -276,6 +300,7 @@ class, you can use the PARENT_HANDLER macro with your arguments. Example: /* some code here */ PARENT_HANDLER(self, wid); } + .fi .PP Calling methods: @@ -306,7 +331,7 @@ this method, you can use the GET_NEW macro that is defined for you and that will fetch a new object, so a fairly standard new method would look like: .nf - public GtkWidget * + public GtkObject * new(void) { GtkObject *ret; ret = GTK_OBJECT (GET_NEW); @@ -328,10 +353,6 @@ compile with a C++ compiler. .SH BUGS .PP -The generated header file is included as the first file in the .c file, no -matter what. This means that you will have to put things that need to be -included before that, into an %h{ } section. -.PP Also the lexer does not actually parse the C code, so I'm sure that some corner cases or maybe even some not so corner cases of C syntax might confuse gob completely. If you find any, send me the source that makes it go gaga and I'll