]> git.draconx.ca Git - gob-dx.git/blobdiff - doc/gob.1.in
Release 0.91.0
[gob-dx.git] / doc / gob.1.in
index 426858045c287bc9e28fee27b6caf0723ac29072..f18490dd83ef30a14c821685804719784ee8275e 100644 (file)
@@ -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