.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:
.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
/* some code here */
PARENT_HANDLER(self, wid);
}
+
.fi
.PP
Calling methods:
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);
.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